抖音批量下载怎么玩?3 步上手 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 就是一个开源抖音下载工具,主打抖音无水印视频下载与创作者主页批量备份,配置一次,之后几乎不用再碰配置文件。
从一个"错过"讲起
上个月,朋友老周在群里发来一条链接:他追了三年的一位历史类博主,把全部长视频整理成合集,宣布三天后退网删号。他问我能不能把这些内容完整存下来。我打开主页一看——两千多条作品,人肉保存显然不现实。
那天晚上,我刚好在电脑上跑着 douyin-downloader。把主页链接丢进配置文件,第二天早上打开文件夹,两千多条视频连同封面、音乐、元数据,整整齐齐躺在以作者昵称命名的目录里。老周看完直呼"这工具得给我也装一个"。
这篇文章就把这套流程从头讲一遍。不讲空话,只讲怎么跑通、怎么用好。
第一条视频,几分钟就能落盘
先把环境跑通,再研究高级功能,顺序别反。
打开终端,克隆项目并安装依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader/douyin-downloader pip install -r requirements.txt接着获取 Cookie。这一步推荐走自动流程,会弹出浏览器、扫码登录,之后工具自动把 Cookie 写进配置,全程不用手动复制粘贴:
python -m tools.cookie_fetcher --config config.yml小提醒:Cookie 只保存在你本地电脑上,工具不会把它发给任何第三方服务器。
复制一份配置模板,把link换成你想下载的视频链接:
cp config.example.yml config.ymllink: - https://www.douyin.com/video/xxxx path: ./Downloaded/然后运行:
python run.py -c config.yml看到进度条走动、文件一个个落盘,第一条无水印视频就算到手了。
截图:命令行版的实际运行界面,能清楚看到任务进度、已下载文件和统计信息。
如果之后想启用"浏览器兜底"(后面会讲),顺手补一句pip install playwright && python -m playwright install chromium即可。
它到底能做什么:先看一张表
跑通第一条之后,你大概想知道这个工具的上限在哪。我整理了一张能力速览表:
| 能力 | 一句话说明 |
|---|---|
| 单条视频 / 图文 | 粘贴链接直接下,自动挑选无水印、高码率的视频源 |
| 短链还原 | v.douyin.com这类短链接自动解析后下载 |
| 主页批量下载 | 作品 / 点赞 / 合集 / 音乐四种模式,可自由组合 |
| 收藏夹下载 | 当前登录账号的收藏作品与收藏合集 |
| 直播录制 | FLV / HLS,主播下播自动收尾并保留已录数据 |
| 评论采集 | 按作品抓评论,可选二级回复,输出 JSON 文件 |
| 热搜榜与搜索 | 一条命令导出热搜快照,或按关键词搜索作品 |
| 附加资源 | 封面、背景音乐、头像、原始 JSON 元数据 |
| 智能去重 | SQLite 数据库 + 本地文件双重比对,避免重复下载 |
| 断点与校验 | 中断可续,Content-Length 比对,损坏文件自动重拉 |
| REST API | 以服务模式运行,提交链接、查询任务状态 |
| 完成通知 | 推送到 Bark / Telegram / Webhook |
截图:桌面版 Douzy 的下载配置页,粘贴链接后会自动检测,并选择要下载的内容类型。
如果你更习惯图形界面,项目还配套了一个桌面版 Douzy(目前内测中),用的是同一套后端,粘贴链接即可开始,还能同步关注列表、可视化跟踪进度。命令行版和桌面版并不冲突,各取所需就好。
进阶玩法:按使用场景挑着用
追更存档:把创作者整页搬回家
这是最常见的需求——看中一位创作者,想把主页作品全部存下来,之后还能持续跟进新作品。
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 0 # 0 表示全部下载 increase: post: true # 增量模式,只补新增 start_time: "2024-01-01" database: true几个关键点:
mode可以组合:post(作品)、like(点赞)、mix(合集)、music(音乐)可以同时开启,同一个作品在不同模式下不会重复下载。increase负责追更:第二次运行同一配置时,已下载的作品会被数据库自动识别并跳过,只补新发布的。start_time/end_time按发布时间过滤,只想要某段时间的内容时很有用。author_dir控制作者目录命名:默认用昵称(直观),重度用户可以改成nickname_uid(直观且唯一,改名也不怕目录分裂)。
截图:桌面版的关注列表页,可以按粉丝数排序、搜索,并一键对关注博主发起下载。
素材库搭建:只要音乐、封面和元数据
做剪辑、做收藏的人常有个需求:视频本身不一定要,但背景音乐、封面图、文案数据得完整。这个工具可以把"附加资源"单独拎出来存。
music: true # 背景音乐 cover: true # 封面图 avatar: true # 作者头像 json: true # 作品元数据 folderstyle: true配合filename_template(默认{date}_{title}_{id}),每个作品会形成一个独立子目录,日期、标题、ID 一目了然:
Downloaded/ └── 作者昵称/ └── post/ └── 2024-06-15_作品标题_123456789/ ├── 2024-06-15_作品标题_123456789.mp4 ├── 2024-06-15_作品标题_123456789_cover.jpg ├── 2024-06-15_作品标题_123456789_music.mp3 └── 2024-06-15_作品标题_123456789_data.json工具还会在下载目录生成一份download_manifest.jsonl,每行一条记录,包含日期、ID、标题、标签、文件路径等字段,方便后期写脚本统计或检索。
截图:下载完成后自动生成的目录结构,每个作品一个文件夹,按日期前缀排序,归档非常省心。
文件名模板里的可用变量也不少:{id}{title}{author}{date}{year}{month}{day}{time}{timestamp}{type}{mode}。只要记住一条铁律——模板里至少要保留{id},避免重名覆盖。
截图:桌面版的文件命名设置页,模板和可用变量都列得很清楚。
自动化处理:定时任务、API 与通知
如果你是那种"懒得每天手动跑"的人,可以把它变成一台会自己干活的小机器。
服务化运行:安装fastapi uvicorn后,一条命令启动:
pip install fastapi uvicorn python run.py --serve --serve-port 8000之后通过POST /api/v1/download提交链接,用GET /api/v1/jobs/{job_id}查任务状态。把这一步接进你自己的脚本、定时器或聊天机器人,都不难。
完成通知:下载结束想第一时间知道?配置文件里开启通知即可:
notifications: enabled: true providers: - type: bark url: https://api.day.app/YOUR_DEVICE_KEY - type: telegram bot_token: "123456:ABC..." chat_id: "987654321"语音转写:如果还想把视频内容变成文字,可以开transcript,调用 OpenAI 转写接口,为每个视频生成.txt和.json转写文件,做检索和二次剪辑都很方便。
热搜与搜索:两条命令就能导出热点数据:
python run.py --hot-board 30 -p ./Downloaded python run.py --search "猫咪" --search-max 100 -p ./Downloaded结果以 JSONL 落盘,适合做内容选题参考或数据分析。
截图:桌面版任务中心,进行中、成功、失败一目了然,可随时查看任务详情。
直播与评论:两个容易被忽略的玩法
直播录制是个惊喜功能。把链接换成直播间地址,配好时长限制,就能挂机录制:
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 0 表示录到主播下播录制的 FLV 会存进Downloaded/{作者}/live/,主播下播、网络空闲或手动中断时,已经录下的数据都会保留,不会白录。唯一要注意的是 HLS 源只保存 playlist 文件,需要再用 ffmpeg 转码。
截图:命令行中识别直播链接、选择清晰度并开始录制的过程。
评论采集则是做运营和分析的好帮手。在配置里打开comments.enabled,每个作品会额外生成一份*_comments.json,可以设置是否拉取二级回复、最多采集多少条。
避坑快答:五个高频问题
把社区里问得最多的几个问题压成最短的回答:
1. 突然报 403 或"未登录"?Cookie 过期了,重新跑一次python -m tools.cookie_fetcher --config config.yml。正常情况下 7~15 天更新一次比较稳妥。
2. 为什么只能抓到 20 条作品?大概率是翻页被限制了。打开配置里的browser_fallback.enabled,浏览器弹窗出现时手动过一下验证,不要急着关窗口。
3. 批量下载到一半断了怎么办?直接重跑同一配置。工具自带完整性校验,不完整的文件会自动清理并重新下载,已完成的会跳过,不用从头再来。
4. 收藏夹模式有什么坑?collect/collectmix只能单独使用,不能和post/like混开,而且只支持当前登录 Cookie 对应的账号。
5. 下载速度不理想?试试调整thread(默认 5)和retry_times(默认 3),同时在网络稳定的时段运行,比反复重试更有效。
写在最后
这个项目解决的是一个很朴素的问题:别让喜欢的内容悄悄消失。它本身开源免费,核心能力覆盖了抖音批量下载的绝大多数场景——从单条保存到整页备份,从追更增量到自动化任务,一次配置,长期受益。
动手之前,也请记得尊重创作者:下载内容请用于个人学习、研究或备份,不要拿去商用,更不要二次传播侵权。工具是手段,尊重是底线。
我的建议很简单:今天先跑通第一条视频,明天试着备份一位你真正喜欢的创作者。你会发现,抖音批量下载这件事,真的不需要等"有空了再做"。
现在,打开终端,把第一条视频存下来吧。
【免费下载链接】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),仅供参考