如何下载网站视频
现在的在线视频网站为了打击盗版、保护资源/网络流量,不再直接使用mp4等视频格式,而是转而使用m3u8文件(播放索引列表)+ts文件(视频分段技术),其中有的视频还用了加密,下面简单展示下如何下载ts文件并合并为mp4
m3u8索引
从浏览器的dev tool找到m3u8文件的连接并下载,该m3u8文件内有所有的ts文件列表,你可以将他们复制出来,通过编辑器补全制作成完整的url,通过下载器批量下载
未加密
如果视频没有加密(m3u8文件中#EXT-X-KEY字段为空),那么在下载所有ts文件后,可以直接用linux命令合并
1 | # ts段一般都有固定格式,如example_1.ts |
到这里就不需要再往下看了
加密
如果视频加密(m3u8文件中#EXT-X-KEY字段不为空),如下所示
1 | #EXTM3U |
处理步骤:
- 下载必须的文件
- 修改m3u8文件
- 使用ffmpeg合并
下载必须的文件
- 通过浏览器dev tool找到m3u8文件url
- 复制m3u8文件内所有ts文件地址到下载器下载,这里可能还需要通过编辑器补全url
- 复制m3u8文件内记录的key的地址(从EXT-X-KEY字段获取链接)到下载器下载,可进一步重命名,如改为crypt.key,该文件文件大小一般是16字节
修改m3u8文件
- 修改key的地址,将url改为本地文件路径
- 如果ts文件url是http链接,那么也改为本地文件路径
示例如下:
1 | #EXTM3U |
使用ffmpeg合并
1 | ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,crypto,tcp" -i example.m3u8 -c copy the_final_video.mp4 |
done