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 都可以用一份配置文件处理。它默认选择无水印视频源,文件按"作者/模式/日期_标题_ID"整理,并为每个作品保存元数据。下面按任务顺序,带你从安装走到第一次批量下载。
能力速览:哪些内容可以批量下载
- 单个作品:视频、图文、合集、单条音乐(优先原声),短链自动解析
- 主页批量:发布作品(post)、点赞列表(like)、合集(mix)、原声(music),四种模式可组合
- 收藏夹:当前登录账号的收藏与收藏合集(collect / collectmix),需单独使用
- 直播:
live.douyin.com房间实时录制,主播下播时已录数据保留 - 数据:按作品采集评论、热搜榜与关键词搜索,结果落成 JSONL
- 扩展:视频转写(调用 OpenAI Transcriptions)、完成通知(Bark / Telegram / Webhook)、REST API 服务模式
默认行为:无水印源优先、按码率自动选最高清、速率限制 2 请求/秒、并发 5、失败按 1/2/5 秒退避重试。
安装步骤:完成第一次无水印下载
环境要求 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 是访问抖音接口的凭证。推荐让程序自动获取,实现见 tools/cookie_fetcher.py:
python -m tools.cookie_fetcher --config config.yml浏览器弹出后登录抖音,回终端按 Enter,Cookie 自动写入配置。失败时也可以从浏览器开发者工具手动复制 Cookie,粘贴到配置的cookies字段。
然后运行:
python run.py -c config.yml命令行会显示进度条,完成后文件落入path指定的目录。也可以在命令行直接追加:-u传单条链接、-p指定输出目录、-t指定并发数。
主页批量下载怎么配置
配置主要就三个字段:link(链接列表)、mode(下载哪种模式)、number(各模式数量上限,0 为不限)。以"某主页最近 50 条发布作品 + 全部点赞"为例:mode同时填 post 和 like,number.post设 50,number.like设 0 即可。
| 配置项 | 含义 |
|---|---|
link | 链接列表,主页或单个作品均可 |
mode | post / like / mix / music;collect / collectmix 仅收藏夹且须单独使用 |
number | 各模式数量上限,0 表示不限 |
increase | 各模式增量开关,仅 post / like / mix / music,依赖 database |
thread/retry_times | 并发数(默认 5)与重试次数(默认 3) |
database/database_path | SQLite 去重与历史记录,默认库文件dy_downloader.db |
start_time/end_time | 按发布时间过滤,格式YYYY-MM-DD |
folderstyle | 是否为每个作品建独立子目录,默认 true |
你会得到:作品落在path下的作者名/post/日期_标题_aweme_id/目录,包含视频、封面、提取的音乐、头像与原始元数据_data.json;目录根部另有download_manifest.jsonl清单,每行一条 JSON,含日期、aweme_id、标签、文件路径等字段。去重靠"数据库记录 + 本地文件"双重判断,同一作品在多个模式间不会重复下载。
合集、音乐、直播与评论分别怎么处理
- 单个合集 / 音乐:把
/collection/{mix_id}或/music/{music_id}链接直接放进link;音乐优先取原声文件,缺失时回退到该音乐下首条作品提取。 - 直播录制:把
live.douyin.com/{房间号}放入link,live.max_duration_seconds控制录制时长上限,0 表示录到主播下播;FLV 存在live/子目录并附带_room.json快照,中断时已录字节保留。 - 评论采集:开启
comments.enabled,include_replies控制是否抓二级回复,max_comments设数量上限;每个作品在媒体文件旁生成_comments.json。 - 搜索与热搜:命令行加
--search "关键词"(可配--search-max条数)或--hot-board [N],把相关作品或热搜快照导出为 JSONL,适合搭建主题样本库。
其他使用形态:桌面版 Douzy 与 REST API
命令行之外,同一套后端还做了桌面客户端Douzy(内测中):粘贴链接即可发起下载,同步关注与收藏列表,任务队列和作品档案可视化,并覆盖 TikTok、YouTube 工作台。
也可以以 REST API 形态运行:安装fastapi与uvicorn后,启动命令加--serve --serve-port 8000。向/api/v1/downloadPOST{"url": "..."}拿到job_id,再 GET/api/v1/jobs/{job_id}查询进度,便于接入自己的管线。
实战场景:增量追踪关注博主的新作品
跟着几位博主、持续留存其新作品时,难点不在"怎么下载",而在"别重复劳动":每次运行只想要上次抓取之后发布的作品。
配置就是一组开关:mode设为 post,increase.post: true,database: true。程序会对照数据库里已下载的记录,只拉新作品;如果只关心某段时间,再加start_time/end_time收窄范围。
桌面版也有对应的可视化入口:关注列表会同步每位博主的新作品数、备注与上次下载时间,可以直接在列表里挑出要下载的博主。
常见问题:20 条、重下与 Cookie 失效
- 只抓到 20 条:多为翻页风控。把
browser_fallback.enabled设为 true、headless设为 false,浏览器弹窗后手动完成验证,不要立刻关窗(当前对 post 模式验证最完整)。 - 想重新下载:去重靠"数据库 + 本地文件"双重判断,只删数据库不会触发,只删文件会;针对单个作品需删掉其本地目录与数据库中的
aweme_id记录。 - Cookie 失效:重新运行
python -m tools.cookie_fetcher --config config.yml即可。 - 进度刷屏:默认
progress.quiet_logs: true已会在进度阶段静默日志,调试时再加-v或--show-warnings查看详细输出。
合规边界
项目定位是技术研究、学习交流与个人数据管理。请勿用它获取他人隐私信息,或做侵犯版权的二次传播;平台规则或接口策略变化导致功能失效,属于正常技术风险。内置的速率限制(默认 2 请求/秒)与可调的并发、重试,目的是把请求量控制在合理范围内。
douyin-downloader 把批量下载、去重与元数据管理收敛进一份配置文件,对个人学习与素材管理来说已经够用。掌握"link + mode + number"三要素后,你可以按自己的场景扩展,完整配置项说明见 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),仅供参考