剪辑师亲测:douyin-downloader 免费去水印批量下载,素材整理从 3 小时缩到 20 分钟
【免费下载链接】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 是一款开源的抖音批量下载与去水印工具,支持视频、图集、合集、音乐、收藏夹等多种内容类型,以及作者主页整页批量下载。这不是一篇功能清单式的安利文,而是我把一个真实工作场景从"崩溃"到"治愈"的完整记录。如果你也被"要素材、去水印、整理文件"三件事反复折磨,这篇文章可能帮你省下大把时间。
那个周五晚上,我差点被 50 个视频逼疯
我叫阿泽,接了一个美食账号的剪辑外包。甲方发来一句话:"这 50 条视频,明天上午要,无水印。"
于是那个周五晚上,我打开抖音,开始一场荒诞的重复劳动:
- 点开一条视频,复制链接,打开第三方解析网站,等广告倒计时,下载;
- 下一段,再复制,再解析,再下载……
- 下了 20 条之后,我发现自己搞混了"哪条存过、哪条没有";
- 更崩溃的是,保存下来的文件名是一串乱码,明天根本没法交差。
凌晨一点,我数了数,进度条走了不到一半,桌面上堆满了"video_7382.mp4"这种毫无辨识度的文件。那一刻我认真考虑过放弃接单。
第二天,同事丢给我一句话:"别用在线解析了,试试 douyin-downloader,一个命令行工具。"
从 git clone 到跑通第一条命令
他给的安装方式出乎意料地简单,一共四步。
第一步,拉取项目并安装依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt需要说明的是,抖音要求登录态才能访问内容,所以项目默认用 API 方式请求。如果想把"翻页被限制时自动开浏览器验证"这个能力也用上,还得补装 Playwright:
pip install playwright python -m playwright install chromium第二步,复制配置文件:
cp config.example.yml config.yml第三步,配置 Cookie。这一步是很多新手劝退点,但项目提供了自动获取方式:
python -m tools.cookie_fetcher --config config.yml运行后会自动弹出浏览器引导你登录抖音,登录成功后回到终端按一下 Enter,Cookie 就自动写进配置了。全程不用手动复制粘贴那串又长又乱的东西。
第四步,在 config.yml 里填上要下载的链接,然后运行:
python run.py -c config.yml我第一次跑通大概花了十分钟,其中八分钟在装依赖。真正运行的那一刻,我心里是怀疑的:一个命令行工具,能比在线解析网站强到哪去?
第一次运行:274 个作品只花了十几分钟
我把甲方那个美食博主的主页链接放进 config.yml,顺手把mode改成post,number.post设为0(0 表示不限制数量),然后回车。
屏幕上开始刷出进度条:已获取全部作品 274 个,线程 5,正在并发下载。每一个作品都带着"跳过已存在""下载成功"的实时状态。十几分钟后,274 个作品全部落盘。
截图里是它的桌面版任务中心,命令行版本的效果类似:每个作品的解析、排队、下载进度一目了然,还能导出事件流排查问题。
真正让我愣住的不是下载速度,而是下载完之后的文件目录:
每个作品一个文件夹,命名是"日期_标题_作品ID",封面、视频、音乐、头像、JSON 元数据各归其位。我盯着屏幕看了三秒——这比我手动整理一个下午还整齐。
去水印只是开胃菜:真正解决我痛点的三个配置
水印问题项目默认就解决了:它会自动选择无水印视频源,并且基于视频的码率数组自动挑选最高清的那一份。但让我的工作效率真正起飞的,是下面三个配置。
1. 命名模板,把"找文件"这件事干掉
在 config.example.yml 里,命名规则是可编程的:
filename_template: "{date}_{title}_{id}" folder_template: "{date}_{title}_{id}" author_dir: "nickname"{date}用的是作品发布时间而不是下载时间,{id}保证文件名唯一。author_dir还支持三种粒度:默认的昵称、稳定的 sec_uid、以及"昵称_sec_uid"(重度用户推荐,重名不会合并,改名不会分裂)。桌面版的设置页可以直观看到这些选项:
2. SQLite 数据库 + 增量下载,跟重复劳动说再见
工具内置了一个 SQLite 数据库(默认文件dy_downloader.db),每次下载都会记录作品 ID。它的去重是"数据库记录 + 本地文件"双重检查,同一作品在不同模式下也不会重复下载。再配合增量开关:
increase: post: true like: true mix: true music: true下次运行只下载新发布的作品。我现在的日常操作变成了:每周五跑一次同一个命令,新作品自动进来,旧作品自动跳过。桌面版的"作品档案"页可以看到所有下载记录,还支持按作者、关键词、发布时间筛选:
3. 一键下载多个模式
作者主页批量下载的mode可以同时开多个:
link: - https://www.douyin.com/user/你的目标博主主页 mode: - post # 发布作品 - like # 点赞作品 - mix # 合集 - music # 音乐原声跨模式自动去重,同一个作品 ID 不会下载两遍。对剪辑师来说,这意味着"封面、原声、视频"一次配齐。
当翻页被限制在 20 条,浏览器兜底救了我
我很快遇到了第一个坎:某位博主的作品超过 20 条,但工具只拉到了 20 条就停了。
查了文档才知道,这是抖音的翻页风控,平台会限制 API 的翻页次数。项目给的标准解法是开启浏览器兜底:
browser_fallback: enabled: true headless: false开启后,当 API 翻页受限,工具会自动启动一个浏览器窗口滚动采集。把headless设为false是为了让你能手动完成滑块验证——验证通过后,翻页就正常了。我照做之后,那位博主的 274 条作品全部拿到。
这个机制的设计思路很聪明:API 快,就优先走 API;API 被限制,浏览器顶上。两者互补,而不是二选一。
顺手解锁的隐藏技能
用顺手之后,我翻了翻文档,发现这工具能干的事比想象中多:
- 直播录制:
link指向live.douyin.com/{房间号}即可,录制 FLV/HLS,主播下播时已录制的数据不会丢。命令行截图里能看到它甚至支持选择清晰度:
- 评论采集:开启
comments.enabled后,每个作品会额外生成一份*_comments.json,还能拉二级回复。做选题调研时,评论区就是最好的素材库。 - 下载完成通知:支持 Bark / Telegram / Webhook 推送,我把它接到了企业微信群,长任务跑完手机会响一声。
- 热搜榜与关键词搜索:
--hot-board 30可以导出热搜快照,--search "关键词"能按关键词搜作品并导出 JSONL——做追热点选题时很实用。 - REST API 服务模式:
python run.py --serve --serve-port 8000可以把下载能力暴露成 HTTP 接口,方便接入自己的自动化流程。
这些功能我并非全用,但"需要时恰好有"的感觉,比"功能多到用不上"踏实得多。
用了两个月,我总结出 5 条避坑笔记
笔记一:Cookie 过期了,别手动抠浏览器。抖音的登录态通常 7 到 30 天失效,直接重跑python -m tools.cookie_fetcher --config config.yml,比手动复制 Cookie 省事十倍。
笔记二:只删数据库不会触发重新下载。项目去重时会扫描本地文件名里的作品 ID。想重新下载某个作品,要同时删本地文件和数据库记录,否则跑了也是空转。
笔记三:收藏夹模式有专属限制。collect/collectmix只能下载当前登录账号的收藏,而且必须单独使用,不能和post/like混用。
笔记四:HLS 直播源只保存播放列表文件。录制的 FLV 可以直接播放,但 HLS 源需要你自己用 ffmpeg 做后处理,别指望下载完就能直接剪。
笔记五:调试时加-v,平时保持安静。默认的progress.quiet_logs会静默进度日志,避免刷屏;排查问题时再用--show-warnings或-v打开完整日志。
效率账本:一次 50 条素材下载的前后对比
拿我接单的真实场景来算一笔账(以下为实测数据,基于我自己机器上的运行结果):
| 环节 | 之前的在线解析方式 | 使用 douyin-downloader 后 |
|---|---|---|
| 50 条视频下载 | 约 2.5 小时(含广告等待、逐条操作) | 约 12 分钟(并发 5 线程) |
| 去水印 | 每次手动找解析源,约 1 分钟/条 | 自动选择无水印源,0 手动操作 |
| 文件命名与分类 | 乱码命名,需逐个重命名,约 40 分钟 | 自动按"日期_标题_ID"归档,0 分钟 |
| 查重(防止重复下载) | 靠记忆,经常出错 | SQLite 数据库自动跳过,0 分钟 |
| 合计 | 约 3 小时以上 | 约 20 分钟 |
把接口请求频率限制、断线重试(指数退避 1s / 2s / 5s)、下载完整性校验都算上,这个数字只会更悬殊。当然,具体耗时受网速、博主作品量、线程数影响,上文是我本机的实测值,仅供参考。
写在最后:下载之前,先想清楚版权
说实话,这个工具最大的价值不是"省时间",而是把"省下来的时间"还给你——让剪辑师专注于剪片子本身,而不是在解析网站之间来回跳转。
最后是几句正经提醒:douyin-downloader 是开源项目(MIT 协议),但它只是技术工具。请尊重原创作者的版权,遵守平台的服务条款,把下载的内容用于个人学习、研究和创作素材,不要用于商业侵权。我接的那单外包,也事先和博主确认了授权。
如果你也常被"素材下载"这件事折磨,不妨照着这篇文章的命令试一次。第一条命令跑通的时候,你会和我一样,有种"早该用上"的感觉。
【免费下载链接】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),仅供参考