乐于分享
好东西不私藏

Python视频下载神器:yt-dlp+M3U8+CocoCut,翠花的学习视频我一把梭了

Python视频下载神器:yt-dlp+M3U8+CocoCut,翠花的学习视频我一把梭了

翠花在短视频平台刷到一个视频,转头跟我说:

“这个视频很有学习意义,你把它下载下来发给我。”

然后她发来第二条消息:

“顺便把这个系列的都下一下,大概三十多个。”

我当时的表情是这样的:🙂

心里想的是:翠花,你说的”顺便”这两个字,让我觉得我们对”顺便”的理解可能不在同一个维度。


但翠花的话还得听。我打算用Python实现一个视频下载小工具,顺带把在线视频的播放原理也讲清楚——这样下次翠花再有这类活,就可以把这篇文章甩给她。


在线视频是怎么播放的

很多人以为点开视频,浏览器就在下载一个完整的mp4文件。

其实不是。

大多数视频网站用的是 HLS(HTTP Live Streaming) 协议,核心是一个叫 M3U8 的文件,它本质上是个索引——

视频 = M3U8索引(目录) + 无数个.ts切片(碎片)

浏览器在后台一片一片地把这些碎片拼起来给你看,并没有一个完整的视频文件存在你电脑里。

这也是为什么很多网站「右键另存为」根本没用。你看到的那帧画面,不是一个文件,是实时拼接出来的。🙃


yt-dlp + FFmpeg

原理搞清楚了,解决方案就清晰了:

  • • yt-dlp:开源视频下载工具,支持几百个网站,能自动分析M3U8索引,一条命令搞定
  • • FFmpeg:音视频处理工具,负责把下载下来的碎片合并成完整视频

两者配合,大部分视频网站可以直接下,M3U8直链也能一把梭。

我用Python把这俩工具包了一层,做成了一个带界面的小工具,扔给翠花之后她自己就能下了。


遇到加密严格的网站怎么办

没有什么工具是万能的,有些平台对视频加密保护得很严,yt-dlp也解析不了。

这时候,秘密武器出场了:

CocoCut 浏览器插件

这是一位大神写的Chrome/Edge扩展,逻辑很简单——

你在浏览器里能播,我就能在网络层截获你。

浏览器播放视频,网络请求必须经过本地,CocoCut就蹲在那里,悄悄把视频流抓下来。

下载不了?我还不能录制你了。

使用方法也极简单:

  1. 1. 安装CocoCut扩展
  2. 2. 打开目标视频网页,正常播放
  3. 3. CocoCut自动嗅探,点击下载

就这三步,大部分「顽固分子」就此束手就擒。


最后

视频下载工具再强,也要记住:

下载仅供个人学习使用,不得用于商业传播,尊重版权。


领取工具包

工具源代码也一并放上,请放心使用,有能力可自行调试,回复「视频下载」领取工具


关注小虾,一起成长,一起进化

往期推荐

RAG到底是什么?让AI拥有”外挂大脑”的技术
我的AI助手把我1000积分花完了,活儿一点没干
翠花买课后PDF不能打印,我当场给她解了