1. 程式人生 > >視訊網站中video標籤中的視訊資源以blob:http呈現的探索

視訊網站中video標籤中的視訊資源以blob:http呈現的探索

一、問題場景

    想下載知乎視訊資源,卻發現視訊連結是這個樣子的

blob:https://v.vzuu.com/b6146956-6e52-406d-8909-f3f1b81ae461


當時一臉懵比啊 ~難道blob:https是什麼牛逼的新協議?於是進行了一番探索

二、探尋結論

    結論就是blob:https並不是一種協議,而是html5中blob物件在賦給video標籤後生成的一串標記,blob物件物件包含的資料,瀏覽器內部會解析;

在web容器中的頁面程式碼


瀏覽器訪問後的頁面程式碼


這是因為在瀏覽器中執行了如下js


三、關於資源下載

很多小夥伴查詢這個問題,是為了下載視訊資源,

資源的真實下載連結可在chrome的調式模式的network中找到,

但有種資源比較特殊,即m3u8格式的資源

這種格式的視訊會被分解成很多個小片段,這個連結下載的是一個包含多個小視訊(ts格式的視訊)的連結集合,這樣做的目的是:

1、可以方便切換解析度(多個ts格式的視訊支援無縫流暢播放,MP4不行);

2、可能就是防止下載吧;

不過根據這個特性,我用java寫了一個工具,可方便下載m3u8指向的真實檔案,以下是連結: