抖音无水印下载只差一条命令: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 水印,根本没法直接剪进成片。
那天下午我彻底放弃了手动保存,开始搜"抖音批量下载"。翻到 douyin-downloader 的时候,说实话我是半信半疑的——一个以命令行为主的开源工具,看起来就不像"开箱即用"。但真正用起来才发现,它比我预想的要省心得多。后来我甚至把它推荐给了做音乐混剪的朋友和做直播切片的朋友,大家的反馈出奇一致:早知道有这东西,何必手动存那么久。
装环境比想象中轻松:两条命令先跑起来
新手最怕的往往不是工具不好用,而是装不上。douyin-downloader 这一步做得足够友好:先把仓库克隆下来,再装好依赖即可。
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt第一条命令把整个项目拉到本地,第二条命令按需装好它用到的第三方库。如果你的网络对国外源不友好,把最后一行换成清华镜像也一样能装:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple整个过程大概两三分钟,没有复杂的编译,也没有需要手动配置的环境变量。装完之后在项目目录里敲python run.py --help,能看到一串参数说明,那一刻我才确认:这工具确实是能跑的。
Cookie 这道坎:登录态怎么过
真正拦住新人的,往往不是安装,而是登录态。抖音的大部分内容需要登录后才能访问,光有一个下载器还不够,你得让程序"假装"是个已登录的账号。
douyin-downloader 提供了一条自动获取 Cookie 的命令:
python -m tools.cookie_fetcher --config config.yml运行之后它会自动拉起一个浏览器窗口,你像平时一样扫码登录自己的抖音账号。登录完成后回到终端按一下回车,Cookie 就会被自动写进配置文件,全程不用手动复制粘贴那串又长又容易过期的字符串。
这里有个小提醒:Cookie 是有有效期的,一般能撑几周到一个月。哪天发现下载突然报登录失效,别慌,重新跑一遍这条命令就行,十秒钟的事。
第一次跑通:一个配置文件带走整个主页
准备工作做完,就到了最激动人心的环节。项目自带一份示例配置,先复制一份出来自己改:
cp config.example.yml my_config.yml打开my_config.yml,把想下载的链接填进去,再按需开关几个选项:
link: - https://www.douyin.com/user/你想要的主页链接 path: ./我的素材/ music: true cover: true json: true thread: 5这几行的意思很直白:link告诉工具去下载谁的页面;path指定文件存到哪;music、cover、json分别决定要不要顺手保存原声、封面和作品元数据;thread是并发线程数,新手设 5 就挺稳妥。然后运行:
python run.py -c my_config.yml第一次看到下载界面的时候,我是有点惊讶的——它不像我以为的那种黑框命令行,而是带图形界面的:粘贴链接、检测、选择下载类型(作品、喜欢、合集)都点一下就行,进度、剩余时间、当前处理到第几个作品全部实时可见。
那天我扔进去一个关注了很久的博主主页,设置成只下载他发布的视频,跑完之后文件夹里整整齐齐躺着几十个无水印视频,外加配套的封面和原声。以前要忙活一下午的活,现在一杯咖啡还没凉就结束了。
越用越明白:视频、图集、合集、音乐各有各的省事
第一次成功之后,我开始认真研究它到底能下载哪些内容,结果发现比想象中丰富得多:
- 单条视频:复制分享链接就能下载,适合偶尔存一两条;
- 图集:多图内容也能整组保存,不会只给你一张;
- 合集:博主精心整理的合集可以整个拉下来,不用挨个点;
- 音乐原声:做混剪的人会很喜欢这个功能,原声文件直接入库。
除了在配置里写链接,它也支持命令行直传参数,适合懒人:
python run.py -l "https://www.douyin.com/video/作品链接" -p ./单个视频/更妙的是它的账号联动能力。如果你登录了抖音,它还能把"我的关注"列表同步过来,谁发了新作品、谁还没下载过,一目了然,点一下就能把某个创作者的全部内容批量抓下来。对于我这种关注了上百个博主、又不想漏掉任何人更新的人来说,这个功能简直像给素材库装了个自动补货员。
翻页被风控、下载被限速:工具其实早想好了退路
用了一段时间之后,我遇到了第一个真正的问题:某次下载在翻到第二十多个作品时突然停住了。后来才明白,这是抖音的翻页风控——短时间内请求太频繁,账号被盯上了。
好在 douyin-downloader 早就想到了这种情况。它的下载策略是"两条腿走路":正常情况下优先走官方 API,速度快也稳定;一旦 API 被限制,就自动切换到浏览器模式去完成验证,验证通过后继续翻页。对应的配置长这样:
browser_fallback: enabled: true headless: false除此之外,它还内置了一套温和的限速机制。如果你发现下载时频繁被限流,可以把并发数调低,再限制每秒请求数:
thread: 3 max_per_second: 2翻译成大白话就是:一次少下几个、每秒别敲太多门,账号就不容易被拉黑。网络环境允许的话,挂个代理也能绕开不少限制。
更让我放心的是它的容错能力:下载中途断网了?不用从头再来,它会接着上次的进度续传;某个文件下载到一半损坏了?它会比对文件大小,发现不完整就自动清理重下;请求失败?它按 1 秒、2 秒、5 秒的节奏指数退避重试。这套组合拳打下来,我基本没再因为网络波动丢过素材。
真正值钱的是"收尾":去重、命名与元数据
用过一段时间后我发现,这个工具最值钱的地方其实不在"下载",而在"收尾"。如果你像我一样每周都跑一两次,很快就会遇到一个问题:同一批视频反复下载,硬盘里堆满了重复文件。
douyin-downloader 的去重是双保险——一份记录在 SQLite 数据库里,一份靠本地文件比对。开了去重之后,第二次运行会自动跳过已经下过的内容,只处理新增的部分:
database: true database_path: dy_downloader.db increase: post: true like: true mix: true music: true这四行开关的意思分别是:只下载新发布的、新喜欢的、新更新的合集、新出的音乐。对"追更型"用户来说,这就是个自动增量更新的素材库。
文件命名同样可以定制。默认模板是{author}/{date}_{title}_{id},也就是按作者建文件夹,文件名叫"日期_标题_作品ID"。ID 是抖音内部唯一标识,带上它能保证重名视频也不会互相覆盖。
folderstyle: true path: ./下载内容/{author}/{date}_{title}_{id}/如果你开了json: true,每个作品还会额外存一份完整的元数据:标题、描述、发布时间、作者信息、点赞评论分享收藏数、视频分辨率时长、音乐名称作者……这些数据单独看没什么,但攒多了就是一份结构化的内容档案。配合任务中心和历史档案,我可以按作者、按标题关键词、按时间筛选任意一次下载记录,甚至直接看到最近下载最多的博主是谁。
如果不想开图形界面,也可以直接查数据库。比如想知道每个作者各下载了多少作品:
sqlite3 dy_downloader.db "SELECT author_name, COUNT(*) FROM aweme GROUP BY author_name ORDER BY COUNT(*) DESC;"还能这样玩:直播录制、评论采集、定时任务
正当我以为已经把功能摸透了的时候,又发现了几个让我惊喜的玩法。
直播录制。把直播间的链接丢给它,它会自动列出清晰度选项,选择后开始录制,主播下播时已录制的内容会自动保存,不会白等一场:
python run.py -l "https://live.douyin.com/直播间ID" -p ./直播录制/评论采集。如果你在做内容分析或舆情研究,它的评论采集功能可以按作品抓取评论区内容,连二级回复都能带上,导出后就能做词频分析。
定时任务。配合系统的计划任务,你可以让整个下载流程无人值守。比如每天凌晨三点自动同步一次素材库:
0 3 * * * cd /path/to/douyin-downloader && python run.py -c daily_config.yml >> download.log 2>&1把这行写进 crontab,剩下的就交给时间。第二天醒来,新发布的内容已经安安静静躺在硬盘里了。
写在最后:工具会更新,用法要克制
写到这儿,我的感受是:douyin-downloader 不是那种"高大上但用不起来"的项目,它是真的在替用户想问题——把去重、断点续传、命名整理这些烦人的细节全都处理好了,你只管告诉它"下载什么",剩下的它自己搞定。项目是开源的,社区一直在更新,遇到问题可以去提交 issue,有想法的也可以直接提 PR 参与改进,日常用git pull保持最新版本就行。
最后说两句掏心窝的话。这类工具的价值,是帮你把重复劳动省下来,把时间还给创作本身。也请一定记得:下载的内容尽量用于个人学习、收藏和二次创作,尊重原作者的劳动,别拿去做商业侵权的事。平台规则和法律法规都在动态变化,合理使用,工具才能用得长久。
如果你也有一堆"存不下来"的视频,不妨从这个周末开始,试着把第一个配置跑起来。你最想批量保存的,是某个博主的主页作品,还是某个合集的原声?欢迎按自己的需求折腾完回来聊聊体会。🚀
【免费下载链接】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),仅供参考