抖音作品批量下载:从单条到全量收藏的完整指南
【免费下载链接】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是一款基于 Python 的开源抖音批量下载工具:输入单条链接、主页链接或合集链接,即可无水印批量采集作品、图集、合集与原声音乐,并自动按作者和日期整理输出。
2. 能力总览
支持的链接类型
| 输入 | 输出 | 备注 |
|---|---|---|
单视频/video/xxx | 视频、封面、音乐、JSON 元数据 | 无水印源优先,自动挑最高码率 |
短链v.douyin.com/... | 同单视频 | 自动解析真实链接后下载 |
用户主页/user/xxx | 发布 / 喜欢 / 合集 / 原声批量下载 | 用mode选择模式 |
合集链接/collection/xxx | 合集内全部作品 | 兼容/mix/xxx形式 |
音乐链接/music/xxx | 使用该音乐的作品 | 优先原声文件 |
直播链接live.douyin.com/xxx | FLV 录制文件 | 实验性,下播时保留已录数据 |
关键能力
- 无水印优先:自动选择无水印视频源,画质可在原画与最高转码档之间选择
- 并发与限速:默认 5 个并发线程、约 2 请求/秒,均可调整
- 去重与增量:SQLite 数据库与本地文件双重去重,增量模式只取新作品
- 重试与兜底:失败任务自动退避重试;翻页受限时可切换浏览器兜底,人工过验证
- 附加资源:封面、音乐、头像、元数据 JSON、评论按需开关
工具以 YAML 配置文件驱动,绝大多数功能靠改几个键就能覆盖;命令行参数可覆盖配置,适合一次性快速任务。桌面客户端 Douzy(内测中)复用同一套后端,提供图形化工作台。
3. 环境准备与首次运行
需要 Python 3.8+,支持 macOS、Linux、Windows。
3.1 克隆与依赖
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt3.2 配置访问凭证(Cookie)
为什么需要 Cookie:抖音接口需要有效登录态才会返回完整作品列表与无水印源,这一步不能省略。获取方式有两种:
- 自动获取(推荐):内置工具会打开浏览器,你用自己账号登录,回到终端按 Enter 即自动写入配置
- 手动获取:在已登录抖音网页的浏览器开发者工具里复制 Cookie,粘贴到配置的
cookies段
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml如果打算使用浏览器兜底(翻页受限时才需要),再补装:
pip install playwright python -m playwright install chromium3.3 下载第一个目标
把一条想试的视频链接填进配置的link字段,然后运行:
python run.py -c config.yml也可以直接在命令行传入链接,并指定输出目录与并发数:
python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538" -p ./Downloaded -t 5运行后终端会显示下载进度条,文件按命名规则存入Downloaded/。想查看更详细的日志,加--show-warnings或-v即可。另外也提供了 Dockerfile,习惯容器化的话可以直接构建镜像运行。
4.1 收藏某创作者的全部发布
目的:把一个主页下的作品一次性拉到本地,不用手动翻页。
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 0 # 0 表示不限数量运行后工具按时间顺序翻页拉取作品列表,默认 5 线程并发下载,封面、音乐按cover、music开关附带保存。默认不抓作者置顶作品,需要的话把download_pinned设为 true。
如果是自己收藏的作品,可以把mode换成collect,link填本人主页链接,工具会取 Cookie 所属账号的收藏夹列表。
4.2 按时间范围筛选作品
目的:只采集某个时间段内的作品,例如 2024 年发布的全部作品。
link: - https://www.douyin.com/user/xxxxx start_time: "2024-01-01" end_time: "2024-12-31"过滤依据是作品发布时间,区间外的作品不会被请求。时间格式为YYYY-MM-DD,留空即该方向不限制。筛出来的作品同样按发布时间命名,目录天然按时间排好。
4.3 定时增量备份
目的:定期只取新发布的作品,避免重复下载。
database: true increase: post: true增量模式依赖数据库记录:已入库的作品直接跳过,只有新作品进入下载队列。把它和系统定时任务(比如 cron)配合,每天固定时间跑一次,就能持续归档新发布的作品。若本地文件被人删掉但数据库仍有记录,redownload_missing_files决定是补下还是继续跳过,默认补下。
5. 性能调优与进阶
5.1 调整并发线程数
由thread配置控制,默认 5。网络稳定时可以试 10,加快大批量下载;网络一般时建议保持 5,避免频繁超时;不稳定时降到 3 反而更稳。
5.2 混合下载模式
mode: - post - like number: post: 0 like: 50上面的配置会同时拉取全部发布作品和最近 50 条喜欢作品,跨模式自动去重,同一作品只保存一次。
5.3 自动重试与浏览器兜底
失败请求按 1s、2s、5s 退避自动重试,默认 3 次。主页翻页受限时(比如只能拉到 20 条),把browser_fallback.enabled设为 true,工具会弹出浏览器窗口,你手动通过验证后它再从断点继续翻页。
6. 输出产物说明
默认按「作者—模式—作品」三层组织输出,每个作品一个独立子目录:
Downloaded/ └── 作者名/ └── post/ └── 2024-02-07_作品标题_作品ID/ ├── 2024-02-07_作品标题_作品ID.mp4 ├── 2024-02-07_作品标题_作品ID_cover.jpg ├── 2024-02-07_作品标题_作品ID_music.mp3 └── 2024-02-07_作品标题_作品ID_data.json命名规则默认是「发布日期_标题_作品ID」,日期取作品发布时间而不是下载时间。去重靠「数据库记录 + 本地文件」双重检查:再次运行时已存在的作品直接跳过,文件缺失才补下。根目录还会写一份download_manifest.jsonl下载清单,每行一个作品的 JSON,方便日后按标签、日期检索。
7. 实现简析
core/api_client.py— 负责抖音接口请求、签名处理与无水印源挑选core/url_parser.py与core/downloader_factory.py— 识别链接类型并选择下载执行器core/user_modes/— 发布、喜欢、合集、音乐、收藏夹等模式的下载策略auth/cookie_manager.py— Cookie 的加载、解析与写入control/rate_limiter.py、control/retry_handler.py— 速率限制与指数退避重试storage/database.py— SQLite 下载历史与增量去重
8. 常见疑问速答
8.1 下载的视频有水印吗
没有。工具自动优先选择无水印源,画质可选原画或最高码率转码档;原画文件可能比转码档大数倍,可按存储预算选择。
8.2 需要登录抖音账号吗
需要。完整作品列表和无水印源都依赖有效 Cookie,用内置工具扫码登录一次即可自动保存,失效后重跑同一条命令。
8.3 下载速度大概多快
取决于网络。默认 5 线程配置下,100 个视频通常需要约 10-30 分钟,另需加上列表拉取阶段的时间。
8.4 会不会影响账号安全
合理使用一般不会。保持默认限速(2 请求/秒)、不盲目拉高并发即可降低风险;遇到验证弹窗时手动通过就行。
8.5 一次能下多少个作品
number: 0即不限。作品量上千的账号建议分批运行或开启浏览器兜底,避免翻页受限中途截断。
9. 合规边界
本工具仅用于个人学习、研究与自有数据管理。请尊重内容版权,不要将下载的作品用于商业再分发,并遵守平台规则与相关法律法规。
- 仅用于个人学习研究,不用于商业二次创作或传播
- 尊重他人隐私,不批量抓取涉及隐私的内容
- 控制下载频率,不给平台服务器造成过大压力
- 接口策略变化导致功能失效属于正常技术风险,随项目更新跟进
10. 行动清单
- 克隆仓库并执行
pip install -r requirements.txt安装依赖 - 复制
config.example.yml为config.yml - 运行
python -m tools.cookie_fetcher --config config.yml,在浏览器完成登录 - 在
link填一条单视频链接,运行python run.py -c config.yml跑通首个任务 - 确认输出无误后,再换成主页链接尝试批量模式,最后开启增量并配置定时任务
跑通第一个任务后,再逐步尝试批量与增量功能,配合时间过滤,让它匹配你自己的收藏节奏。
【免费下载链接】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),仅供参考