抖音视频批量下载入门: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 就是一个为抖音视频批量下载而生的开源命令行工具,去水印、批量抓取、直播录制都能交给它完成。本文带你走完四步:跑通第一次下载 → 配置登录态 → 圈定下载范围 → 把长任务跑得稳。
先对一下号:你有没有这些情况
动手装工具之前,先看下面这些场景你中招了几条:
- 收藏攒了几百条,逐条打开、另存,存到一半就放弃了
- 用第三方站点下过视频,结果全是水印或者一堆广告
- 想存的不只是视频——图集、合集、背景音乐、直播回放也想留一份
- 同一批内容反复下过,磁盘里躺着一堆重复工件
- 批量任务一跑几十分钟,中途挂了也完全没察觉
只要勾中两条以上,这个工具就是为你准备的:链接识别、去水印下载、自动归档、断点续传、失败重试,整条链路它都管了,你只负责给链接和一份配置。
快速上手:三步下载第一条视频
第一步,把项目克隆到本地:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader第二步,装好 Python 依赖(需要 Python 3.8 以上):
pip install -r requirements.txt如果你后面想用"自动弹浏览器登录取 Cookie"的能力,顺手再装一个 Playwright:
pip install playwright && python -m playwright install chromium第三步,建一份最小配置然后运行。项目自带模板,拷一份出来用:
cp config.example.yml config.yml打开config.yml,把link换成单个视频链接来测试,这样最稳妥,能快速验证 Cookie 和网络都正常,别一上来就丢一个用户主页:
link: - https://www.douyin.com/video/1234567890123456789 path: ./Downloaded/然后执行:
python DouYinCommand.py程序会先打印本次下载配置,接着逐条推进度条,最后给出"下载完成,成功 N/N"的统计。已经下过的文件会直接标"跳过已存在",全程不用你干预。
看到最后那条成功统计,你的第一条无水印视频就到手了。
跑通之后:看清它到底能干什么
第一次跑通只是开胃菜。下面是这个工具的能力速查,一次看全:
| 项目 | 内容 |
|---|---|
| 覆盖的内容类型 | 视频、图文图集、合集、音乐原声、直播、直播回放 |
| 批量能力 | 按用户主页整包抓取作品、点赞、合集、音乐,可多模式叠加 |
| 附带资源 | 封面图、作者头像、JSON 元数据、背景音乐,可逐项开关 |
| 稳定性机制 | 失败自动重试、SQLite 数据库去重、浏览器兜底接管 |
| 使用形态 | 命令行脚本 + 桌面客户端 Douzy,两种形态本地免费用 |
它支持的链接类型也很直白,一一对应不同内容:
| 链接形态 | 对应内容 |
|---|---|
https://www.douyin.com/video/xxxx | 单条视频 |
https://www.douyin.com/note/xxxx | 单条图文笔记 |
https://www.douyin.com/collection/xxxx | 单个合集 |
https://www.douyin.com/music/xxxx | 单条音乐原声 |
https://www.douyin.com/user/xxxx | 用户主页,可批量抓 |
https://live.douyin.com/xxxx | 直播间,可实时录制 |
https://webcast.amemv.com/reflow/xxxx | 直播回放 |
单条视频、图集、合集这类链接,工具会自动识别类型,你不需要额外指定模式。批量抓取多条内容时,进度条会像下面这样逐条推进到 100%:
登录态:动手前必须做的一件事
抖音的大部分内容都要登录才能看,所以 Cookie 配不好,后面全是白干。项目给了三条路,选一条就行:
- 自动获取(推荐):
python cookie_extractor.py,工具会弹浏览器引导你完成登录,然后自动把 Cookie 写好; - 手动粘贴:浏览器登录抖音后,从开发者工具里复制整串 Cookie,填进配置文件的
cookies字段; - 浏览器兜底:程序内置浏览器模式,接口受限时会自动接管请求,你只需要完成一次页面验证。
自动获取的详细步骤可以参考项目自带的 使用说明 一节。
记住一点:Cookie 有有效期。哪天突然大面积下载失败,第一个怀疑对象就是它过期了,重跑一遍自动获取流程基本就能恢复。
圈定下载范围:内容与数量
同样是用户主页链接,mode填得不同,抓回来的东西完全不同——这是配置里最核心的开关:
| mode 取值 | 抓取的内容 |
|---|---|
post | 该用户发布的作品 |
like | 该用户点赞过的作品 |
mix | 该用户创建的合集 |
music | 该用户相关的音乐原声 |
模式可以叠加,比如post + music就是作品和原声一起拿。数量上限和时间范围也能精确卡住:
| 配置项 | 写法 | 说明 |
|---|---|---|
number | 每个模式一个数字,0表示不限 | 例如post: 50只抓最近 50 条 |
start_time/end_time | YYYY-MM-DD | 只抓这个日期区间内发布的内容 |
increase | 每个模式一个布尔值 | 增量模式,只下载新出现的 |
配置项全览:一张表调完所有参数
常用参数就下面这些,对着改就行:
| 参数 | 作用 | 建议值 |
|---|---|---|
link | 要下载的链接列表,可多条 | 按需填写 |
path | 文件保存根目录 | 自定义一个目录 |
mode | 主页链接的下载模式组合 | 从post起步 |
number | 各模式的数量上限 | 0= 不限制 |
thread | 并发线程数 | 默认 5,网速好可加到 8 |
retry_times | 单条失败后的重试次数 | 3 左右 |
max_per_second | 每秒最大请求数,压风控用的 | 2~3 |
music/cover/avatar | 是否顺带下音频、封面、头像 | true |
json | 是否保存元数据 JSON | true |
database | 是否启用数据库去重 | true |
start_time/end_time | 按发布时间过滤 | 留空不过滤 |
proxy | HTTP/HTTPS 代理地址 | 按网络环境填 |
database: true值得单独说一句:每条下载记录都会写进 SQLite 数据库,再和本地文件双重比对,下次运行自动跳过已存在的作品——这就是它能长期增量跑而不重复占磁盘的原因。
文件落在哪、名字怎么定
默认归档结构是"创作者 → 模式 → 日期_标题_ID",层级清楚,找东西不费劲:
Downloaded/ └── user_某位作者/ └── post/ └── 2024-12-30_作品标题_aweme_id/ ├── video.mp4 # 无水印视频 ├── music.mp3 # 背景音乐 ├── cover.jpg # 封面 ├── avatar.jpg # 作者头像 └── metadata.json # 完整元数据下载完成后的目录效果大致是这样,每条作品一个独立文件夹:
对命名有洁癖的话,用模板变量自定义文件夹名:
filename_template: "{date}_{title}_{id}"可用变量一行说清:{date}发布日期、{title}标题、{id}作品 ID、{author}作者昵称、{author_id}作者 ID、{mode}下载模式,随便组合。
四套用即走的场景配方
配方一:整站备份一个创作者
场景:把某个博主的作品全集打包收入本地。一个主页链接 + 多模式 + 数量不封顶:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post - mix - music number: post: 0 mix: 0 music: 0配方二:直播实时录制
场景:整场直播想完整留档,不用开录屏软件。直接用命令行参数指向直播间:
python DouYinCommand.py -l https://live.douyin.com/123456789 -p ./Downloaded/程序会拉出该直播间的全部清晰度,输入编号后把流地址打到终端;配合max_duration_seconds(最长录制时长,0 表示录到下播)和idle_timeout_seconds(空闲超时自动结束)两个参数,长直播也能安心挂着:
配方三:评论数据采集
场景:做内容分析,想把作品下的评论也一并收走:
comments: enabled: true include_replies: false # 是否包含二级回复 max_comments: 500 # 采集上限 page_size: 20配方四:每天只补新增
场景:定时任务每天跑一遍,只拿新内容。开数据库去重 + 增量模式:
increase: post: true like: true database: true旧作品全部自动跳过,硬盘只增不重。
让长任务不翻车
批量任务跑得久,最怕中途崩掉白跑一趟。下面这一组参数是防翻车组合拳,一次配好:
thread: 8 # 网好可以适度调高并发 retry_times: 3 # 单条失败自动重试 max_per_second: 2 # 控住请求频率,压风控概率 proxy: "http://127.0.0.1:7890" # 需要代理时填 browser_fallback: enabled: true # API 受限时切浏览器兜底 headless: false max_scrolls: 240 idle_rounds: 8 wait_timeout_seconds: 600翻到后面几页触发风控时,浏览器兜底会弹出一个真实浏览器窗口,你手动过一次验证,任务就接着跑。任务结束后还可以把结果推到手机,跑批量的时候不用盯终端:
notifications: enabled: true on_success: true on_failure: true providers: - type: bark url: https://api.day.app/YOUR_DEVICE_KEY不想敲命令?用桌面版 Douzy
命令行适合脚本化定时跑,但日常零散下载更顺手的是桌面客户端 Douzy,同样是本地免费使用。它把四件事都做成了可视化:
- 链接自动识别:粘贴主页或单条链接,自动检测内容类型,勾选"作品 / 喜欢 / 合集"就能开下;
- 任务中心统一调度:所有任务集中管理,进行中、成功、失败一目了然,支持一键打开目录;
- 作品档案检索:历史下载记录进本地数据库后,可按博主、关键词、类型、时间范围多维筛选,还能一键"下载最新作品";
- 实时事件流:每个任务从解析链接、排队到处理完成,每一步状态都有日志,卡在哪一步一看便知。
每条作品的下载明细(视频、头像、音乐、封面、元数据齐不齐)在任务详情里也能逐件核对:
出问题就查这里
为什么批量下载只拿到 20 条左右就停了?这是抖音的翻页限制在拦你。把browser_fallback打开,弹窗时手动过一次验证,就能继续往下抓。
怎么某天突然全部下不动了?最大嫌疑是 Cookie 过期。它是有寿命的,重新跑一次python cookie_extractor.py一般立刻恢复。
想翻一下之前都下过什么?直接查数据库最快:
sqlite3 data.db "SELECT aweme_id, title, author_name, datetime(download_time, 'unixepoch', 'localtime') FROM aweme ORDER BY download_time DESC LIMIT 20;"某条作品想重新下载一遍怎么办?数据库记录和本地文件两边都要清,缺一边都不行:
sqlite3 data.db "DELETE FROM aweme WHERE aweme_id = '作品ID';"再删掉对应目录,重新运行即可。
下载速度太慢,怎么提速?按顺序试三件事:加thread并发、放宽max_per_second、必要时挂代理。注意小步慢加,一步拉满容易触发风控,反而更慢。
收尾
一句话定位:douyin-downloader 就是把"保存抖音内容"这件琐事做成了一条命令的自动化流水线——链接 + 配置,剩下的交给它。
给你三条马上能用的建议:
- 先用单条视频链接把 Cookie 和网络验证掉,再放大到批量任务;
- 给不同用途各建一份配置文件,比如"日常收藏"和"完整备份"分开维护;
- Cookie 定期重新获取一次,这是长期稳定跑的生命线。
声明:本项目仅供技术学习与个人数据管理使用,请遵守平台规则,尊重创作者版权与内容权益。
【免费下载链接】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),仅供参考