news 2026/8/28 16:24:07

douyin-downloader:抖音批量下载,从5小时压到10分钟

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
douyin-downloader:抖音批量下载,从5小时压到10分钟

douyin-downloader:抖音批量下载,从5小时压到10分钟

【免费下载链接】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

为了存下100条抖音视频,你得逐条打开页面、等播放器加载、右键保存、再改名归档,5个小时就这么过去了。douyin-downloader 是一款抖音批量下载工具,支持视频、图集、合集、原声音乐与创作者主页的无水印批量下载,能把同样的活压缩到10分钟左右。

手工收集败在哪:时间、质量、管理三个瓶颈

瓶颈手工/在线解析的典型表现本工具的破解方式
时间逐条打开链接,零并发,全靠人肉等加载配置文件一次提交多个链接,thread线程并发(默认5),100条约10分钟
质量二次解析站点压缩画质,文件下载到一半就断直接请求源流,断点续传+自动重试3次,文件完整可播
管理文件名随机、重复下载、素材靠回忆找SQLitedata.db记录去重,时间戳_标题文件夹自动归档,元数据落盘_result.json

表里"10分钟"的算法:工具侧5线程并发,单个作品的文件落盘加封面、原声获取约10~20秒,100个÷5线程=20个串行批次×20秒≈7分钟,加上按35条/页翻页的接口请求2~3分钟;手工侧按每条视频3分钟(打开、等加载、保存、改名)×100条=5小时。5小时÷10分钟≈30倍。

它不是一段单点解析脚本,而是分层清晰的方案:apiproxy/douyin/负责接口请求与下载主流程,apiproxy/douyin/core/负责限速、队列与进度统计,apiproxy/douyin/strategies/管理接口、浏览器与重试三类策略。

🚀 怎么把第一次批量下载任务跑起来

第一步:拿到项目并装依赖。一条命令克隆,一条命令装好运行所需的全部库:

git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt

第二步:获取Cookie。首次使用必须登录一次,程序会拉起浏览器,扫码登录抖音后回到终端:

python cookie_extractor.py

自动方式拿不到时,从浏览器按F12打开开发者工具,在任意抖音请求头里复制整串Cookie,贴进config.ymlcookies字段(键值对形式,如msToken: xxx)。

第三步:写最小配置。把项目里的config.example.yml复制为config.yml,只保留这几项:

link: - https://www.douyin.com/user/你的sec_uid path: ./Downloaded/ mode: - post number: post: 10 thread: 5 database: true

第四步:运行。不需要任何参数,程序自动读取同目录的config.yml

python DouYinCommand.py

第五步:核对结果。运行结束后看三处:Downloaded/user_昵称_sec_uid/post/下每个作品一个独立文件夹,命名是"发布时间戳_标题",里面有_video.mp4_cover.jpeg_music_标题.mp3_result.json;终端弹出"下载完成 成功: 10/10"的统计面板;项目根目录生成data.db,记下了本次下载历史,为增量更新做准备。

三个真实场景:竞品监控、案例库、BGM收集

内容运营:如何只拉竞品的新增作品

需求是每天盯几个竞品博主,只下新内容、不重复劳动。把多个主页放进link,并开启增量:

link: - https://www.douyin.com/user/竞品A的sec_uid - https://www.douyin.com/user/竞品B的sec_uid mode: - post increase: post: true database: true

increasedata.db记住"哪些下过",第二次运行只抓新作品,每天几分钟跑完,素材自动落到各自博主的文件夹里,省掉手动归档。

教培机构:如何把案例库收敛到三个月内的50条

需求是只要时间线清晰、数量可控的素材,用时间窗加数量上限一步到位:

mode: - post number: post: 50 start_time: "2026-05-01" end_time: "now"

end_timenow表示到今天为止。配合默认的folderstyle: true,每个作品一个文件夹,文件夹名自带时间戳,案例库天然就是一条时间线,检索效率远高于散落一地的文件。

音乐人:如何收齐某条原声下的全部作品

需求是收集使用某条BGM的热门作品做编曲参考,直接填原声页链接即可:

link: - https://www.douyin.com/music/1234567890 number: music: 100

程序识别出这是音乐链接后,按35条/页逐页抓取使用该原声的作品,统一存进Downloaded/music_标题_id/

四个值得打开的进阶能力

  1. 元数据与附件随主体一起落盘。每个作品文件夹默认连封面、原声、作者头像和完整元数据JSON一起保存,复盘素材时不用再回网页翻:
folderstyle: true json: true cover: true music: true

  1. 断点续传与自动重试。网络中断不用从头再来:失败自动重试,V2.0 的retry_times可调,重试之间按1秒/2秒/5秒递增等待,已下载的字节通过 Range 头续传:
retry_times: 3
  1. 并发一行可调。默认5线程,网络稳定时可以提到8,估算下来100条能从约10分钟再省3分钟左右:
thread: 8
  1. V2.0单命令入口。只下某个博主主页时连配置都不用写,downloader.py支持自动获取Cookie:
python downloader.py -u "https://www.douyin.com/user/你的sec_uid" --auto-cookie

📌 高频问题速查:先判断根因再动手

现象一:想重下某个作品,程序提示"跳过已存在"就不动了

根因:程序用"SQLite记录 + 本地文件"双重去重,两个条件都缺失才会重新下载。这是保护机制,不是坏掉了。解法:删掉该作品的文件夹,并清理data.db中对应记录(在t_user_post表按作品ID定位),两边都清掉后才会重下。只删文件、或只清数据库记录,单独操作都不会生效。

现象二:提示获取作品信息失败,或返回数据为空

根因:Cookie 过期,接口不再返回完整数据,这是常态。解法:重跑python cookie_extractor.py刷新一次,或把浏览器里新复制的整串Cookie贴进config.ymlcookies字段再运行。

现象三:大文件下载中途频繁断掉

根因:网络波动导致连接中断。这个工具对此有兜底:每次失败自动重试3次,且下一轮从已下载的字节继续(断点续传),大文件不必重新排队下载;若仍反复失败,优先检查网络环境。

项目结构与参与方式

两个入口分工明确:DouYinCommand.py是V1.0稳定版,适合单作品与配置文件驱动的批量任务;downloader.py是V2.0,适合主页批量并带自动Cookie。apiproxy/tiktok/目录已预留,后续平台扩展可以留意。想参与贡献,可以从apiproxy/douyin/strategies/的下载策略改起,也可以提交你在使用中遇到的问题。

最后:回到那30倍的差距

手工5小时对工具10分钟,这个30倍不是某一次运气,而是并发、增量与双重去重每天都能复现的结果。它的价值可以浓缩为四点:

  • 效率:5线程并发加increase增量,重复运行只抓新作品;
  • 完整:源流直连加断点续传加重试,文件可直接投入使用;
  • 管理data.db去重加时间戳文件夹加_result.json元数据,历史可查、可追溯;
  • 稳定:限速、指数退避重试、双重去重,长任务基本不用盯屏。

下一步很具体:克隆仓库、装好依赖,先下10条作品走一遍完整流程,跑通后再把increase打开投入日常。请只把工具用在平台规则与版权法规允许的范围内管理自己的素材,不要二次传播。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 16:23:39

基于MCP实现朋友间AI共享上下文:轻量部署与实战指南

"朋友之间共享上下文",这可能是目前 MCP 生态里一个非常轻巧但又不失想象力的玩法。这次我们来看一个发布在 Show HN 上的项目: Share context between friends via MCP 。它没有做复杂的知识库、没有搞高深的多智能体编排,核心就…

作者头像 李华
网站建设 2026/8/28 16:23:11

医学影像多模态检索:深度学习驱动的临床工作流重构

简介:医学影像多模态检索是一种融合图像与文本语义理解的智能检索技术,其核心在于构建跨模态对齐的联合嵌入空间,解决放射科医生在海量非结构化报告与DICOM影像中精准定位病灶的难题。依托深度学习实现端到端特征学习,结合窗宽窗位…

作者头像 李华
网站建设 2026/8/28 16:21:06

树莓派Pico与RP2040入门:从MCU原理到PWM/ADC实战开发指南

树莓派宣布做 MCU 的时候,我第一反应是“这班子是不是把小电脑做腻了”——但真把 Raspberry Pi Pico 拿到手,焊上排针点亮那颗 LED 之后,我才意识到这是个全新的物种。Pico 用的是树莓派自研的 RP2040 芯片,双核 Cortex-M0、最高…

作者头像 李华
网站建设 2026/8/28 16:20:53

莫比乌斯带填字游戏:从拓扑结构到网格建模

把填字游戏做在莫比乌斯带上,第一眼会觉得这就是一个纸艺噱头。真正动手之后才会发现,它改变的不是“带子能不能扭转”,而是填字游戏最基本的空间规则:一个格子有哪些邻居、词条可以沿哪个方向延伸、跨过粘合线之后又会落到哪一行…

作者头像 李华
网站建设 2026/8/28 16:20:08

计算机毕业设计之基于android的天干地支文化科普和动画系统

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的APP应运而生,各行各业相继进入信息管理时代,天…

作者头像 李华
网站建设 2026/8/28 16:19:43

从算法到模型:构建稳健插值解决方案的工程实践

1. 项目概述:从“插值”到“模型”的认知跃迁 “插值算法模型”这个标题,初看之下似乎有些冗余——算法不就是模型吗?但在实际工程与科研的语境里,这六个字精准地勾勒出了一个从理论方法到可执行、可优化、可评估的完整技术实体构…

作者头像 李华