Android 獲取各大音樂平臺的真實下載地址

廢話

電腦使用谷歌瀏覽器或者QQ瀏覽器的時候。。。。。。。說不清楚,還是看圖吧

大概意思就是,只要網頁上需要播放,只要能播放並且開始播放,這個過程就肯定會請求到相關的音樂資源,然後就可以拿到下載地址了。

當然,問題也有,1是防盜鏈,下載地址肯定是有時效的,但影響不大,2是清晰度,這個應該沒得挑了,標清無疑,3是全自動問題,偶然打開網頁的源代碼,看到了“禁止js模擬點擊等字樣的註釋”,預測是有相關防護操作,具體也懶得測試了,就假設不能全自動。

整體解決方案用一句廢話來形容就是“音樂一響,黃金萬兩”。。。。。。。。

解決思路

其實邏輯很簡單,就是在頁面上嵌套一個WebView,然後打開音樂網站,由用戶自由操作,只需要監聽WebView訪問的所有的url即可,這樣的話,只要用戶操作一下播放,音樂一響,url裏面肯定會有一條是這個音樂的臨時資源地址,就是帶有.mp3或者是.m4a的url,這個就是我們想要的。。。

其他注意事項

Android原生的WebView播放不了網易雲音樂,其他的我也就沒試了,就假設都播放不了的,解決方案:找個第三方的WebView的升級版,一抓一大把吧,然後就找到了這個:AdvancedWebView

傳送門:https://github.com/delight-im/Android-AdvancedWebView

用法與WebView基本無二,就不多廢話了,核心代碼在一段:

wv.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                    ALog.e("訪問的URL1:" + request.getUrl());
                if(request.getUrl().toString().indexOf("orpheus")>=0){
                    ALog.e("屏蔽跳轉");
                    return true;
                }
                return false;
            }
        });
        wv.loadUrl("https://y.qq.com");

屏蔽跳轉這裏主要是網易雲音樂會自動嘗試調起app,這個是禁止的,否則播放的時候就會顯示無法訪問了,而這個“orpheus”就是調起網易APP的暗號,QQ音樂也會有對應的暗號,但是QQ音樂沒有強制調起,所以就懶得理了。

所以,在所有打印出來的url中找到.mp3結尾或者.m4a等結尾的url,那就是下載地址了,原理就是迅雷的嗅探視頻是一個道理。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章