ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

抖音批量下载工具 douyin-downloader 实测:从一条视频到作者主页全量归档

抖音批量下载工具 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-downloaderdouyin-downloader 是一个把抖音批量下载这件事做扎实的开源工具单条视频、图集、合集、音乐都能下作者主页可以整页归档还自带去重、失败重试和浏览器兜底。这篇文章不打算堆功能清单而是按从最小闭环到规模化的顺序讲清楚它怎么用、为什么这么设计以及真正跑起来会遇到哪些坑。先说结论抖音下载的难点不在下载很多人以为抖音下载器就是粘贴链接、拿到文件实际用起来才知道真正的麻烦在别处短链v.douyin.com/...需要先解析出真实作品 ID视频源地址分水印版和无水印版得自己挑作者主页翻页会触发风控经常只给你前 20 条同一批内容下多了文件重名、重复下载、磁盘爆炸是常态。douyin-downloader 的思路是把下载拆成抓取清单和落盘两件事前一件交给 API 客户端和浏览器兜底后一件交给文件管理器、SQLite 数据库和一套命名模板。下载本身不复杂复杂的是抓全、去重、归档这个工具把功夫主要花在了这三处。设计取舍它负责什么、不负责什么动手之前先对齐边界。它不是一个有界面的傻瓜软件桌面版 Douzy 是另一套客户端这里讲的是命令行版而是一个 YAML 配置驱动的 CLI 工具。核心入口在 run.py业务逻辑集中在 core/模块划分如下表模块职责core/user_modes/各下载模式作品/喜欢/合集/音乐的策略实现storage/database.pySQLite 去重与历史记录control/限速、重试、并发队列auth/Cookie 与 token 管理tools/cookie_fetcher.py自动引导登录并写入 Cookie值得注意的两点取舍一是默认不会把能不能下包装成黑盒配置项全部摊开在config.example.yml里二是像直播录制、评论采集这类场景标注为实验性功能用不用你自己决定文档里不夸大。五步跑通你的第一次下载先别急着配复杂参数从一条视频链接开始。# 1. 获取代码并进入项目目录 git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader/douyin-downloader # 2. 安装依赖 pip install -r requirements.txt # 3. 复制配置模板 cp config.example.yml config.yml # 4. 自动获取 Cookie会打开浏览器引导登录 python -m tools.cookie_fetcher --config config.yml环境要求不高Python 3.8 以上即可Windows / macOS / Linux 都能跑。最后把配置里的link换成任意作品链接运行python run.py -c config.yml这是最小可用配置只下一条视频、带封面和元数据link: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/ music: true cover: true json: true thread: 5 database: true跑完之后去Downloaded/目录看结果视频、封面、音乐、元数据 JSON 会按作者分好类。如果这一步顺利说明环境没问题可以继续往下读。下载完的文件长什么样很多人下完就后悔因为文件堆在一起根本找不到。douyin-downloader 默认用作者目录 作品子目录组织文件配合命名模板效果大致如下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命名模板在配置里可以完全自定义可用变量包括变量含义变量含义{id}作品唯一 ID{author}作者昵称{title}作品标题{author_id}作者 ID{date}发布日期{type}内容类型{year}/{month}/{day}日期拆分{mode}下载模式默认模板是{date}_{title}_{id}必须保留{id}否则不同作品可能重名覆盖。作者目录的命名方式有三种可选nickname直观但重名会合并、sec_uid稳定但不直观、nickname_uid两者兼顾重度用户推荐。改名只影响后续下载不会迁移已有目录这点切换前要心里有数。重复下载和增量数据库在这里干了什么批量下载最怕跑两遍。douyin-downloader 的去重是双重检查SQLite 数据库记录aweme表加上本地文件名里的aweme_id。只删数据库不删文件会因扫描到本地文件而跳过只删文件不删数据库则会因为有记录但文件缺失而重新下载。重新下载单个作品sqlite3 dy_downloader.db DELETE FROM aweme WHERE aweme_id aweme_id;如果想长期只追新增内容用增量开关increase: post: true like: true mix: true music: true database: true # 增量模式依赖数据库记录增量模式会以数据库已有记录为基准只抓取新增作品适合把定期同步博主主页变成习惯。作品档案界面可以直接按作者、时间、类型筛选历史记录相当于给下载内容做了个轻量检索库。批量归档一个作者主页四种内容形态作者主页批量下载是主力场景。mode支持四种独立模式可以组合使用link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # 发布作品 - like # 点赞作品 - mix # 合集 - music # 音乐 number: post: 100 like: 0 # 0 表示全量跨模式自动去重同一个作品在不同模式下不会重复落盘。number设为 0 就是全量抓取不限制数量。两个容易踩的坑提前说明收藏夹模式有限制collect/collectmix只能配合当前登录账号的收藏夹链接/user/self?showTabfavorite_collection使用且必须单独使用不能和post/like等混用。直播录制是实验性功能live.douyin.com/{room_id}会录 FLV/HLS 流主播下播或 CtrlC 中断时已录数据会保留但 HLS 源只存 playlist需要自己用 ffmpeg 转码。遇到风控翻页卡壳时系统会怎么做作者主页只抓到 20 条就停是翻页风控的典型症状。douyin-downloader 的处理方式是浏览器兜底检测到 API 分页受限时自动启动浏览器模拟滚动采集必要时弹出窗口等你手动过验证码。browser_fallback: enabled: true headless: false # 弹窗时能手动操作 max_scrolls: 240 idle_rounds: 8 wait_timeout_seconds: 600配套的还有三件套默认 2 请求/秒的限速、指数退避重试1s / 2s / 5s、以及基于 Content-Length 的完整性校验——文件不完整会自动清理并重下。运行时的实时进度可以从任务中心看到每个 job 的状态和事件流。从手动任务到自动化管线如果你有定时或集成的需求这个工具提供了几个入口REST API 服务需额外安装fastapi uvicornpython run.py --serve --serve-port 8000接口作用POST /api/v1/download提交{url: ...}下载任务GET /api/v1/jobs/{job_id}查询任务状态GET /api/v1/jobs列出最近任务GET /api/v1/health健康探针完成通知支持 Bark / Telegram / Webhook 三种推送全部 provider 并发推送单个失败不阻塞主流程。Webhook 可以直接对接企业微信、飞书、钉钉的机器人地址。热搜与搜索--hot-board 30导出热搜榜快照--search 关键词按关键词搜作品结果都是 JSONL 格式方便后续分析。配合 cron 做定时同步一行命令即可0 2 * * * cd /path/to/douyin-downloader python run.py -c config.yml运行中常见的几个坑一张表说清症状原因与对策只抓到 20 条作品翻页风控确认browser_fallback.enabled: true且headless: false弹窗后手动完成验证进度条刷屏默认progress.quiet_logs: true会静默进度日志调试时再开-vCookie 失效重新运行python -m tools.cookie_fetcher --config config.yml转写文件没生成确认transcript.enabled: true、下载的是视频图文不转写、API Key 有效下载速度慢调低thread如 3降低并发配置proxy走代理文件重名覆盖检查filename_template是否包含{id}写在最后一个务实的起步建议别一上来就追求全量 增量 多模式 API。建议先挑一个你最常看的作者用单条post模式跑通流程确认文件组织符合预期后再逐步打开like、mix和增量开关。工具的价值在于持续使用而不是第一次跑出多大动静。最后说一句合规。抖音内容受版权保护这个工具适合用于个人学习、研究、备份自己有权保存的内容不适合用来批量搬运他人作品做商业用途。平台接口策略会变功能失效属于正常技术风险项目本身采用 MIT 协议用之前读一遍 README.zh-CN.md 和config.example.yml里的注释比任何教程都更接近真相。从一条视频开始跑通第一个闭环剩下的交给习惯。【免费下载链接】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),仅供参考
返回列表