抖音无水印批量下载:douyin-downloader 半小时跑通全流程
【免费下载链接】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 批量拉了一个抖音旅行博主 300 多条无水印作品,背景音乐另存成 MP3,前后不到 30 分钟,其中人工操作大概 5 分钟。工具是开源的,MIT 协议,主体是命令行,另有一个内测中的桌面版。
这篇文章按操作顺序写:装环境、取 Cookie、写配置,把抖音批量下载任务跑起来,最后是我实际踩过的四个坑。没用的花边功能不写。
先搞清楚它能干什么
它能下单个视频链接,也能把一个作者主页的作品整批拉下来——一条主页链接,对应该作者全部作品。music 模式把背景音乐抽成独立 MP3,适合攒素材库;mix 模式把合集系列一次抓完,不会漏集。遇到平台翻页风控时,它会弹出一个真实浏览器,让你手动过验证后继续翻页,而不是直接报错放弃。
把环境跑起来
前提是 Python 3.8+,Windows、macOS、Linux 都能跑。从克隆到第一次跑通,一共三步:
- 克隆仓库并安装依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt playwright python -m playwright install chromiumplaywright 是浏览器兜底和自动取 Cookie 用的,装一次就行。
- 获取抖音 Cookie,推荐自动方式:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml浏览器里扫码登录抖音,回终端按回车,Cookie 会自动写进 config.yml。也可以手动:从浏览器开发者工具把 Cookie 拷出来,贴进配置的 cookies 字段。注意 Cookie 只存在本地配置文件中,不会上传到任何地方。
- 先拿一条视频链接试跑。在 config.yml 的 link 里填一条抖音视频链接,然后执行:
python run.py -c config.yml看到文件落盘,环境和 Cookie 就都验证过了。同一套后端还有个内测中的桌面版,主界面就是一个链接输入框:
一次完整下载长什么样
下面走一个完整任务:批量保存一位创作者的全部主页作品,之后每周增量更新一次。
第一步,选定创作者。浏览器打开该作者主页,复制地址栏完整链接,特征是一段 /user/ 开头的长字符串。如果关注博主比较多,桌面版关注页可以按"有新作品"筛选,看到新作品点一下下载就行:
第二步,写入配置。核心就下面几行,贴进 config.yml 改一下链接:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post number: post: 0 increase: post: true database: truenumber.post: 0 表示不限量,先跑小批量时可以先填 10 试试。increase 是增量开关,第六步解释;thread 并发默认就是 5,不用写。
第三步,启动下载。命令不变:python run.py -c config.yml。终端是 Rich 进度条,默认 5 个任务并行,API 侧限速 2 请求/秒;失败的任务按 1s、2s、5s 指数退避重试,默认 3 次。300 条作品在普通家宽下大概 20 分钟出头。
第四步,查看任务进度。跑完后终端会打印成功/失败计数。桌面版任务中心能看到每个任务的状态、件数、失败原因,还能直接打开输出目录核对:
第五步,检查落盘文件。默认 folderstyle: true,每条作品单独一个目录,视频、封面、音乐都在一起:
Downloaded/ └── 作者名/ └── post/ └── 2024-02-07_作品标题_7341xxx/ ├── ..._7341xxx.mp4 ├── ..._cover.jpg └── ..._music.mp3视频自动挑无水印源,默认取最高转码档。封面、音乐、JSON 元数据是独立开关,不需要就关掉。
第六步,下次增量更新。过一周再跑同一条命令,程序用"本地文件 + 数据库记录"双重检查:该作品主文件已存在就跳过,只下载新增内容。这就是抖音增量下载的全部逻辑。反过来,删掉某条作品的本地目录,下次就会重新下载它。
进阶配置速查
基础配置之外,真正常用的是下面四个。其余字段的完整说明和注释见 完整配置模板。
只下 6 月作品、挑原画画质等四个常用参数
| 配置项 | 关键参数 | 用途 |
|---|---|---|
| 时间过滤 | start_time: "2024-06-01",end_time: "2024-06-30" | 只下载 6 月份发布的作品 |
| 画质选择 | video_quality: original | 探测上传原画,探测不到退回最高转码档 |
| 评论采集 | comments.enabled: true | 每条作品的评论存成 JSON |
| REST API 模式 | --serve --serve-port 8000 | 用 HTTP 提交下载任务,适合服务器端调度 |
踩坑记录
只下了 20 条就停了
现象:作品数停在 20 条左右,翻页直接结束。原因:平台对翻页接口触发了风控。解法:确认 browser_fallback.enabled: true 且 headless: false,浏览器弹窗出现后手动完成验证,
【免费下载链接】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),仅供参考