抖音视频批量下载:clone 后 4 条命令跑通,附 5 个实用配置
【免费下载链接】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
凌晨一点,手机屏幕还亮着。你刷到当天的第 47 个视频,大拇指悬在保存按钮上,停了两秒,又缩回去了。不是不想存,是存完还得手动改名、拖进对应的文件夹,而分享短链过一会儿就失效。合集里 50 条视频摆在那,一条条存到完,兴致也早没了。这类"有空再整理",最后基本都是"永远不整理"。
它到底是什么:一个抖音视频批量下载工具
douyin-downloader 是一个抖音视频批量下载工具:把某个抖音主页上的视频、图文、合集、音乐搬到你的硬盘里,默认无水印。它不生产内容,也不做收藏页面,只管"下载 + 归档"这一件事。开源、MIT 协议,clone 命令在下一节。核心能力:
- 批量抓取用户主页,post / like / mix / music 四种模式
- 单个视频、图文、合集、音乐,短链自动解析
- SQLite + 本地文件双重去重,增量下载只取新内容
- 进度条、指数退避重试,API 翻页受限时切浏览器兜底过验证
- 附带 GUI 版 Douzy(内测中),粘贴链接即可跑
命令行 4 条命令跑起来
把代码拉下来、装依赖,三行结束:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt看到安装列表滚完,环境就绪。把模板配置复制出来,后面要调的选项都在这个文件里:
cp config.example.yml config.yml工具需要你的抖音登录 Cookie 才能拉数据。自动获取脚本会弹出浏览器,手机扫码登录,回终端按 Enter 即可 ✅:
python -m tools.cookie_fetcher --config config.yml此时 Cookie 已写进 config.yml。把要下载的链接粘到配置文件的 link 字段(主页、合集、单个视频链接都行),然后跑:
python run.py -c config.yml终端里会出现逐条作品的进度条,每条的文件大小、耗时一目了然,完成的文件落在当前目录的 Downloaded/ 下,一个作品一个子目录,视频、封面、元数据都在里面。
项目还有 Douzy 桌面 GUI(内测中),同一套后端,粘贴链接选模式,不用碰配置文件;老版入口 DouYinCommand.py 直接运行也行,适合只下一两条的场景。
这 5 个配置项最值得改
配置文件不用背,最常用的是这几个:
- 时间过滤:只想存某个阶段的内容,设
start_time/end_time,例如 "2024-06-01" 到 "2024-08-31",区间外的作品直接跳过。 - 增量下载:常刷的作者,设
increase.post: true并保留database: true,第二次跑只拉新增,不重复劳动。 - 并发数:网络环境一般时把
thread从默认 5 降到 3,风控风险小,稳定性换一点速度。 - 每作品独立目录:
folderstyle: true让每条作品自带子目录,配合music: true、cover: true、json: true,音频、封面、元数据同目录放好。 - 浏览器兜底:只抓到 20 条时,设
browser_fallback.enabled: true、headless: false,弹浏览器手动过验证后继续翻页。
start_time: "2024-06-01" end_time: "2024-08-31" increase: { post: true } thread: 3 folderstyle: true这几项可以叠着用,互不冲突。Douzy 桌面版也有同样的参数,只是换成了表单。
我实际试过的 3 种组合
- 时间范围 + 增量:旅行博主设了 6 月到 8 月的区间,首跑 200 多条,之后开着
increase.post再跑,40 秒,只补了 3 条新的 ⬇️ - 多链接 + 音乐模式:两个作者主页塞进 link,mode 只写 music,number.music: 0。结果没下一个视频文件,全是 MP3,按音乐分类进 music/ 目录。
- 直播录制:live.douyin.com 的链接丢进去,live.max_duration_seconds 设 3600,主播下播自动停,目录里的 .flv 直接能播,不用后处理。
卡住了怎么办
- 只抓到 20 条作品:翻页被风控掐住了。设
browser_fallback.enabled: true、headless: false,浏览器弹出后手动过验证码,别急着关窗口。 - 请求突然报错、什么都拉不下来:Cookie 失效了。重跑
python -m tools.cookie_fetcher --config config.yml更新即可。 - 想重下某条作品却被跳过:工具用 SQLite 记录 + 本地文件双重核对。删掉该条对应的本地文件(文件名含 aweme_id),下次运行发现文件缺失就会重新下载。
代码大概怎么组织的
想改代码的话,看这几处:
core/url_parser.py:识别你贴的是哪类链接core/downloader_factory.py:按链接类型分发到对应下载器core/user_modes/:post / like / mix 各模式的策略类,加新内容类型从这里入手storage/database.py:SQLite 去重和下载历史storage/file_manager.py:目录结构和文件命名
读代码从 url_parser 开始就行,它是所有下载的入口。
边界:丑话说在前面
仅个人学习、归档、研究用途,不商用,不二次分发;别开高并发去压平台接口。config.yml 里的 Cookie 是个人凭证,别提交到公开仓库,也别发给别人。接口策略变了工具失效,是使用第三方工具的常态成本。
收尾
完整配置项表、输出目录结构、重下方法都在仓库根目录的 README.zh-CN.md 里;命名模板逻辑在 utils/naming.py;出 bug 直接提 issue。没了。
【免费下载链接】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),仅供参考