当前位置: 首页 > news >正文

抖音无水印批量下载工具 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-downloader

第一次用 douyin-downloader 时,我只想保存一位美食博主最近发的 30 个视频。手动录屏有平台水印,在线解析网站画质压得一塌糊涂,一个个右键保存更是折磨。抱着试试看的心态敲下python run.py -c config.yml,十几分钟后,Downloaded文件夹里整整齐齐躺着 30 个无水印原画质视频、30 张封面和 30 段原声。这篇文章记录的就是我从零上手这款开源工具的完整过程,覆盖安装、配置、进阶玩法和踩坑修复,照着做你也能跑通。

30 秒看懂:它能做什么,适合谁

douyin-downloader 是一款面向实用场景的抖音下载工具,核心能力是去水印批量下载,支持视频、图文、合集、音乐(原声)、作者主页、收藏夹等多种内容类型,并自带进度展示、失败重试、SQLite 去重和浏览器兜底。

能力说明适合谁
单个视频/图文/合集/音乐下载粘贴链接即下,自动选无水印高清源普通用户,随手收藏
作者主页批量下载一次拉取发布、点赞、合集、音乐作品追更博主、素材收集者
收藏夹下载下载当前登录账号收藏的作品与合集重度用户
直播录制解析直播流,FLV 保存,下播保留已录数据直播回放收藏
评论采集 / 热搜 / 搜索导出评论 JSON、热搜榜 JSONL、关键词搜索数据分析爱好者
REST API 服务模式把下载能力封装成 HTTP 接口二次开发者

项目同时维护着两套入口:根目录的DouYinCommand.py(V1.0 稳定版,单视频下载最稳)和douyin-downloader/目录下的run.py(功能最全的重构版)。后面我会先讲两条最快路径,再分层递进讲配置。

最快跑通:两条路选一条,五分钟看到第一个视频落地

路径 A:V1.0 稳定版,三步下载单个视频

# 1. 安装依赖 pip install -r requirements.txt

这一步把 aiohttp、pyyaml 等核心依赖装进当前 Python 环境,是后续所有命令的前提。

# 2. 复制配置模板并编辑 link 与 path cp config.example.yml config.yml
# 3. 运行(默认读取当前目录 config.yml) python DouYinCommand.py

config.ymllink换成你的视频分享短链,程序会自动解析短链、抓取无水印地址并下载到path指定目录。整个流程全自动,几秒完成下载。

路径 B:重构版 run.py,一条命令下载作者主页

# 在 douyin-downloader/ 目录下 pip install -r requirements.txt cp config.example.yml config.yml python run.py -c config.yml

run.py是重构版主入口,-c指定配置文件。它聚合了批量、去重、重试、浏览器兜底等全部能力,适合作为长期主力工具。

无论走哪条路,你都会在控制台看到类似的进度输出:成功 1/1、用时、保存路径一清二楚。

第一步配置:Cookie 的三种获取方式

抖音需要登录态才能访问内容,Cookie 是运行前提。config.example.yml里写了三种方式,按优先级从上到下:

# 方式一:自动获取(推荐,需要 Playwright) cookies: auto # 方式二:直接粘贴整串 Cookie # cookies: "msToken=xxx; ttwid=xxx; odin_tt=xxx; ..." # 方式三:键值对逐项填写 # cookies: # msToken: xxx # ttwid: xxx # sid_guard: xxx

方式一最省事,前提是先装 Playwright:

pip install playwright python -m playwright install chromium

然后用项目自带的抓取脚本,扫码登录后自动写入配置:

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

登录抖音网页版后回到终端按 Enter,Cookie 自动落到配置文件里,无需手动复制粘贴。方式二、方式三适合你手里已经有一串有效 Cookie 的情况,注意三选一,不要同时保留。

进阶闯关:从新手到高手的配置递进

新手关:改三个字段,先跑起来

link: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/ music: true # 下载背景音乐 cover: true # 下载封面 json: true # 保存元数据 JSON

这段配置定义了"下载什么、存到哪、附带哪些资源"。musiccoverjson默认都是true,不想存可以改成false

进阶关:批量与去重

作者主页批量下载是高频场景,配置mode指定内容类型,number限制数量:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # 发布作品;还可写 like(点赞)/mix(合集)/music(音乐) number: post: 50 # 最多 50 个,0 表示全量

配合database: true启用 SQLite 去重后,重复运行同一配置只会补下新增内容。再加一句增量开关,就能做到"只下载新作品":

increase: post: true database: true # 增量模式依赖数据库记录

高手关:时间过滤、命名模板与浏览器兜底

长时间挂机收集素材时,建议用时间过滤框定范围,避免把三年老内容全拉下来:

start_time: "2024-01-01" end_time: "2024-12-31"

下载后的文件名可以完全自定义,模板变量包括{id}{title}{author}{date}{year}{month}{day}{time}{type}{mode}

filename_template: "{date}_{title}_{id}" folder_template: "{date}_{title}_{id}" author_dir: "nickname" # 作者目录命名,可选 nickname/sec_uid/nickname_uid

注意模板里至少要保留{id},否则重名作品会互相覆盖。

当 API 翻页被风控、只抓到 20 条时,浏览器兜底会启动真实浏览器帮你继续翻页:

browser_fallback: enabled: true headless: false # 弹窗出现后手动完成验证,别急着关窗口 max_scrolls: 240

实战演练:三个真实场景的完整配置

场景一:追更博主,主页全量备份

把一位创作者的发布、点赞、合集、音乐一次拉全,跨模式自动按aweme_id去重,不会重复下载:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post - like - mix - music number: post: 0 like: 0 mix: 0 music: 0 path: ./博主备份/

下载完你会得到一个按作者、按内容类型分层的目录结构,视频、封面、音乐、元数据 JSON 各归其位:

Downloaded/ └── 博主名/ └── post/ └── 2024-02-07_作品标题_aweme_id/ ├── ...mp4 ├── ..._cover.jpg ├── ..._music.mp3 └── ..._data.json

场景二:直播间回放录制

把直播链接放进link,程序自动解析直播流并给出清晰度选项:

python DouYinCommand.py -l "https://live.douyin.com/123456789" -p ./直播存档

-l传直播链接,-p指定存档目录。录制参数可在配置里微调,主播下播、网络空闲或手动中断时,已录制的字节都会被保留为正式文件:

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

场景三:数据分析,热搜榜与关键词搜索

做内容趋势分析时,不需要下载视频本体,只要结构化数据。run.py提供了两个轻量出口:

# 拉取热搜榜前 30 条,导出 JSONL python run.py --hot-board 30 -p ./Downloaded # 关键词搜索"猫咪",最多 100 条,导出 JSONL python run.py --search "猫咪" --search-max 100 -p ./Downloaded

结果分别落在Downloaded/hot_board/Downloaded/search/下,每条含标题、热度等元数据,可直接进 pandas 处理。

更进阶的做法是开启comments.enabled采集评论,每个作品会额外生成*_comments.json,点赞数、评论内容、二级回复都在里面,适合做用户反馈分析。

避坑手册:五个高频问题一次讲清

问:只能抓到 20 条作品,翻页就没了?排查:这是翻页风控的典型表现。解决:确认browser_fallback.enabled: trueheadless: false,浏览器弹窗出现后手动完成验证码,不要立即关闭窗口。

问:Cookie 失效,下载全部报错?排查:控制台会出现登录相关的错误日志。解决:重新执行python -m tools.cookie_fetcher --config config.yml扫码刷新,几秒即可恢复。

问:进度条刷屏,日志被淹没?排查:进度阶段默认会打印大量行。解决:配置里progress.quiet_logs: true即可静默进度日志,需要调试时再加--show-warnings-v临时打开。

问:想重新下载某个作品,但它被跳过了?排查:程序通过"数据库记录 + 本地文件"双重检查判断是否已下载,只删数据库不删文件不会触发重下。解决:同时清理对应 aweme_id 的本地目录和数据库记录:

sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = '<aweme_id>';"

(先删掉Downloaded/作者名/post/*_<aweme_id>/目录,再删数据库行。)

问:下载很慢怎么办?排查:默认并发 5、默认速率限制 2 请求/秒,慢通常是网络或线程数问题。解决:在配置里调thread: 8(视机器配置而定),或给proxy填上代理地址,如http://127.0.0.1:7890

收尾:照着这份行动清单走完

  1. 克隆仓库git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader,进入目录
  2. 装依赖pip install -r requirements.txt,需要自动 Cookie 时再加装 Playwright
  3. 配 Cookie:运行python -m tools.cookie_fetcher --config config.yml扫码登录
  4. 跑最小用例python DouYinCommand.pypython run.py -c config.yml,先验证单视频下载
  5. 按需进阶:从"进阶闯关"和"实战演练"里挑一个场景配置抄进config.yml
  6. 定期维护:Cookie 失效就重跑抓取脚本,升级代码前备份config.yml与数据库文件

最后提醒一句:工具本身开源免费,但请尊重原创内容版权,仅在个人学习、研究或合理使用范围内使用下载内容,并留意平台规则与接口策略的变更。

项目地址:https://gitcode.com/GitHub_Trending/do/douyin-downloader开源协议:MIT License适用平台:Windows / macOS / Linux依赖环境:Python 3.8+(另有可选依赖 Playwright、fastapi + uvicorn)

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

http://www.cnnetsun.cn/news/4097293.html

相关文章:

  • Silo-Bench:多智能体LLM系统分布式协调能力的评测框架与设计实践
  • 基于计算机视觉的非接触式健康筛查系统:从姿态估计到症状识别
  • 汽车AI技术深度解析:从智能座舱到数据闭环的工程实践
  • 劳斯莱斯古斯特谍照解析:纯电版技术猜想与豪华车电动化趋势
  • .NET非对称加密实战:从RSA/ECC原理到生产环境避坑指南
  • STM32 RT-Thread Nano最小工程构建:从CubeMX配置到Keil移植实战
  • 不花一分钱把游戏搬到任何屏幕:Sunshine 串流从零到上手,5 个问题一次讲透
  • 基于LabVIEW与MyRIO的超声波测距系统:FPGA高精度时序与实时信号处理实践
  • HoRain云--NumPy 副本和视图
  • TacoMAS:多智能体系统在运行时的动态协同进化机制
  • 上海APP小程序开发哪家公司靠谱?能否打通ERP、CRM、WMS很关键
  • 2026四大AI论文平台深度横评|学术写作不是堆砌,工具要服务于思维
  • 基于ESP32的智能植物柜控制系统:从硬件设计到物联网应用
  • 基于智能体工作流与RAG的靶向蛋白降解文献知识自动化抽取系统构建
  • Proteus仿真入门:从零搭建74LS32或门电路与逻辑分析
  • Windows 7虚拟机VMware Tools安装失败:深度排查与解决方案
  • D5 | Prompt 工程基础:CRISPE 框架 + 6 个万能模板
  • Wand-Enhancer 上手全攻略:3步解锁WeMod Pro高级功能
  • Zephyr调度器:物联网RTOS多任务管理的核心机制与实践
  • geoserver使用pg数据库的空间数据
  • 2026AI论文工具公正排行榜[特殊字符]6款实测|附官网+真实优缺点
  • 24小时不下播!AI虚拟数字人直播全流程搭建教程(附软件清单)
  • 两步完成网易云NCM转MP3:ncmdumpGUI开源工具使用全攻略
  • 自动驾驶轮椅技术解析:从SLAM到路径规划的室内自主导航实践
  • 5分钟搞定Switch手柄连接电脑:BetterJoy免费适配工具完整指南
  • 如何把 ComfyUI 工作流快速分享到第三方平台:开发者实战指南
  • 把 PC 大作搬进客厅与口袋:Sunshine 免费游戏串流从零上手全攻略
  • 数据库分支技术如何应对智能体驱动的应用范式挑战?
  • 从黑盒子到透明厨房:深入解析英飞凌XCM系列MCU体系架构与开发实战
  • LLM智能体在自动化软件分析中的评估与实践:C/C++与Java专项挑战