相信很多b站用戶都曾經想過,如何將自己喜歡的視頻下載下來,以便在網絡不暢或者是離線的時候觀看。而下載b站視頻的第一步,就是獲取該視頻的真實地址。那么,為什么b站視頻的地址是json格式的呢?
首先我們需要了解一個概念,就是前后端分離(Front-end and back-end separation),它是一種將前端與后端進行分離的開發模式。在這種模式下,前端和后端通過接口來進行數據的傳遞,而不是將所有的數據邏輯都寫在一個文件里面。在b站的后端開發中,也是采用了這種分離模式。
那么,b站視頻的真實地址為什么要使用json格式呢?其實,這與前后端分離的開發模式有很大的關系。因為前端需要通過ajax請求來獲取數據,而ajax請求并不會返回整個網頁,而是返回json格式的數據。所以,為了前端能夠更方便地獲取數據,b站就采用了json格式,以便ajax請求能夠更方便地獲取到數據。
此外,b站使用json格式還有一個好處,那就是可以支持跨域請求。因為瀏覽器是有跨域限制的,如果不采用json格式來傳輸數據,前端就無法跨越域名訪問其他的服務器,這就會導致前端無法獲取到數據。但是,如果使用json格式,就可以很好地解決跨域問題。
// 下面是一個獲取b站視頻真實地址的例子
$.ajax({
url: 'https://api.bilibili.com/x/player/playurl',
type: 'GET',
dataType: 'json',
data:{
cid: 1234,
avid: 5678
},
success: function(data) {
var realUrl = data.durl[0].url;
// 在這里可以將真實地址保存到本地或者進行其他操作
}
});
綜上所述,b站視頻的地址為什么是json格式,主要是因為b站采用了前后端分離的開發模式,以及json格式能夠很好地解決前端跨域訪問的問題。如果你想要下載b站視頻,就需要先通過ajax請求獲取到視頻的真實地址,然后再進行下載。