抖音
元数据走 TikHub 两步,视频走下载狗。
脚本
douyin.py就是下面这套;链接里已经有作品 ID 就省掉换 ID 那一步- 一条 0.002 美元加 0.005 元
- 下载狗解析不了时,视频退回 TikHub 播放地址里最大的一档,
warnings里会写分辨率 - 传作者主页就翻完他发的全部,见作者主页;底层是下面的主页翻页
- 文件夹格式、共用参数和续跑见解析分享链接
底层:TikHub 拿正文、作者、点赞收藏
照 TikHub 官方文档的路径调,只把 https://api.tikhub.io 换成 https://tikhub-proxy.liuhetian.work:
# 1. 分享链接换作品 ID;链接里已经有 /video/<数字> 就直接截出来,跳过这步
curl -sS -m 60 -G https://tikhub-proxy.liuhetian.work/api/v1/douyin/web/get_aweme_id \
-H "Authorization: Bearer $MY_API_KEY" --data-urlencode "url=<分享链接>"
# 2. 取作品数据
curl -sS -m 60 -G https://tikhub-proxy.liuhetian.work/api/v1/douyin/app/v3/fetch_one_video_v3 \
-H "Authorization: Bearer $MY_API_KEY" --data-urlencode "aweme_id=<作品 ID>"
- 第 1 步:返回的
data就是作品 ID - 第 2 步:看
data.aweme_detail。desc是正文,话题也在里面,单独的话题在text_extra[].hashtag_name;author.nickname是作者;statistics里的digg_count、comment_count、collect_count、share_count是赞、评、藏、转,播放数抖音不公开,是 0;create_time是秒级时间戳;duration是毫秒;video.origin_cover.url_list[0]是封面 - 两步各 0.001 美元
底层:作者主页翻页
curl -sS -m 60 -G https://tikhub-proxy.liuhetian.work/api/v1/douyin/app/v3/fetch_user_post_videos \
-H "Authorization: Bearer $MY_API_KEY" \
--data-urlencode "sec_user_id=<sec_uid>" -d max_cursor=0 -d count=20
sec_uid:主页链接douyin.com/user/后面那串,MS4wLjABAAAA开头;只有短链时,跟一次跳转,落到iesdouyin.com/share/user/<sec_uid>。作品数据的author.sec_uid里也有- 翻页:第一页
max_cursor=0,以后传上一页返回的data.max_cursor,直到data.has_more是 0 - 作品在
data.aweme_list[]:每条和上面aweme_detail的字段一样,正文和单条取的完全一致,所以翻完列表就够了。is_top为 1 的是置顶,排在第一页最前面,所以第一页会多出几条 - 每页 0.001 美元:2026-10-17 一个 165 条作品的作者,9 页翻完
- 文档说普通版有时看不到最新作品,可以加
channel=lite改用极速版;没碰到过
底层:视频
- 默认走下载狗:给的是原画,同一条 45 秒的视频是 2160×2880 的 HEVC,4.7 MB;直链一小时左右过期,解析完马上下
- 下载狗解析不了时:从 TikHub 已经返回的播放地址里挑。地址在
video的play_addr、play_addr_h264、play_addr_265和bit_rate[].play_addr里,各档每次调用都不一样:同一条视频,早上最高 1080×1440,下午最高 720×960,按宽高挑最大的 - 要 TikHub 的原画:另调
/api/v1/douyin/app/v3/fetch_video_high_quality_play_url?aweme_id=<作品 ID>®ion=CN,0.005 美元一次,给的是一百多 MB 的 H.264,比下载狗的大二十多倍 - 图文作品:图在
aweme_detail.images[],width、height是原尺寸。url_list里同一张图有几个地址,前几个是 HEIC,浏览器大多显示不了,扩展名是.jpeg的那个才是同尺寸的 JPEG,脚本取的是它;download_url_list是带作者水印的