抖音批量下载 300 条无水印视频:手动要一整天,这个工具只要一份配置
【免费下载链接】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 做的事情其实很直接:给它一个主页链接和一份 YAML 配置,无水印视频、封面、原声、元数据会按目录结构批量落到本地,已下载过的作品自动跳过。对个人学习整理、创作者给自己作品做备份这类场景来说,它就是把重复劳动外包给了脚本。
一句话认识 douyin-downloader
一句话定位:基于 Python 的命令行下载工具,核心能力是拿到无水印的原始视频源(自动选择无水印源,而不是事后裁掉水印),配上文件组织、数据库去重和自动重试。下面是它实际能处理的链接类型:
| 内容类型 | 链接形态 | 能拿到的内容 |
|---|---|---|
| 单个视频 | /video/{aweme_id}或v.douyin.com短链 | 无水印视频,可附加封面、原声、JSON 元数据 |
| 单个图文 | /note/{note_id}、/gallery/{note_id} | 图集文件与元数据 |
| 单个合集 | /collection/{mix_id}、/mix/{mix_id} | 合集内全部作品 |
| 单个音乐 | /music/{music_id} | 优先原声文件,缺失时回退到该音乐下的首条作品 |
| 用户主页批量 | /user/{sec_uid} | 按mode指定抓取发布作品、喜欢作品、合集或音乐 |
| 直播录制(实验性) | live.douyin.com/{room_id} | 录制流与直播间元数据 |
关于直播那行要提前说明现状:官方标注它是实验性能力,webcast 直播接口并未覆盖所有场景;录出的 FLV 可以直接播放,HLS 源则只保存 playlist 文件,需要 ffmpeg 后处理。日常使用建议把它当尝鲜功能,而非主力方案。
安装依赖与获取抖音 Cookie 的两种方式
环境要求不高:Python 3.8+,Windows、macOS、Linux 都能跑。装依赖分两步:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt如果打算用浏览器自动获取 Cookie、或需要翻页受限时自动兜底,再补装浏览器组件:
pip install playwright python -m playwright install chromium然后复制一份配置模板作为起点:config.example.yml 复制为config.yml即可。
Cookie 是访问抖音 API 的通行证,有两种拿法。推荐第一种:tools/cookie_fetcher.py会直接拉起浏览器,你只管扫码登录,登录完成回终端按 Enter,关键 Cookie 字段自动写进配置文件:
python -m tools.cookie_fetcher --config config.yml第二种是手动复制:在浏览器里登录抖音后,从开发者工具把 Cookie 字符串复制出来,逐个填进config.yml的cookies段(config.example.yml 里有全部字段占位)。手动方式灵活但容易漏字段,自动方式基本零出错,能走自动就别走手动。
抖音主页作品批量保存步骤:给链接、改配置、运行
打开config.yml,批量任务只需要动几处:
link: - https://www.douyin.com/user/MS4wLjABxxxx path: ./Downloaded/ mode: - post number: post: 0 music: true cover: true json: true thread: 5 database: truelink放主页链接,path定落盘目录,mode选内容模式(post为发布作品),number里对应模式的数值控制条数,0表示不设上限。music/cover/json三个开关决定要不要顺带保存原声、封面和元数据。配置完成后运行:
python run.py -c config.yml程序会先拉取作品列表,再按并发下载,终端里有进度条。跑完后打开path指向的目录,结构长这样:
Downloaded/ └── 作者名/ └── post/ └── 2024-02-07_作品标题_aweme_id/ ├── xxx.mp4 ├── xxx_cover.jpg ├── xxx_music.mp3 ├── xxx_data.json └── xxx_avatar.jpg作者一层、模式一层(post/like/mix/music)、作品一层,作品目录名里带日期和 aweme_id,不会重名覆盖,翻起来很顺手。
顺手补一句验收标准:database: true时本地会生成dy_downloader.db,程序靠"数据库记录 + 本地文件"双重判断哪些作品已下载,同一份配置重复跑不会重复下载。
时间过滤、增量更新与并发数:什么需求对应什么开关
进阶用法其实就集中在几个开关上,按需求对号入座即可:
- 只想备份新作品:
increase对应模式设为true(依赖database: true),配合定时任务就是"每天只抓新增"; - 只想要某个时间段:
start_time/end_time写YYYY-MM-DD,抓取范围被圈死在窗口内; - 同一主页既抓发布又抓喜欢:
mode里同时列post和like,number各自控制条数,跨模式遇到同一个作品自动去重; - 调节速度:
thread是并发数,默认 5,网络稳可以上调,不稳就调低;内置速率限制默认 2 请求/秒,retry_times控制重试次数,偶发超时和频率限制由指数退避(1s、2s、5s)自动消化,一般不用人工干预。
遇到这些情况怎么办
- 只抓到 20 条就停了:这是翻页风控的典型表现。确认
browser_fallback.enabled: true、headless: false,浏览器弹窗出现后手动完成验证、别急着关窗口(兜底目前只对post做了完整验证,like/mix/music主要靠 API 正常分页)。 - 提示 Cookie 失效:重新执行
python -m tools.cookie_fetcher --config config.yml即可,不用改别的。 - 某条作品想强制重下:去重是"数据库 + 本地文件名"双重判断,只删一边都不够,需要同时删掉对应作品目录和数据库里该条记录。
- 进度条刷屏干扰阅读:确认
progress.quiet_logs: true,调试时再临时加-v。
几个高频疑问在这里一并给结论:下载源本身就是无水印源,成品没有平台水印;必须提供有效 Cookie,也就是要用自己的账号登录一次;速度主要看网络和thread取值,5 并发下 100 条视频大致十几分钟到半小时;批量数量没有硬性上限,但建议分批执行,别一次把量堆到最大。
功能边界与合规使用
把边界说清楚,免得期望落空:
- 直播录制仍是实验性功能,接口未覆盖全部场景,HLS 源需 ffmpeg 后处理,别把它写进关键流程。
- 收藏相关模式(
collect/collectmix)只作用于当前 Cookie 对应的账号,且必须单独使用、不能和post/like/mix/music混用,也不支持增量截断。 - 下载内容仅限个人学习与个人数据管理,商业用途和二次传播都涉及版权,动手前想清楚用途。
- 控制节奏:并发保持温和,避免短时间大量抓取;不下载、不传播他人隐私内容;接口策略或平台规则变化导致功能失效,属于这类工具的正常技术风险。
一句话总结:把链接和配置交给 douyin-downloader,把时间留给内容本身。
- 克隆仓库,
pip install -r requirements.txt装好依赖; - 运行
python -m tools.cookie_fetcher --config config.yml拿 Cookie; - 填好
config.yml后python run.py -c config.yml,验收Downloaded/目录结构。
【免费下载链接】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),仅供参考