抖音视频下载神器 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 去重、断点续传等能力。无论你是只想偶尔存一两条视频的普通用户,还是需要定期备份作品的创作者,它都能帮你把"下载这件事"变得又快又省心。
🤔 为什么你需要这样一个工具?
先回忆一下你过去是怎么存抖音视频的:用录屏软件录一段?画质打折扣,还有声音问题;用第三方网页解析?链接常常失效,还要忍受满屏广告;手动逐个保存?遇到上百条作品直接崩溃。
douyin-downloader 存在的意义,就是把上面这些痛点一次性解决。它有几个让你"用过就回不去"的设计:
智能双策略,失败率大幅降低工具内置了 API 策略与浏览器策略两套方案。API 策略响应快、效率高,适合大批量抓取;当遇到翻页受限或风控时,它会自动切换并唤起浏览器兜底,甚至支持人工完成验证码后继续。两条腿走路,稳定性自然更有保障。
去水印 + 最高清,默认给你最好的下载时会自动优先挑选无水印的视频源,并基于码率数组自动选择清晰度最高的版本,不用你手动折腾任何参数。
SQLite 去重,绝不浪费你的时间和硬盘每次下载前,程序都会通过数据库记录和本地文件双重检查,已经存在的内容自动跳过。批量下载几百条作品时,这个机制能帮你省下大量重复劳动。
一次安装,覆盖多种下载类型视频、图文、合集、音乐、直播,甚至评论和热搜榜,都能在同一个工具里完成,而不是装一堆互不相干的脚本。
🚀 第一步:15 分钟完成环境准备
1. 确认 Python 环境
douyin-downloader 需要 Python 3.8 及以上版本。打开终端输入下面这行,确认版本号符合要求:
python --version如果提示找不到命令,可能需要先安装 Python 或使用python3代替。
2. 获取项目源码并安装依赖
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 chromium3. 配置 Cookie:最关键的一步
Cookie 相当于你访问抖音的"通行证"。没有它,工具可能只能抓到公开数据,批量下载很容易被限制。douyin-downloader 提供了两种配置方式,推荐用第一种:
自动获取(推荐):
python cookie_extractor.py工具会自动打开浏览器并引导你完成登录,登录成功后 Cookie 自动写入配置文件,全程无需手动复制粘贴。
手动配置:
python get_cookies_manual.py脚本会一步步教你从浏览器开发者工具中复制 Cookie 并填入配置文件。如果你使用的是项目新版入口run.py,对应的命令是:
python -m tools.cookie_fetcher --config config.yml小贴士:Cookie 偶尔会过期。遇到"登录态失效"之类的提示时,重新运行上面的命令刷新一次即可。
⬇️ 第二步:完成你的第一次下载
环境就绪后,最简单的下载方式是一条命令搞定。比如你要保存某个视频:
python downloader.py -u "https://v.douyin.com/你的视频链接"短链接、完整视频链接都能识别,程序会自动解析并开始下载。稍等片刻,打开项目根目录下的Downloaded/文件夹,你就能看到下载好的视频文件了。
下载过程中你会看到带进度条的实时界面,以及最终的成功/失败统计——成功率、耗时一目了然:
是不是很简单?从零到第一次下载成功,通常用不了 15 分钟。
📦 第三步:批量备份一位创作者的全部作品
现在来到这个工具最核心的用法:批量下载。假设你想完整备份某位博主的主页作品,只需两步。
第一步:写一份配置文件
项目根目录下有一个config.example.yml示例配置,复制一份并编辑:
cp config.example.yml config.yml填入你要下载的主页链接和模式:
# 支持多个链接,可同时放入多个主页 link: - https://www.douyin.com/user/该用户的sec_uid # 保存目录 path: ./Downloaded/ # 下载模式:post 发布作品 / like 点赞作品 / mix 合集 / music 音乐 mode: - post # 数量限制,0 表示全部下载 number: post: 0 # 并发下载数(默认 5,建议不超过 10) thread: 5 # 失败重试次数 retry_times: 3第二步:运行下载
python downloader.py -u "https://www.douyin.com/user/该用户的sec_uid"运行后,工具会自动翻页抓取全部作品并逐个下载,批量任务并发执行,进度一目了然:
三个让批量下载更好用的参数
只想下载最近 50 条?在配置里把number.post改成 50 即可。
只想要某个时间段的内容?加上时间过滤:
start_time: "2024-01-01" end_time: "2024-12-31"这样工具只会下载 2024 年发布的视频,做年度总结或特定时期整理时非常实用。
开启增量下载,只补新作品?在配置中加入:
increase: post: true database: true # 增量模式依赖数据库记录开启后,工具会自动比对数据库记录,下次运行只下载新增内容,不重复劳动。
🎵 第四步:合集、音乐、收藏夹也能一键搞定
主页下载只是其中之一。douyin-downloader 对链接类型有完整的识别能力,同一个入口能处理各种内容:
| 内容类型 | 链接示例 | 说明 |
|---|---|---|
| 单个视频 | /video/{aweme_id} | 最常见的单视频下载 |
| 单个图文 | /note/{note_id} | 图片合集,无水印逐张保存 |
| 单个合集 | /collection/{mix_id} | 下载整个视频合集 |
| 单个音乐 | /music/{music_id} | 优先下载原声文件 |
| 直播 | live.douyin.com/{room_id} | 录制直播流 |
比如想同时下载一位博主的主页作品、点赞和合集,把配置改成:
mode: - post - like - mix - music你可能会担心:同一作品在作品列表和合集里重复出现,会不会下载两遍?不会——工具内置跨模式去重,同一个作品 ID 在不同模式下只会保存一次。
🎬 第五步:进阶玩法——直播录制与内容洞察
录制一场直播
想保存某场直播的回放?对链接稍作调整即可:
python downloader.py -u "https://live.douyin.com/直播间ID"运行后会显示直播间的标题、在线人数等信息,并让你选择录制清晰度(如 FULL_HD / SD):
douyin-downloader 直播录制与清晰度选择
录制文件会保存在Downloaded/作者名/live/目录下,附带直播间元数据。即使主播中途下播或你手动中断,已经录制的部分也会完整保留,不会白白丢失。
抓取热搜榜与关键词搜索
新版入口run.py还内置了内容洞察能力,不需要下载也能使用:
# 导出抖音热搜榜前 30 条 python run.py --hot-board 30 -p ./Downloaded # 按关键词搜索作品并导出结果 python run.py --search "猫咪" --search-max 100 -p ./Downloaded结果会以 JSONL 格式输出到hot_board/和search/目录,方便后续做数据分析。
下载完成后自动通知
如果你跑的是定时任务或 Docker 部署,不想盯着终端,可以配置完成后推送:
notifications: enabled: true on_success: true on_failure: true providers: - type: bark url: https://api.day.app/你的设备KEY - type: telegram bot_token: "123456:ABC..." chat_id: "987654321" - type: webhook url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx下载结束,手机立刻收到通知,省心又及时。
以 REST API 服务模式运行
如果你熟悉编程,还可以把工具变成一个小型服务,供其他程序调用:
pip install fastapi uvicorn python run.py --serve --serve-port 8000之后通过POST /api/v1/download提交链接、GET /api/v1/jobs/{job_id}查询进度,就能把"下载抖音内容"集成到你自己的应用里。
🗂️ 第六步:了解你的下载成果
清晰的目录结构
下载完成后,文件会按"作者 → 模式 → 作品"的层级自动组织:
Downloaded/ └── 作者名/ ├── post/ │ └── 2024-02-07_作品标题_aweme_id/ │ ├── 2024-02-07_作品标题_aweme_id.mp4 # 视频 │ ├── ..._cover.jpg # 封面 │ ├── ..._music.mp3 # 背景音乐 │ └── ..._data.json # 元数据 ├── like/ ├── mix/ └── music/每个作品一个独立文件夹,命名以发布时间开头,方便按日期检索:
如果你喜欢扁平结构,也可以把配置里的folderstyle设为false,文件将直接保存在下载目录下。
用 SQLite 查询下载历史
默认开启的数据库dy_downloader.db会记录每一次下载。用一条 SQL 就能查看最近 20 条历史:
sqlite3 dy_downloader.db "SELECT aweme_id, title, author_name, datetime(download_time, 'unixepoch', 'localtime') FROM aweme ORDER BY download_time DESC LIMIT 20;"想统计每个作者下载了多少作品?换成:
SELECT author_name, COUNT(*) FROM aweme GROUP BY author_name;🔧 常见问题速查
Q1:只能抓到 20 条作品就停了?这是翻页风控的典型表现。请确保配置中browser_fallback.enabled: true且headless: false,浏览器弹出验证后手动完成,不要急着关窗口。
Q2:下载速度很慢?先检查网络,再试试把thread从 5 降到 3;也可以为 API 请求设置代理(proxy: "http://127.0.0.1:7890")。
Q3:下载过的内容想重新下载?去重同时依赖数据库和本地文件。删掉本地文件后,还需用sqlite3删除对应记录,例如:
sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = '作品ID';"Q4:进度日志刷屏怎么办?新版默认progress.quiet_logs: true会静默阶段日志,调试时再临时加--show-warnings或-v。
📋 常用命令速查表
| 场景 | 命令 | 说明 |
|---|---|---|
| 安装依赖 | pip install -r requirements.txt | 一次性准备环境 |
| 自动获取 Cookie | python cookie_extractor.py | 打开浏览器引导登录 |
| 手动配置 Cookie | python get_cookies_manual.py | 按脚本指引填入 Cookie |
| 下载单个视频 | python downloader.py -u "视频链接" | 短链/长链均可 |
| 批量下载主页 | python downloader.py -u "主页链接" | 结合配置文件mode/number |
| 指定并发数 | python downloader.py -u "链接" -t 8 | 按网络状况调整线程 |
| 下载直播 | python downloader.py -u "直播间链接" | 支持清晰度选择 |
| 导出热搜榜 | python run.py --hot-board 30 | 输出 JSONL 到hot_board/ |
| 关键词搜索 | python run.py --search "关键词" | 输出 JSONL 到search/ |
| REST 服务 | python run.py --serve --serve-port 8000 | 提供 HTTP 接口 |
🎯 下一步,你可以做什么?
到这里,你已经掌握了 douyin-downloader 从入门到进阶的大部分玩法。接下来可以:
- 深入配置:翻看项目中的
config.example.yml与USAGE.md,逐一了解comments(评论采集)、transcript(视频转写)、live(直播参数)等更多可选项。 - 探索源码:工具的核心逻辑在
apiproxy/douyin/与douyin-downloader/core/目录,感兴趣的话可以看看它如何解析链接、处理重试。 - 加入社区:如果遇到问题或有好点子,欢迎到项目页面提 Issue、分享使用经验。
最后想提醒一句: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),仅供参考