douyin-downloader:三步跑通的抖音批量下载与本地归档方案
2026/9/20 21:15:56 网站建设 项目流程

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 是一款免费开源的抖音批量下载工具:粘贴链接即可自动下载无水印视频,支持作者主页批量下载,重复运行时自动跳过已下载内容。它覆盖视频、图文、合集、音乐四类内容,附带直播保存、进度条展示和失败重试。

💡 能下载什么:视频、图文、合集、音乐与直播流

这个项目覆盖以下下载能力,全部通过配置文件加命令行驱动,默认自动挑选无水印源和最高码率:

  • 单个视频 / 图文 / 合集 / 音乐(优先原声文件),短链 v.douyin.com 自动解析
  • 作者主页批量下载,mode 支持 post / like / mix / music 四种模式
  • 当前登录账号的收藏夹与收藏合集(collect / collectmix,需单独使用)
  • 直播流保存(FLV/HLS,下播保留已录数据)、评论采集、热搜榜与关键词搜索导出
  • SQLite 数据库加本地文件双重去重、增量下载、指数退避重试、翻页受限时的浏览器兜底
  • 可选:视频转写(OpenAI API)、下载完成 Bark / Telegram / Webhook 推送、REST API 服务模式

与同类工具最大的差异:去重、增量与浏览器兜底内建在默认配置里,第二次运行自动跳过已下载内容,无需手动清理。

安装与环境配置:克隆、装依赖、拿 Cookie

环境只要求 Python 3.8+,macOS、Linux、Windows 均可。运行下面四条命令完成克隆、装依赖和初始化配置:

git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt cp config.example.yml config.yml

配置就绪后最关键的一步是获取 Cookie,运行:

python -m tools.cookie_fetcher --config config.yml

程序会弹出浏览器窗口,登录抖音后回到终端按 Enter,Cookie 会自动写入 config.yml。

⚠️前置条件:必须有一个已登录抖音账号的浏览器。Cookie 是访问抖音数据的凭证,也是新手最容易卡住的一步;后续下载出现 403、提示需要登录时,先检查 Cookie 是否还有效。若要用浏览器兜底功能,另跑pip install playwright并执行python -m playwright install chromium

配置完成后,同源的桌面版 Douzy(内测中,见仓库 Releases)也可以接管下载:粘贴链接、点下载即可,下方是它的抖音链接下载工作台:

🚀 从单条链接到批量下载:三种跑法

入口统一是python run.py -c config.yml,区别只在于传什么链接、配什么模式。

下载单个视频或图文

  1. 打开 config.yml,把作品链接填入link字段,也可以直接在命令行用-u传入。
  2. 执行下面命令,运行之后会看到 Rich 进度条,完成后文件落在Downloaded/下。
  3. 确认 mp4 已保存;封面、音乐、JSON 元数据是否附带,取决于cover/music/json开关。
python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538" -p ./Downloaded

批量下载作者主页作品

  1. 打开创作者主页,复制浏览器地址栏里含/user/sec_uid的完整链接。
  2. 在配置里填linkmodenumber,其中number.post为 0 表示全量,建议先设 20~50 试跑。
  3. 执行python run.py -c config.yml,达到数量或主页翻不动时自动停止。
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: [post] number: { post: 50 }

保存直播流与特殊内容

https://live.douyin.com/{房间号}链接填入link,工具会按直播任务保存;live.max_duration_seconds设为 0 会一直录到主播下播,中断时已保存的字节也会保留。FLV 可直接播放,HLS 源只保存 playlist 文件,需要 ffmpeg 后处理。

配置文件关键字段:时间区间、画质与并发

日常最常调整的字段都在 config.yml 里,默认值来自 config.example.yml:

mode: [post] # post / like / mix / music number: { post: 50 } # 0 = 不限 start_time: "2026-01-01" # 只抓该日期之后的作品 end_time: "2026-06-30" thread: 5 video_quality: highest comments: { enabled: true }
  • start_time/end_time:按时间区间过滤(格式 YYYY-MM-DD),批量抓取主页时避免拉进几年的老内容。
  • video_quality:默认 highest 取最高转码档;original 会额外探测上传原片,文件更大画质更好;也可指定 720p、1080p 等档位,匹配不到自动降级。
  • comments.enabled:开启后每个作品旁会生成*_comments.json,可选二级回复。
参数默认值推荐值
thread53~5,网络差时调低
number.post0 不限先设 20~50 试跑
video_qualityhighestoriginal(磁盘充足时)
start_time不限制填写,避免全量抓取

三种常见场景:个人收藏、批量研究、直播存档

三个场景共用同一套命令,区别只在配置组合。

个人收藏:你的目标是把喜欢的几条视频留在本地反复看 → 推荐路径:单链接模式 + 默认配置,自动去水印后直接落盘 → 注意:重复运行同一链接会自动跳过,不会重复占磁盘。

批量研究:你的目标是拿一位创作者近三个月的更新连同评论做分析 → 推荐路径:主页链接 +mode: [post]+ 时间区间过滤 +comments.enabled: true,并保留increase.post: true,之后每次运行只拉新作品 → 注意:若只抓到 20 条说明翻页触发了风控,保持浏览器兜底开启并在弹出的窗口里手动完成验证。

直播存档:你的目标是保存一场重要直播 → 推荐路径:直播链接 +live.max_duration_seconds: 0,录完 FLV 落在Downloaded/{作者}/live/下并附直播间元数据快照 → 注意:直播录制接口覆盖的场景有限,README 标注为实验性功能。

Downloaded 输出目录与文件命名规则

默认folderstyle: true时,输出按「作者 / 模式 / 作品」三层组织:

Downloaded/ └── 作者名/ ├── post/ │ └── 2024-02-07_作品标题_aweme_id/ │ ├── xxx.mp4 │ ├── xxx_cover.jpg │ └── xxx_data.json └── live/

命名默认模板是{date}_{title}_{id},文件名里固定包含 aweme_id,去重就靠它;想改格式用filename_template,作者目录名可用author_dir切换昵称或 sec_uid。

常见卡点速查:风控 403 到重下载不触发

下表对应 README 中的常见问题,先对现象再找原因:

现象可能原因处理建议
单个视频 / 合集下载失败,返回 403抖音 Argus 风控拦截 CLI 直连(2026-08 起逐步加严)开启浏览器兜底并在浏览器里过验证,或改用桌面版 Douzy
主页只能抓到 20 条作品翻页被风控限制browser_fallback.enabled: true 且 headless: false,弹窗后手动过验证
下载中断、提示需要登录Cookie 失效重跑python -m tools.cookie_fetcher --config config.yml
改了文件却触发不了重下载数据库记录 + 本地文件双重去重本地文件和 sqlite 记录要同时删
没生成 transcript 文件开关未开 / 图文不转写 / 缺 API Key确认是视频作品且 OPENAI_API_KEY 有效
进度条重复刷屏日志未静默保持 progress.quiet_logs: true,调试时再加 -v

核心目录职责与改代码前的验证方式

想改代码的话,先看这四个位置:

  • core/:各内容类型的下载引擎,url_parser.py 负责解析链接,video_downloader.py、user_downloader.py 分别处理单条与主页作品,live_downloader.py 处理直播
  • auth/:Cookie 与 msToken 的管理、失效重登逻辑都在这里
  • storage/:SQLite 去重、下载历史与文件落盘管理
  • tools/cookie_fetcher.py:浏览器自动获取 Cookie 的入口;所有配置默认值集中在 config/default_config.py

改动手前先跑python3 -m pytest -q,tests/ 下的用例覆盖了下载、去重、风控处理等核心路径,通过与否能最快验证改动是否破坏现有行为。

先跑通单条,再扩展到批量

douyin-downloader 是一个以「粘贴链接即可归档」为设计目标的免费开源命令行工具:单条与批量、去重与增量、直播与评论采集开箱即用,Cookie 配置一次可长期复用。建议的节奏是先跑通单条视频下载,再试小数量主页作品,最后放开到批量与直播。

本项目仅供技术学习与个人内容归档使用,请尊重原创作者权益,并遵守平台服务条款与相关法律法规。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询