天天看點

java下載下傳m3u8視訊,解密并合并ts(二)m3u8連結的擷取

上一篇 java下載下傳m3u8視訊,解密并合并ts(一)——m3u8概述

下一篇java下載下傳m3u8視訊,解密并合并ts(三)——代碼實作

m3u8連結的擷取

樣例一:兩個m3u8無key

首先在浏覽器播放視訊的時候打開開發者工具(大部分快捷鍵是F12),找到Network标簽,重新整理頁面,然後找到含有m3u8的連結。

java下載下傳m3u8視訊,解密并合并ts(二)m3u8連結的擷取

如上圖,會發現檢索到了兩個m3u8連結。如果你一個都沒找到,說明這個視訊不是m3u8的視訊。

對于上面兩個m3u8連結,點開發現,第一個是有#EXT-X-STREAM-IN标簽,這個說明其他資訊在第二個m3u8連結裡面。

java下載下傳m3u8視訊,解密并合并ts(二)m3u8連結的擷取

看第二個,這個裡面沒有#EXT-X-KEY标簽,說明下面的ts片段無需解密,下載下傳完後即可播放。

一般情況下,我們需要的是第一個連結。也就是Request URL:後面的連結。這個就是文章後面要用的m3u8連結。

java下載下傳m3u8視訊,解密并合并ts(二)m3u8連結的擷取

樣例二:一個m3u8連結無key

java下載下傳m3u8視訊,解密并合并ts(二)m3u8連結的擷取

如果是這種樣子的,那麼直接取Headers标簽裡面Request URL:後的連結即可。

樣例三:兩個個m3u8連結有key

第一個m3u8連結表明其他ts片段等資訊需要從第二個m3u8擷取,第二個m3u8的連結也就是第一個m3u8連結去掉後面的檔案名部分再加上下圖框起來的部分。

java下載下傳m3u8視訊,解密并合并ts(二)m3u8連結的擷取

第二個m3u8裡面含有#EXT-X-KEY,說明我們ts片段需要加密。

#EXT-X-KEY後面的METHOD為加密算法,後面我們可以以這個算法解密,下圖的算法即AES-128,URI就是解密時擷取密鑰的連結,也就是把第二個m3u8連結後面檔案名部分去掉,即index.m3u8然後換成URI後面的key.key即可,通路這個連結後,就可以擷取密鑰了。

我們下載下傳的時候仍然取第一個m3u8連結。

java下載下傳m3u8視訊,解密并合并ts(二)m3u8連結的擷取
git位址:https://github.com/qq494257084/m3u8Download

上一篇 java下載下傳m3u8視訊,解密并合并ts(一)——m3u8概述

下一篇java下載下傳m3u8視訊,解密并合并ts(三)——代碼實作