☰
douyin-downloader 完整指南:如何 10 分钟批量下载抖音视频去水印
2026/10/9 1:23:02 网站建设 项目流程

douyin-downloader 完整指南:如何 10 分钟批量下载抖音视频去水印

【免费下载链接】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 是一个基于 Python 的抖音无水印下载工具:粘贴单条视频链接拿到干净的 mp4,粘贴作者主页链接则自动批量抓取作品。全部行为由一份config.yml驱动,内置 SQLite 历史库与磁盘文件双重去重,接口翻页受限时还有浏览器兜底。本指南带你从全新环境跑通一次主页批量下载,全程约 10 分钟。

🧭 先选路线:CLI、桌面版还是 API

同一个仓库提供三种用法,先对号入座:

  • 只要图形界面、粘贴链接就下→ 用 Douzy 桌面版。它覆盖抖音、TikTok、YouTube、Telegram、X 五个平台,目前 0.11.6 处于封闭测试阶段。
  • 要写脚本、挂定时任务、部署在服务器上→ 用 Python CLI。这是功能最完整的入口,但只支持抖音。
  • 要把下载接进自己的程序→ 用run.py --serve起的 REST API,需要另装 fastapi 和 uvicorn。

没有特殊需求就直接上 CLI:参数少、行为可控,后续内容都以它为主线。

📦 它到底能替你做什么

核心逻辑一句话:请求抖音接口取无水印源,按你指定的画质档位下载,落盘前先看"下过没有"。

  • 单条下载:视频、图文链接直接进link,短链(v.douyin.com)会先解析再下。
  • 主页批量:mode指定内容类型,post(作品)、like(喜欢)、mix(合集)、music(音乐)可并列写,同一作品跨模式出现不会重复下载。
  • 增量判断:磁盘上已有非空主文件的作品自动跳过,配合increase开关控制是否强制重下。
  • 去重双保险:SQLite 库(默认dy_downloader.db)记录下载历史,磁盘文件做最终校验。
  • 浏览器兜底:接口翻页被卡时,Playwright 开浏览器滚动主页补抓作品 ID。

🏁 从零到第一个 mp4:三步

第一步:装依赖

要求 Python 3.9+,Windows、macOS、Linux 均可:

git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt pip install playwright python -m playwright install chromium

前三行装好运行环境,后两行下载浏览器内核——扫码登录和翻页兜底都靠它。

第二步:扫码把登录态写进配置

抖音接口返回完整无水印源依赖登录态,项目自带扫码脚本:

cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml

弹出浏览器后扫码登录,回终端按回车,Cookie 就写进了config.yml。脚本逻辑在 tools/cookie_fetcher.py,登录态失效后重跑同一条命令即可。另外,交互终端里程序检测到登录失效会自动开浏览器重新登录,并只重试一次,不会死循环。

第三步:填链接,跑命令

把config.yml里的示例link换成你的目标:

link: - https://www.douyin.com/user/你的主页地址 mode: [post] number: post: 10
python run.py -c config.yml

它按配置逐个下载,成品落在Downloaded/{作者}/{日期}_{标题}_{id}/。主流程在 cli/main.py,各内容类型的抓取策略在 core/user_modes/。常用参数:-u在配置链接之外追加链接、-t调并发、-p换保存目录、-v开详细日志。

⚙️ config.yml 里最常用的七个字段

完整字段语义以 config.example.yml 的注释为准,日常基本只动这几个:

字段默认值什么时候改
mode[post]想批量拉喜欢/合集/音乐时加like、mix、music
number.post0(不限)给批量操作设上限,比如先试 10 条
start_time/end_time空按日期筛作品,YYYY-MM-DD,含结束日当天
video_qualityhighest设original额外探测上传原片,探测不到回退最高转码档;lowest或720p省流量
increase.posttrue设false强制重下并覆盖当前筛选范围,无需清空数据库
filename_template{date}_{title}_{id}自定义文件命名,模板必须含{id}防覆盖
thread/retry_times5/3失败偏多时降并发、看要不要加重试

另外两个值得知道:download_pinned默认false,不抓主页置顶作品;author_dir决定作者目录层用昵称还是sec_uid,重度用户建议nickname_uid。

🩹 下载出问题,先按这个顺序排查

Q:提示登录失效,怎么刷新登录态?重跑python -m tools.cookie_fetcher --config config.yml。交互式终端里程序发现失效也会自动开浏览器,重新登录后自动重试一次。

Q:主页只抓到少量作品,翻页像被卡住?确认browser_fallback.enabled: true且headless: false;弹出的浏览器里手动完成验证,等它滚动抓完再关窗。要说明的边界是:抖音风控目前可能阻断 CLI 下载单条视频、合集、音乐等,刷新 Cookie 或反复重试都解决不了这类拦截,浏览器兜底也不保证成功。日常大批量下载建议切到桌面版。

Q:个别视频始终下载失败?先用浏览器打开链接确认作品在线;再-t 3降并发并加-v看详细日志;最后核对retry_times和rate_limit是否被改过小。

Q:进度画面频繁重绘,看着像卡死?这是日志刷新触发终端重绘的正常表现,progress.quiet_logs默认就是开的,不用处理;排障时临时加-v即可。

🚀 用顺手之后:追更、查档与二次集成

  • 定时追更:increase.post: true加主页链接,丢进 cron 就是自动追更,只拉新发布的。
  • 回看历史:sqlite3 dy_downloader.db "SELECT title, author_name FROM aweme ORDER BY download_time DESC LIMIT 20;"能回看最近 20 条记录,表结构见 storage/database.py。
  • 热榜与搜索:python run.py --hot-board 30拉热榜、--search "猫咪" --search-max 50关键词搜索,结果存 JSONL。
  • 程序化提交任务:pip install fastapi uvicorn后python run.py --serve --serve-port 8000起 REST 服务,server.max_jobs默认保留 500 条任务记录。
  • 直播录制:实验性功能,HLS 源保存的是播放列表,不是可直接播放的视频,别指望拿来当直播录像用。

下载的内容建议仅限个人收藏与学习研究,遵守平台条款与版权规范,不做商业利用或二次传播。抖音接口变化快,定期git pull能跟上修复。

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

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

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

立即咨询