一条命令跑通抖音批量下载:去水印、整站收藏,还能增量更新
【免费下载链接】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
半小时后,某位美食博主的 86 个作品已经整整齐齐躺在本地文件夹里:按作者分目录、文件名带发布日期和标题、没有一个带水印。这是 douyin-downloader——一个开源的抖音批量下载工具,你给它一个链接,它负责无水印下载、自动归类、重复运行自动跳过已有内容。
主页作品一次批量下完,重复运行自动去重
手动下载单条视频不难,难的是"一个博主的全部作品":逐条复制链接、找去水印网站、手动改名归档,几百条作品能折腾一整天,还容易漏、容易乱。douyin-downloader 把这件事压成一条命令,适合三类人:想完整收藏创作者的个人用户、定期收集竞品内容的运营和创作者、要采集结构化数据做分析的研究者。
它和"手下一条条下"或单链去水印网站相比,差异集中在三处:
- 批量是默认行为:一个主页链接拉全作品,而不是每次只下一条
- 无水印 + 高码率自动挑选:默认选无水印源,再从多档码率里挑最高清
- 可重复运行:本地文件 + SQLite 数据库双重去重,第二次跑自动跳过已下载的
🚀 5 分钟从零跑通:安装、配 Cookie、第一条命令
环境要求:Python 3.8+,Windows / macOS / Linux 均可。
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt执行后你会看到依赖逐个安装,最后输出Successfully installed ...。装的是异步网络请求、SQLite、终端进度条这些基础库。
下一步是准备配置文件并获取 Cookie。Cookie 可以理解成你的登录凭证,抖音接口要看到它才肯返回数据:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml第二条命令会弹出浏览器,扫码登录抖音后回到终端按 Enter,Cookie 自动写入config/cookies.json,全程不用手抄。执行后终端会提示登录成功,并列出拿到的字段。
把 config.example.yml 里的link换成任意主页链接,写一份最小配置:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post # 下载发布作品 number: post: 0 # 0 = 不限量 thread: 5然后跑第一条正式命令:
python run.py -c config.yml执行后 Rich 进度条开始滚动:先列出作品清单,再并发下载。跑完后Downloaded/下会出现作者名/post/2024-02-07_标题_作品ID/这样的目录,里面是无水印 mp4。
(截图来自同一套后端打造的桌面版内测界面,CLI 行为一致。)
📦 能下什么:从单条链接到主页批量,输出都是本地文件
输入类型
- 单条内容:视频
/video/ID、图文/note/ID、合集/collection/ID、音乐/music/ID,也认v.douyin.com短链 - 批量内容:主页链接 +
mode,拉post(发布)/like(喜欢)/mix(合集)/music(音乐) - 特殊内容:自己账号的收藏夹(
collect/collectmix,需对应 Cookie)、直播间录制(实验性)
处理动作
- 无水印源优先,按码率阶梯自动挑最高清,也可指定
original探原画或 1080p 等分辨率 - 时间窗过滤(
start_time/end_time)、每模式数量上限(number.*) - 增量跳过、失败退避重试、翻页被风控时自动开浏览器兜底、下载完整性校验
输出形态
- 媒体本体:无水印 mp4、图集
- 可选附件:封面、背景音乐、头像、JSON 元数据(
cover/music/avatar/json四个开关) - 结构化数据:每条评论 JSON、下载清单
download_manifest.jsonl、SQLite 历史库dy_downloader.db
🎯 三种典型用法:收藏、素材、数据分析
用法一:完整收藏一位创作者
目标:把关注的美食博主全部作品归档。关键就在上面那份最小配置——mode: [post]、number.post: 0。产出:Downloaded/博主名/post/下按"发布日期_标题_作品ID"排列的无水印视频,外加清单文件,随时可查缺漏。
用法二:按时间段抓竞品内容
目标:收集某竞品账号 2024 年的更新,做内容策略复盘。加两个时间字段即可:
start_time: "2024-01-01" end_time: "2024-12-31" video: true json: true产出:窗口内的 mp4 + 元数据 JSON,点赞、评论、发布时间都在 JSON 里,方便批量过片对比。
用法三:只要数据,不要视频文件
目标:为传播研究采集结构化样本。打开json: true和comments.enabled: true,需要时可关掉视频本体省空间;另外支持关键词直搜:python run.py --search "关键词" --search-max 100,结果直接落成 JSONL,每行一条记录。产出:标题、标签、发布时间、互动数、评论内容,直接喂给 pandas。
⚙️ 进阶配置怎么抄 + 少踩坑的 5 条经验
下面这份可以直接拷进 config.yml 用:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ video: true music: false cover: false json: true folderstyle: true mode: - post number: post: 0 increase: post: true # 本地已有则跳过 start_time: "" end_time: "" thread: 5 retry_times: 3 video_quality: highest database: true database_path: dy_downloader.db progress: quiet_logs: true browser_fallback: enabled: true headless: false comments: enabled: false少踩坑经验:
- 并发别贪多:
thread默认 5 即可,家庭网络 3–5,频繁失败就调低;工具内部还默认限速 2 请求/秒 - 增量更新:
increase.post: true配合把start_time设成上次运行日期,每周跑一次只拿新内容 - 选择性下载:只分析就开
json关视频,只收藏就开video关其余,别全开 - 命名模板必须含
{id}:避免重名作品互相覆盖 - 收藏和喜欢的模式(
collect/collectmix)只能单独使用,且只认当前 Cookie 对应的账号
三处值得看的设计:限速、退避重试、双重去重
- 限速保命:全异步架构(aiohttp),5 个任务并发跑,但 RateLimiter 把出口掐在 2 请求/秒,还加随机抖动。像高速路 ETC 岗亭——车按固定间隔放行,而不是挤成一团,触发风控的概率小很多。
- 退避重试:失败按 1s → 2s → 5s 的间隔重试。像打电话没接通,第二次故意晚一点再拨,给对端恢复的时间。
- 双重去重:SQLite 记下载历史,同时扫本地文件名里的作品 ID;磁盘上主文件存在且非空就跳过。注意数据库只记历史、不参与跳过判断——删库不会导致重下,删文件才会。
🛡️ 高频问题:只下到 20 条、Cookie 失效、强制重下
- 为什么只下到 20 条左右?翻页触发了风控。确认
browser_fallback.enabled: true且headless: false,在弹窗里手动过完验证,别提前关浏览器。 - Cookie 失效怎么办?重跑
python -m tools.cookie_fetcher --config config.yml。工具检测到未登录时也会提示你重新登录。 - 想强制重下某条?本地目录和数据库记录要一起删。只删库不删文件不会重下;只删文件保留库,会被记为"缺失待重试"。
- 进度刷屏?
progress.quiet_logs: true默认已开,调试时加-v或--show-warnings。 - 边界与合规:项目定位是技术学习、研究与个人存档。只下载你有权保存的内容,不侵犯隐私与版权,不二次传播;控制并发频率,别给平台服务器施压。平台接口变动导致失效属正常技术风险。
想查下载历史:
sqlite3 dy_downloader.db "SELECT aweme_id, title, author_name FROM aweme ORDER BY download_time DESC LIMIT 20;"执行后你会看到最近 20 条作品的 ID、标题和作者,按下载时间倒序。
下一步:克隆、配置、跑起来
douyin-downloader 把"整站收藏"从一天的人工活变成一条命令:无水印、可归类、可增量、可重复。现在就可以克隆仓库、配好 Cookie、丢一个主页链接跑第一单;遇到问题可以提 Issue,跑pytest -q也能先验证环境(tests/ 里有完整用例)。
【免费下载链接】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),仅供参考