引言
當你看到一些視頻,是不是心裡 發癢,想把他下載下來?於是你開始了下面的操作:在瀏覽器上,右鍵,選擇“檢查”,鼠標點到視頻上,很快的,在源代碼裡看到了視頻引用的mp4文件。
然後,你選擇視頻代碼,右鍵選項在Tab裡打開,瀏覽器就打開了視頻,再一次選擇“另存為...”,就把視頻保存到自己的電腦上了。
video標籤
在新版的HTML5裡,W3C提出了video標籤,video標籤成為了瀏覽器行業標準(現在很少有視頻再用flv了),video有一個src屬性,他設定的是視頻/音頻地址,因此,上面的視頻,代碼其實是:
<code> <video>/<code>
沒錯,就是這麼簡單,video告訴瀏覽器這是一個視頻,src告訴瀏覽器這個視頻的地址是 music.mp4,然後瀏覽器就開始播放了。
URL.createObjectURL()加密
video出來後,那些視頻大廠不願意了,自己的視頻,瞬間可以被別人下載,不行,我要加密,怎麼加密呢?既然視頻是通過src看到視頻實際地址的,那我就對src加密,給用戶一個假地址。
因此,全球視頻大廠聯合技術大廠推出了一個函數:URL.createObjectURL() 並讓所有瀏覽器都支持它。看看這個函數的介紹,內容很晦澀,總之其實就是幾句話:生成一個虛假的URL。
<code>URL.createObjectURL() 靜態方法會創建一個 DOMString,其中包含一個表示參數中給出的對象的URL。
這個 URL 的生命週期和創建它的窗口中的 document 綁定。
這個新的URL 對象表示指定的 File 對象或 Blob 對象。/<code>
如何生成虛擬URL
為了說明如何生成虛擬URL,下面模擬的是一個小的視頻代碼段:用戶選擇一個視頻文件,然後利用URL.createObjectURL生成一個虛擬URL,再把這個虛擬URL給視頻。
<code>
<video> /<video>
/<code>
現在,你再查看源代碼,你看到了視頻源代碼,然後看到了視頻使用的src地址
可以當你興致勃勃的吧上面網址在瀏覽器打開時,瀏覽器卻返回了一個錯誤:文件不存在。
這樣,就把大部分小白擋在了下載視頻的大門之外。如果再配合*.m3u8對視頻分割(以後會介紹),就能更進一步加大用戶下載視頻的困難。
閱讀更多 科技之聲361 的文章