抖音视频下载终极指南: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 是一款开源的抖音视频下载工具,主打无水印高清下载:单条视频、图文笔记、合集、音乐原声都能收,还支持作者主页批量备份和直播录制,全程免费、无需任何会员。下面按日常使用场景,从环境搭建讲到进阶玩法,跟着一步步来即可。
这个工具到底能干什么?
先看一张能力清单,心里有个底:
| 能力 | 说明 |
|---|---|
| 单条下载 | 视频、图文、合集、音乐链接,粘贴即下 |
| 批量备份 | 作者主页全部作品 / 点赞,一条配置全收 |
| 收藏夹下载 | 当前登录账号的收藏作品与收藏合集 |
| 直播录制 | FLV/HLS 流,录到主播下播,中断不丢数据 |
| 去水印 + 最高清 | 自动挑无水印源,按码率选最清晰的 |
| 增量去重 | SQLite 记录历史,只下载新增,不重复浪费 |
| 附加能力 | 评论采集、热搜榜导出、关键词搜索、视频转写、完成通知推送、REST API |
看完这张表你会发现,它不是一个"只会下单个视频"的小脚本,而是一套完整的抖音内容存档方案。接下来按使用频率最高的几个场景逐个上手。
开跑之前:三步备齐环境、Cookie 与配置文件
任何工具都一样,先把地基打好,后面所有命令都会顺畅很多。整个过程只需要三条命令加上一次登录。
拉代码、装依赖
项目要求 Python 3.8 以上,在终端依次执行:
# 拉取项目源码 git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader # 进入项目目录 cd douyin-downloader # 安装全部依赖 pip install -r requirements.txt # 想用"浏览器兜底"或自动获取 Cookie,再装 Playwright pip install playwright python -m playwright install chromium依赖装完没有报错,第一步就完成了。
拿到访问抖音的"通行证"
工具需要 Cookie 才能正常访问抖音接口。Cookie 可以理解为网站发给你的一张小凭证,让程序以你的身份去请求数据。项目提供了自动获取方式,推荐直接用:
# 自动打开浏览器引导登录,完成后回车,Cookie 自动写入配置 python -m tools.cookie_fetcher --config config.yml也可以手动把浏览器里复制出来的 Cookie 填进配置文件(支持整串字符串或键值对两种格式)。两种方式任选其一即可。
认识最小配置文件
复制一份配置模板,打开看看:
# 生成自己的配置文件 cp config.example.yml config.yml最核心的几项只有这些:
link: # 要下载的链接,支持多个 - https://v.douyin.com/xxxxxxx path: ./Downloaded/ # 保存目录 mode: - post # post=发布作品;like=点赞作品 number: post: 50 # 只取最近 50 条,写 0 表示全部字段含义拆开讲一下:
| 配置项 | 作用 |
|---|---|
link | 下载目标链接列表,视频/图文/主页/直播都往这填 |
path | 文件保存根目录 |
mode | 主页批量模式:post发布、like点赞、mix合集、music音乐 |
number | 各模式的数量上限,0 代表不限制 |
thread | 并发下载数,默认 5,网络差可调低 |
retry_times | 失败重试次数,默认 3 次 |
到这里,环境、凭证、配置三件套就齐了。
场景一:单条视频,粘贴链接一键下载
日常最高频的场景——看到一条好视频想存下来。不需要动配置文件,命令行直接传链接就行:
# -u 指定链接(可重复传多个),-p 指定保存目录 python run.py -u "https://v.douyin.com/xxxxxxx" -p ./Downloaded工具会自动解析短链、识别作品类型并选择无水印的最高清源。这里解释两个小概念:
- 短链:抖音分享出来的
v.douyin.com/xxx这类链接,工具会自动跳转解析出真实作品 ID; - 去水印:程序优先从无 Logo 的视频源拉取文件,保存下来的就是干净版本。
不只是一般视频,下面这些链接类型它都能识别:
| 链接形态 | 类型 |
|---|---|
/video/{id} | 普通视频 |
/note/{id}、/gallery/{id} | 图文笔记 |
/collection/{id}、/mix/{id} | 合集 |
/music/{id} | 音乐原声 |
下载完成后,文件会自动带上封面图、音乐和一份元数据 JSON,方便后续归档整理。
场景二:作者主页批量下载,一口气备份全部作品
如果只想下一条,用命令行就够;但当你需要备份某位创作者的全部内容时,就该请配置文件出场了。把链接换成主页地址,模式改成对应类型:
link: - https://www.douyin.com/user/你的主页ID # 作者主页链接 mode: - post # post=发布作品;like=点赞作品 - music # 可同时开启多种模式,自动跨模式去重 number: post: 50 # 只取最近 50 条,写 0 表示全部 path: ./Downloaded/保存后运行python run.py -c config.yml,终端会实时刷新每个任务的进度条与耗时统计,成功、失败、跳过一目了然:
如果你更习惯图形界面,项目还内置了基于同一套后端的桌面版(Douzy),粘贴链接、勾选内容类型就能开始,下载任务会以事件流的形式逐条展示:
批量下载过程中如果遇到翻页风控(比如只能抓到前 20 条),项目内置的浏览器兜底机制会自动启动真实浏览器继续翻页,需要时你手动过一下验证码即可,不用中断任务。
场景三:重复下载太浪费?增量去重和时间筛选来帮忙
批量任务跑过一遍之后,作者又发了新作品。如果每次都全量重跑,不仅慢还浪费带宽。这个场景下,增量下载就派上用场了:工具会用 SQLite 数据库记录每次的下载历史,下次运行时自动跳过已经存过的作品。
database: true # 开启 SQLite 去重记录 database_path: dy_downloader.db # 数据库文件路径 increase: post: true # 只下载新增作品 start_time: "2025-01-01" # 可选:只看这个日期之后发布的内容 end_time: "" # 可选:留空表示不限配合时间过滤,你甚至可以精确控制"只补今年以来的新内容"。去重是数据库记录 + 本地文件双重校验,即使数据库被删,程序也能从文件名里识别已下载的作品 ID,防止二次下载。
下载历史和统计在桌面版的"作品档案"页面里看最直观,还能按作者、关键词筛选,甚至一键把某位博主的最新作品补齐:
场景四:进阶玩法——直播录制、评论采集与热搜导出
基础下载熟练之后,下面这些能力能让你从"会下载"升级到"下载得聪明"。
直播回放,录到主播下播
把直播间地址放进link,再配一段直播参数即可:
link: - https://live.douyin.com/123456789 # 直播间地址 live: max_duration_seconds: 3600 # 录制时长上限,0 = 录到主播下播 idle_timeout_seconds: 30 # 无数据多久判定空闲启动后工具会先展示房间标题、在线人数等信息,再让你选择录制清晰度:
选好清晰度后会生成直播流地址,录制的 FLV 文件保存在Downloaded/{作者}/live/目录下。主播中途下播或你按 Ctrl+C 中断时,已录制的字节也会被完整保留,不会白白丢数据。
评论采集与热搜榜
想对某个作品做内容分析?开启评论采集即可,每条作品旁边会额外生成一份*_comments.json:
comments: enabled: true include_replies: false # true 会多拉每条评论的二级回复 max_comments: 500 # 0 表示不限想知道今天抖音在聊什么?一行命令导出热搜榜快照,或者按关键词搜索作品,结果都会落到 JSONL 文件里,方便后续做数据分析:
# 导出热搜榜前 30 条快照 python run.py --hot-board 30 -p ./Downloaded # 按关键词搜索作品,最多取 100 条 python run.py --search "猫咪" --search-max 100 -p ./Downloaded下载完成自动通知
批量任务往往要跑很久,总不能一直盯着终端。配置好通知后,任务完成或失败都会推送到你的手机:
notifications: enabled: true on_success: true on_failure: true providers: - type: bark # iOS Bark 推送 url: https://api.day.app/YOUR_DEVICE_KEY - type: telegram # Telegram 机器人推送 bot_token: "123456:ABC..." chat_id: "987654321"所有通知渠道会并发推送,单个渠道失败不会阻塞主下载流程。
场景五:下载文件自动归档,找起来不费劲
所有内容都会按"作者 → 类型 → 日期"的层级自动整理,每个作品独立成文件夹,文件名带时间戳和标题:
Downloaded/ └── 作者名/ ├── post/ │ └── 2025-06-01_作品标题_123456789/ │ ├── 视频.mp4 │ ├── 封面_cover.jpg │ ├── 原声_music.mp3 │ └── 元数据_data.json └── live/ └── 2025-06-01_直播间标题_房间号/实际下载后,你在文件管理器里看到的就是这样一列整齐的、按日期命名的文件夹,找任何一条历史内容都能秒定位:
如果你有自己的整理习惯,config.yml里还提供了命名模板,支持{id}{title}{author}{date}等变量自由组合,也可以按author_dir切换作者目录的命名方式。
避坑手册:五个高频问题一次说清
新手最容易在这几个地方卡住,提前看完能少走很多弯路。
Q1:提示登录失效、接口报错怎么办?大概率是 Cookie 过期了。重新执行python -m tools.cookie_fetcher --config config.yml刷新即可;新版 CLI 检测到登录失效还会自动尝试重新登录。
Q2:只能抓到 20 条作品?这是翻页风控的典型现象。确认配置里browser_fallback.enabled: true、headless: false,浏览器弹窗出现后手动完成验证,别急着关窗口。
Q3:进度条疯狂刷屏怎么办?默认配置progress.quiet_logs: true已经会在进度阶段静默日志;调试时再临时加--show-warnings或-v即可。
Q4:下载速度偏慢?先检查网络,再适当调低thread并发数;如果走代理,在配置里加proxy: "http://127.0.0.1:7890"字段。
Q5:怎么让某个作品重新下载?去重靠"数据库 + 本地文件"双重判断,所以重新下载需要两边一起清:删掉本地对应文件,再删掉数据库里那条记录,下次运行就会重新抓取。
继续上路:文档、合规与下一步
到这里,从环境搭建到批量备份、直播录制、数据采集的完整路径你已经走通了。项目内还内置了完整的USAGE.md使用说明和README.zh-CN.md功能文档,进阶用户可以去翻核心模块源码,学习它的下载策略、重试机制与浏览器兜底的实现思路。
最后提醒一句: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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考