给制作工具的接口
同一台机器上的剪辑或编排服务可以调用这些 JSON 接口,把公开素材先导入本地,再用媒体 URL 取文件。媒体 URL 本身就是访问凭证,不要当成可转发的公开地址。
解析
curl -s -X POST http://127.0.0.1:8741/api/v1/imports/resolve \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $API_TOKEN" \
-d '{"url":"https://www.bilibili.com/video/BV1xxxxxxxxxx"}'
开发环境没有设置 API_TOKEN 时,可以不带 Authorization。返回标题、作者、时长、封面路径和真正可保存的格式。封面和成片都是 /api/v1/media/{token}。
创建导入任务
curl -s -X POST http://127.0.0.1:8741/api/v1/imports \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $API_TOKEN" \
-d '{"url":"https://www.bilibili.com/video/BV1xxxxxxxxxx","format_id":"FORMAT_ID"}'
响应状态码 202。记下 id,轮询状态:
curl -s http://127.0.0.1:8741/api/v1/imports/IMPORT_ID \
-H "Authorization: Bearer $API_TOKEN"
status 为 succeeded 后,media[].url 可以直接下载:
curl -L -o clip.mp4 \
http://127.0.0.1:8741/api/v1/media/MEDIA_TOKEN?download=1
错误码
blocked_host 主机不在允许列表。private_address 解析到私网或保留地址。unsupported_extractor 没有可用 extractor,或链接形状不受支持。快手和视频号固定走这个错误。restricted 付费、DRM、私密、直播或地区限制。cookies_required extractor 要求登录或 cookies,默认不提供。too_large、too_long、quota_exceeded、timeout 是限额。
交互式文档在 /docs,机器可读的 OpenAPI 在 /openapi.json。