Skip to content

Video API

视频解析和下载相关接口文档,支持多平台视频链接解析。

解析视频信息

解析视频链接,获取视频标题、分 P、清晰度等信息。

接口地址: POST /video/parse

请求参数:

参数名类型必填说明
urlstring视频链接

支持的链接格式:

  • 斗鱼: https://v.douyu.com/show/xxx
  • 虎牙: https://www.huya.com/video/play/1043151558.html
  • B 站视频: https://www.bilibili.com/video/BVxxx
  • B 站直播录像: https://live.bilibili.com/123456
  • 快手: https://www.kuaishou.com/playback/xxx

请求示例:

json
{
  "url": "https://www.bilibili.com/video/BV1xx411c7mD"
}

响应示例:

json
{
  "videoId": "BV1xx411c7mD",
  "platform": "bilibili",
  "title": "视频标题",
  "resolutions": [
    {
      "value": "highest",
      "label": "最高"
    },
    {
      "value": "80",
      "label": "1080P 高清"
    }
  ],
  "parts": [
    {
      "name": "P1",
      "partId": "123456",
      "isEditing": false,
      "extra": {
        "bvid": "BV1xx411c7mD"
      }
    }
  ]
}

响应字段:

字段名类型说明
videoIdstring视频 ID
platformstring平台标识
titlestring视频标题
resolutionsarray可用清晰度列表
partsarray视频分 P 列表
parts[].namestring分 P 名称
parts[].partIdstring分 P ID
parts[].extraobject额外信息,不同平台内容不同

下载视频

下载指定的视频到本地。

接口地址: POST /video/download

请求参数:

参数名类型必填说明
idstring视频分 P ID
platformstring平台标识
savePathstring保存路径
filenamestring文件名
resolutionstring清晰度,默认 "highest"
danmuboolean是否下载弹幕(部分平台支持)
overrideboolean是否覆盖已存在的文件
onlyAudioboolean是否仅下载音频(仅 B 站视频支持)
extraobject额外参数,不同平台需要不同的 extra 字段

不同平台的 extra 字段:

斗鱼 (douyu)

json
{
  "decodeData": "...",
  "user_name": "主播名",
  "room_id": "房间号",
  "room_title": "直播间标题",
  "live_start_time": "2024-01-01T00:00:00.000Z",
  "video_start_time": "2024-01-01T00:00:00.000Z"
}

B 站视频 (bilibili)

json
{
  "bvid": "BV1xx411c7mD"
}

B 站直播录像 (bilibiliLive)

json
{
  "liveKey": "123456",
  "startTime": 1704067200,
  "endTime": 1704070800,
  "uid": 123456789
}

快手 (kuaishou)

json
{
  "url": "https://xxx.m3u8"
}

请求示例:

json
{
  "id": "123456",
  "platform": "bilibili",
  "savePath": "D:/videos",
  "filename": "test.mp4",
  "resolution": "80",
  "danmu": true,
  "override": false,
  "extra": {
    "bvid": "BV1xx411c7mD"
  }
}

响应: HTTP 200 表示下载任务已开始

视频订阅管理

管理视频订阅任务,自动检测并下载新视频。

解析订阅信息

解析视频链接以获取可订阅的信息。

接口地址: POST /video/sub/parse

请求参数:

参数名类型必填说明
urlstring视频链接

请求示例:

json
{
  "url": "https://www.bilibili.com/video/BV1xx411c7mD"
}

添加订阅

添加一个新的视频订阅。

接口地址: POST /video/sub/add

删除订阅

删除指定的视频订阅。

接口地址: POST /video/sub/remove

请求参数:

参数名类型必填说明
idstring订阅 ID

请求示例:

json
{
  "id": "sub_123"
}

更新订阅

更新订阅信息。

接口地址: POST /video/sub/update

检查订阅更新

检查指定订阅是否有新视频。

接口地址: POST /video/sub/check

请求参数:

参数名类型必填说明
idstring订阅 ID

请求示例:

json
{
  "id": "sub_123"
}

Released under the GPLv3 License.