资讯动态

douyin-downloader 批量下载与音频提取指南

发布时间:2026/10/9 1:23:37 来源:尧图企业网站定制
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 就是一个命令行抖音批量下载工具无水印拉取视频、图文和原声带 SQLite 去重、限速重试和 Playwright 浏览器兜底把一个主页链接进去一整个目录出来这件事做得比较稳。图douyin-downloader 的桌面版 Douzy 中抖音主页批量下载的选项面板——作品/喜欢/合集/音乐四种模式、作品类型筛选与数量上限5 分钟跑通最小案例克隆仓库并安装依赖浏览器兜底需要 Chromiumgit clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader python -m pip install -r requirements.txt python -m pip install playwright python -m playwright install chromium复制示例配置得到自己的config.yml不改示例文件避免覆盖cp config.example.yml config.yml登录保存 Cookie浏览器里扫码/登录后回终端按 Entertools/cookie_fetcher.py 会用 Playwright 自动接管python -m tools.cookie_fetcher --config config.yml修改config.yml里的关键字段link: - https://www.douyin.com/user/YOUR_SEC_UID # 目标博主主页 path: ./Downloaded/ # 保存目录 mode: [post] # 主页作品也支持 like/mix/music 等 number: post: 0 # 0 表示不限数量 start_time: # 日期过滤起点 YYYY-MM-DD end_time: # 日期过滤终点含当天 music: true # 同时下载每条作品的原声 thread: 5 # 并发下载数运行python run.py -c config.yml其余字段对照 config.example.yml 即可几个高频的配置用途increase.post: true跳过已下载作品实现增量更新redownload_missing_files: true磁盘文件丢了自动补下video_quality默认highestoriginal探测原片、失败回退browser_fallback.headlessfalse时弹出可见浏览器方便手动过验证一条主页链接从输入到落盘用python run.py -c config.yml处理一条https://www.douyin.com/user/xxx链接完整链路是这样的run.py → cli/main.py: ConfigLoader / CookieManager / Database ↓ 是短链(v.douyin.com)→ DouyinAPIClient.resolve_short_url() 展开 ↓ URLParser.parse() 判定类型与 IDuser/video/collection/music… ↓ DownloaderFactory.create() 按类型分发下载器 ↓ UserDownloader: 主页分页拉作品 → 不足时浏览器回补 ↓ RateLimiter 限速 → 逐条下载媒体 → FileManager 按模板命名落盘 ↓ Database 写历史供下次增量去重挑三个核心模块展开。URL 解析core/url_parser.py。它负责把一条链接变成结构化任务类型加一个主键。这么设计是因为不同链接后面接完全不同的下载器必须在入口就定下来。实现上就是按类型走各自的正则比如主页用re.search(r/user/([A-Za-z0-9_-]), url)抠出 sec_uid图文note/gallery与视频共用 aweme_id 字段。下载器工厂core/downloader_factory.py。负责类型到下载器类的映射user → UserDownloader、video → VideoDownloader、collection → MixDownloader一共七种。这样新增内容类型只动工厂一个分支主流程不感知。一个细节是能力门禁抖音放映厅lvdetail这类 DRM 加密内容会被直接拒掉并给出明确原因而不是让用户等一个下载器报错。API 客户端与风控core/api_client.py。它扛住所有对抖音接口的请求。403/429 是边缘限流的瞬时状态——同一套 Cookie 冷却后就能成功所以它复用普通重试档退避 1/2/5 秒、最多 3 次。登录失效则是另一路信号HTTP 200 但业务 status_code 为 2483抛出LoginRequiredErrorcli/main.py 捕获后在交互终端自动开浏览器重登、换 Cookie整条链接重跑一次。浏览器回补core/user_downloader.py。这是主页批量下载的关键保险。API 分页常被限得只返回少量作品此时_recover_user_post_with_browser用 Playwright 真实渲染主页并滚动收集 aweme_id然后与已有列表做差集只对缺失的条目补详情且补详情也过限速器。相关旋钮都在browser_fallback段max_scrolls: 240最多滚动轮数、idle_rounds: 8连续 8 轮无新作品即停、wait_timeout_seconds: 600。去重靠 SQLitedatabase: true时启用dy_downloader.dbincrease.post: true会同时查库和磁盘上的非空主媒体文件两条都确认才算下过。想强制重下把increase.post改成false即可不需要清库。三个高频用法配方一整主页按日期范围增量同步。适合定期归档某个账号link: - https://www.douyin.com/user/YOUR_SEC_UID mode: [post] number: post: 0 # 不限数量 start_time: 2026-01-01 end_time: 2026-10-08 # 含结束日当天 increase: post: true redownload_missing_files: true预期首次跑完拉齐区间内全部作品之后每次运行只补新增条目重复作品直接跳过。配方二主页作品 原声音频一起拿。只想要音频时最稳的路径是跟着作品走video: true music: true # 每条作品附带下载原声 json: true # 额外保存结构化元数据方便二次处理 filename_template: {date}_{title}_{id}预期每条作品的目录里多一份音频文件。⚠️ 注意 README 明确写了当前接口风控会阻止 CLI 下载单独的单个视频/合集/音乐/喜欢/收藏链接主页作品 music: true是目前 CLI 侧提取音频最顺的组合单独的/music/链接大概率拿不到。配方三REST 服务 定时任务。把下载变成常驻能力python -m pip install fastapi uvicorn python run.py --serve --serve-port 8000 # REST 作业接口config 里 server.max_jobs: 500# 每天 02:30 增量同步一次依赖 increase 开关无需清库 30 2 * * * cd /path/to/douyin-downloader python run.py -c config.yml logs/sync.log 21预期服务起在http://127.0.0.1:8000作业状态可查询、完成态保留 24 小时job_ttl_seconds: 86400cron 每天只下增量。高频报错与处理Cookie 失效提示需要登录业务码 2483。原因是 msToken/ttwid 等凭证过期。处理重跑python -m tools.cookie_fetcher --config config.yml重新登录交互终端下 CLI 检测到后会自己开浏览器重试一次但非交互环境比如容器里只会报错需要手动更新config/cookies.json。主页只拉回几条作品。原因是 API 分页被风控限制。处理保持browser_fallback.enabled: true、headless: false在弹出的浏览器里手动完成验证README 也如实说明当前验证拦截仍可能导致失败重试和刷新 Cookie 都解决不了这一类。大量 403/429。原因是触发边缘限流。处理把thread降到 5 以内默认就是 5retry_times: 3自带 1/2/5 秒退避频繁出现就停一会儿再跑。这类拦截是临时的换 Cookie 没用。单个视频/合集链接直接失败。原因平台安全门禁对 CLI 直连的aweme/detail、mix/aweme、music/detail等接口返回 403Argus 门禁这是能力边界而非配置问题。处理改用主页链接走浏览器回补或日常下载改用桌面版 Douzy想确认原因就加-v看详细日志python run.py -c config.yml -v。依赖装不上或运行报语法错误。原因Python 版本低于 3.9。处理用 3.9 重建环境。douyin-downloader 的 CLI 是一个能力边界写得比较诚实的批量下载器主页作品批量是主战场单条链接受平台风控约束音频提取跟着作品走最稳。长期使用时建议固定主页链接 日期范围 增量开关这套组合完整字段说明和开发指南pytest、ruff都在仓库根目录的 README 与 config.example.yml 里clone 地址即本文开头的 git 地址。【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑