Files
biliLive-tools/docs/api/task.md
renmu123 1dc04258a1 DanmakuFactory更新 (#283)
* 弹幕转换时不再复制到临时目录

* 添加顶部间距支持

* 底部间距支持

* 添加--force参数支持,不再需要手动删除文件

* update DanmakuFactory install script

* fix type
2026-01-12 21:59:26 +08:00

14 KiB

Task API

任务管理相关接口文档,用于管理视频处理任务。

任务列表

获取所有任务列表,支持按类型筛选。

接口地址: GET /task/

请求参数:

参数名 类型 必填 说明
type string 任务类型筛选,可选值: ffmpegdanmuupload

响应示例:

{
  "list": [
    {
      "taskId": "task_123",
      "type": "ffmpeg",
      "status": "running",
      "output": "D:/videos/output.mp4"
    }
  ],
  "runningTaskNum": 1
}

响应字段:

字段名 类型 说明
list array 任务列表
runningTaskNum number 运行中任务数量

查询任务详情

获取指定任务的详细信息。

接口地址: GET /task/:id

路径参数:

参数名 类型 必填 说明
id string 任务 ID

任务控制

暂停任务

暂停正在运行的任务。

接口地址: POST /task/:id/pause

路径参数:

参数名 类型 必填 说明
id string 任务 ID

恢复任务

恢复已暂停的任务。

接口地址: POST /task/:id/resume

路径参数:

参数名 类型 必填 说明
id string 任务 ID

终止任务

强制终止任务。

接口地址: POST /task/:id/kill

路径参数:

参数名 类型 必填 说明
id string 任务 ID

中断任务

中断任务执行。

接口地址: POST /task/:id/interrupt

路径参数:

参数名 类型 必填 说明
id string 任务 ID

重启任务

重新启动任务。

接口地址: POST /task/:id/restart

路径参数:

参数名 类型 必填 说明
id string 任务 ID

启动任务

启动待执行的任务。

接口地址: POST /task/:id/start

路径参数:

参数名 类型 必填 说明
id string 任务 ID

删除任务记录

删除任务记录(不删除文件)。

接口地址: POST /task/:id/removeRecord

路径参数:

参数名 类型 必填 说明
id string 任务 ID

删除任务文件

删除任务生成的文件。

接口地址: POST /task/:id/removeFile

路径参数:

参数名 类型 必填 说明
id string 任务 ID

限制条件:

  • 任务状态必须是 completederror
  • 任务类型必须是 ffmpeg
  • 文件必须存在

批量删除任务

批量删除多个任务记录。

接口地址: POST /task/removeBatch

请求参数:

参数名 类型 必填 说明
ids string[] 任务 ID 数组

请求示例:

{
  "ids": ["task_123", "task_456"]
}

视频处理

读取视频元数据

读取视频文件的元数据信息。

接口地址: POST /task/videoMeta

请求参数:

参数名 类型 必填 说明
file string 视频文件路径

请求示例:

{
  "file": "D:/videos/test.mp4"
}

检查视频合并兼容性

检查多个视频是否可以直接合并。

接口地址: POST /task/checkMergeVideos

请求参数:

参数名 类型 必填 说明
inputVideos string[] 视频文件路径数组

请求示例:

{
  "inputVideos": ["D:/videos/part1.mp4", "D:/videos/part2.mp4"]
}

合并视频

合并多个视频文件。

接口地址: POST /task/mergeVideo

请求参数:

参数名 类型 必填 说明
inputVideos string[] 视频文件路径数组
options object 合并选项

options 字段:

参数名 类型 必填 说明
output string 输出文件路径
saveOriginPath boolean 是否保存到原始路径
keepFirstVideoMeta boolean 是否保留第一个视频的元数据

请求示例:

{
  "inputVideos": ["D:/videos/part1.mp4", "D:/videos/part2.mp4"],
  "options": {
    "output": "D:/videos/merged.mp4",
    "saveOriginPath": false,
    "keepFirstVideoMeta": true
  }
}

响应示例:

{
  "taskId": "task_123"
}

视频转码

对视频进行转码处理。

接口地址: POST /task/transcode

请求参数:

参数名 类型 必填 说明
input string 输入文件路径
outputName string 输出文件名
ffmpegOptions object FFmpeg 选项
options object 转码选项

options 字段:

参数名 类型 必填 说明
override boolean 是否覆盖已存在的文件
removeOrigin boolean 是否删除原始文件
savePath string 保存路径(支持绝对路径和相对路径)
saveType 1 | 2 保存类型: 1-保存到原始文件夹, 2-保存到特定文件夹

请求示例:

{
  "input": "D:/videos/input.mp4",
  "outputName": "output.mp4",
  "ffmpegOptions": {
    "codec": "h264"
  },
  "options": {
    "saveType": 1,
    "override": false
  }
}

视频切片

对视频进行切片处理。

接口地址: POST /task/cut

请求参数:

参数名 类型 必填 说明
files object 文件信息
output string 输出路径
options object 切片选项
ffmpegOptions object FFmpeg 选项

请求示例:

{
  "files": {
    "videoPath": "D:/videos/input.mp4",
    "startTime": 0,
    "endTime": 60
  },
  "output": "D:/videos/output.mp4",
  "options": {},
  "ffmpegOptions": {}
}

字幕烧录

将字幕烧录到视频中。

接口地址: POST /task/burn

请求参数:

参数名 类型 必填 说明
files object 文件信息
output string 输出文件路径
options object 烧录选项

options 支持上传选项:

参数名 类型 必填 说明
uploadOptions object B 站上传选项

uploadOptions 字段:

参数名 类型 必填 说明
upload boolean 是否上传
uid number B 站用户 UID
aid number 稿件 ID(编辑稿件时使用)
config object 上传配置

请求示例:

{
  "files": {
    "videoPath": "D:/videos/input.mp4",
    "danmuPath": "D:/videos/danmu.ass"
  },
  "output": "D:/videos/output.mp4",
  "options": {
    "uploadOptions": {
      "upload": true,
      "uid": 123456789,
      "config": {}
    }
  }
}

FLV 修复

修复损坏的 FLV 文件。

接口地址: POST /task/flvRepair

请求参数:

参数名 类型 必填 说明
input string 输入文件路径
output string 输出文件路径
options object 修复选项

请求示例:

{
  "input": "D:/videos/broken.flv",
  "output": "D:/videos/repaired.flv",
  "options": {}
}

弹幕处理

XML 弹幕转 ASS

将 XML 格式的弹幕转换为 ASS 字幕文件。

接口地址: POST /task/convertXml2Ass

请求参数:

参数名 类型 必填 说明
input string 输入 XML 路径
output string 输出 ASS 路径
preset object 弹幕预设配置
options object 转换选项

options 字段:

参数名 类型 必填 说明
sync boolean 是否同步等待任务完成
removeOrigin boolean 是否删除原始文件(默认 false)

请求示例:

{
  "input": "D:/videos/danmu.xml",
  "output": "D:/videos/danmu.ass",
  "preset": {
    "resolution": [1920, 1080],
    "scrolltime": 8,
    "fontname": "Microsoft YaHei",
    "fontsize": 38
  },
  "options": {
    "sync": false,
    "removeOrigin": false
  }
}

响应示例:

{
  "taskId": "task_123",
  "output": "D:/videos/danmu.ass"
}

如果 synctrue,会等待任务完成后返回最终输出路径。

B 站上传相关

添加额外视频分 P

为 B 站上传任务添加额外的视频分 P。

接口地址: POST /task/addExtraVideoTask

请求参数:

参数名 类型 必填 说明
taskId string 任务 ID
filePath string 视频路径
partName string 分 P 名称

请求示例:

{
  "taskId": "task_123",
  "filePath": "D:/videos/part2.mp4",
  "partName": "第二集"
}

编辑视频分 P 名称

修改视频分 P 的名称。

接口地址: POST /task/editVideoPartName

请求参数:

参数名 类型 必填 说明
taskId string 任务 ID
partName string 新的分 P 名称

请求示例:

{
  "taskId": "task_123",
  "partName": "更新后的标题"
}

查询视频上传状态

查询 B 站视频的上传状态。

接口地址: POST /task/queryVideoStatus

请求参数:

参数名 类型 必填 说明
taskId string 任务 ID

请求示例:

{
  "taskId": "task_123"
}

虚拟录制

测试虚拟录制配置

测试虚拟录制配置是否正确。

接口地址: POST /task/testVirtualRecord

请求参数:

参数名 类型 必填 说明
config object 虚拟录制配置
folderPath string 文件夹路径
startTime number 开始时间(Unix 时间戳,秒)

config 字段(normal 模式):

参数名 类型 必填 说明
mode string 模式,值为 "normal"
roomId string 直播间 ID

config 字段(advance 模式):

参数名 类型 必填 说明
mode string 模式,值为 "advance"
roomIdRegex string 直播间 ID 正则表达式

请求示例:

{
  "config": {
    "mode": "normal",
    "roomId": "123456"
  },
  "folderPath": "D:/records",
  "startTime": 1704067200
}

执行虚拟录制

执行虚拟录制任务。

接口地址: POST /task/executeVirtualRecord

请求参数: 与测试接口相同

响应示例:

{
  "success": true,
  "message": "执行成功"
}

下载任务文件

获取任务生成的文件下载链接。

接口地址: GET /task/:id/download

路径参数:

参数名 类型 必填 说明
id string 任务 ID

限制条件:

  • 任务类型必须是 ffmpeg
  • 文件必须存在

响应: 返回文件 ID,可用于后续下载

错误处理

常见错误响应:

  • 任务不存在: 指定的任务 ID 不存在
  • 任务状态错误: 任务状态不允许执行该操作
  • 不支持的任务: 该任务类型不支持当前操作
  • 文件不存在: 任务输出文件不存在
  • file is required: 缺少必需的 file 参数
  • input and output are required: 缺少输入或输出参数
  • inputVideos length must be greater than 1: 合并视频数量不足
  • config is required: 缺少配置参数
  • invalid mode: 无效的模式

::: tip 提示 大部分任务是异步执行的,调用接口后会立即返回任务 ID,可以通过查询接口获取任务状态和进度。 :::