抖音无水印下载工具 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 是一个抖音无水印下载工具,把单条视频、图文、合集、音乐原声的抓取和作者主页作品的批量下载整合进同一套命令行流程。它面向不写代码的内容创作者和刚入门的开发者,靠一份 YAML 配置加几条命令就能跑通。跟着这份手册走,你可以在三条命令内完成从克隆仓库到拿到第一个视频文件的全过程。
🚀 先跑起来:10 分钟完成首次抖音无水印下载
环境只需要 Python 3.8 以上,macOS、Linux、Windows 都支持。把仓库拉到本地后按顺序执行,每步都是独立命令。
- 克隆项目并进入目录:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader- 安装依赖,首次一次性完成:
pip install -r requirements.txt若要启用浏览器兜底或自动抓 Cookie,再补pip install playwright和python -m playwright install chromium;不需要可跳过。
- 复制一份配置出来改:
cp config.example.yml config.yml- 获取 Cookie,这是批量下载的前提:
python -m tools.cookie_fetcher --config config.yml命令会拉起浏览器,登录抖音后回终端按 Enter,程序自动把 Cookie 写进 config.yml。有效期通常数天到一周,失效的典型表现是翻页只能拿到约 20 条、批量任务大面积失败,此时重跑上面这条命令刷新即可。
- 跑第一条下载,先把 config.yml 里的 link 指向一条视频:
python run.py -c config.yml也可以不写配置,直接用命令行参数追加链接:
python run.py -u "https://www.douyin.com/video/xxxx" -p ./Downloaded🎯 能力边界一览:支持哪些内容类型
先用一张表看清能下什么、哪些要登录态,避免配完才发现某类不支持。
| 能力项 | 支持内容类型 | 是否需登录态 |
|---|---|---|
| 单条视频 | /video/{aweme_id} | 否,自动挑无水印最高清源 |
| 单条图文 | /note/、/gallery/ | 否,优先无水印原图字段 |
| 单条合集 | /collection/、/mix/ | 否 |
| 单条音乐原声 | /music/{music_id} | 否,缺失原声时回退首条作品 |
| 作者主页批量 | /user/{sec_uid} + mode | 是,post/like/mix/music 都吃 Cookie |
| 当前账号收藏夹 | /user/self + mode | 是,collect/collectmix 须单独使用 |
| 直播录制 | live.douyin.com/{room_id} | 否,FLV/HLS,实验性 |
| 评论采集 | 按作品 | 默认关闭,产出 *_comments.json |
| 热搜 / 关键词搜索 | --hot-board / --search | 否,结果落 JSONL |
解析与下载核心放在 core/,URL 分类、API 客户端和各类下载器都在里面;Cookie 与 token 管理在 auth/,浏览器抓 Cookie 的独立工具在 tools/,并发、限速、重试集中在 control/。翻页受限时会启动浏览器兜底、支持人工过验证码,这是批量主页下载能跑全的关键。
📦 批量采集一次跑完:抖音无水印下载的完整流程
以一位内容创作者要备份自己主页全部作品为主线,把一条完整链路走一遍。
先圈定筛选范围。把 link 指向自己主页,mode 写 post,number.post 设 0 表示全量;要限定时间就填 start_time 和 end_time。
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 0 start_time: "2024-01-01" end_time: ""拿到范围后调并发与重试参数。thread 控制同时下载数,默认 5;retry_times 设 3,失败按 1 秒、2 秒、5 秒指数退避重试,默认限速约 2 请求/秒。实测 3 到 5 并发下 20 条视频一两分钟下完,网络不稳就降到 3。
thread: 5 retry_times: 3 database: true文件落盘有固定结构。开启 folderstyle 后,每个作者一个目录,再按模式分 post、like、mix,每个作品一个「日期_标题_id」文件夹,里面放视频、封面、音乐、元数据,同名不会互相覆盖。
Downloaded/ └── 作者名/ └── post/ └── 2024-02-07_作品标题_aweme_id/ ├── ...mp4 ├── ..._cover.jpg ├── ..._music.mp3 └── ..._data.json去重靠数据库加本地文件双重判断。database: true 时生成 dy_downloader.db,同一作品不会重复下载;把 increase.post 设 true 就只补新作品,适合长期追更同一个号。
同一套流程换几个参数就是别的用法。教育工作者把 start_time 和 end_time 卡到某个学期,只抓那段时间的教学视频;研究者直接用 --search 关键词 或 --hot-board 把结果落成 JSONL 做后续分析;要留直播就把 link 指向 live.douyin.com 房间号,配合 live.max_duration_seconds 控制录制时长。
⚙️ 配置项调优:四个最值得动的开关
影响体验最大的是并发、重试、时间过滤和输出格式,其余保持默认即可。
thread: 5 # 并发数,3-5 为宜 retry_times: 3 # 失败重试次数 start_time: "2024-01-01" # 时间过滤起点 end_time: "2024-12-31" # 时间过滤终点输出格式由 folderstyle 和 filename_template 决定,默认按「日期_标题_id」建目录,模板里至少保留 {id} 防止重名覆盖;想要更稳的作者目录可把 author_dir 改成 nickname_uid。
folderstyle: true filename_template: "{date}_{title}_{id}"基于 config.example.yml 可组合出几种常用配置,差异点如下:
| 配置方案 | 适合谁 | 关键差异 |
|---|---|---|
| number.post: 1 | 想快速验证 | 只下 1 条,先确认链路通 |
| increase.post: true + start_time | 长期追更 | 跳过已下,只补新作品 |
| number.post: 0 | 全量采集 | 不限数量,配合并发与重试 |
🖥️ 桌面端与自动化
不想敲命令的话,基于同一套后端的桌面版 Douzy 提供了图形入口:粘贴链接即可开始下载,同步关注、收藏与喜欢列表,在任务中心跟踪每条任务的进度和失败项。桌面版目前处于内测阶段,安装包从项目 Releases 页获取,界面截图使用演示数据。
# 把定时采集挂到系统定时任务 0 2 * * * cd /path/to/douyin-downloader && python run.py -c config.ymlLinux 和 macOS 用上面这行 crontab 即可每天凌晨两点自动跑一遍;Windows 在任务计划程序里建一个指向 run.py 的计划任务,参数同理。
🛠️ 排错速查
| 症状 | 可能原因 | 处理方式 |
|---|---|---|
| 翻页只有约 20 条 / 任务大面积失败 | Cookie 失效或触发风控 | 重跑 cookie_fetcher;开 browser_fallback 手动过验证 |
| 下载速度慢 | 并发偏低或网络波动 | thread 调到 3-5,错峰下载,必要时配 proxy |
| 想重新下载某作品 | 数据库里还有旧记录 | 删本地对应文件并清数据库该记录后再跑 |
| 私密 / 受限内容下不到 | 只能访问公开内容 | 属平台可见性限制,无法绕过 |
| 想要 TikTok / YouTube | CLI 专注抖音国内版 | 桌面版覆盖三平台 |
写在最后
这份工具适合个人学习、研究和备份自己的内容,请只用在公开可见的作品上,尊重原创与平台规则,不用于商业用途或侵犯他人隐私。完整参数和更多示例可以在项目仓库的 README.zh-CN.md 中继续查,遇到问题也可以到社区讨论区提问。
【免费下载链接】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),仅供参考