抖音批量下载完整上手指南:30 分钟备份一个作者的全部作品(无水印)
【免费下载链接】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就是为这件事写的开源工具——作者主页全量批量下载、无水印、视频/图文/音乐/封面一并打包,还内置了去重、重试和断点续传。这篇指南会带你从零跑通第一个下载任务,再逐步解锁增量备份、直播录制这类进阶玩法。
读完这篇,你能带走 6 个具体能力
- 用一条命令,把一个抖音视频存成无水印的本地文件
- 15 分钟内配好环境,把某个作者主页的几百个作品批量搬回家
- 彻底搞懂 Cookie 是怎么回事,不再被"未登录"三个字劝退
- 学会增量下载:作者更新了作品,你一条命令就把新的补全
- 遇到"只抓到 20 条""下载到一半断了"时,知道该往哪排查
- 摸清直播录制、评论采集、REST API 这些高阶玩法在哪里开启
先花 30 秒判断:这个工具适不适合你
它适合这样的人:手机里攒了一堆舍不得删的抖音内容,想要的是"批量、可重复、不会漏"的本地备份,并且能接受"编辑一个 yml 文件"这种程度的操作。它也确实是为命令行设计的——别怕,全文只需要你复制粘贴命令,不需要懂编程。
如果你完全不想碰终端,项目还附带了一个桌面版客户端 Douzy(目前内测中),界面就是下面的截图,操作更直观,但功能迭代和稳定性不如命令行版。我的建议是:命令行版打底,桌面版尝鲜。
第一个实战任务:把一位作者的主页备份到本地
接下来的目标很具体:挑一位你喜欢的创作者,把他最近的 50 个作品完整下载到本地。每一步我都会告诉你"这段在做什么"以及"怎么验证它成功了"。
第 1 步:确认 Python 环境
项目要求 Python 3.8 以上。终端里敲这一条,有版本号输出就说明环境没问题:
python --version没有 Python 的话,先去官网装一个,全程默认选项即可,大概 5 分钟。
第 2 步:拿到代码与依赖
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader/douyin-downloader注意,项目仓库里套着一个douyin-downloader目录,V2 版本的代码都在里面,requirements.txt也在这里。接下来装依赖:
python -m pip install -r requirements.txt小提示:如果你网络不好,可以在命令末尾加上国内镜像源
-i https://pypi.tuna.tsinghua.edu.cn/simple加速。
还有一条可选但强烈建议的命令——项目靠 Playwright 做"浏览器兜底"(翻页被风控时自动开浏览器帮你过验证),装好后能省掉很多麻烦:
python -m pip install playwright python -m playwright install chromium第 3 步:配置只改一处
复制配置模板,然后打开config.yml:
cp config.example.yml config.yml这个文件有上百行,但新手只需要改link那一段。找到你喜欢的作者主页链接(在抖音 App 里点作者头像 → 右上角分享 → 复制链接),把它填进去:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post number: post: 50上面这几行的含义分别是:下载这个主页、保存到Downloaded/目录、post模式(下载作者发布的作品,不是点赞)、最多下 50 个。如果想全量下载,把post: 50改成post: 0即可。
第 4 步:搞定 Cookie,绕过"未登录"
抖音的接口需要登录态,也就是 Cookie。项目提供了自动获取工具,会打开一个浏览器窗口,你扫码登录抖音后,按一下回车,它会自动把 Cookie 写进config.yml:
python -m tools.cookie_fetcher --config config.yml放心,Cookie 只保存在你本机的配置文件里,不会上传到任何服务器。它一般不会马上失效,但某天下载报"未登录"了,重新跑一次这条命令就行。
第 5 步:先拿单个视频试链路
不建议上来就批量。把config.yml里的link临时换成一条分享链接(App 里"分享 → 复制链接"出来的那种https://v.douyin.com/xxxx/短链也支持,工具会自动解析),然后运行:
python run.py -c config.yml正常的话,你会看到类似下面这样的命令行界面:有进度条、有"跳过已存在"的去重提示,最后显示"成功 1/1"。
第 6 步:正式批量备份
链路通了,把link换回作者主页链接,number.post保持 50,再跑一次:
python run.py -c config.yml第 7 步:看看成果长什么样
下载完成后,目录结构是这样的——按作者、按模式、按作品分门别类,非常清爽:
Downloaded/ └── 作者名/ └── post/ └── 2024-02-07_作品标题_aweme_id/ ├── 2024-02-07_作品标题_aweme_id.mp4 # 无水印视频 ├── 2024-02-07_作品标题_aweme_id_cover.jpg # 高清封面 ├── 2024-02-07_作品标题_aweme_id_music.mp3 # 原声音乐 └── 2024-02-07_作品标题_aweme_id_data.json # 作品元数据注意文件名前缀的日期是作品发布时间,不是你下载的时间——这一点对后期整理特别友好。
进阶地图:从"会下载"到"用好它"
工具跑通之后,你值得拥有一张"能力地图"。我把它的高阶功能按四个方向归好类,每项都是一句话价值加最小配置,按需取用即可。
数据层:让备份越来越省心
增量下载——第一次全量备份后,作者每发新作品,你只需补新的。这是最有价值的一个功能:
increase: post: true database: true # 增量依赖 SQLite 数据库记录时间过滤——只想备份某段时间的作品,避免把作者三年前的黑历史也搬回来:
start_time: "2024-06-01" end_time: "2024-06-30"命名模板——不想用默认的{date}_{title}_{id}?支持{year}、{month}、{author}等变量随意组合,模板里记得保留{id}防止重名覆盖:
filename_template: "{date}_{title}_{id}" folder_template: "{date}_{title}_{id}"下载历史都会记在dy_downloader.db里,你可以随时查询哪些作品下过、什么时候下的:
sqlite3 dy_downloader.db "SELECT title, author_name, datetime(download_time,'unixepoch','localtime') FROM aweme ORDER BY download_time DESC LIMIT 20;"内容层:视频之外的东西也能要
直播录制——支持live.douyin.com直播间实时录制,主播下播时已录的数据会保留(FLV 可直接播放):
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 0 # 0 = 录到主播下播评论采集——需要做内容分析的场景,可以按作品抓评论,支持二级回复,输出结构化 JSON:
comments: enabled: true include_replies: false # true 会多拉二级回复,请求量翻倍 max_comments: 500自动化层:让工具自己干活
REST API 服务模式——把下载能力暴露成接口,方便接到自己的系统里:
python -m pip install fastapi uvicorn python run.py --serve --serve-port 8000启动后POST /api/v1/download提交链接就能创建任务,GET /api/v1/jobs查询状态,适合做自动化流水线。
完成通知推送——下载完自动通知你,支持 Bark / Telegram / Webhook:
notifications: enabled: true providers: - type: bark url: https://api.day.app/YOUR_DEVICE_KEY热搜榜与关键词搜索——不下载视频,也能抓取数据快照:
python run.py --hot-board 30 -p ./Downloaded python run.py --search "猫咪" --search-max 100 -p ./Downloaded可视化层:看得到进度,才不慌
命令行自带的 Rich 进度条支持任务统计、实时事件日志,还能用progress.quiet_logs: true关掉刷屏。如果你更习惯图形界面,桌面版 Douzy 的任务中心长这样——每个任务的状态、进度、事件流都一目了然。
翻车急救站:五个高频翻车现场与自救方法
下面这些场景,基本每个用这个工具的人都遇到过。按"症状 → 原因 → 解法"对照排查即可。
点下回车却什么都没发生?
症状:python run.py -c config.yml运行后像石沉大海,没有任何输出。原因:绝大多数情况是 Cookie 缺失或已失效。解法:重新跑一遍python -m tools.cookie_fetcher --config config.yml,扫码登录后确认config.yml里cookies段有内容。
只抓到 20 条作品就停了?
症状:明明设置了number.post: 0(全量),结果列表停在 20 条。原因:这是抖音翻页风控的典型表现,API 分页被拦了。解法:确认配置里browser_fallback.enabled: true、browser_fallback.headless: false。运行时会弹出浏览器窗口,出现验证码时手动完成验证,别急着关窗口,程序会继续往下翻。
下载到一半断了,留下一个坏文件?
症状:视频下到 80% 断网,重启后那个文件还在。原因:下载中断导致文件不完整。解法:不用手动清理。工具内置了完整性校验(比对 Content-Length),不完整的文件会被自动删掉并重试;配合retry_times: 3,重跑一次命令就能补齐。
第二次下载同一个作者,好像重复下了一遍?
症状:日志里出现大量"跳过已存在",但你还是有点慌。原因:这恰恰是去重在生效。工具通过SQLite 数据库记录 + 本地文件双重检查判断是否已下载。解法:什么都不用做。如果想强制重新下载某个作品,需要同时删掉对应文件目录和数据库里的记录(DELETE FROM aweme WHERE aweme_id='xxx';)——只删一边都不会触发重下。
进度条疯狂刷屏,看得头疼?
症状:终端像弹幕一样滚动,找不到关键信息。原因:默认其实已经开了progress.quiet_logs: true;如果你改过或者加了-v参数,就会进入详细日志模式。解法:确认quiet_logs为true,调试完去掉-v即可。
三件小事,今天就能做
- 今天:完成 clone + 装依赖 + 用一条单视频链接跑通链路,全程约 15 分钟。
- 本周:跑一次
cookie_fetcher配好 Cookie,挑一位作者,用post模式备份 50 个作品。 - 长期:打开
increase.post和database,让以后的"补新"变成一条命令的事。
最后提醒一句:内容请仅用于个人学习、研究或备份,尊重创作者的劳动成果。工具本身只是把"收藏"这件事做得更体面——好工具不是用来收藏的,是用来跑起来的。现在,去把你的第一条命令敲下去吧。🚀
【免费下载链接】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),仅供参考