返回源列表
客户端先请求入口地址。地址没有路径时请求 /v1/sources;有路径时原样请求该地址。
Free Player / 开发者 / 源开发
源可以是线上 HTTP 服务,也可以是从云端下载的本地 JS 包。前者用任意语言实现 SourceProtocol v1;后者是单文件 JS,在客户端内置 QuickJS 中执行,不依赖任何外部环境。
客户端先请求入口地址。地址没有路径时请求 /v1/sources;有路径时原样请求该地址。
在源列表里给出 id、名称、能力和版本。页面、筛选和登录方式都由这份清单决定。
至少实现信息流、搜索、详情、选集和播放。其余能力可选,未实现时返回 50100。
所有响应使用统一信封。业务错误也返回 HTTP 200,错误码放在 code 里;只有上游超时才使用 HTTP 504。
{
"code": 0,
"message": "ok",
"data": {
"sources": [
{
"id": "demo",
"name": "示例源",
"protocol": "1",
"version": "1.0.0",
"capabilities": ["feed", "search", "detail", "episodes", "play"]
}
]
},
"trace_id": "c4d42cce1a477931"
}
示例数据不对应任何真实上游。不要内置账号、Cookie 或密钥,也不要把上游凭据下发给客户端。
下载示例网关,准备一个 MP4,然后启动:
python python_gateway_example.py
# 默认监听 http://127.0.0.1:8790
# 源 ID 为 demo
# 在客户端添加这个地址:
http://127.0.0.1:8790
用自检脚本检查全部端点:
python protocol_check.py --base http://127.0.0.1:8790
客户端会带上 X-Client-Id、X-Source-Protocol 和页面白名单;源可以校验,也可以忽略。
GET /v1/sources
源列表与源清单
必需
GET /v1/{sid}/ui
菜单、首页标签、页面能力
必需
GET /v1/{sid}/feed
首页信息流
必需
GET /v1/{sid}/search
搜索
必需
GET /v1/{sid}/detail/{id}
条目详情
必需
GET /v1/{sid}/episodes/{id}
选集
必需
POST /v1/{sid}/play
播放计划与媒体地址
必需
GET /v1/{sid}/rank
榜单;未实现返回 50100
可选
GET /v1/{sid}/category
分类筛选;未实现返回 50100
可选
GET /v1/{sid}/comments
评论;未实现返回 50100
可选