3条命令提取抖音视频封面:douyin-downloader 封面批量下载完整教程
2026/9/15 21:37:43 网站建设 项目流程

3条命令提取抖音视频封面: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 是一个偏实用的抖音批量下载工具,默认就支持视频、图文、合集、音乐下载,把配置里的cover开关打开,它还会把每个视频的原始封面一并存盘,文件名自动带_cover后缀,一眼就能认出来。下面从装环境到批量提取封面,3条命令就能跑通。

这个工具还能顺带干什么

封面只是它的一个附属开关,主线能力其实更宽:

  • 单链接直接下:粘贴/video//note/(图文)、/collection/(合集)、/music/(音乐)链接都能识别,v.douyin.com短链自动解析
  • 作者主页批量拉取post(作品)、like(点赞)、mix(合集)、music(音乐)四种模式,封面跟着每条作品一起落盘
  • 无水印 + 自动挑清晰度:优先选无水印视频源,从video.bit_rate档位里自动挑最高码率
  • SQLite 去重和增量dy_downloader.db记录已下载的作品 ID,重复运行只补新内容,跨模式也不会重复下载同一个 aweme_id

3步跑通:安装、登录、出第一张封面

第 1 步,装环境:

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

第 2 步,拿 Cookie(批量抓主页必需要,单视频可跳过):

python -m tools.cookie_fetcher --config config.yml

按提示在弹出的浏览器里登录抖音,回终端按 Enter,Cookie 会自动写进配置,不用手动复制粘贴。

第 3 步,把config.yml里的cover改成true,然后跑第一条下载命令:

python run.py -c config.yml -u "https://v.douyin.com/xxxx/" -p ./Downloaded

单视频会同时产出..._cover.jpg;批量场景则把link换成https://www.douyin.com/user/xxxx主页链接、mode设为postnumber.post填 50,它就把最近 50 条作品的封面按"作者名/post/日期_标题_ID/"的目录结构存下来。跑完在终端里执行find ./Downloaded -name "*_cover.jpg",能看到文件列表就说明出图了。

下载目录和数量改在哪

真正需要动的配置就 5 个,都在 config.example.yml 里:

配置项默认值改成什么、为什么
coverfalse改成true,本文的主角,不开就不会存封面
path./Downloaded/改成你的素材库目录,视频和封面都落在这里
number.post0(不限)批量场景建议填 50/100,先试小值再放大
thread5并发下载数,3-8 之间比较稳
retry_times3失败重试次数,按 1s/2s/5s 指数退避

不想改文件的话,命令行也能临时覆盖:-p ./covers改目录、-t 8改并发,优先级高于配置文件。

封面是怎么选出来的

程序拿到一条作品后,会在返回数据的video节点里按顺序找封面:先找origin_cover(原图),没有就找cover_original_scale,最后才是预览用的cover。哪个字段有值就用哪个,取它的url_list作为下载地址;图文作品没有视频封面,工具会自动回退到图集第一张图,所以图文链接也能出_cover.jpg

for key in ("origin_cover", "cover_original_scale", "cover"): source = video.get(key) if isinstance(source, Mapping): urls = source.get("url_list") or source.get("urlList") if urls: return urls return []

核心逻辑就这一小段,实现在 core/metadata.py 的extract_video_cover_urls里。

跑批前先看这4条

排查问题按顺序来:

  1. 只抓到 20 条左右就停了:翻页被风控。确认browser_fallback.enabled: trueheadless: false,浏览器弹窗出来后手动完成验证,别急着关窗口
  2. 报未登录或请求 403:Cookie 过期,重跑第 2 步的 cookie_fetcher 命令即可
  3. 视频下了、封面没有:检查cover是不是还是false,默认值就是关的
  4. 进度条刷屏看不清:保留progress.quiet_logs: true即可,调试时再加--show-warnings

提高成功率的经验:

  • 并发别贪大,thread放在 3-8,工具本身默认限速 2 请求/秒
  • 大批量任务挑凌晨跑,白天高峰更容易触发风控
  • 重复运行不用清理文件,数据库加本地文件名双重去重,天然增量
  • 走代理的话填proxy配置项,API 请求和媒体下载都会走

关键文件去哪找

  • config.example.yml:全部开关和默认值,复制一份改名就能用
  • core/metadata.py:封面 URL 提取逻辑,origin_cover优先级在这里
  • core/downloader_base.py:下载主流程,_cover.jpg就是在这里保存的
  • tools/cookie_fetcher.py:自动获取 Cookie,登录态失效就重跑它
  • run.py:命令行入口,-u-p-t都从这里生效

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询