QQ音樂歌曲播放源的獲取
阿新 • • 發佈:2018-12-03
這裡僅分享下自己的解決思路,有不對之處還請指正!
最近在學習vue來是實現高仿qq音樂播放器,由於看的不是最新的視訊,所以視訊上的qq音樂歌曲源已經無用了。在qq音樂上播放歌曲發現請求的url如圖
這裡涉及到許多引數:guid、vkey等,對於這些的獲取網上試了其他方法,不是很適用。
在看了其它傳送的請求。這裡可以看到一個getplaysongvkey請求。
對比了下請求中的欄位,發現req_0.data.midurlinfo[0].purl就是上面qq音樂中播放時url請求的後半段。至於前半段,兩個req得到的sip中都能用。因此按著這個請求,就能獲得相應的完整播放源。
所以這個過程就成了先發送一個請求獲取相應資料,再進行字串拼接得到歌曲源。傳送該請求中的引數僅需要修改data中的songmid欄位為相應的歌曲的songmid即可。
按照這個方式傳送jsonp請求,最開始試的時候並沒有得到圖示的資料,再利用axios修改referer:"https://y.qq.com/portal/player.html"後就能得到了。
最後,並不是每一次請求得到的src都能播放(大部分還是能行的),這裡我的解決方法是利用audio的error事件,在播放源不能播放的時候,再load一次,一般多load幾次大部分的都能播放了。出現這種情況的原因還不怎麼懂,等以後有時間在來看看。