抖音视频/图文解析服务端源码分享
2026-03-11
杂乱的知识
type
Post
status
Published
date
Mar 11, 2026
slug
free-dy-api
summary
抖音视频解析后端服务源码分享
tags
工具
category
杂乱的知识
icon
password
- 这是一个“抖音解析的后端服务源码分享”,输入分享文案,输出作品资源 URL(不下载)。
- 核心流程:解析短链 → 提取 aweme_id → 调用抖音 Web API → 选择最高质量资源。
- Web API 来自 Web 端真实请求(非公开接口),需要 Cookie + ABogus 才能访问。
- 最高质量只依赖 Web API 质量字段(width/height/bitrate),并在响应里可证明。
1. 项目目标
- 输入:抖音分享文案(含短链)
- 输出:作品资源 URL(视频/音频/封面/头像/图文图片)
- 约束:不提供下载,仅返回 URL
2. 系统架构(分层设计)
API 层(FastAPI)
- 负责 HTTP 输入/输出与状态码
- 路由:
/v1/douyin/resolve、/v1/douyin/inspect
- 统一错误结构:
success/error/error_type
Core 层(douyin_core)
- 解析、网络请求、资源选择
- 统一异常体系:
DouyinError子类
- 核心数据用
@dataclass(slots=True)
3. 核心流程
3.1 Resolve(轻量解析)
目的:把分享文案转为
aweme_id流程:
- 从分享文本中提取第一个 URL
- 访问该 URL 并跟随跳转,得到最终落地页 URL
- 从落地 URL 提取
aweme_id
- 生成候选链接列表(用于排障/重试)
输出字段:
extracted_url/resolved_url/aweme_id/candidate_urls
3.2 Inspect(资源获取)
目的:在 resolve 基础上获取作品资源
流程:
- 调用 resolve 获取
aweme_id
- 调用 Web API 获取作品详情 JSON
- 解析资源(video/audio/image/cover/avatar)
- 选择“最高质量”资源
- 返回完整资源列表 + 质量信息
4. 抖音内部的Wwb API
✅ 使用的 Web API
抖音 Web 端内部接口:
如无法使用,大概率是抖音内部Web API地址发送变化.需要重新分析寻找.
✅ 请求关键要素
- Cookie(必须)
- 服务端固定读取
www.douyin.com_cookies.txt
- Cookie 失效后更新文件即可(无需重启容器)
- ABogus 参数(必须)
- 通过
f2.utils.abogus动态生成
- 必须与请求 UA/指纹一致
- 关键参数(示例)
aweme_id
device_platform=webapp
browser_*/screen_width/screen_height
version_code/version_name
说明:该接口不是公开 API,需要 Cookie + ABogus。
Cookie获取
可以在浏览器扩展中心搜素Get cookies.txt LOCALLY并安装该插件。安装完成后,打开抖音网页版的推荐页面并刷新一次页面,然后点击图中按钮,一键将 Cookie 下载到本地。下载完成后,将 Cookie 文件放到项目指定的目录中即可,文件名不要修改。

✅ 如何“拿到”这个 Web API(真实过程)
这不是公开 API,是通过浏览器网络请求分析拿到的:
- 打开抖音 Web 页面(PC 端)
- F12 打开开发者工具 → Network
- 找到请求
aweme/detail的接口
- 观察它的必需参数(
aweme_id、浏览器信息、abogus)
- 把这套请求结构搬到服务端实现
5. 最高质量判定
只使用 Web API 返回的质量字段,不做 URL 猜测。
质量字段来源:
width/height/bitrate响应包含:
selected_video_quality
max_video_quality
规则:
selected_video_quality == max_video_quality 即为“最高质量可证明”。6. 视频 vs 图文(note)
content_kind = video | note
- 图文作品通常没有视频资源(只返回图片/封面/头像)
- 视频作品返回视频/音频/封面/头像
7. 错误策略
统一错误响应:
常见错误类型:
missing_cookie_file
WebApiEmptyError
VideoQualityMissingError
8. 部署要点
- 容器端口:
1314
- 健康检查:
GET /healthz
9. 总结
该项目核心是:
- 解析分享文案 → aweme_id
- Cookie + ABogus 调用 Web API
- 仅使用 Web API 质量字段选择最高质量
- 输出完整资源 URL 供前端/调用方使用
附:源码分享
- 名称:douyinapi.zip
- 提取码:PgMM
Loading...
