想追短剧,搜剧名、看简介、拉出全部分集,再挑你要的清晰度点开 —— 播放地址拿来就能用,选集、换画质都是一次就能拿到。
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| key | string | 否 | 接口调用密钥 | |
| action | string | 是 | 操作类型,仅可为:search(搜索)、detail(详情)、episodes(分集/目录)、streams(清晰度列表,只读)、video(播放,解密后返回本地播放地址)、video.info(原始加密流信息)、video.prepare(解密生成本地 mp4)、chapter.info(分集信息)、media.file(输出本地视频,支持 Range)、capabilities(上游能力) | |
| keyword | string | 否 | 搜索关键词,仅当 action 为 search 时必填;等价参数 query | |
| offset | integer | 否 | 分页偏移,仅当 action 为 search、episodes 时有效,从 0 开始 | |
| limit | integer | 否 | 每页条数,仅当 action 为 search、episodes 时有效 | |
| search_id | string | 否 | 搜索会话 ID,仅当 action 为 search 时有效,用于翻页续搜 | |
| with_details | integer | 否 | 是否返回分集附加详情(0/1),仅当 action 为 episodes 时有效 | |
| book_id | string | 否 | 短剧 ID(1-20 位数字字符串,务必按字符串传),仅当 action 为 detail、episodes、streams、video、video.info、video.prepare 时有效 | |
| item_id | string | 否 | 分集 ID(1-20 位数字字符串),仅当 action 为 streams、video、video.info、video.prepare、chapter.info 时有效 | |
| stream_index | integer | 否 | 清晰度下标(0-20,默认 0),仅当 action 为 video、video.prepare 时有效;就是 streams 返回的数组下标,不同下标各自解密并各自缓存 | |
| quality | integer | 否 | stream_index 的别名(0-20),仅当 action 为 video 时有效,与 stream_index 共用一个缓存键 | |
| tone_id | integer | 否 | 音色 ID(默认 0),仅当 action 为 video、video.info、streams、video.prepare 时有效 | |
| token | string | 否 | 媒体令牌(48 位小写十六进制),仅当 action 为 media.file 时必填,由 video 返回的 play_url 自动带出 |
[
{
"name": "key",
"type": "string",
"required": false,
"description": "接口调用密钥",
"example": ""
},
{
"name": "action",
"type": "string",
"required": true,
"description": "操作类型,仅可为:search(搜索)、detail(详情)、episodes(分集/目录)、streams(清晰度列表,只读)、video(播放,解密后返回本地播放地址)、video.info(原始加密流信息)、video.prepare(解密生成本地 mp4)、chapter.info(分集信息)、media.file(输出本地视频,支持 Range)、capabilities(上游能力)",
"example": ""
},
{
"name": "keyword",
"type": "string",
"required": false,
"description": "搜索关键词,仅当 action 为 search 时必填;等价参数 query",
"example": ""
},
{
"name": "offset",
"type": "integer",
"required": false,
"description": "分页偏移,仅当 action 为 search、episodes 时有效,从 0 开始",
"example": ""
},
{
"name": "limit",
"type": "integer",
"required": false,
"description": "每页条数,仅当 action 为 search、episodes 时有效",
"example": ""
},
{
"name": "search_id",
"type": "string",
"required": false,
"description": "搜索会话 ID,仅当 action 为 search 时有效,用于翻页续搜",
"example": ""
},
{
"name": "with_details",
"type": "integer",
"required": false,
"description": "是否返回分集附加详情(0/1),仅当 action 为 episodes 时有效",
"example": ""
},
{
"name": "book_id",
"type": "string",
"required": false,
"description": "短剧 ID(1-20 位数字字符串,务必按字符串传),仅当 action 为 detail、episodes、streams、video、video.info、video.prepare 时有效",
"example": ""
},
{
"name": "item_id",
"type": "string",
"required": false,
"description": "分集 ID(1-20 位数字字符串),仅当 action 为 streams、video、video.info、video.prepare、chapter.info 时有效",
"example": ""
},
{
"name": "stream_index",
"type": "integer",
"required": false,
"description": "清晰度下标(0-20,默认 0),仅当 action 为 video、video.prepare 时有效;就是 streams 返回的数组下标,不同下标各自解密并各自缓存",
"example": ""
},
{
"name": "quality",
"type": "integer",
"required": false,
"description": "stream_index 的别名(0-20),仅当 action 为 video 时有效,与 stream_index 共用一个缓存键",
"example": ""
},
{
"name": "tone_id",
"type": "integer",
"required": false,
"description": "音色 ID(默认 0),仅当 action 为 video、video.info、streams、video.prepare 时有效",
"example": ""
},
{
"name": "token",
"type": "string",
"required": false,
"description": "媒体令牌(48 位小写十六进制),仅当 action 为 media.file 时必填,由 video 返回的 play_url 自动带出",
"example": ""
}
]
{
"openapi": "3.1.1",
"info": {
"title": "番茄短剧",
"description": "想追短剧,搜剧名、看简介、拉出全部分集,再挑你要的清晰度点开 —— 播放地址拿来就能用,选集、换画质都是一次就能拿到。",
"version": "1.0.0"
},
"paths": {
"/v1/dj_fq": {
"get": {
"summary": "番茄短剧",
"description": "想追短剧,搜剧名、看简介、拉出全部分集,再挑你要的清晰度点开 —— 播放地址拿来就能用,选集、换画质都是一次就能拿到。",
"parameters": [
{
"name": "key",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "接口调用密钥"
},
{
"name": "action",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "操作类型,仅可为:search(搜索)、detail(详情)、episodes(分集/目录)、streams(清晰度列表,只读)、video(播放,解密后返回本地播放地址)、video.info(原始加密流信息)、video.prepare(解密生成本地 mp4)、chapter.info(分集信息)、media.file(输出本地视频,支持 Range)、capabilities(上游能力)"
},
{
"name": "keyword",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "搜索关键词,仅当 action 为 search 时必填;等价参数 query"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "分页偏移,仅当 action 为 search、episodes 时有效,从 0 开始"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "每页条数,仅当 action 为 search、episodes 时有效"
},
{
"name": "search_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "搜索会话 ID,仅当 action 为 search 时有效,用于翻页续搜"
},
{
"name": "with_details",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "是否返回分集附加详情(0/1),仅当 action 为 episodes 时有效"
},
{
"name": "book_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "短剧 ID(1-20 位数字字符串,务必按字符串传),仅当 action 为 detail、episodes、streams、video、video.info、video.prepare 时有效"
},
{
"name": "item_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "分集 ID(1-20 位数字字符串),仅当 action 为 streams、video、video.info、video.prepare、chapter.info 时有效"
},
{
"name": "stream_index",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "清晰度下标(0-20,默认 0),仅当 action 为 video、video.prepare 时有效;就是 streams 返回的数组下标,不同下标各自解密并各自缓存"
},
{
"name": "quality",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "stream_index 的别名(0-20),仅当 action 为 video 时有效,与 stream_index 共用一个缓存键"
},
{
"name": "tone_id",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "音色 ID(默认 0),仅当 action 为 video、video.info、streams、video.prepare 时有效"
},
{
"name": "token",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "媒体令牌(48 位小写十六进制),仅当 action 为 media.file 时必填,由 video 返回的 play_url 自动带出"
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
},
"post": {
"summary": "番茄短剧",
"description": "想追短剧,搜剧名、看简介、拉出全部分集,再挑你要的清晰度点开 —— 播放地址拿来就能用,选集、换画质都是一次就能拿到。",
"parameters": [
{
"name": "key",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "接口调用密钥"
},
{
"name": "action",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "操作类型,仅可为:search(搜索)、detail(详情)、episodes(分集/目录)、streams(清晰度列表,只读)、video(播放,解密后返回本地播放地址)、video.info(原始加密流信息)、video.prepare(解密生成本地 mp4)、chapter.info(分集信息)、media.file(输出本地视频,支持 Range)、capabilities(上游能力)"
},
{
"name": "keyword",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "搜索关键词,仅当 action 为 search 时必填;等价参数 query"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "分页偏移,仅当 action 为 search、episodes 时有效,从 0 开始"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "每页条数,仅当 action 为 search、episodes 时有效"
},
{
"name": "search_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "搜索会话 ID,仅当 action 为 search 时有效,用于翻页续搜"
},
{
"name": "with_details",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "是否返回分集附加详情(0/1),仅当 action 为 episodes 时有效"
},
{
"name": "book_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "短剧 ID(1-20 位数字字符串,务必按字符串传),仅当 action 为 detail、episodes、streams、video、video.info、video.prepare 时有效"
},
{
"name": "item_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "分集 ID(1-20 位数字字符串),仅当 action 为 streams、video、video.info、video.prepare、chapter.info 时有效"
},
{
"name": "stream_index",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "清晰度下标(0-20,默认 0),仅当 action 为 video、video.prepare 时有效;就是 streams 返回的数组下标,不同下标各自解密并各自缓存"
},
{
"name": "quality",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "stream_index 的别名(0-20),仅当 action 为 video 时有效,与 stream_index 共用一个缓存键"
},
{
"name": "tone_id",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "音色 ID(默认 0),仅当 action 为 video、video.info、streams、video.prepare 时有效"
},
{
"name": "token",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "媒体令牌(48 位小写十六进制),仅当 action 为 media.file 时必填,由 video 返回的 play_url 自动带出"
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
}
},
"servers": [
{
"url": "https://xiaoapi.cn",
"description": "当前访问入口(https)"
}
]
}
{
"ok": true,
"code": "OK",
"data": {
"token": "09c62bcf562242e0f9056618f06e65dc53d58bc7ee7fa865",
"expires_at": 1794325350,
"bytes": 14629399,
"sha256": "4e7c5219e7e58cec21e3ae3021d5d35d15aaeac062e772a3aa9fdd7e06910c8d",
"tracks": 2,
"samples": 13233,
"mime": "video/mp4",
"video_meta": {
"definition": "1080p",
"quality": "normal",
"vtype": "mp4",
"vwidth": 1080,
"vheight": 1920,
"bitrate": 597690,
"codec_type": "bytevc1",
"size": 14629399,
"file_id": "18b648431c7a47d6811d4f828f51c826",
"fps": 25,
"file_hash": "cb7acbecd97e26cb295caadc83f62d1e",
"real_bitrate": 597690,
"audio_channels": "2.0",
"audio_layout": "L R",
"encode_user_tag": "only_roi_vcube_improve_1",
"audio_sample_rate": "44100",
"float_fps": 25
},
"play_url": "dj_fq.php?action=media.file&token=09c62bcf562242e0f9056618f06e65dc53d58bc7ee7fa865",
"encrypted": false,
"runtime": "php_only",
"play_url_abs": "https://xiaoapi.cn/v1/dj_fq.php?action=media.file&token=09c62bcf562242e0f9056618f06e65dc53d58bc7ee7fa865",
"play_url_token": "09c62bcf562242e0f9056618f06e65dc53d58bc7ee7fa865"
},
"meta": {
"mode": "live_php_signed",
"independent_signing": true,
"signing_timestamp": 1794321724,
"timestamp_age_seconds": 24,
"local_digest_selector": 4,
"algorithm_family": "validated_branch",
"capture_signature": false,
"capture_protobuf": false,
"local_php_decryption": true,
"warning": "个别编码格式可能不受浏览器支持。"
}
}
暂无详细文档
暂无代码示例。管理员可在后台用 AI 生成或手动编写。
// 结果将在此处显示
生效日期:2026年7月22日
欢迎使用 xiaoapi.cn(以下简称"本平台")。在使用本平台提供的 API 服务(以下简称"本服务")前,请务必仔细阅读并充分理解本免责声明。您以任何方式调用、访问或使用本服务,即视为您已阅读、理解并同意接受本声明的全部内容。
本平台作为 API 技术服务的提供方,仅提供技术接口与数据分发服务。本声明的目的在于明确平台与用户之间的责任边界,督促用户合法、合规地使用本服务,防范违法违规行为的发生。
用户在使用本服务时,明确禁止从事以下行为:
在法律法规允许的最大范围内,本平台对以下情形不承担责任:
因用户违反本声明或相关法律法规,导致本平台及其关联方、合作方遭受任何损失(包括但不限于赔偿款、罚款、律师费、诉讼费等),用户同意向本平台及相关方承担全部赔偿责任。
本平台有权根据法律法规变化、业务调整或监管要求,随时修改本声明。修改后的声明将在本页面公布,自公布之日起生效。您继续使用本服务,即视为接受更新后的声明。
如您对本声明有任何疑问,或发现他人存在违规使用本服务的行为,欢迎通过本平台公示的联系方式与我们联系,我们将及时处理。