news 2026/8/24 10:57: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 是一款开源的抖音下载工具,把视频、图集、合集、音乐批量存成本地无水印文件,还能录直播、抓评论。本文写给第一次上手的普通用户和需要定期保存内容的创作者,按"安装 → 登录 → 配置 → 运行"的顺序完整走一遍。

一、盘点 douyin-downloader 的功能:一次看懂能下什么、产出什么

上手前先花一分钟对照这张表,确认它覆盖不覆盖你的需求:

核心功能适用场景最终产出
单条视频 / 图文下载保存某一条作品或图集无水印文件 + 封面、BGM、元数据 JSON
作者主页批量下载整页归档某位创作者的作品、点赞、合集、音乐按作者分目录的成批文件
增量补更定期追更,避免重复下载只落盘数据库里没有的新作品
收藏夹同步把自己账号"点赞过""收藏夹"里的内容存到本地当前登录账号收藏内容的本地副本
合集与原声音乐整套教程合集、单首背景音乐整组合集文件 / 音乐文件
直播录制开播时挂机,下播后补看FLV 录像 + 直播间元数据 JSON
评论与热搜数据内容研究、选题观察结构化 JSON / JSONL 数据文件

两个默认行为值得记住:媒体文件优先选择无水印源,并在多档清晰度里自动挑码率最高的一档

二、安装依赖并获取 Cookie:十分钟完成第一次无水印下载

1. 克隆项目并确认 Python 版本

要求Python 3.8 及以上,macOS / Linux / Windows 均可:

python --version git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader/douyin-downloader

你应该看到python --version输出 3.8 或更高;进入目录后能看到run.pyconfig.example.ymlrequirements.txt这几个文件,说明项目完整。

2. 安装依赖

pip install -r requirements.txt

你应该看到:结尾出现Successfully installed ...,没有红色 ERROR。

提示:如果安装很慢或报网络错误,临时换用国内镜像源:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

之后如果打算用"浏览器兜底"(批量下载被限流时的备用通道,后面会讲),再补装一套浏览器组件:

pip install playwright python -m playwright install chromium

3. 复制配置模板并获取登录凭证

抖音的完整内容只对"已登录用户"开放,所以需要先拿到你的登录凭证——Cookie。你可以把Cookie 理解成进展会的胸牌:服务器看到它,才认定这个请求来自一个真实登录的账号。

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

你应该看到:自动弹出浏览器,用手机抖音扫码登录,回到终端按一次回车,Cookie 就写进了config.yml。它只保存在你本地。

注意:胸牌有有效期,Cookie 一般一两周过期。过期后不用动任何其他配置,重跑上面第二条命令即可。

4. 修改最小配置

打开config.yml,把link换成你要下载的视频或图文链接,其余项保持模板默认即可:

link: - https://www.douyin.com/video/XXXXXXXXX # 换成你的视频/图文链接 path: ./Downloaded/ # 文件保存目录 music: true # 同时下载背景音乐 cover: true # 同时下载封面图 json: true # 保存作品元数据(标题、发布时间、点赞数等)

全部字段的含义可以参考 douyin-downloader/config.example.yml。

5. 运行下载任务

python run.py -c config.yml

你应该看到:终端先打印链接解析结果和"下载配置"(总数、线程数、保存路径),随后出现进度条推进到 100%,最后输出"下载完成"和保存位置。

6. 查看下载结果

Downloaded/目录下会出现一个以作品命名的文件夹,内容整整齐齐:

Downloaded/ └── 作者昵称/ └── post/ └── 2024-06-15_作品标题_作品ID/ ├── 2024-06-15_作品标题_作品ID.mp4 # 无水印视频 ├── 2024-06-15_作品标题_作品ID_cover.jpg # 封面图 ├── 2024-06-15_作品标题_作品ID_music.mp3 # 背景音乐 └── 2024-06-15_作品标题_作品ID_data.json # 元数据

命令行展示了时间范围过滤、下载配置、进度条和底部下载统计,可对照确认任务是否成功结束、文件落在哪个路径

到这里,你的第一条无水印视频已经到手。

三、跑三个高频场景:批量保存作者主页、增量补更、录制直播

场景 1:整页保存一位作者的作品

关注一位创作者很久,想把他发布的内容整体归档,把主页链接填进去、指定模式就行:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx # 作者主页链接 mode: - post # 只下他发布的作品;还支持 like/mix/music number: post: 50 # 只下载最近 50 个,0 表示全部 start_time: "2024-06-01" # 起始日期:只取这个日期之后发布的作品 end_time: "2024-06-30" # 截止日期:两个时间都留空则不限制

其中thread: 5表示同时用 5 个"人手"并行下载,就像超市多开几个收银台,数量越大提速越明显。

你会得到:每个作品一条独立进度条并行推进,失败的自动重试;文件按"作者 → 模式 → 作品"三级目录归位。

批量下载时每个作品都有独立进度条,并发执行,可直观确认并行与重试是否生效

下载完成后的目录按"日期_标题_作品ID"分门别类存放,可确认命名规则是否符合预期

场景 2:开启增量模式,只拉新作品

上周已经存了 50 条,这周作者又更新了,你不想把旧内容再下一遍。打开增量开关:

database: true # 开启 SQLite 记录库,每次下载的作品 ID 都记一笔 increase: post: true # 只下载数据库里没有的新作品

这相当于一本借阅台账:每次"借出"都登记在册,下次再跑同一个作者时,台账里有记录的一律跳过,只发新书。

你会得到:工作目录生成dy_downloader.db台账文件;再次运行时旧作品显示"跳过已存在",磁盘上只有新增内容。

场景 3:挂机录制一场直播

博主开播时你没空守着?把直播间链接写进配置,让它替你"守夜":

link: - https://live.douyin.com/123456789 # 直播间链接 live: max_duration_seconds: 3600 # 录满 1 小时自动收尾;填 0 则录到主播下播

你会得到:FLV(一种可直接播放的视频格式)录像保存在Downloaded/{作者}/live/下,附带直播间元数据 JSON 快照。中途下播或按 Ctrl+C 中断,已录制的部分都会自动保留,不会白等。

录制前会列出可选清晰度和直播流地址,输入编号即可开始,可确认直播间信息与流地址是否正常解析

四、配置进阶能力:去重续传、API 服务与完成通知

跑通基础流程后,这几项能力可以让任务更省心,按需开启即可:

  • 断点续传与完整性校验:中断后重跑会跳过已完成文件;每个文件还会和服务端声明的大小做一次比对——像快递员拿秤核对包裹重量,缺斤少两就自动清理重下。
  • REST API 服务模式:先执行pip install fastapi uvicorn,再运行python run.py --serve --serve-port 8000,就可以通过POST /api/v1/download提交下载任务、查询任务状态,适合接进自己的自动化流程。
  • 完成通知推送notifications.enabled: true并配置 Bark / Telegram / Webhook 任一渠道,任务成功或失败时手机即时收到推送。
  • 视频语音转写transcript.enabled: true并设置OPENAI_API_KEY环境变量后,每个视频会额外生成.transcript.txt文字稿,方便检索。
  • 自定义命名模板filename_template: "{date}_{title}_{id}"可自由组合{date}{title}{author}{id}四个变量;必须包含{id},避免重名覆盖。

项目还配套了处于内测期的桌面客户端,基于同一套后端,粘贴链接即可开始下载,任务中心可以逐条回看每个任务的状态与耗时:

桌面版任务中心逐任务展示状态与结果,可确认长任务最终是否成功、耗时多少

更完整的参数说明见 douyin-downloader/README.zh-CN.md。

五、排查常见问题:Cookie 过期、翻页受限、中断与慢速

现象一:报 403 或提示"未登录"

  • 现象:终端出现403 Forbidden,或任务解析不出任何作品。
  • 原因:Cookie 过期,这是最高频的情况。
  • 解法:重新运行python -m tools.cookie_fetcher --config config.yml,扫码后按回车。建议每周固定刷新一次。

现象二:批量下载卡在二三十条不动

  • 现象:抓取作者主页到 20~30 条左右就不再增长。
  • 原因:抖音对连续翻页做了风控限制,API 不再发放下一页。
  • 解法:开启浏览器兜底——相当于线上窗口办不了时,安排工作人员陪你到线下柜台人工核验:
browser_fallback: enabled: true headless: false # 保持窗口可见,方便你手动完成验证

弹窗出现后手动完成验证即可,别急着关窗口,等它跑完自然补齐。

现象三:中断之后担心要全部重来

  • 现象:网络断开或手动停止后,不知道已完成的部分还算不算数。
  • 原因:其实工具内置了去重与完整性校验,已完成的作品都记录在案。
  • 解法:确认配置中database: true已开启,直接重跑python run.py -c config.yml,已完成文件会显示"跳过已存在",只补缺的部分。

现象四:下载速度明显偏慢

  • 现象:进度条推进缓慢,偶尔出现超时重试。
  • 原因:网络环境不稳,或并发开得太高导致重试变多。
  • 解法:把并发调小、重试调大;有代理环境就填上代理地址:
thread: 3 # 并发数,从默认 5 调小 retry_times: 5 # 失败重试次数 proxy: "http://127.0.0.1:7890" # 代理地址,不用则留空

写在最后:按这个顺序开始

  1. 先跑单条视频:完整走完第二节,确认环境和 Cookie 都没问题;
  2. 再试整页批量:挑一位你真喜欢的作者,用mode+number限定数量,感受批量下载的节奏;
  3. 最后打开进阶开关:按需启用增量补更、时间过滤、直播录制和完成通知,让工具贴合你的使用习惯。

无水印、有目录、可追溯——让内容从"云端随时会消失"变成硬盘上随时能翻出的东西,才是收藏这件事真正的落点。

【免费下载链接】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/8/24 10:57:15

阶乘约数问题解析:从质因数分解到勒让德定理的算法实现

1. 项目概述:从一道国赛真题看数论与编程的深度结合“阶乘约数”这个题目,乍一看像是纯粹的数学问题,但作为第十一届蓝桥杯国赛CB组的C题,它实际上是一道典型的数论与算法设计的综合应用题。它考察的远不止是计算一个数的约数个数…

作者头像 李华
网站建设 2026/8/24 10:57:00

C++变长参数模板展开技术:从基础语法到高级应用实战

1. 项目概述:为什么我们需要关心变长参数展开?在C的世界里,尤其是从C11迈入所谓的“Modern C”时代后,我们写代码的方式发生了翻天覆地的变化。其中一个让代码变得更灵活、更强大的特性,就是变长参数模板。你可能在标准…

作者头像 李华
网站建设 2026/8/24 10:54:29

C++模板特例化:从通用到定制的编程艺术

1. 从“通用”到“特殊”&#xff1a;为什么我们需要模板特例化&#xff1f;如果你写过C模板&#xff0c;大概率经历过这样的时刻&#xff1a;你精心设计了一个通用的max函数模板&#xff0c;它能优雅地处理int、double甚至自定义的Point类型&#xff08;只要定义了<操作符&…

作者头像 李华
网站建设 2026/8/24 10:50:28

Sandboxie Plus 卸载残留:DefaultBox 删不掉的原因与 3 步清理法

Sandboxie Plus 卸载残留&#xff1a;DefaultBox 删不掉的原因与 3 步清理法 【免费下载链接】Sandboxie Sandboxie Plus & Classic 项目地址: https://gitcode.com/gh_mirrors/sa/Sandboxie Sandboxie Plus 卸载残留&#xff0c;说白了就是程序删了、数据还在。卸载…

作者头像 李华