从单条链接到整页归档:douyin-downloader 抖音批量下载怎么搞,5 个步骤讲透
【免费下载链接】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 是一个命令行抖音批量下载工具,无水印视频、图文、合集、原声音乐都能整批收进来,适合只会复制粘贴终端命令的新手。照着下面的顺序走,今晚你就能在./Downloaded/里看到第一个无水印文件。
适不适合装:10 秒自查一下
| 你关心的 | 实际情况 |
|---|---|
| 适合谁 | 想按博主主页整页存档的人;偶尔救急下 1 条无水印视频/图文的也够用 |
| 默认替你做了啥 | 自动挑无水印源并选最高码率档;SQLite 数据库加本地文件双重去重;5 线程、限速 2 请求/秒、失败重试 3 次 |
| 代价是什么 | 必须有一份有效的抖音 Cookie;单条接口目前会被风控拦截,被拦时靠浏览器兜底、需要你手动过验证 |
如果你只是偶尔存一条、又不想配环境,可以直接用基于同一套后端的 Douzy 桌面版,粘链接即可下载(下图为桌面端的抖音下载选项页,可选作品/喜欢/合集/音乐)。
环境怎么搭起来,先下一条试试
需要 Python 3.9+,Windows、macOS、Linux 都支持。先把代码和依赖装好:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt三行跑完、不再报ModuleNotFoundError,依赖就算齐了。接着装浏览器组件,Cookie 自动获取和风控兜底都依赖它:
pip install playwright python -m playwright install chromium然后复制一份配置模板,启动项目自带的取凭证脚本:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml脚本会弹出一个真实浏览器,你扫码登录抖音后回到终端按 Enter,Cookie 就被写进config.yml。成功的信号:配置里cookies段不再显示YOUR_xxx占位值。Cookie 本质上是浏览器发给抖音的登录票据,工具拿它冒充你向平台要数据。
最小验证:把config.yml里的link换成任意一条作品链接(短链也行),再运行主程序:
link: - https://www.douyin.com/video/xxxpython run.py -c config.yml收尾时看到汇总里"成功 1",且./Downloaded/下多出一个无水印 mp4,就说明整条链路通了。有一点先有预期:抖音接口风控会拦单条/合集/音乐这类请求,拦到后工具会自动打开浏览器让你手动过验证,别急着关窗口。
三种常见场景,各用哪条路
临时下 1~2 条:不碰配置文件
什么时候用:别人甩来一个链接,你只想存下来就走。-u参数直接在命令行追加链接,可重复传多条,v.douyin.com短链会自动解析成真实地址:
python run.py -u "https://v.douyin.com/xxx/" -c config.yml一个关键提醒:-u只会往配置里的链接后追加,不会替换掉link字段已有的内容,两条都会跑。
博主主页整页存档:最常用的姿势
什么时候用:给某个博主建长期档案。mode设为post,number.post写 0 表示不限条数:
link: - https://www.douyin.com/user/xxx mode: - post number: post: 0python run.py -c config.yml -t 2为什么把-t压到 2:主页作品动辄上百条,并发压低能让翻页更不容易触发风控;带宽宽裕的机器用默认 5 也无妨。关键提醒:config.example.yml模板里number.post默认写的是 1,不改的话整页任务只会下 1 条。
收藏夹一次收齐
什么时候用:把当前 Cookie 所属账号收藏的内容批量搬回本地。link固定填user/self这个特殊地址,mode用collect:
link: - https://www.douyin.com/user/self?showTab=favorite_collection mode: - collect关键提醒:collect/collectmix只能单独跑,和post、like混在同一份mode里会被直接报错拦下。
长期归档,哪些参数值得动
- 增量与去重:
database: true和increase.post: true默认都已开启。每条下过的作品记进dy_downloader.db,再跑任务自动跳过存量、只补新增。想强制重下某批作品,把increase.post改为false即可,无需清空数据库。 - 并发与节奏:
thread默认 5、rate_limit默认 2 请求/秒、retry_times默认 3 次指数退避。中断的文件会比对 Content-Length,坏文件自动清理后重下。 - 时间窗口:
start_time/end_time填YYYY-MM-DD,例如只留某月发布的作品,结束日期当天也算在内。 - 附带产物:
music、cover、avatar、json默认全false,因为全开会让文件和请求多出几倍;确认要原声时再把music改成true。 - 画质:
video_quality默认highest(最高转码档),改original会去探测上传原片、失败自动回退,也可以直接指定1080p这类分辨率。 - 归档结构:
folderstyle: true时目录长这样:
Downloaded/ └── 博主昵称/ └── post/ └── 2026-09-14_作品标题_作品ID/ └── 作品.mp4下载完成通知(Bark/Telegram/Webhook)默认关闭,需要推送时再去notifications段打开。
卡住了,先对号入座
问:提示登录态失效、要求登录?Cookie 有效期通常只有几天。重跑python -m tools.cookie_fetcher --config config.yml,扫码刷新即可。
问:主页只抓到 20 条左右就停了?风控拦住了 API 翻页。确认browser_fallback.enabled: true、headless: false,浏览器弹窗出现后手动完成验证,窗口先别关。
问:下载中断、速度突然掉下来?多半是网络波动或并发偏高。把thread降到 2~3,未完成的文件会按retry_times自动重试。
问:老作品为什么不会被重下?数据库加本地文件的双重去重在起作用。把increase.post设为false强制重下;只想要某一条时,删掉本地文件并清掉dy_downloader.db里对应记录。
问:目录里找不到 mp3 原声?music开关默认关着,配置里改成true再跑一次就有了。
Cookie 等同于你的登录凭证,只应留在本地配置里,带 Cookie 的config.yml别随手外发;下载下来的内容建议只做个人存档和研究,别用于二次商用或搬运。想进一步弄懂默认行为,先读 config/default_config.py 里每个开关的取值和注释,再顺着 core/ 目录看下载与翻页逻辑,基本就能覆盖后续所有调参问题。
【免费下载链接】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),仅供参考