当下短剧行业发展迅猛,抖音、快手、红果等主流平台聚集了海量短剧内容。item_get_video接口作为获取单部短剧视频详情的核心工具,能精准返回短剧播放地址、分集信息、作者数据等关键内容,是短剧聚合平台搭建、分销推广、竞品监测等场景的核心技术支撑。以下攻略将覆盖主流短剧平台接口特性、对接流程、代码实现及问题排查,助力开发者高效完成对接。
一、接口核心认知:特性与适配场景
- 核心价值
item_get_video接口区别于批量获取视频列表的接口,聚焦单部短剧的精细化信息提取。核心作用是输入短剧 ID、分集 ID 等关键标识,返回该短剧单集 / 全集的播放链接、时长、封面、作者信息等详情,部分平台还支持返回付费规则、分销参数等短剧专属字段。其适配的核心场景包括:
短剧聚合平台:接入多平台短剧,为用户提供一站式播放入口;
分销推广场景:获取短剧播放链接和分销参数,快速生成推广素材;
竞品监测:提取竞品短剧的播放数据、更新节奏,分析运营策略;
小程序开发:在短剧小程序中加载指定剧集,实现沉浸式播放体验。 - 主流平台接口特性对比
不同短剧平台的item_get_video接口在权限要求、参数格式和返回字段上差异较大,以下是核心平台的特性梳理:
平台 接口获取渠道 核心特性 关键差异点 权限要求
抖音 巨量引擎开放平台 支持通过视频 ID 获取播放链接、iframe 嵌入代码;可关联电商带货信息;返回数据含播放量、点赞量等互动数据 需通过 aweme_id 关联抖音号,部分字段需广告主资质 个人开发者需实名认证,企业需完成广告主资质认证,获取 access_token
快手 快手开放平台 / 内容库接口 需关联短剧内容库,通过 ksPlayletId(短剧 ID)、ksEpisodeId(剧集 ID)获取播放信息;支持小程序挂载适配 落地页需拼接专属参数,否则无法正常展示 线下申请短剧内容库权限,获取接口调用密钥
红果短剧 第三方合规服务商 接口轻量化,支持通过 video_id 获取分集播放链接;适配分销场景,可返回推广关联参数 支持 search、detail、video 三种关联操作,需先通过搜索接口获取剧集 ID 注册服务商账号并获取 apikey,无需复杂资质审核
穿山甲 穿山甲广告平台 面向短剧推广场景,返回短剧播放地址及广告适配参数;支持 HmacSHA256 加密签名,安全性高 需结合 site_id 等应用标识,签名需包含请求体内容 企业资质认证,获取 server key 和 site_id
二、对接前准备:权限与环境搭建 - 获取平台接口权限
主流平台接口权限获取分为官方申请和第三方服务商接入两种方式,具体步骤如下:
接入方式 适用平台 操作步骤
官方申请 抖音、快手 1. 登录对应开放平台(巨量引擎 / 快手开放平台);2. 完成账号认证(个人实名认证 / 企业营业执照认证);3. 申请短剧相关接口权限(如抖音的视频管理权限、快手的内容库权限);4. 创建应用,获取 appkey、secret 或 access_token
第三方接入 红果短剧、小众平台 1. 选择合规第三方服务商(如 52api 等);2. 注册账号并完成实名认证;3. 申请红果短剧接口权限,获取 apikey;4. 查阅服务商提供的接口文档,确认参数格式 - 技术环境准备
开发语言与依赖:优先选择 Python(数据处理高效,适配多平台接口调试),核心依赖包括 requests(网络请求)、hmac(签名加密)、json(数据解析)、pandas(数据归档);
调试工具:Postman(快速验证接口可用性)、在线 HmacSHA256/MD5 工具(校验签名正确性)、浏览器开发者工具(排查小程序播放链接问题);
存储与加速:若搭建播放平台,建议搭配阿里云 OSS、腾讯云 COS 存储封面素材,结合 CDN 加速播放链接,提升用户体验。
三、分平台对接实操:参数与代码实现
以下是主流平台item_get_video接口的详细对接流程,包含核心参数、签名生成和 Python 代码示例,均基于官方规范和合规服务商规则编写。 - 红果短剧(第三方服务商接口)
红果短剧通过第三方服务商提供接口,流程简洁,适合快速接入。
(1)核心参数
参数名 类型 是否必填 说明
apikey string 是 服务商分配的专属密钥
type string 是 操作类型,取 video 时获取播放链接
video_id string 是 分集 ID,需通过 detail 接口获取
(2)代码实现
import requests
def get_hongguo_video(video_id, apikey):
"""获取红果短剧指定分集播放链接"""
api_url = "https://www.52api.cn/api/hg_duanju"
# 构造请求参数
params = {
"apikey": apikey,
"type": "video",
"video_id": video_id
}
try:
response = requests.get(api_url, params=params, timeout=15)
response.raise_for_status()
result = response.json()
if result.get("code") == 200:
# 解析返回的播放数据
video_data = {
"短剧标题": result["data"]["title"],
"播放链接": result["data"]["video_url"],
"时长": result["data"]["duration"],
"封面图": result["data"]["cover"]
}
return video_data
else:
print(f"接口错误:{result.get('msg', '未知错误')}")
return None
except requests.exceptions.RequestException as e:
print(f"请求异常:{str(e)}")
return None
调用示例
if name == "main":
MY_APIKEY = "你的apikey"
TARGET_VIDEO_ID = "目标分集ID"
video_info = get_hongguo_video(TARGET_VIDEO_ID, MY_APIKEY)
if video_info:
print("红果短剧视频信息:", video_info)
- 穿山甲短剧接口(推广场景适配)
穿山甲接口适配短剧广告推广场景,签名规则较严格,需通过 HmacSHA256 加密。
(1)核心参数与签名生成
请求头参数:包含 x-csj-sp-site-id(应用 ID)、x-csj-sp-timestamp(时间戳)、x-csj-sp-nonce(16 位随机串)等;
签名规则:拼接时间戳、site-id、版本号、随机串和请求体,通过 HmacSHA256 加密生成签名。
(2)代码实现
python
运行
import requests
import hmac
import hashlib
import time
import random
import string
配置信息
SERVER_KEY = "你的穿山甲server key"
SITE_ID = "5175152" # 穿山甲应用ID
VERSION = "1.0"
def generate_nonce(length=16):
"""生成16位随机字符串"""
return ''.join(random.choices(string.ascii_letters + string.digits, k=length))
def generate_sign(timestamp_str, nonce, body):
"""生成HmacSHA256签名"""
payload = f"{timestamp_str}{SITE_ID}{VERSION}{nonce}{body}"
h = hmac.new(SERVER_KEY.encode('utf-8'), payload.encode('utf-8'), digestmod=hashlib.sha256)
return h.hexdigest()
def get_chuanjiashan_shortplay(video_id, uid):
"""获取穿山甲短剧视频信息"""
api_url = "https://csj-sp.csjdeveloper.com"
timestamp = str(int(time.time() * 1000))
nonce = generate_nonce()
# 构造请求体
body = {
"uid": uid,
"shortplay_id": video_id,
"index": 1 # 第一集
}
body_str = str(body)
# 生成签名
sign = generate_sign(timestamp, nonce, body_str)
# 构造请求头
headers = {
"x-csj-sp-site-id": SITE_ID,
"x-csj-sp-timestamp": timestamp,
"x-csj-sp-version": VERSION,
"x-csj-sp-nonce": nonce,
"x-csj-sp-sign": sign,
"Content-Type": "application/json"
}
try:
response = requests.post(api_url, json=body, headers=headers, timeout=15)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"请求失败:{str(e)}")
return None
调用示例
if name == "main":
video_info = get_chuanjiashan_shortplay(7, 156416514)
print("穿山甲短剧信息:", video_info)
四、批量与进阶开发:效率与体验优化
- 批量获取短剧视频
若需批量获取多部短剧的视频信息,可结合搜索接口先获取剧集 ID 列表,再循环调用item_get_video接口,同时需控制调用频率避免超限:
python
运行
def batch_get_videos(video_ids, access_token, platform="douyin"):
"""批量获取多剧集视频信息"""
all_videos = []
for idx, video_id in enumerate(video_ids):if platform == "douyin": video_info = get_douyin_video(video_id, access_token) elif platform == "hongguo": video_info = get_hongguo_video(video_id, "你的apikey") if video_info: all_videos.append(video_info) # 控制频率,避免超限 time.sleep(2)保存到Excel
import pandas as pd
pd.DataFrame(all_videos).to_excel("短剧视频列表.xlsx", index=False)
return all_videos - 短剧小程序适配优化
在短剧小程序中对接接口时,需注意两点关键优化:
参数拼接规范:快手短剧需在落地页拼接 ksPlayletId 和 ksEpisodeId,抖音需携带 aweme_id,否则会导致挂载失败;
播放体验优化:使用swiper组件结合video组件,实现上下滑动切换剧集;预加载下一集视频,减少播放卡顿。 - 缓存策略设计
短剧内容更新频率较低,可通过 Redis 缓存视频信息:
缓存 key 设为video平台视频ID,缓存时长设为 1 小时;
对已下架的短剧,缓存空结果并设置 10 分钟有效期,避免无效请求。
五、调试与问题排查:快速解决对接难题 - 通用调试步骤
参数校验:确认短剧 ID、video_id 等标识正确,可通过平台官网或搜索接口验证 ID 有效性;
签名验证:用在线 HmacSHA256/MD5 工具手动计算签名,与代码生成结果对比,排查签名错误;
接口独立测试:先用 Postman 发送请求,确认接口返回正常后再对接代码,排除代码逻辑干扰。 - 高频问题排查表
问题现象 常见原因 解决方案
签名错误(401) 参数拼接顺序错误、密钥不匹配、时间戳过期 核对平台签名规则,校准本地时间,重新检查 server key/appkey
播放链接无法打开 落地页参数缺失、权限不足、剧集已下架 检查是否拼接平台专属参数,验证剧集在官网是否可播放,重新申请权限
频率超限(429) 批量请求未控频、账号配额不足 增加请求间隔,企业用户可申请提升配额,采用异步请求控制并发数
返回字段缺失 资质不足、参数错误 确认是否完成企业认证,检查 aweme_id、advertiser_id 等必填参数是否正确
六、合规与上线注意事项
合规使用数据:获取的短剧播放链接仅用于合规场景,禁止盗链或商业化售卖;分销需获得平台授权,标注来源;
密钥安全管理:生产环境中,将 appkey、secret 等密钥存储在环境变量或配置中心,避免硬编码;定期轮换密钥;
异常兜底方案:接口请求失败时,返回默认提示并记录日志;播放链接失效时,提供刷新按钮重新获取最新地址。