douyin-downloader完整教程:快速掌握无水印视频下载与主页批量归档
2026/9/15 16:15:09 网站建设 项目流程

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去重机制。

批量下载与音频采集的适用场景

  • 作者主页全量归档/user/{sec_uid}链接配合mode: [post, like, mix, music],一次任务同时拉取发布、喜欢、合集、音乐四类内容,相同作品跨模式自动去重。
  • 单链接无水印本地化/video/note/collection/musicv.douyin.com短链均可直接解析,封面、头像、JSON 元数据按需保存。
  • 当前账号收藏夹整理collect/collectmix模式批量下载收藏作品与收藏合集,仅限当前登录 Cookie 对应账号,且必须单独使用。
  • 辅助数据采集:直播录制(实验性)、热搜榜导出、关键词搜索 JSONL、按作品评论采集,适合素材检索类工作流。
  • 不适合绕过风控的场景:API 对翻页有频率限制,浏览器兜底目前仅针对post模式验证。主页抓取停在 20 条左右通常是触发了风控,需要人工过验证码,它不是无限速度的抓取器。

从零到首次成功:完成环境与Cookie认证配置

运行环境要求 Python 3.8+,跨 macOS / Linux / Windows。最小可运行链路只有 6 条命令:克隆仓库、装依赖、复制示例配置、自动获取 Cookie、跑通一次任务。

git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml python run.py -c config.yml

其中Cookie 认证配置由倒数第二条命令完成:cookie_fetcher 打开抖音登录页,登录完成后自动把msTokenttwid等字段写回配置文件。若希望翻页受限时启用浏览器兜底,需额外执行pip install playwrightpython -m playwright install chromium。config.example.yml 对所有配置项都有行内注释,首次运行只需修改linkpathmode三处。

核心任务:完成常见下载目标的做法

批量下载作者主页全部作品

把配置里的link换成主页地址,用modenumber决定抓取范围:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 0 # 0 表示不限数量

post为发布作品;likemixmusic可与post并列写在同一任务里,同一个aweme_id不会出现重复下载。当前账号收藏夹则单独使用collect/collectmix,链接为/user/self?showTab=favorite_collection

项目另提供基于同一后端的桌面客户端(Douzy,内测中),粘贴链接即可建任务并可视化跟踪:

调整范围、画质与增量行为

日常调参集中在配置文件的四处:

  • 时间范围start_time/end_time,格式YYYY-MM-DD,只保留区间内发布的作品。
  • 视频画质video_quality支持original(探测原片)、highest(最高转码档,默认)、lowest以及1080p等具体分辨率,匹配不到时自动降级到最接近的可用档。
  • 增量更新increase.post: true配合database: true跳过已下载作品;redownload_missing_files: true时磁盘主文件缺失会自动补下。
  • 命名规则filename_template/folder_template可自定义{date}_{title}_{id}等变量,日期默认取作品发布时间而非下载时间。

定时自动归档

"每天固定时间更新某作者存档"这类需求交给 crontab(Linux)或任务计划程序(Windows)即可,以 Linux 为例:

0 2 * * * cd /path/to/douyin-downloader && python run.py -c config.yml >> download.log 2>&1

配置中默认的progress.quiet_logs: true会在进度阶段静默日志,适合无人值守;需要排查时临时加--show-warnings-v查看告警。

参数速查:最常改动的8个键

参数作用推荐值
thread并发下载数5(默认)
retry_times失败重试次数,指数退避 1s/2s/5s3(默认)
mode主页下载模式:post/like/mix/musicpost
number.post发布作品数量上限,0 为不限0
video_quality画质选择:original/highest/分辨率档位highest
start_time/end_time发布时间过滤,YYYY-MM-DD留空(不过滤)
browser_fallback.enabledAPI 翻页受限时启用浏览器兜底true
databaseSQLite 去重与下载历史记录true

实用技巧与常见问题

  • 只抓到 20 条作品:这是翻页风控的典型表现。保持browser_fallback.enabled: trueheadless: false,浏览器窗口弹出后手动完成验证,且不要立刻关闭窗口。
  • Cookie 失效:重新执行python -m tools.cookie_fetcher --config config.yml,登录一次即自动写回配置,无需手动逐字段填写。
  • 重新下载指定作品:跳过判断依赖数据库记录 + 本地文件名双重检查,需同时删除本地文件与dy_downloader.db中的记录;只删数据库不删文件不会触发重新下载。
  • 直播录制:FLV 文件可直接播放;HLS 源只保存 playlist,需用 ffmpeg 后处理。webcast 接口官方标记为 experimental,未覆盖所有场景。

实现一瞥:调度与去重的实现方式

下载主流程按链接类型分发:downloader_factory.py 依据 url_parser.py 的解析结果选择对应下载器;主页各模式是 core/user_modes/ 下的独立策略类,通过注册表挂载,新增一种下载目标只需实现一个策略。去重与完整性保障分布在 storage/database.py(aweme 明细 + 任务历史)和 downloader_base.py(Content-Length 校验文件完整性,不完整文件自动清理并重试);Cookie 与 msToken 生命周期由 auth/ 模块管理。

走向常态化归档

首次跑通后,可把increasestart_time组合起来做周期性增量归档,再开启notifications让任务完成后推送提醒。完整功能清单与限制说明见仓库内的 README.zh-CN.md。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询