.m3u8 媒体文件下载
分析网页找到真正的m3u8文件
目前我也不知道JS blob脚本隐藏地址怎么找。。。因为像avgle这样的网站一旦打开F12 开发者模式JS 脚本就会暂停并且重新载入特殊的脚本。。。
如果你不需要下载只需要观看那么很简单直接用
https://chrome.google.com/webstore/detail/play-hls-m3u8/ckblfoghkjhaclegefojbgllenffajdc
来观看就好了
我介绍的方法不需要专门的下载工具,因为现在的网页设计已经在服务器端屏蔽了绝大多数的下载器,就算没屏蔽视频文件也需要通过cookie验证才可以访问
需要一个下载器,因为绝大多数的浏览器不支持批量下载。。。因为我懒所以这里只推荐chrome的chrono。。。所有chrome内核的浏览器理论上都可以下载
https://chrome.google.com/webstore/detail/chrono-download-manager/mciiogijehkdemklbdcbfkefimifhecn
为了有个例子我拿jav (你懂的)101来举例子。
短片的地址的格式是:https://v.jav101.com/play/avid****
.m3u8的真实地址是:https://svt.jav101.com/avid****/avid****.m3u8
就像我所说很多网站视频的访问权限都和cookie绑定了,但是这个网站有个bug匿名免费的cookie可以访问不免费的短片。。。所以要想下载得先打开免费的视频网页并播放。
打开chrono,并点击打开下载管理器,建议国产chrome内核浏览器把 选项-下载中 下载前询问每个文件的保存位置 关掉。。。因为ts文档的数量不是一般的恶心。。。
复制.m3u8地址在chrono中新建任务下载.m3u8文件,很小的。。。纯文本
*因为前面安装了m3u8播放器所以直接复制地址到地址栏不会下文件自动播放,当然你去chrome的插件管理关掉也是可以的。。。如果不嫌麻烦。。。
下面就需要第三个工具
notepad++
https://notepad-plus-plus.org/download/
首先先把.ts的相对路径变成网络上的绝对路径
该网站的.ts文件路径是:
ts/avid****-0.ts
ts/avid****-1.ts
ts/avid****-2.ts
...
ts/avid****-....ts
所以把 ts/avid**** 这段字符用notepad++的替换功能(ctrl+H)替换成.m3u8的网址路径就好了,即 https://svt.jav101.com/avid****/
不要保存编辑的文件
然后整段复制.m3u8中的字符在chrono中添加新任务下载就好了,不能识别的chrono会自动屏蔽,不用担心直接点开始,有提示关闭就好了。
然后你会在你的下载目录看到一堆.ts结尾的文件,每个都在1MB左右。。。
你可以用网上的工具合并,但是特么的网上的工具要么不支持自然排序,要么就是合并有数量限制,要么就是合并很缓慢。。。
直接用命令提示符合并简单,快捷
按几下ctrl+Z撤回刚才对.m3u8文件的编辑,
主要的思路就是把.m3u8中的信息纯化到只有文件名
因为这个网站的.ts文件存放地址是ts\目录后
所以用替换把 ts\ 替换成。。。空,总是替换的内容是什么都没有。。。有的话就全选再按下BackSpace。。。
然后勾选正测表达式查找目标输入 #.*$ 意思是从#开头的内容到行尾,同样替换为空(或者选择标记,标记所在行,标记全部^.*.ts从开头^到.ts结尾,搜索书签,复制书签行)
再然后,打开编辑菜单--行操作--移除空行,现在文件中就剩下所有的文件名了
再再然后,查找目标 \r\n 换行符的意思 替换为+
按home键调到行首添加 COPY /B ,就是CMD的COPY 命令,要大写,后面有个空格,B 后面也有个空格,再按end键 输入空格后再输入想要的合并后的文件名.ts ctrl+A全选复制
最后在在下载文件的目录空白取消选择文件,在空白处按住shift再按右键,点击在此打开命令提示符,在命令提示符窗口右键,然后回车运行指令,就合并好了.ts文件
题外话,
1).ts 文件拖动还是比较卡的,建议转成avi mp4 mov mkv之类的文件。
2)指令输入的长度有限,对于上述网站当分段超多330后剩下的指令无法输入,所以要分成两段或者多段合并
搜索 330 或者你在CMD 窗口中输不进去的最后一个分段名称,然后在这个字符前面可以显示出来的分段后在notepad++中剪切剩下的分段,输入空格1(不要跟分段名称重复),这样就会先合并到文件1
然后回车另起一行输入COPY /B 1粘贴复制的东西,如果全选复制后最后在CMD中显示的指令还是没有出现你之前预想的合并后的文件名继续重复上一步骤工作。