抖音视频/图文解析服务端源码分享

抖音视频/图文解析服务端源码分享

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
流程:
  1. 从分享文本中提取第一个 URL
  1. 访问该 URL 并跟随跳转,得到最终落地页 URL
  1. 从落地 URL 提取 aweme_id
  1. 生成候选链接列表(用于排障/重试)
输出字段:
  • extracted_url / resolved_url / aweme_id / candidate_urls

3.2 Inspect(资源获取)

目的:在 resolve 基础上获取作品资源
流程:
  1. 调用 resolve 获取 aweme_id
  1. 调用 Web API 获取作品详情 JSON
  1. 解析资源(video/audio/image/cover/avatar)
  1. 选择“最高质量”资源
  1. 返回完整资源列表 + 质量信息

4. 抖音内部的Wwb API

✅ 使用的 Web API

抖音 Web 端内部接口:
如无法使用,大概率是抖音内部Web API地址发送变化.需要重新分析寻找.

✅ 请求关键要素

  1. Cookie(必须)
  • 服务端固定读取 www.douyin.com_cookies.txt
  • Cookie 失效后更新文件即可(无需重启容器)
  1. ABogus 参数(必须)
  • 通过 f2.utils.abogus 动态生成
  • 必须与请求 UA/指纹一致
  1. 关键参数(示例)
  • aweme_id
  • device_platform=webapp
  • browser_* / screen_width / screen_height
  • version_code / version_name
说明:该接口不是公开 API,需要 Cookie + ABogus。

Cookie获取

可以在浏览器扩展中心搜素Get cookies.txt LOCALLY并安装该插件。安装完成后,打开抖音网页版的推荐页面并刷新一次页面,然后点击图中按钮,一键将 Cookie 下载到本地。下载完成后,将 Cookie 文件放到项目指定的目录中即可,文件名不要修改
notion image

✅ 如何“拿到”这个 Web API(真实过程)

这不是公开 API,是通过浏览器网络请求分析拿到的:
  1. 打开抖音 Web 页面(PC 端)
  1. F12 打开开发者工具 → Network
  1. 找到请求 aweme/detail 的接口
  1. 观察它的必需参数(aweme_id、浏览器信息、abogus
  1. 把这套请求结构搬到服务端实现

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
推荐云服务

雨云 - 云服务器首选

稳定 · 高速 · 性价比超高

使用优惠码立享折扣,开启你的云端之旅~

一元试用秒级开通24h在线客服

优惠码

zqf
立即访问
Loading...
灵心小窝

灵心小窝

这里不是一个喧闹的地方,只是用来存放一些还不想遗忘的东西。

声明 © 2026 早清风
加载中...