短剧

短剧服务:提供短剧的榜单、分类、搜索、详情与播放直链能力,按「榜单/分类 → 列表 → 详情 → 播放」流程即可搭建短剧站。

/api/dramas/

服务说明

短剧服务聚合短剧站数据,提供榜单、分类、搜索、详情与播放直链等能力,按「榜单/分类 → 列表 → 详情 → 播放」的顺序即可搭起一个短剧站,搜索接口则支持按剧名关键词查剧。

播放能力:前 3 集由源站直接下发明文直链;第 4 集及以后源站只下发 DRM 加密的H.265(浏览器无法直接解码),由本服务在服务端解密并转成 H.264 后出流,播放接口返回的地址可直接交给浏览器的「视频」标签播放,支持拖动进度条。第 4 集及以后首次点播需等待数十秒生成,之后即刻返回。

播放接口返回的源站直链为 MP4 且带时效,请勿在客户端长期缓存;剧集元数据与集列表缓存较久,播放直链缓存较短以便及时刷新。本服务需项目签名。

红果短剧

红果短剧(hongguoduanju.com)网页版 需签名

实时爬取源站 SSR 数据并缓存。剧集元数据/集列表缓存较久;播放直链缓存较短。

GET /api/dramas/hongguo/rank 累计调用 0 次

榜单

获取短剧榜单,支持热播榜 / 真人剧热播榜 / AI剧热播榜 / 漫剧热播榜与分页。

可选:榜单类型,默认 hot-drama(热播榜)。

可选:页码,从 1 开始,默认 1。

  • 榜单类型非法时返回 PARAM_VALUE_INVALID。
  • 返回 data 为榜单剧集列表(字段与「分类列表」接口一致)。
GET /api/dramas/hongguo/categories 累计调用 2 次

分类清单

获取分类树(一级 -> 二级题材)。

  • 分类是两级的:一级是内容形态(真人剧 / 漫剧 / AI剧 / 漫画),二级是题材(爱情 / 年代 / 逆袭 …)。
  • 每个节点的 slug 都可直接传给「分类列表」接口的 category:一级取该一级全部,二级只取该题材(形如 real-drama/romance);无二级的一级(漫画)children 为空数组。
GET /api/dramas/hongguo/list 累计调用 3 次

分类列表

按分类获取短剧列表,支持分页。

必填:分类取值 —— 一级 slug(如 real-drama)或「一级/二级」(如 real-drama/romance),完整取值见「分类清单」接口。

可选:页码,从 1 开始,默认 1。

  • category 缺失或非法时返回 PARAM_MISSING / PARAM_VALUE_INVALID。
GET /api/dramas/hongguo/detail 累计调用 4 次

剧集详情

获取剧集详情与全量集列表。

必填:剧集 ID(取自列表/搜索结果)。

  • 返回 data.episodes 为全量集列表,每项含 ep / episode_id / playable / source。
  • episodes[].playable 的口径与「播放地址」接口完全一致:源站直链 / 本站网页直出两条路任一可用即为 true;source 标出走的哪条路 —— origin(源站直链)/ stream(本站直出,首播需等数十秒生成)。本站直出默认可用,所以第 4 集及以后通常也是 playable=true。
  • data.playable_cnt 为源站直链的连续范围(前 N 集,保持原义);data.listed_cnt 为实际可播集数(= playable 为 true 的集数)。需要判断「某集能不能播」请用 episodes[].playable,不要用 playable_cnt 推算。
  • 剧集不存在时返回 EXTERNAL_API_FAILED(外部API调用失败)。
GET /api/dramas/hongguo/play 累计调用 7 次

播放地址

获取指定集的播放地址(网页可直接播放)。

必填:集数,从 1 开始。

选填:本站直出的画质,取值是输出宽度上限(短剧是竖屏,1080 即 1080×1920,也就是日常说的 1080p)。每档产物各存一份;换画质要重新调本接口换地址。

  • 前 3 集返回源站明文 MP4 直链;第 4 集及以后源站只下发 DRM 加密的 H.265(浏览器无法解码),改由本站出流。data.source 区分来源(取值与「剧集详情」的 episodes[].source 一致):
  • · origin —— 源站明文直链(前若干集);
  • · stream —— 本站直出:data.url 为可直接交给 <video> 播放的地址(明文 H.264、支持 HTTP Range 拖动),画质见 data.quality,data.ready=false 表示该画质首次被点播、服务端正在生成(约数十秒),请轮询该地址:202=正在生成、503=生成失败(响应体里有原因)、200/206=可播放,别只按 HTTP 200 判定。
  • 该地址的鉴权由 data.url 里的时效令牌承担(默认 2 小时),过期后重新调用本接口换取新地址。
  • ep 越界(超出总集数)返回 PARAM_VALUE_INVALID。
  • 源站直链带时效,请勿长期缓存。
在线播放测试 hls.js / mp4 发送上方请求成功后自动加载播放;也可直接粘贴任意播放地址(m3u8 / mp4)测试。
GET /api/dramas/hongguo/stream 累计调用 87 次

网页直出流

第 4 集及以后的「网页可播」流地址(普通 <video> 标签直接播放)。

必填:由「播放地址」接口下发的时效令牌,无需项目签名。

  • 该地址由「播放地址」接口返回,供 <video> 标签直接播放,不带项目签名(浏览器加不了签名),鉴权用 URL 里的时效令牌。
  • 画质由「播放地址」的 q 参数决定、已写在令牌里,本端点不需要再传 —— 同一集不同画质是不同的地址,各自独立缓存。
  • 支持 HTTP Range(206):可拖动进度条、可断点续传。
  • 首次点播该集的某一画质时返回 202(Retry-After: 3),服务端在后台解密并转成 H.264(约数十秒),200 / 206 才是可播放;生成失败返回 503(响应体里有失败原因),请勿只按 HTTP 200 判定。产物落盘永久复用,此后再播为即刻返回。
  • 令牌无效或过期返回 403,需重新调用「播放地址」接口获取新地址。
小影API · 通用 API 聚合服务