API 文档中心
抖音视频/图集采集与管理平台 - 接口参考手册
GET
POST
无需认证
需要密钥
GET
随机链接接口
/api/random_link
接口地址
GET
/api/random_link?media=videos&name=软妹&format=json
请求参数
| 参数名 | 类型 | 必填 | 说明 | 可选值 |
|---|---|---|---|---|
| media | string | 否 | 媒体类型,默认为视频 | 视频 / videos / 图集 / photo |
| name | string | 否 | 指定采集名称,从该名称下随机获取 | 查看名单:/api/statistics?list_type=video 或 album |
| format | string | 否 | 输出格式,默认为 json | json / text / redirect / jsonp |
| callback | string | 否 | JSONP 格式所需的回调函数名 | 自定义函数名 |
使用示例
JSON 格式(默认)
curl "/api/random_link"
指定图集类型
curl "/api/random_link?media=photo"
纯文本格式
curl "/api/random_link?format=text"
302 重定向
curl -L "/api/random_link?format=redirect"
JSONP 格式
<script>
function handleResponse(data) {
console.log('Received:', data);
}
</script>
<script src="/api/random_link?format=jsonp&callback=handleResponse"></script>
响应格式
JSON 响应
{
"code": 200,
"data": {
"url": "https://v.douyin.com/ABC123/",
"title": "视频标题",
"author": "作者名称"
},
"message": "获取成功"
}
错误响应
// 没有可用数据
{
"code": 404,
"message": "没有找到可用的链接"
}
// 无效的格式参数
{
"code": 400,
"message": "不支持的输出格式"
}
注意事项
- 无需认证即可调用,支持四种输出格式
format=text直接返回链接地址纯文本,适合直接嵌入format=redirect返回 302 重定向,可直接用于 img/video 标签的 srcformat=jsonp需配合callback参数使用,支持跨域调用
GET/POST
数据采集接口
/api/process_douyin
需要密钥
接口地址
GET
/api/process_douyin?media_type=视频&type=主页&url=https://v.douyin.com/xxx/&name=采集名称&key=your_api_key
POST
/api/process_douyin
请求参数
| 参数名 | 类型 | 必填 | 说明 | 可选值 |
|---|---|---|---|---|
| key | string | 是 | API密钥(从环境变量配置获取) | - |
| media_type | string | 是 | 媒体资源类型 | 视频 / 图集 |
| type | string | 否 | 采集类型,默认为主页 | 主页 / 喜欢 |
| url | string | 是 | 抖音用户主页 URL | - |
| name | string | 是 | 采集任务名称(用于标识) | - |
使用示例
GET 请求
curl "/api/process_douyin?media_type=视频&type=主页&url=https://v.douyin.com/ABC123/&name=my_collection&key=your_api_key"
POST 请求
curl -X POST "/api/process_douyin" \
-H "Content-Type: application/json" \
-d '{
"key": "your_api_key",
"media_type": "图集",
"type": "喜欢",
"url": "https://v.douyin.com/DEF456/",
"name": "favorite_collection"
}'
响应格式
成功响应
{
"code": 200,
"message": "采集完成",
"data": {
"name": "my_collection",
"media_type": "视频",
"user_type": "主页",
"count": 85,
"file_path": "data/视频/主页/my_collection.txt"
}
}
错误响应
// 缺少必要参数
{
"code": 400,
"message": "缺少必要参数: media_type/url/name"
}
// 无效的 media_type
{
"code": 400,
"message": "media_type 参数必须是 '视频' 或 '图集'"
}
// URL 格式不正确
{
"code": 400,
"message": "请提供有效的抖音用户URL"
}
// API密钥无效或缺失
{
"code": 401,
"error": "API密钥无效或缺失"
}
注意事项
- GET 和 POST 两种方式均支持,需要 API 密钥认证
- API 密钥通过环境变量
API_KEY配置,请联系管理员获取 - 采集任务为同步执行,接口会等待采集完成后才返回响应
- 采集图集需要抖音高级权限,请确保 API 服务已配置正确权限
- 单个采集任务最大支持 10000 条资源采集
- 相同名称的采集任务会自动覆盖历史记录
- 采集结果文件保存在 data 目录下的结构化目录中
GET
统计接口
/api/statistics
接口地址
GET
/api/statistics
请求参数
| 参数名 | 类型 | 必填 | 说明 | 可选值 |
|---|---|---|---|---|
| name | string | 否 | 指定用户名称,返回该用户的详细信息 | - |
| list_type | string | 否 | 指定返回的用户列表类型 | video(视频)/ album(图集) |
使用示例
获取完整统计数据
curl "/api/statistics"
获取指定用户信息
curl "/api/statistics?name=软妹"
获取视频用户列表
curl "/api/statistics?list_type=video"
获取图集用户列表
curl "/api/statistics?list_type=album"
响应格式
完整统计数据响应
{
"视频": {
"statistics": {
"videos": 1234,
"albums": 0,
"images": 0
},
"category_count": {
"主页": 50,
"喜欢": 30
}
},
"图集": {
"statistics": {
"videos": 0,
"albums": 500,
"images": 2000
},
"category_count": {
"主页": 20,
"喜欢": 10
}
},
"random_api_usage": {
"total_calls": 5000,
"daily_calls": 120,
"last_30_days": 3000
}
}
用户信息响应
{
"code": 200,
"message": "用户信息获取成功",
"data": {
"name": "软妹",
"media_type": "视频",
"user_type": "主页",
"count": 100,
"last_update": "2025-01-15T10:30:45"
}
}
用户列表响应
{
"code": 200,
"media_type": "视频",
"user_types": "软妹 硬妹 萌妹 御姐 萝莉\n正太 型男 大叔 鲜肉",
"oldest_updates": [
{
"name": "软妹",
"last_update": "2025-01-01T10:00:00"
},
{
"name": "硬妹",
"last_update": "2025-01-02T10:00:00"
}
],
"timestamp": "2025-01-15T10:30:45.123456"
}
错误响应
// 用户不存在
{
"code": 404,
"message": "用户不存在"
}
注意事项
- 无需认证即可调用
- 当提供
name参数时,如果找到多个同名用户,会返回用户列表 - 当提供
list_type参数时,会返回对应类型的用户列表,并包含更新时间最久的前 10 位用户 - 默认情况下(无参数),返回完整的统计数据,包括视频、图集的统计信息和 API 调用统计
GET
更新采集数据接口
/api/update
认证方式
需要API密钥
通过
key 参数传递密钥
接口地址
GET
/api/update?name=软妹&key=your_api_key
请求参数
| 参数名 | 类型 | 必填 | 说明 | 可选值 |
|---|---|---|---|---|
| name | string | 是 | 指定要更新的用户名称 | - |
| key | string | 是 | API 访问密钥 | - |
使用示例
curl "/api/update?name=软妹&key=your_api_key"
响应格式
单个用户更新成功
{
"code": 200,
"message": "成功触发重新采集",
"user_info": {
"name": "软妹",
"media_type": "视频",
"user_type": "主页"
}
}
多个同名用户更新成功
{
"code": 200,
"message": "成功触发 2 个用户的重新采集",
"updated_count": 2,
"total_users": 2,
"errors": []
}
错误响应
// 缺少参数
{
"code": 400,
"message": "缺少必要参数: name"
}
// 无效的 API 密钥
{
"code": 401,
"message": "无效的API密钥"
}
// 用户不存在
{
"code": 404,
"message": "用户不存在"
}
// 更新失败
{
"code": 500,
"message": "更新失败: 错误信息"
}
注意事项
- 该接口需要 API 密钥认证,请妥善保管密钥
- 会根据
name参数获取用户信息并触发重新采集 - 如果视频和图集中都有同名用户,会为所有匹配的用户触发重新采集
- 重新采集过程在后台执行,接口会立即返回结果,不会等待采集完成