抖音视频下载怎么做?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 就是一个命令行工具:单条去水印下载、作者主页批量下载、合集与原声提取、直播录制都能做,自带进度条、失败重试、数据库去重和浏览器兜底,MIT 协议,本地一条命令跑起来。
安装与登录态:两条命令加一次扫码
环境要求只有 Python 3.8+,Windows、macOS、Linux 都支持。先克隆仓库:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader进入目录后安装依赖,再复制一份可编辑的配置文件:
pip install -r requirements.txt cp config.example.yml config.yml拿到登录态是唯一的"动手步骤"——抖音接口需要 Cookie 才能取到资源。项目内置了自动抓取脚本,它会弹出浏览器让你登录,登录完成后回到终端按回车,Cookie 自动写进config.yml:
python -m tools.cookie_fetcher --config config.yml不想用自动抓取也没问题:从浏览器开发者工具里复制 Cookie 串,手动填进配置文件的cookies段,关键字段是msToken、ttwid、odin_tt、passport_csrf_token。两种方式都只做一次,之后长期免登录使用。
单条抖音视频下载:一条命令拿无水印视频
最小配置只需要link一个视频链接加path保存目录。也可以不改文件,直接用-u参数追加链接:
python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538"跑完后到Downloaded/作者名/目录下查看结果:默认folderstyle: true会为每个作品建一个以"日期_标题_aweme_id"命名的子文件夹,里面是 mp4 视频本体。工具会优先选无水印源,再从 API 返回的多档码率里挑最高的一档(可用video_quality指定original、1080p等)。想要封面、原声、元数据的话,把配置里cover: true、music: true、json: true打开即可,同目录下会多出_cover.jpg、_music.mp3、_data.json几个文件。
短链也支持:https://v.douyin.com/...会自动解析成真实地址,图文(/note/)和合集(/collection/)链接同理。
抖音主页批量下载:作者作品怎么一次性拿全
把配置里的link换成作者主页地址,mode指定post,number.post限定数量(0表示不限),然后运行python run.py -c config.yml。工具会翻完该作者的所有作品,thread: 5控制并发下载线程数,retry_times: 3控制单条失败后的重试轮数。
几个值得注意的机制:
- 去重:
database: true时,每个作品的 aweme_id 都会写进本地 SQLite(默认dy_downloader.db),下次再跑同一主页,已下载的自动跳过,不重复占磁盘 - 增量:
increase.post: true配合数据库使用,第二次运行只补新发的作品,适合定期更新素材库 - 时间窗:
start_time/end_time(格式YYYY-MM-DD)可以只拉某个时间段,比如只更新最近一周的内容 - 进度可见:Rich 进度条实时显示每个链接的进度,结束后打印"成功/失败/跳过"的汇总,不需要盯屏幕
失败重试走指数退避(1s、2s、5s),下载还有 Content-Length 完整性校验,残缺文件会自动清掉重拉。
原声提取、点赞列表与直播录制
同一套配置,换mode就是另一种玩法:
- 原声提取:
/music/{music_id}链接直接抓原声文件,没有原声文件时回退到该音乐下的首条作品;mode: [music]则批量拉取某作者使用过的音乐 - 点赞列表:主页链接配
mode: [like],下载作者点赞过的内容 - 收藏夹:
/user/self?showTab=favorite_collection配mode: [collect]或[collectmix],只支持当前 Cookie 登录的账号,且需单独使用
直播录制是单独一条链路:把link指向live.douyin.com/{room_id},配置里打开live段(max_duration_seconds: 0表示一直录到主播下播)。录到的 FLV 存在Downloaded/{作者}/live/下,附带一份*_room.json直播间元数据。主播下播或网络中断时,已录制的字节会保留,.tmp文件自动转正,不用从头再来。
稳定性设计:API 引擎加 Playwright 浏览器兜底
批量任务最怕请求多了被风控、翻几页就卡住。douyin-downloader 的处理方式是双引擎:日常走 API 直连,速度快;当post模式翻页被限制时(典型症状是只抓到 20 条左右),自动启动 Playwright 开的真实浏览器继续翻页,browser_fallback.enabled: true加headless: false时,弹窗里还能手动过验证码。
另外两个细节:全局限速默认 2 请求/秒,避免请求过快触发限制;登录态失效时会弹提示,交互环境下自动拉起重新登录流程,而不是直接报一堆错。
定时更新与日常维护
素材库建好后,更新可以交给系统。Linux 上用 cron 每天凌晨增量跑一次:
0 2 * * * cd /path/to/douyin-downloader && python run.py -c config.yml >> download.log 2>&1日常维护记住三件事:
- 并发与限速:普通网络
thread设 3~5 足够,请求快容易被限,慢只会多等几秒 - Cookie 过期:下载开始批量报错时,重跑一次
python -m tools.cookie_fetcher --config config.yml即可 - 进度刷屏:嫌日志吵就把
progress.quiet_logs保持为true(默认已开)
上手清单
- 克隆仓库并
pip install -r requirements.txt装好依赖 - 复制
config.example.yml为config.yml,运行 cookie_fetcher 完成一次登录 - 用
python run.py -c config.yml -u "视频链接"下第一条无水印视频 - 把常看的主页加进
link,mode选post,开批量下载 - 需要持续更新时,配一条 cron 定时任务
想再深入一点:完整配置项说明看 README.zh-CN.md,每个开关的默认值在 config.example.yml 里有逐行注释,浏览器兜底和下载器实现的源码在 core/ 目录下。项目还在内测一个基于同一套后端的桌面版 Douzy,支持粘贴链接即下、关注列表同步和可视化任务中心,不需要命令行也可以玩。
【免费下载链接】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),仅供参考