抖音批量下载上手指南:单条去水印、主页备份、直播录制,一份配置全跑通
【免费下载链接】douyin-downloaderA practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具,去水印,支持视频、图集、合集、音乐(原声)。项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader
抖音批量下载工具 douyin-downloader 是一个命令行程序:填入链接和一份 YAML 配置,视频、图集、合集、原声与直播内容都会自动归档到本地,默认取无水印源,内置失败重试、SQLite 去重和浏览器兜底,适合想长期备份自己或别人抖音内容的个人用户。
先想清楚你要存什么
想把关注博主的作品批量存下来,App 里没有导出入口,手动保存带水印还费劲;想录一整场直播,开录屏软件麻烦,还容易错过开场;想收集热搜数据,官方页面没有导出按钮,只能翻着用浏览器一条条抄。
douyin-downloader 做的事就是把"粘链接、填配置"这套流程变成自动归档,产出文件按目录分层、自动去重。先对照一下你要的东西:
| 你要存的东西 | link 里填什么 | 文件落在哪 |
|---|---|---|
| 单条视频 / 图文笔记 | /video/{aweme_id}或/note/{note_id} | 对应作者目录 |
| 某个博主的主页 | /user/{sec_uid} | Downloaded/{作者}/post/等 |
| 一场直播 | live.douyin.com/{room_id} | Downloaded/{作者}/live/ |
| 热搜、关键词数据 | 不用链接,直接传命令行参数 | hot_board/或search/下的 JSONL |
桌面版 Douzy 基于同一套后端、目前内测中,如果你更习惯图形界面,可以看看这个链接工作台:
四步拿到第一个无水印文件
第 1 步,拉代码装依赖,需要 Python 3.8+,macOS / Linux / Windows 都能跑:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt pip install playwright python -m playwright install chromiumCookie 自动抓取:最容易卡的一步
抖音内容大部分只对登录用户开放,登录态不配好,请求基本都会失败。项目自带浏览器脚本,扫码之后直接写进配置文件,不用手动复制:
python -m tools.cookie_fetcher --config config.yml扫码完成后回到终端按 Enter,cookie 会自动写进配置。浏览器弹出来卡住不动,先检查上一步 chromium 是否装成功。
第 3 步,拷一份带中文注释的配置模板,把link换成你要存的内容:
cp config.example.yml config.yml第 4 步,启动下载:
python run.py -c config.yml成功的标志:终端打印完成统计,Downloaded/下出现以作者命名的目录,里面就是无水印 mp4。命令行还能临时覆盖配置,比如-u追加链接、-t调并发、-p指定目录,不用改文件。
场景一:抖音主页备份,只动三行
你要什么:把某个博主的作品和合集一次抓全,下次运行不重复下。
改哪里:主页地址填进link,mode列出要抓的内容类型,number给每种类型设上限(0 表示不限):
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post - mix number: post: 50 # 只抓 50 条 mix: 20落在哪:Downloaded/{作者}/post/与.../mix/,每条作品一个"日期_标题_作品ID"子文件夹。post、like、mix、music 四种模式可以混着一次跑完,同一作品不会跨模式重复下载;collect/collectmix(当前登录账号的收藏夹)必须单独使用,不能与上面四种混写。
场景二:抖音直播录制,配置只改两处
你要什么:不开录屏软件录下整场直播。
改哪里:link换成直播间地址,再在live下加一行max_duration_seconds: 3600(填 0 就录到主播下播)。
落在哪:Downloaded/{作者}/live/下,一个 FLV 加一份房间元数据 JSON。主播下播、录满时长或你按 Ctrl+C,已录下的字节都会保留。注意官方标注该接口为 experimental,且 HLS 源只保存 playlist 文件(需要 ffmpeg 后处理),重要场次建议人工再备一份。
场景三:只导数据不落盘
你要什么:收集热搜或关键词结果做二次筛选,不要媒体文件。
改哪里:两条命令即可,不用配置文件。python run.py --hot-board 30 -p ./Downloaded在Downloaded/hot_board/生成一个 JSONL;python run.py --search "猫咪" --search-max 100 -p ./Downloaded落在Downloaded/search/,不传--search-max默认拉 50 条。JSONL 每行一条记录,pandas 或 jq 都能直接处理。
配置分三层看:必填三项、常用调参、进阶开关
必填三项:link、path、cookies,缺一个都跑不起来。
常用调参,按目的改:
- 想抓主页更多类型的内容 →
mode里写哪几类(post / like / mix / music); - 想限制每类数量 →
number,0 就是全部; - 想只抓某段时间 →
start_time/end_time,格式YYYY-MM-DD,可以分段多跑几次; - 想顺带存原声、封面、头像、元数据 → 打开
music/cover/avatar/json; - 想挑原画 →
video_quality: original,每条作品多一次探测请求,探测失败退回最高转码档; - 想调并发 →
thread,默认 5,网络好可以试 8。
进阶开关,用到才改:
| 你想做到什么 | 改哪个开关 |
|---|---|
| 下次运行跳过已下载的内容 | database: true,需要时配database_path |
| 只按本地已有文件跳过 | increase.post等对应各模式的项 |
| 翻页被风控限制时手动过验证码 | browser_fallback.enabled: true,且保持headless: false |
| 每条作品顺带抓评论 | comments.enabled: true,旁边生成*_comments.json |
| 长任务跑完手机收到提醒 | notifications.enabled: true,可选 bark / telegram / webhook |
| 视频内容转写成文字 | transcript.enabled: true,图文作品不生效 |
| 进度刷屏太吵 | progress.quiet_logs: true |
带完整注释的模板见 config.example.yml,与上面一一对应。
长任务怎么做到不中断、不重复
- 如果不想硬盘堆重复文件,开了
database后,每条作品下载前会先查库、再查本地文件,两者都确认"已经有了"才跳过。记住:只删库不清文件不会重下,只删文件不清库反而会重下——动手清理前想清楚这条规则。 - 如果担心网络抖动留下缺口,请求失败会自动按 1s、2s、5s 的间隔重试,最多
retry_times次(默认 3);下载过程还会和 Content-Length 比对,不完整的文件自动清掉重下,所以日志里偶尔出现重试是正常现象。 - 如果想提速度,
thread从 5 起步,稳定跑一阵再往 8 提。一上来拉满容易触发风控,反而更慢。
五个高频坑,直接给答案
主页只抓到二十条左右。风控拦了翻页。把browser_fallback的 enabled 改为 true、headless 改为 false,弹窗里手动过完验证再关窗口;或者用start_time/end_time分段多跑几次。
突然大面积 403、什么都下不动。先重跑 cookie_fetcher 那条命令重新扫码。另外注意:2026 年 8、9 月起抖音风控升级,CLI 直连单个视频 / 图文、合集、音乐以及点赞 / 收藏接口受限,主页作品翻页也依赖浏览器兜底;仍走不通时改用桌面版 Douzy。
想重新下载某条被跳过的作品。把对应本地文件夹(文件夹名含作品 ID)和数据库记录一起删掉再运行,库记录用一条sqlite3命令即可,详见 README.zh-CN.md 的"重新下载"一节。
进度刷屏太吵。progress.quiet_logs: true保持静默;排查问题时临时加-v或--show-warnings。
转写文件没生成。转写只对视频作品生效,图文不会生成;再检查密钥是否配好、response_formats里是否含 txt。
开始之前,四个建议
- 先用一条单视频链接验证登录态和网络,再上主页批量;
- 测试阶段把
number.post设成 1~5,跑通流程后再放开到 0; - 测试和日常任务各用一份配置,别共用同一个 yml;
- 把 Cookie 失效当周期性维护,过期就跑一次抓取脚本;挂长任务时加上
notifications,跑完手机直接收到结果。
本项目仅供技术学习与个人数据管理使用,请在合法合规的前提下使用,尊重内容版权与创作者权益。
【免费下载链接】douyin-downloaderA practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具,去水印,支持视频、图集、合集、音乐(原声)。项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考