资讯动态

抖音视频批量下载实操手册:从一条链接到博主全量作品的完整跑通记录

发布时间:2026/8/14 12:10:57 来源:尧图企业网站定制
抖音视频批量下载实操手册从一条链接到博主全量作品的完整跑通记录【免费下载链接】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先说结论我拿到一个抖音博主主页链接从零开始部署这套工具第一次运行就拉下了该博主全部 274 个作品用时不到 3 分钟视频、封面、配乐、头像全部落盘文件名整齐得像数据库导出的。整个过程用到的就是今天要介绍的这款开源项目——douyin-downloader抖音批量下载工具。它不是那种只能存单个视频的小脚本。你给它一条链接它能识别出这到底是单条视频、图文笔记、合集、音乐、还是某个作者的主页给它一个作者主页它能按你的要求把作品、点赞、合集、音乐一次搬回家顺便把每一条的水印去掉、封面存好、元数据写成 JSON。这篇文章不按功能介绍那套套路来。我会直接带你走一遍真实流程先让你 5 分钟跑通第一次下载再拆解配置文件里每一项到底在干嘛最后把新手最容易踩的坑和进阶玩法一次讲透。先看它到底能下载什么一张表说清楚内容类型链接示例说明单个视频/video/{aweme_id}单条视频自动去水印单个图文/note/{id}、/gallery/{id}图集类内容单个合集/collection/{mix_id}、/mix/{mix_id}完整保存合集下所有视频单个音乐/music/{music_id}优先拿原声文件缺失时回退到该音乐下的首条作品作者主页/user/{sec_uid}按post / like / mix / music模式批量下载我的收藏/user/self?showTabfavorite_collection备份当前账号收藏的作品collect或合集collectmix直播live.douyin.com/{room_id}实时录制 FLV/HLS主播下播自动保存短链v.douyin.com/...自动解析还原裸 host 也能处理也就是说平时在抖音 App 里点分享复制出来的那一串短链接直接丢给它就能跑不需要你手动去找真实地址。5 分钟跑通你的第一次下载环境要求不高Python 3.8macOS / Linux / Windows 都行。照着下面四步走。第一步拉取代码并安装依赖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第二步复制配置文件cp config.example.yml config.yml第三步搞定 Cookie只有首次需要工具里带了一个自动获取脚本跑起来之后它会打开浏览器让你登录抖音登录完回到终端按一下回车Cookie 就自动写进配置了python -m tools.cookie_fetcher --config config.yml第四步填上目标链接开跑把config.yml里的link换成你想下载的内容然后执行python run.py -c config.yml终端里会出现实时的下载进度当前处理到第几个、每个任务处于哪个阶段解析链接 / 提交请求 / 拉取资源、预计剩余时间全部一目了然。第一次跑通之后你会发现真正花时间的不是下载本身而是想清楚我到底要下什么。接下来把配置文件掰开揉碎讲。把配置文件读透一份 YAML 管理所有下载策略项目里给的config.example.yml就是最好的说明书我们挑几个关键块看。链接与数量link/mode/numberlink: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post - like - mix - music number: post: 50 like: 0mode决定下载作者主页的哪些内容post是作品、like是点赞、mix是合集、music是音乐。number控制每种模式拉多少条0 表示全量。一个link可以配多个mode也可以一次给多个link工具会逐个处理。跨模式自动去重同一个视频如果在作品和合集里都出现了只下载一次。link也可以指向你自己的收藏夹https://www.douyin.com/user/self?showTabfavorite_collection配合mode: collect或collectmix就能把收藏全部备份下来。注意收藏模式只能单独用不能和post、like这些混在一个任务里。存什么文件music/cover/avatar/jsonmusic: true cover: true avatar: true json: true这四个开关分别控制是否保存原声音乐、封面图、作者头像、JSON 元数据。全开的情况下每一条作品下载完都会生成一个文件夹里面是视频文件优先无水印源且会自动在bit_rate数组里挑最高码率的那个封面、头像、配乐一条完整的 JSON 数据标题、点赞数、评论数、发布时间等换句话说你拿到的不是孤零零的视频而是一整套可归档、可分析的数字资产。下载行为thread/retry_times/proxy/databasethread: 5 retry_times: 3 proxy: database: true database_path: dy_downloader.dbthread并发下载数默认 5。家里带宽够大可以调到 8。retry_times失败重试次数重试采用指数退避1 秒、2 秒、5 秒。proxy给 API 请求和媒体下载统一设置代理比如http://127.0.0.1:7890。database打开 SQLite 去重和历史记录这个建议永远开着。文件怎么摆命名模板与目录结构folderstyle: true filename_template: {date}_{title}_{id} author_dir: nicknamefilename_template决定每个文件的命名可用变量有{id} {title} {author} {author_id} {date} {year} {month} {day} {time} {timestamp} {type} {mode}等。要求模板里必须带{id}否则不同视频可能互相覆盖。author_dir决定作者目录怎么命名nickname最直观但重名会合并sec_uid稳定唯一但不直观nickname_uid兼顾两者重度用户推荐这个。默认的目录结构是按作者名/模式(post|like|mix...)/日期_标题_id/逐层展开的每个作品一个文件夹媒体和元数据都归拢在里面。四个实战场景照着抄就能用场景一把某位博主的历史作品全部搬回家link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 0 # 0 全量不限制条数跑完之后Downloaded/作者名/post/下面就是按日期排好的所有作品。第二次再跑同一个链接时因为数据库里已经有记录已经下载过的会直接跳过只补新增的——这就是增量更新的效果。如果你只想追新还可以显式打开增量开关increase: post: true场景二批量采集某个关键词或热搜的内容不用翻 App命令行直接搜# 按关键词搜索最多 100 条 python run.py --search 猫咪 --search-max 100 -p ./Downloaded # 拉当前热搜榜前 30 python run.py --hot-board 30 -p ./Downloaded两种方式的结果都会导出成 JSONL 文件时间戳命名方便后续做数据分析或二次处理。场景三录制一场直播link填直播地址加上live配置块就能录link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 0 录到主播下播 chunk_size: 65536 idle_timeout_seconds: 30录好的 FLV 会放在Downloaded/作者名/live/下并附带一份*_room.json直播间元数据快照。主播下播、网络空闲或你按 CtrlC 中断时已经录进去的字节都会被保留不会白录。场景四顺带把每条作品的评论也抓下来comments: enabled: true include_replies: false # true 会多拉每条评论的二级回复 max_comments: 500 # 0 不限 page_size: 20启用后每个作品旁边会多出一个*_comments.json做舆情分析、评论情感研究的同学应该会喜欢这个功能。新手最容易踩的坑五个高频问题一次排掉坑一只能抓到 20 条作品就停了。这是翻页风控的典型表现。对策确认browser_fallback.enabled: true且browser_fallback.headless: false当浏览器弹窗出现时手动完成验证不要立刻把窗口关掉。浏览器兜底目前对post模式验证最完整like/mix/music主要依赖 API 正常分页。坑二Cookie 失效报登录态失效。重新跑一遍 Cookie 获取命令即可python -m tools.cookie_fetcher --config config.yml工具内部也做了自动重登检测到未登录时会尝试重新登录一次并续跑任务不需要你手动干预。坑三怎么强制重新下载某条视频工具靠数据库记录 本地文件双重判断去重。想重下某条要把两边都清掉删掉Downloaded/作者名/post/下文件名含对应aweme_id的文件夹再执行sqlite3 dy_downloader.db DELETE FROM aweme WHERE aweme_id xxx;。注意只删文件不删数据库会触发重下只删数据库不删文件则不会——它会扫本地文件名去重。坑四进度条疯狂刷屏。默认progress.quiet_logs: true已经做了静默处理如果你自己把它关了调回 true 就好。排查问题时再临时加--show-warnings或-v看详细日志。坑五开了转写却没有生成 transcript 文件。按顺序自查transcript.enabled是否为 true下载的必须是视频图文不转写OPENAI_API_KEY环境变量或transcript.api_key是否有效response_formats里是否包含txt或json。转写默认会把源视频本地提取成单声道 MP3 再上传能省带宽、绕开 25MB 单文件上限这个设计对国内网络环境相当友好。进阶玩法把它变成你的自动化流水线性能与网络调优thread: 8 retry_times: 5 timeout: 120 proxy: http://127.0.0.1:7890 rate_limit: 2 # 默认 2 请求/秒别调太高内置的速率限制会在 2 请求/秒的默认值下工作配合频率控制长时间批量跑不容易触发平台风控。下载完推通知支持 Bark / Telegram / Webhook全部启用时会并发推送单个渠道失败不影响主流程notifications: enabled: true on_success: true on_failure: true providers: - type: bark url: https://api.day.app/YOUR_DEVICE_KEY sound: bell - type: webhook url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyxxx用定时任务自动追更Linux / macOS 配 crontab每天凌晨自动跑一遍增量下载0 2 * * * cd /path/to/douyin-downloader python run.py -c config.yml download.log 21Windows 用户则建一个.bat文件丢进任务计划程序效果一样。对接到你自己的系统REST API 服务模式pip install fastapi uvicorn python run.py --serve --serve-port 8000启动后会暴露四个接口POST /api/v1/download提交{url: ...}并返回 job_idGET /api/v1/jobs/{job_id}查状态GET /api/v1/jobs列任务GET /api/v1/health探活。完成态的 job 默认保留 24 小时、上限 500 条跑着的任务永不被清理。这意味着你可以把下载能力封装成内部服务让别的系统直接调。查历史记录所有下载记录都进了 SQLite一条 SQL 就能翻出来sqlite3 dy_downloader.db SELECT aweme_id, title, author_name, datetime(download_time, unixepoch, localtime) FROM aweme ORDER BY download_time DESC LIMIT 20;关于稳定性说几个实在的这套工具之所以值得长期用不是因为功能列表长而是它在下载这件事上做了足够的工程化下载完整性校验用 Content-Length 对比文件大小不完整的文件自动清理后重试断在半路的脏文件不会留在硬盘上。双重去重数据库记录 文件系统扫描同一批任务重复跑、不同模式之间交叉重复都不会浪费流量。智能兜底API 翻页受限时降级到浏览器模拟配合人工过验证码把只下到 20 条的尴尬局面兜住。短链解析v.douyin.com、v.iesdouyin.com甚至不带协议的裸链接都能自动还原。命令行模式下跑完一个任务终端会给出完整的下载统计成功几条、用时多久、保存路径下载好的文件结构也完全可控整理归档不需要再写第二个脚本。现在动手试试到这里工具的全貌你应该已经摸清了。它适合三类人做内容运营的想批量收集素材做研究的要大规模采集样本做归档的想把账号资产完整备份下来。我的建议是先复制配置文件拿一条你常看的博主链接跑一次全量下载亲眼看看274 个作品 全套元数据整整齐齐落盘的画面再决定要不要深入研究。熟悉之后把增量下载、定时任务、通知推送配起来它就会变成一个每天凌晨自动替你更新的内容采集器。最后提醒一句工具是放大器用在哪取决于人。请只下载你有权保存的内容尊重原作者版权与平台规则不要用于任何侵犯隐私或版权的用途。在合法合规的前提下让 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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价