news 2026/9/15 14:09:16

如何使用douyin-downloader:抖音去水印与主页批量下载完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何使用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 是一个抖音批量下载命令行工具:单条视频、图文、音乐原声都能存为无水印文件,也能把整个用户主页的作品一次拉完,内置进度条、自动重试和 SQLite 去重,适合想批量归档创作者素材的新手和普通用户。

本文采用分层递进结构,章节大纲如下:

  1. 安装 douyin-downloader 并验证环境
  2. 获取 Cookie:两种方式
  3. 写一份最小配置,跑通第一次批量下载
  4. 常用进阶配置:增量、画质与时间过滤
  5. 三个真实使用场景
  6. 常见问题与排查
  7. 仓库进阶资料

抖音链接下载工作区:输入单条视频链接后自动识别类型,点击「下载」即开始

安装 douyin-downloader 并验证环境

这一步的目标是拿到可运行的代码并装好依赖。你只需要 Python 3.8 以上,操作系统不限。

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

看到Successfully installed提示即表示依赖就绪。接下来复制一份带注释的示例配置作为你的工作配置:

cp config.example.yml config.yml

文件出现在当前目录即完成。后面所有步骤都围绕修改config.yml展开。

🍪 获取 Cookie:两种方式

Cookie是浏览器登录抖音后产生的一串凭据,工具靠它通过接口校验。没有有效 Cookie,批量采集主页作品时会大量报错。

方式一:浏览器自动抓取(推荐)。自动抓取依赖 Playwright,先装一次:

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

运行后会弹出一个浏览器窗口,扫码或输入账号登录抖音,然后回到终端按回车。Cookie 会被自动写进config.ymlcookies字段,终端输出成功提示即完成。

方式二:手动复制。如果你不想装 Playwright,就在自己的浏览器里登录抖音,打开开发者工具复制 Cookie,粘贴进config.ymlcookies区块(msTokenttwidodin_ttpassport_csrf_token是必需项)。保存后直接跳到下一步。

写一份最小配置,跑通第一次批量下载

这一步能得到一个完整可复现的主页批量下载任务。把config.yml改成下面的内容,只保留关键字段:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: [post] number: post: 50 thread: 5 retry_times: 3 database: true

字段含义:

  • link:下载链接列表,换成你的主页链接(/user/{sec_uid}格式)
  • path:文件保存目录
  • mode: [post]:采集"发布作品",换成like/mix/music则采点赞、合集、音乐
  • number.post: 50:本次下载 50 条,写0表示不限数量全量抓取
  • thread: 5:并发线程数;retry_times: 3:单条失败自动重试 3 次
  • database: true:开启 SQLite 历史记录,路径为dy_downloader.db

然后运行:

python run.py -c config.yml

运行后你会先看到作品总数,随后是逐条滚动的实时进度条。全部结束后打印成功、失败、跳过数量与总用时。文件按Downloaded/作者名/post/日期_标题_id/组织,同一文件夹里放无水印视频、_cover.jpg封面、_music.mp3原声和_data.json元数据;根目录还多一份download_manifest.jsonl下载清单。

任务中心:每条批量任务显示成功/失败计数,失败项可直接重试,对应 CLI 模式下结尾的成功/失败统计

只下单条视频时更简单,link换成/video/{aweme_id}链接即可,短链v.douyin.com/...也能直接解析;命令行也可以临时追加:python run.py -c config.yml -u "https://www.douyin.com/video/xxx"

常用进阶配置:增量、画质与时间过滤

这一章的配置都只改config.yml一个文件,改完直接重跑python run.py -c config.yml生效。

增量下载(只拉新发布的作品)。这是"重复跑同一任务不重复下载"的核心开关:

increase: post: true database: true

increase.post: true时,磁盘上已存在主媒体文件的旧作品会直接标记跳过,只有新发布的作品会被下载;删掉某个视频文件,下次运行会补回。database保持true,历史记录可查、去重更稳。

画质选择video_quality支持original(探测上传原片,比转码档可能大数倍)、highest(默认,最高转码档)、lowest,也可直接写1080p720p等分辨率,匹配不到自动降级到最接近的可用档。

时间过滤start_time/end_timeYYYY-MM-DD格式限定作品发布时间区间,只抓某段时间内发布的内容。

只要视频本体video保持true,把musiccoveravatarjson都设为false,目录里就只有 mp4 文件。

批量导出搜索数据(不下载媒体)。两个命令行参数适合先圈定素材再决定下载哪些:

python run.py --hot-board 30 -p ./Downloaded python run.py --search "关键词" --search-max 100 -p ./Downloaded

前者抓热榜、后者按关键词搜视频,结果都写成 JSONL 文件落在指定目录,方便筛选后再把选中的链接写进link

三个真实使用场景

批量采集创作者主页作品 📁

做账号运营时,把多个主页链接都写进link列表,mode: [post]thread: 5。一次运行会遍历所有创作者的全部作品(number.post: 0),按创作者分目录归档,进度逐条可见。多个模式也可同时开:mode: [post, like, mix, music],跨模式自动去重,同一个作品不会下两遍。

⏰ 定时增量更新素材目录

持续跟踪固定创作者时,把上一节的increase.post: true配好,用 crontab 每天定时执行python run.py -c config.yml。重复运行只会拉取新发布的作品,旧文件在进度里显示为跳过,无需人工清理。

🎥 直播流录制

link换成直播间地址(live.douyin.com/{room_id})并开启录制参数:

link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600

max_duration_seconds: 0表示一直录到主播下播。录到的 FLV 文件和*_room.json房间元数据存在Downloaded/作者名/live/下;主播下播、网络空闲或按 Ctrl+C 中断时,已录到的部分都会保留。该功能标记为实验性,个别直播场景可能不稳定。

常见问题与排查

现象:请求大量报错或提示未登录 →可能原因:Cookie 过期是最常见原因 →解决动作:重新运行python -m tools.cookie_fetcher --config config.yml更新 Cookie 后重试。

现象:批量采集只拿到 20 条左右就停了 →可能原因:翻页触发了风控限流 →解决动作:确认browser_fallback.enabled: trueheadless: false,浏览器弹窗中手动完成验证码,不要过早关闭窗口,工具会用浏览器翻页继续采集。

现象:重复运行没有跳过旧文件,全量重下 →可能原因:增量开关或数据库被关闭 →解决动作:检查increase.post是否为truedatabase是否为true;增量判断以磁盘文件为准,删文件即重下,删库保文件则不会重下。

现象:进度输出重复刷屏,干扰阅读 →可能原因:日志未静默 →解决动作:保持progress.quiet_logs: true;调试时用-v临时打开完整日志,加--show-warnings可看到告警与错误。

仓库进阶资料

  • config.example.yml:带注释的完整配置样例,字段含义以它为准
  • README.md:全部功能清单、命令行参数表和官方 FAQ
  • PROJECT_SUMMARY.md:实现架构与文件落盘策略说明
  • core/:下载主流程、URL 解析与 API 客户端源码

下一步建议:定期执行git pull更新仓库,再对照 README 的"Typical Scenarios"一节把你没试过的模式(like、mix、collect)各跑一次,把整套素材目录用起来。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 14:08:15

负载高但CPU空闲?一次定时任务引发的上下文切换过高排查实践

1. 从一次“用户说慢”到实际定位,我走过的弯路先说当时的具体场景。那是一个再普通不过的工作日早上,运营突然在群里反馈:后台管理页面的数据刷新很慢,一个列表接口平时 300ms 左右,现在经常要 2、3 秒,部…

作者头像 李华
网站建设 2026/9/15 14:07:22

大文件上传、断点续传、秒传

#如何系统性地设计一个支持大文件上传和断点续传的方案面试答案核心架构:“三驾马车”一个成熟的方案通常是三大核心技术的组合:分片上传 (Chunked Upload)、断点续传 (Resumable Upload) 和秒传 (Instant Upload)。分片上传:为传输大文件“搭…

作者头像 李华
网站建设 2026/9/15 14:06:17

VeraCrypt加密卷挂载失败:完整四阶段卷头恢复流程

VeraCrypt加密卷挂载失败:完整四阶段卷头恢复流程 【免费下载链接】VeraCrypt Disk encryption with strong security based on TrueCrypt 项目地址: https://gitcode.com/GitHub_Trending/ve/VeraCrypt VeraCrypt加密卷的主卷头(卷前部的元数据区…

作者头像 李华
网站建设 2026/9/15 14:03:38

开题报告格式要求太繁琐?6款工具帮你理顺2026论文开局

开题报告的格式要求往往比内容本身更让人头疼——字体字号、行距页边距、参考文献著录规则、各级标题层级,每所学校甚至每个学院都有自己的细则。不少学生把大量时间耗在调整格式上,反而耽误了选题论证和文献综述的打磨。实际上,格式问题完全…

作者头像 李华