快捷操作
平台分布
调用趋势
最近调用
提交拉取
一条链接一个任务。视频号分到所有可用账号,其他平台找绑定账号,队列更短的优先。
不勾选则只采互动和评论,不保存视频和封面。接口同样用 download:true 下载,false 不下载,不传则下载。
任务列表
一行一条任务。点右侧「详情」查看点赞、评论、收藏、转发和下载文件。
任务队列
一条链接一个任务。不同账号并行,同一账号串行。每个账号下面只列出它自己的任务。
热度搜索池
按主题定时搜索。视频号没有公开搜索页,请改用作品链接做定时关注。
定时关注
到点再拉一遍,记录点赞、评论、收藏、转发相对上次的变化。最少 15 分钟。
对接通道
在下面放入对接方 Token。每次调用都放进请求头 Authorization: Bearer,不使用右上角的管理员密钥。错误形如 {"error":{"code":"UNAUTHORIZED","message":"..."}}。
Authorization: Bearer <对接方 Token>
状态说明
对接时按这些状态分支。登录是否成功只看确认接口的 authorized。
登录取图 status
POST / GET /api/open/v1/accounts/{accountId}/login
| status | 含义 | 下一步 |
|---|---|---|
pending | 正在打开登录页,或等着扫码。image 可能还是空的 | 约 2 秒后用 GET 再取一次图 |
needs_code | 扫码后要短信验证码。needsCode 同时为 true,image 是验证码那一屏 | POST .../login/code,text 为 4 到 8 位数字 |
success | 这次扫码会话已经登录 | 再调确认接口,以 authorized 为准 |
expired | 二维码或短信验证码过期 | POST login,reset 设为 true,重新取图 |
failed | 登录页没打开 | 看 hint,稍后重试 |
确认授权
GET .../login/confirm。authorized 为 true 时 status 一定是 success。
| authorized | status | 含义 |
|---|---|---|
| false | unauthorized | 还没有登录记录 |
| false | pending | 二维码还在,人还没扫完 |
| false | needs_code | 卡在短信验证码,先去提交验证码 |
| false | expired | 码过期了,还没登录上 |
| false | failed | 登录过程失败 |
| true | success | 这个平台已经授权,可以拉该平台的作品 |
任务 status
| 字段 | 取值 | 含义 |
|---|---|---|
| status | pending | 已入队,还没开始 |
| status | running | 正在拉 |
| status | succeeded | 拉完,看 results 和 files |
| status | failed | 失败,看 error |
| found | false | 任务号不存在,或不属于这个 Token。这不是任务状态 |
错误 code
| code | 常见原因 |
|---|---|
UNAUTHORIZED | 没带 Authorization: Bearer,或 Token 无效 |
FORBIDDEN | 用了管理员密钥,或账号属于别的 Token |
INVALID_PARAM | 链接、平台、验证码位数不对,或这个 Token 没有能用的账号 |
NOT_FOUND | 账号不存在,或还没发起登录 |
STATE_CONFLICT | 这个账号的浏览器正被占用 |
1. 增加账号
POST /api/open/v1/accounts。新建的账号只属于当前 Token,其他 Token 调不到。platform 留空表示全平台都能调度。查看已有账号用 GET 同一路径。
入参
{
"name": "抖音号-1",
"platform": "douyin"
}
出参
{
"accountId": "a1b2c3d4e5f6",
"name": "抖音号-1",
"platform": "douyin",
"ownerTokenId": "当前 Token 的 id",
"enabled": true,
"authorized": { "douyin": false, "weixin": false, "xiaohongshu": false }
}
GET 同一路径返回 {"accounts":[ 同上 ]}。请求头同样是 Bearer。
本次返回
还没调用
2. 登录授权
创建账号后调用。POST /api/open/v1/accounts/{accountId}/login 打开登录页,响应里的 image 是给调用方展示的图片(data URL)。二维码要几秒才出来,用 GET 同一路径继续取图。这个接口只负责出图,不代表已经登录。
入参
Authorization: Bearer <对接方 Token>
POST /api/open/v1/accounts/{accountId}/login
{ "platform": "douyin", "reset": false }
GET /api/open/v1/accounts/{accountId}/login?platform=douyin
POST /api/open/v1/accounts/{accountId}/login/code
{ "platform": "douyin", "text": "123456" }
status 变成 needs_code 时,把短信验证码交给 POST /api/open/v1/accounts/{accountId}/login/code。只要 4 到 8 位数字。
出参
{
"accountId": "a1b2c3d4e5f6",
"platform": "douyin",
"status": "needs_code",
"image": "data:image/png;base64,...",
"hint": "把短信验证码填到下面,再点填入并验证。",
"needsCode": true
}
还没发起登录
本次返回
还没调用
3. 确认授权
出图之后单独调用。GET /api/open/v1/accounts/{accountId}/login/confirm?platform=douyin。authorized 为 true 才是这个平台已经登录。扫码还没完成时是 pending,二维码过期是 expired。
入参
Authorization: Bearer <对接方 Token>
GET /api/open/v1/accounts/{accountId}/login/confirm?platform=douyin
出参
{
"accountId": "a1b2c3d4e5f6",
"platform": "douyin",
"authorized": true,
"status": "success",
"nickname": "昵称",
"handle": null,
"authorizedAt": "2026-10-12T12:00:00+00:00",
"expiresAt": null
}
本次返回
还没调用
4. 提交任务
POST /api/open/v1/tasks。马上返回,不等采集结束。10 条链接就是 10 个任务号,顺序和 urls 一致。可以粘贴分享文案,服务会抽出里面的链接,一行一条。download 为 false 时不保存视频和封面。
入参
{
"urls": [
"https://www.douyin.com/video/111",
"https://www.douyin.com/video/222"
],
"download": true
}
出参
{
"taskIds": [
"任务号1",
"任务号2"
]
}
本次返回
还没调用
5. 查询状态
POST /api/open/v1/tasks/query。按传入顺序返回。别人的任务号和查不到的任务号只回 found: false,不带结果。状态只有 pending、running、succeeded、failed。
入参
{
"taskIds": [
"任务号1",
"任务号2"
]
}
出参
{
"tasks": [
{
"taskId": "任务号1",
"found": true,
"status": "succeeded",
"urls": ["https://www.douyin.com/video/111"],
"accountId": "a1b2c3d4e5f6",
"progress": "完成",
"results": [],
"error": null,
"files": []
},
{ "taskId": "不存在的号", "found": false }
]
}
本次返回
还没调用
调用日志
哪个 Token、什么时间、用了哪个账号、拉了什么。
运行日志
服务没有控制台窗口。这里看扫码、浏览器占用,以及安装后写出的日志文件。
当前没有浏览器占用。
还没有日志。