拓冰建站拓冰建站
首页 / 资讯中心 / 正文

抖音下载器 douyin-downloader 实战复盘:批量下载、直播回放、自动去重我全都试了一遍

抖音下载器 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 这个完全免费的抖音下载器才发现原来下载这件事可以做得这么省心——视频、图集、合集、音乐、直播回放、作者主页批量下载一条命令全搞定。这篇文章就是我这两周的真实使用复盘从装环境到批量下载踩过的坑全都写给你。我第一次跑通从装环境到第一个视频落地先交代背景我的电脑是 Windows装了 Python 3.10平时只会在命令行敲几个基本命令。douyin-downloader 不需要装任何图形界面拿到手就三步。第一步是拿代码和装依赖git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt装依赖的过程我等了大概两分钟期间没有任何需要手动确认的选项。第二步是复制一份配置文件cp config.example.yml config.yml第三步也是我一开始最头疼的一步——抖音下载需要登录后的 Cookie就是浏览器里记录你登录状态的那串身份凭证。好在项目提供了自动获取的工具python -m tools.cookie_fetcher --config config.yml它会自己弹出一个浏览器窗口我在里面扫码登录抖音回到终端按一下回车Cookie 就自动写进配置里了。整个过程不需要我复制粘贴任何东西。接着我在 config.yml 里把链接换成自己想下的那个视频然后运行python run.py -c config.yml屏幕上一个进度条慢慢往前爬最后弹出下载完成的统计信息我看了一眼时间从开始到结束不到一分钟。我第一次体验到原来可以这么顺的感觉就是从这一刻开始的。想一次保存一个作者的全部作品时跑通单个视频之后我开始琢磨更贪心的需求把某个博主主页上所有作品都存下来。这时候就需要理解一下配置里mode下载模式这个概念了它告诉程序你要下载哪一类内容。我一开始以为只能下发布的作品后来翻配置文件才发现一个用户主页可以拆成四种模式link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx # 作者主页链接 path: ./Downloaded/ mode: - post # 该博主发布的作品 - like # 该博主点赞过的作品 - mix # 该博主创建的合集 - music # 该博主使用的音乐原声 number: post: 50 # 只下 50 个发布作品 like: 0 # 0 表示不限制数量我试了把post设成 50、like设成 0跑起来之后发现它并不是一条条排队下载而是多个任务并发进行默认 5 个线程同时干活。我盯着屏幕上的批量进度条一个个走到 100%那种感觉就像自动流水线在替我打工。下完之后我去看了一眼输出目录发现它已经自动按作者名建了文件夹作者名下面又按post、like、mix这些模式分目录每个作品单独一个以日期_标题_作品ID命名的子目录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_avatar.jpg └── 2024-02-07_作品标题_aweme_id_data.json视频、封面、配乐、作者头像、原始元数据 JSON 一应俱全。以前我手动整理下载文件时最烦的就是文件名是一串乱码、不知道是谁发的、不知道哪天发的这个工具直接把信息全烙在文件名里了找起来特别方便。想让它没人管也能自动跑的时候第一批下载完之后的第二天我发现自己面临一个新问题那个博主又发了新作品我要是再全量跑一遍会把已经下过的几十个文件重新下载一次纯粹浪费时间和硬盘。这个问题的解法在配置里叫增量下载increase配合 SQLite 数据库去重一起用。SQLite 是一个轻量级的本地数据库文件程序会把每次下载过的作品 ID 记进去下次运行时先比对一遍已经有的直接跳过。我把配置改成这样increase: post: true like: true mix: true music: true database: true # 开启 SQLite 去重与历史记录 database_path: dy_downloader.db改完之后我再跑了一次同样的主页链接结果屏幕上哗啦啦闪过一排跳过已存在几十个旧作品几秒钟就扫完了只下载了新增的那几个。我后来每个月用一次这个功能相当于给关注的博主设了一个只下新的的自动归档流程硬盘不膨胀时间不浪费。遇到特殊情况时直播回放、评论采集、下载被限制直播回放真的能存下来开头提到我最初就是想存直播回放。douyin-downloader 支持把live.douyin.com/{房间号}这种链接直接填进link然后它会按 FLV 格式把直播流录下来。配置里可以限制录制时长link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 最多录 1 小时0 表示录到主播下播 chunk_size: 65536 idle_timeout_seconds: 30最让我放心的一点是主播中途下播、网络断了、或者我按 CtrlC 中断已经录下来的部分会被自动保留不会说中断就全没了。需要说明的是这个功能在项目文档里标注为实验性我实测录常规直播没问题但如果你打算录很复杂的场景最好先小规模试一次。录完的文件保存在Downloaded/{作者名}/live/下面还附一份*_room.json记录当时的直播间信息。评论数据顺手一起抓了如果你下载作品不只是为了看还想做点分析比如看看评论区都在聊什么可以打开评论采集comments: enabled: true include_replies: false # true 会多抓二级回复请求量更大 max_comments: 500 # 0 表示不限 page_size: 20开启后每个作品旁边会多生成一个*_comments.json文件里面是结构化的评论数据。我拿它存过一批美食教程视频的评论区后来想找哪些视频的评论区在问食材哪里买直接翻 JSON 比一条条看视频快多了。下载到一半被限流批量下载几十个作品时我遇到过只能抓到前 20 条的情况这是抖音翻页风控的典型现象。解决办法是确保配置里浏览器兜底是开着的browser_fallback: enabled: true headless: false # 保持 false让浏览器窗口弹出来 max_scrolls: 240 idle_rounds: 8 wait_timeout_seconds: 600这个功能的意思是当 API 接口翻页拿不到更多数据时程序会启动一个真实浏览器自动往下滚动页面来抓取作品。注意它弹出来的时候如果页面出现验证码要手动完成验证别急着关窗口。我第一次就是因为弹窗一出来就把它关了结果什么都没抓到。我踩过的几个坑你尽量别踩坑一配置文件格式写错一个字母整个白跑。YAML 对缩进很敏感我第一次写配置时mode:下面忘了缩进程序直接报错退出。建议先用cp config.example.yml config.yml生成一份模板只在模板上改值不要自己从头敲。坑二Cookie 过期了却不自知。我用了几天后突然开始大量下载失败排查半天才发现是登录状态过期了。这时候不用重新配置一堆东西直接再跑一次python -m tools.cookie_fetcher --config config.yml重新自动获取就行。坑三想重新下载某个视频却发现程序假装没看见。因为程序同时用数据库记录和本地文件做双重去重所以我光删了数据库记录、没删本地文件它依然会跳过反过来只删文件不删记录它反而会重新下载。想重新下载两条都要处理sqlite3 dy_downloader.db DELETE FROM aweme WHERE aweme_id 作品ID;坑四终端日志刷屏刷得眼花。批量下载时默认配置里progress.quiet_logs: true已经开了静默模式但如果你自己在别处把它关了或者调试时加了-v参数那进度信息会一条接一条滚。日常使用保持静默确实需要看详细日志时再临时开。进阶玩法把它变成你的下载后端跑熟了之后我还发现了一些可以往外扩展的玩法这里挑几个说清楚适合什么人用REST API 服务模式pip install fastapi uvicorn之后运行python run.py --serve --serve-port 8000程序就变成一个本地服务可以用 HTTP 接口提交下载任务、查询任务状态。适合想把这套下载能力集成到自己脚本或系统里的人。热搜榜和关键词搜索python run.py --hot-board 30能拉取抖音热搜榜前 30 条python run.py --search 猫咪 --search-max 100能按关键词搜索作品结果都导出成 JSONL 文件。适合做内容选题观察的人。完成通知推送配置notifications之后下载完成或失败时能把结果推到 Bark、Telegram 或企业微信 Webhook。适合跑批量任务时不守在电脑前的人我就是配了 Bark手机端直接收提醒。视频转写可选功能调用 OpenAI 的语音转文字接口把视频转成文字稿。适合想给下载的课程类视频做文字笔记的人。另外这个项目还带一个桌面版 Douzy基于同一套后端界面里可以直接粘贴链接、同步关注列表、看任务中心和作品档案。如果你完全不想碰命令行可以等它的正式版但我个人觉得命令行版其实已经足够顺手了。想继续深入的话看这些就够了配置模板config.example.yml几乎每个选项都有注释先读它使用说明USAGE.md完整的功能对比和版本说明核心源码douyin-downloader/core/下载主流程、链接解析、API 客户端都在这里项目总结PROJECT_SUMMARY.md架构和落盘策略写得挺清楚我的学习路径建议第一天只下单个视频把配置模板里每个选项都过一遍第二周开始试用户主页的四种模式理解post、like、mix、music的区别第三周再碰增量下载和直播录制。别一上来就全上容易像我一样被报错劝退。这套工具现在是我管理抖音内容的固定流程了每周跑一次增量下载归档关注的博主遇到喜欢的直播直接录回放要整理素材就按作者和时间翻文件夹。整个过程免费、开源、不碰网页端。如果你也受够了手动保存的麻烦就去把项目克隆下来从下第一个视频开始试试。最后提醒一句请遵守平台规则、尊重创作者版权下载的内容仅限个人学习研究使用别拿去二次传播或商用。工具帮你省时间合规的底线还是要自己守住的。【免费下载链接】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),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门