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 是一个基于 Python 的抖音视频下载工具:直接从平台接口获取原始视频源,无水印保存视频、原声与元数据,支持单条链接和用户主页批量下载,内置进度展示、失败重试与 SQLite 去重。
它是什么:一个面向实用场景的抖音下载工具
douyin-downloader 是命令行驱动的下载器,通过 YAML 配置文件描述"下载什么、保存到哪、下载多少",运行后自动完成链接解析、并发下载和文件归档。当前版本为 V2.0,核心能力包括:
- 无水印源视频提取,自动挑选最高码率(可探测原画)
- 视频、图文、合集、音乐(原声)四类链接均可下载,短链自动解析
- 抖音用户主页批量下载,按发布/点赞/合集/原声四种模式抓取
- 直播录制、评论采集、热搜榜与关键词搜索导出
- SQLite 数据库 + 本地文件双重去重,支持增量下载与断点保留
快速上手:最短命令链路
以下是一条能出结果的完整链路:clone、装依赖、配 Cookie、跑一条下载命令。
# 克隆项目 git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader # 安装依赖(需要 Python 3.8+) pip install -r requirements.txt # 复制示例配置 cp config.example.yml config.yml # 打开浏览器扫码登录抖音,登录后回到终端按 Enter,Cookie 自动写入配置 python -m tools.cookie_fetcher --config config.yml配好 Cookie 后,追加一条视频链接即可下载:
# -u 追加下载链接,-t 调整并发数 python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538"文件会按作者/模式/日期_标题_id/的结构落到Downloaded/目录。做到这一步就能出结果,其余配置都是可选增强。
核心能力详解
下载单条视频、图文与音乐
link里填/video/、/note/、/music/、合集链接或v.douyin.com短链(自动解析跳转),工具会拉取元数据、优先选无水印源并挑选最高码率,封面、原声、头像、JSON 元数据按需保存。
link: - https://www.douyin.com/video/7604129988555574538 video: true # 保存视频本体 music: true # 一并保存原声(BGM) cover: true # 一并保存封面批量下载用户主页作品
link填/user/{sec_uid}主页链接,mode指定抓取维度(post作品、like点赞、mix合集、music原声),number限制条数,0表示全量。多个模式可同时开启,跨模式自动去重,同一作品不会重复下载。
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 50 # 0 表示全量抓取翻页受风控限制时,browser_fallback会启动浏览器读取页面自己的作品列表请求(需pip install playwright),弹窗出现时手动完成验证即可。
录制直播
link指向live.douyin.com/{room_id}时自动进入录制模式,输出 FLV 到作者/live/下,并附直播间元数据快照。主播下播、网络空闲或手动中断时,已录制的字节会保留。该功能为实验性能力。
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 0 # 0 = 录到主播下播按时间区间筛选下载
start_time/end_time按作品发布时间过滤,格式YYYY-MM-DD,适合只收集某段时间内的内容,也常配合增量模式做长期跟踪。
start_time: "2026-01-01" end_time: "2026-06-30"增量下载与断点去重
database: true时在dy_downloader.db记录下载历史,配合本地文件双重检查;increase按模式开启后,再次运行只补新作品,已下载的跳过。下载中断的文件会在重跑时继续或重建,不需要手动清理半成品。
database: true increase: post: true热搜榜与关键词搜索导出
不需要下载媒体时,两条命令可直接把搜索结果落成 JSONL 文件,便于后续分析:
python run.py --hot-board 30 -p ./Downloaded # 导出热搜榜快照 python run.py --search "关键词" --search-max 100 # 关键词搜索作品配置要点:真正影响行为的字段
config.yml字段很多,但决定下载行为的主要是下面这几个:
| 字段 | 作用 | 推荐值 |
|---|---|---|
path | 下载目录 | ./Downloaded/ |
mode | 主页链接的抓取维度 | [post],按需加like/mix/music |
number.post | 主页作品数量上限 | 首次试用设 50,0为全量 |
video/music/cover/json | 视频、BGM、封面、元数据开关 | video: true,其余按需 |
start_time/end_time | 按发布时间过滤 | 定向收集时填写 |
thread | 并发下载数 | 5,弱网调小 |
video_quality | 画质档位 | highest;original探测原画 |
proxy | API 与媒体下载代理 | 需要时填http://127.0.0.1:7890 |
命令行参数可覆盖配置:-u追加链接、-p指定目录、-t指定并发。
版本取舍:CLI 版与桌面版怎么选
⚠️ 2026 年 8 月起抖音对非浏览器请求启用风控门禁,CLI 直连 API 的部分接口(点赞/收藏、合集、单视频等)返回 403;桌面版 Douzy 通过内置登录窗口代发请求,不受影响。两者取舍如下:
| CLI 版(本仓库) | 桌面版 Douzy | |
|---|---|---|
| 交互方式 | 终端 + YAML 配置 | 图形界面,粘贴链接 |
| 风控覆盖 | 主页作品可走浏览器兜底,热搜、搜索、评论、直播仍可直连 | 各类型下载均可用 |
| 适合场景 | 脚本化、定时任务、批量主页收集 | 单条下载、点赞/收藏类内容 |
| 状态 | 开源 | 内测中 |
建议:以终端工作流和主页作品收集为主,用 CLI 版即可;需要点赞、收藏夹或单条视频等被风控的接口时,改用桌面版。
常见问题
1. Cookie 过期,任务大面积失败
- 现象:请求返回 401/403 或抓取结果为空
- 原因:抖音 Cookie 有时效,过期后接口拒绝非登录请求
- 解法:重新执行
python -m tools.cookie_fetcher --config config.yml,登录一次即可
2. 部分内容报 403(Blocked by ArgusSecurityPlugin)
- 现象:点赞/收藏、合集、单视频等类型无法下载
- 原因:抖音风控只放行浏览器内签名生成的请求,CLI 直连被拒
- 解法:这类内容改用桌面版;主页作品保持
browser_fallback.enabled: true并在弹窗出现时手动完成验证
3. 下载速度慢
- 现象:单文件耗时明显偏长
- 原因:默认并发 5、请求限速 2 次/秒,弱网下更明显
- 解法:调高
thread,在proxy配置可用代理,或避开网络高峰时段
使用边界
- 仅用于个人学习、研究与自身账号数据的整理
- 尊重原创版权,下载内容不做商业传播
- 保持默认限速与并发,不对平台接口施加额外压力
- 不下载、不传播涉及他人隐私的内容
【免费下载链接】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),仅供参考