抖音批量下载完整指南:一个主页链接把全部作品备份到本地
【免费下载链接】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可以只做一件事做到底:贴一个主页链接,把该账号的作品、封面、背景音乐和元数据一并落到硬盘,视频默认优先选无水印源,还带 SQLite 去重记录——重复运行自动跳过已下载的作品,不占磁盘不烧流量。本文按「上手 → 首跑 → 优化 → 维护」的时间线走一遍,全部命令可直接复制。
上手前:为什么把批量下载放在本机跑
先花 30 秒对比一下两条路线,后面所有配置都建立在本地运行这个前提上:
| 对比维度 | 第三方解析站 | 本机运行 douyin-downloader |
|---|---|---|
| 内容经过谁 | 对方的服务器 | 全程不出电脑 |
| 登录凭证去向 | 需反复提供 | Cookie 取一次就存在本地配置里 |
| 批量上限 | 通常限次数、弹广告 | 主页链接拉全量,可用start_time/end_time卡时间窗 |
| 长期可用性 | 站点随时可能关闭 | 依赖开源仓库,代码在core/、auth/等模块里可自行跟进 |
最值得关注的是数据主权:你的收藏清单和登录态始终在本机。其次是自由度——数量、时间窗、并发数全部由配置文件说了算。最后别忽略去重能力:每个下过的作品都有数据库记录,这是长期维护的基础。
第一阶段:拿到项目并装好依赖(约 2 分钟)
要求 Python 3.8 以上,Windows / macOS / Linux 均可:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt国内网络慢的话给pip install加一个-i镜像源参数即可。如果之后想用浏览器兜底(后面会用到),再补一句:
pip install playwright && python -m playwright install chromium首次跑通:三条小路走完就能拿到第一批作品
一条命令自动取 Cookie,免手填字段
抖音的不少接口需要登录态。可以把 Cookie 理解成浏览器登录后留下的一把钥匙:拿到后放在配置文件里,接口见到它就放行,过期了再重新取一次。项目自带提取器,无需手动拼任何字段:
python -m tools.cookie_fetcher --config config.yml会弹出一个浏览器窗口,扫码登录一次,回到终端按 Enter,Cookie 自动写回config.yml。前后 5 分钟。
config.yml 只需要动这几处
把仓库里的config.example.yml复制一份改名config.yml,核心就这些键:
link: - https://www.douyin.com/user/xxxxx # 目标博主主页 path: ./Downloaded/ mode: [post] # 作品 Tab number: post: 2 # 首次验证先填 2,确认后改 0 拉全量 music: true # 背景音乐 cover: true # 封面图 json: true # 元数据 thread: 5 # 并发线程 retry_times: 3 # 失败自动重试 database: true # SQLite 去重记录第一次测试建议number.post填 2:确认路径、命名、文件内容符合预期后再放开到 0,避免一次跑完把磁盘塞满。
首跑之后,验证保存目录和进度
默认读config.yml开跑:
python run.py -c config.yml也可以不走配置文件,直接追加链接参数,-u可多次使用:
python run.py -c config.yml -u "https://www.douyin.com/user/xxxxx"终端里每个作品一条进度条滚过去,结束后输出完成统计。打开保存目录,结构长这样:
Downloaded/ └── 作者名/ └── post/ └── 2024-12-30_标题_aweme_id/ ├── 视频.mp4 ├── ..._cover.jpg ├── ..._music.mp3 └── ..._data.json文件名带日期、标题和作品 ID,在文件管理器里平铺视图或按名称搜索都能快速定位。
一周之后:切换增量模式,再挂一个定时任务 💡
首跑验证没问题后,把配置从「验证状态」调到「日常维护状态」,四个参数值参考下表:
| 配置项 | 首次运行(验证) | 日常维护(常态) |
|---|---|---|
number.post | 2,抽查文件 | 0,全量拉取 |
increase.post | false,完整走一遍 | true,只补盘里还没有的新作品 |
thread | 2,保守 | 5,稳定不触发限流 |
retry_times | 3 | 3,失败自动补 |
increase.post: true的判定逻辑很直白:下载前先看磁盘,主媒体文件已存在就跳过,只补齐新增;database: true则把每次下载写进dy_downloader.db,两者叠加,任务跑十遍也不重复下载。
接着给 Linux 的 crontab 挂一行,每天凌晨 4 点自动补货,博主当天新发的作品半夜就进库:
0 4 * * * cd /path/to/douyin-downloader && python run.py -c config.yml两点提醒:path定下来之后别挪,挪路径会让增量判定失效;另外自 2026 年 8 月起抖音对新接口上了反爬闸门,主页分页大概率会触发内置浏览器兜底(browser_fallback,默认开启),首次弹出验证码时手动完成即可,不要过早关窗。
长期维护:四个高频症状的对症处理
| 症状 | 原因 | 处理 |
|---|---|---|
| 任务大面积失败,提示要登录 | Cookie 过期 | 重跑一次python -m tools.cookie_fetcher --config config.yml,不要手改字段 |
| 只下了几条就停,数量远小于预期 | number限制了数量,或 API 分页触顶 | number.post改 0;确认browser_fallback.enabled: true且headless: false,人工过验证码 |
| 重跑又把老内容下一遍 | database没开,或保存路径被改过 | 保持database: true,path固定不动 |
| 中途报磁盘空间不足 | 全量 + 音乐 + 封面 + 元数据全开,体积成倍增长 | 用start_time/end_time卡时间窗,或调小number |
批量下载解决的是「存得下、找得到」:链接失效之前,本地已经有一份完整的库。其余使用边界,遵循平台规则与创作者权益即可。
【免费下载链接】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),仅供参考