Momo707577045 / m3u8-downloader

m3u8 视频在线提取工具
5.97k stars 1.15k forks source link

关于下载文件大小问题 #26

Closed Nuh123 closed 2 years ago

Nuh123 commented 3 years ago

概述

使用油猴脚本,下载下来的文件特别大,两种格式均尝试。

排查

image 下载页面的分片大小都比较大 image 播放页面相对小很多 直接down了下ts文件,发现也是比较大的那种。 不知道这种是属于普遍问题,还是是我这边访问网站做了处理的问题。看到好多说下载崩溃的,感觉应该也是这类问题。

这方面是小白,知道有封装格式和编码格式两种说,是不是网站在自己的播放器访问情况下会做编码格式的处理? 观察请求头发现Accept-Encoding字段会有差异。下载页面为:gzip, deflate,播放页面为:identity,或者是后端那边对不同来源的请求做了响应区分? 看了下m3u8文件,里面似乎也没有找到比较明显的对单分片大小做控制的手段。想问下能在m3u8做视频大小或清晰度控制吗? 或有无其他排查的方向或解决方案

Nuh123 commented 3 years ago

解决部分问题

似乎发现问题所在了,主要是网站这边的问题

简单来说

网站使用一种 “假m3u8模式”,大概就是套了一层blob的壳,通过m3u8文件巧妙的把完整视频的地址隐藏起来了。

详细来说

正常的m3u8模式,m3u8文件存放的是多个视频切片的名称(地址,后同),多个切片是不一样的名字。但这种假的,从头到尾都是一个名字,就是它没有做切片,也就是里面有几十个一模一样的的视频。(可能是网站在逐步改进,后期会跟上做切片)但我这个网站过分到连“假切片”的文件名都和m3u8文件的一样,只有后缀不一样(.m3u8 和 ts),也就是直接把m3u8的地址后缀修改后就是视频的地址。但这里只解决了下载问题,但还是有其它疑惑。

其它疑惑

  1. 说这种是假切片吧,但在播放页面network面板大大小显示上确是实实在在的变小了,同一个切片文件却能是不同的大小。但单独访问却是完整视频的大小。这是什么原理?
  2. 多个相同的ts文件被bolb合并后大小成倍数增加,但视频的实际时长为什么没有变化?

改进意见

是否有必要加上判断m3u8文件中切片的真实性,对这种“假切片”不做下载合成

Momo707577045 commented 3 years ago

感谢你的留言,我猜测是分辨率的问题,有些网站提供了不同分辨率的视频。插件没有做区分,默认取了第一个。 等工作忙完,我抽个时间优化一下

Momo707577045 commented 3 years ago

再次响应各位老板要求,已添加视频特定片段下载功能,解决大视频文件内存不够问题。