cat-catch
cat-catch copied to clipboard
请问基于m3u8的视频到底该怎么下载?
猫抓能解析到m3u8,但是那只是个.ts文件清单。这意思是,自己下载m3u8,再用别的工具,去下载这个m3u8对应的.ts文件,然后合并吗?
猫抓不能像stream recorder扩展那样,在扩展内,下载m3u8对应的所有.ts文件,然后扩展自动进行合并,用户最终直接得到一个mp4文件吗?
在计划里,目前2.0重点还是在捕获功能上,以后会去加强m3u8功能
配合N_m3u8DL-CLI使用,完美!
看了下,N_m3u8DL-CLI 支持一个叫:m3u8dl://
的协议,可以通过这个地址直接调用。既然如此,那么不开发扩展内下载合并m3u8也是可以的,一键填入 m3u8dl://
协议地址,并打开本地N_m3u8DL-CLI 下载就行了。
因为chrome如今不允许扩展下载基于ssl的m3u8内容,所以还是用第三方下载工具算了。但是要注意,必须填入referer到header中。现在的视频网站,提供的m3u8,都会通过header中的referer,来限定来源。第三方工具如果不发送正确的referer,即使拿到了m3u8,一般也是下载不了的。
看了下,N_m3u8DL-CLI 支持一个叫:
m3u8dl://
的协议,可以通过这个地址直接调用。既然如此,那么不开发扩展内下载合并m3u8也是可以的,一键填入m3u8dl://
协议地址,并打开本地N_m3u8DL-CLI 下载就行了。因为chrome如今不允许扩展下载基于ssl的m3u8内容,所以还是用第三方下载工具算了。但是要注意,必须填入referer到header中。现在的视频网站,提供的m3u8,都会通过header中的referer,来限定来源。第三方工具如果不发送正确的referer,即使拿到了m3u8,一般也是下载不了的。
感谢你的研究。现在已经支持了m3u8dl://
。另外在m3u8解析里也添加了一个简单的ts合并下载功能。
感谢支持m3u8dl://
,但是有几个问题:
- 填入的referer有时候是错的。现在填入的referer,是当前网页地址。然而,视频站有些是,通过一个iframe,调用另一个域名下的视频播放器。猫抓解析到的,是那个iframe中的视频播放器里的m3u8。所以,这时候,referer需要是那个iframe中的网页地址,才能访问m3u8。
这个问题也存在于解析器中。因为解析m3u8需要iframe的页面地址作为referer,所以目前解析器对这种情况解析不了。
我还碰到过视频网站,故意用另一个域名,作为视频cdn的referer,就为了防止把当前网页作为referer,往下载工具里填的做法。
最根本的解决办法是,既然读取了网页请求m3u8的http request,那么里面的referer也应该可以获取到,那个referer,就是正确的referer,而不是当前网址。
- 现在没有填入标题,所以标题是个不可读的编号。最好能用网页标题作为视频标题。
在解析页面,最下方"尝试下载ts并合并"这个按钮,下载的文件也有这个问题。没有使用页面标题作为文件名,导致文件名是一串不可读的编号。
默认文件名使用的是m3u8的文件名,现在也能被 保存文件名使用网页标题
设置选项影响。
现在referer改成了浏览器给的initiator参数 不再是页面url 目前看来效果还不错。
解析器暂时没办法突破浏览器的安全策略去修改referer, 防范严格的网址还只能使用第三方工具。
用m3u8dl://
下载的文件,文件名还是编号。直接加个$title$
参数吧,一句replace的事情,简单方便。
用
m3u8dl://
下载的文件,文件名还是编号。直接加个$title$
参数吧,一句replace的事情,简单方便。
👌