抖音批量下载怎么落地:3 步装好,1 条命令出无水印视频
2026/9/20 18:54:05 网站建设 项目流程

抖音批量下载怎么落地:3 步装好,1 条命令出无水印视频

【免费下载链接】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 去重和浏览器兜底。适合长期给自己或他人内容做本地存档:一个链接加一份 YAML 配置,mp4、封面、原声、元数据都会按目录归好位。

从克隆仓库到第一条无水印视频

前提只有一个:Python 3.8 以上,macOS、Linux、Windows 都行。克隆下来装依赖,终端没有红色报错就算环境就绪:

git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader && pip install -r requirements.txt

然后拷一份带中文注释的配置模板:cp config.example.yml config.yml。这份文件每个字段都写了注释,你只需要动三处:link填一条你想下的视频链接、cookies留空(下面一节自动填)、path指向本地目录。具体怎么跑看 README.zh-CN.md,下载逻辑都在 core/ 目录里。启动:

python run.py -c config.yml

成功长这样:终端打印完成统计,Downloaded/下出现以作者昵称命名的目录,里面是无水印 mp4。不想改文件也能临时覆盖:-u追加链接、-t调并发,例如python run.py -c config.yml -u "https://www.douyin.com/video/760412345678901234567" -t 8

登录态最容易卡住,先解决它

抖音大量内容只对登录用户开放,Cookie 没配好,请求基本都会失败——这是新手卡住的第一名。项目自带自动抓取脚本 tools/cookie_fetcher.py,装完 Playwright 后一条命令搞定:

pip install playwright && python -m playwright install chromium python -m tools.cookie_fetcher --config config.yml

浏览器弹出后扫码登录,回终端按 Enter,Cookie 自动写进配置文件,全程不用手动复制粘贴。弹出后卡住,先确认playwright install chromium真的执行成功;写入时终端会提示缺少字段,msTokenttwid这几个必须到位。Cookie 会周期性失效,属于常态维护项:某天请求突然大面积报错,第一反应就是重跑一次这个脚本。

存一条、存一页还是存一场,看链接怎么填

存单条作品。把作品页链接直接填进link:视频用/video/、图文用/note/、合集用/collection/、音乐用/music/v.douyin.com短链也能自动解析。成功后Downloaded/下按作者建目录,mp4 和可选的封面、原声、JSON 元数据都落在作品子目录里。

存整页主页。三件事:链接填/user/{sec_uid}mode勾选内容类型,number给上限(0 表示不限):

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: [post, mix] number: { post: 50, mix: 20 }

postlikemixmusic四种可以混在一次里跑完,同一个作品跨模式不会重复下。注意collect/collectmix是收藏夹专用,必须单独使用,不能和前面四种混写。跑完按作者/post/作者/mix/分目录归档,这就是成功标志。

存整场直播。直播间链接直接填link,程序自动拉流,不用开录屏软件:

link: - https://live.douyin.com/123456789 live: max_duration_seconds: 0 # 0 = 录到主播下播

到时、下播或你按 Ctrl+C,已录下的字节都会保留成 FLV,放在Downloaded/{作者}/live/,旁边还有一份房间元数据 JSON。这个接口官方标了 experimental,极端场景可能有兼容问题,重要场次建议同时人工留一份。

配置只改这几处

必填三项:linkpathcookies,缺任何一个都启动不了。常用五项按下表改,其余字段保持默认也不会出错:

配置项改了会发生什么
mode(默认[post]决定抓主页的哪类内容,可多选
number.post每种模式的上限,0 表示不限
music/cover(默认 false)是否顺带存原声、封面
thread(默认 5)并发数,网络稳可提到 8
video_quality(默认 highest)最高转码档;选original会额外探测原片,每条多一次请求

另外两个按时间抓的开关:start_time/end_timeYYYY-MM-DD过滤发布时间,长尾巴主页可以分段抓。

长任务不中断:去重、重试、并发各管一段

去重为什么值得开。批量任务跑几十分钟,中途崩掉重跑,最怕硬盘堆出重复文件。database: true把每条下载记录写进 SQLite,increase.post: true让程序按"数据库记录 + 本地文件"双重检查跳过已下内容:

你删了什么结果
只删库记录磁盘文件还在,跳过不重下
只删本地文件记录还在但文件没了,会重下
两边都清彻底重下

重试怎么兜底。retry_times给 3,失败按 1s、2s、5s 依次指数退避再试;媒体下载还做 Content-Length 字节校验,长度对不上的残文件自动清理重来。失败时终端会打 "Attempt N failed",只要退避日志在滚,任务就没死。

并发怎么爬坡。thread从 5 起步,内置限速默认 2 请求/秒压着走,稳定后提到 8 就好。一上来拉满容易触发风控,风控截断时browser_fallback会自动开浏览器接管翻页,headless: false时弹窗里能手动过验证码。

翻车时按这个顺序处理

  1. 请求突然大面积报错—— 先当 Cookie 过期处理,重跑一次 cookie_fetcher 更新登录态,多数情况到此为止。
  2. 主页只抓到 20 条左右—— 翻页被风控掐了。确认browser_fallback.enabled: trueheadless: false,弹窗出现别急着关,手动过完验证;过不了就用start_time/end_time分段抓。
  3. 硬盘里出现重复文件—— 去重没生效。database开 true,配合increase走增量,新任务别再共用旧目录。
  4. 想重下某一条—— 是去重机制跳过了它。删掉本地含 aweme_id 的目录,再删库里的对应记录,README 的"重新下载"一节有现成 sqlite3 命令。
  5. 进度输出刷屏——progress.quiet_logs: true压掉;排查问题时反过来临时加-v--show-warnings

第一次跑之前的三件事

  • 先用一条视频链接验证 Cookie 和网络,再上主页批量;
  • number.post从 1~5 起步测试,稳定后再放开到 0;
  • 测试、日常、直播各建一份 YAML(config_test.ymlconfig_daily.yml),长任务记得开notifications推 Bark 或 Telegram,跑完手机就能收到。

本项目仅供技术学习与个人数据管理使用,请尊重内容版权与创作者权益。

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

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

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

立即咨询