喜马拉雅付费音频下载方法
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                喜马拉雅付费音频下载方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                背景
前幾天給孩子買了一套《獅子老爸講三國》的付費音頻,講的不錯孩子很喜歡。 但有個問題只能在線聽,無法保存到本地播放讓我有點不爽,盤之
前提
當然是需要先購買了 ^_^ 。 如果你是超級VIP可以聽所有音頻也沒有問題,總之,可以聽的才能下載,不是破解哦 。。。。
工具
傳說中的瀏覽器擴展神器——游猴
安裝方法就不說了,不會的請度娘伺候
還需要個下載工具aria2 (猛戳下載)
游猴腳本
先創(chuàng)建一個自己的腳本,代碼如下
// ==UserScript==
// @name         喜馬拉雅my
// @namespace    https://www.ximalaya.com/*/*/*
// @version      1.0
// @description  try to take over the world!
// @author       You
// @match        https://www.ximalaya.com/*/*/*
// @grant             unsafeWindow
// @grant             GM_getValue
// @grant             GM_setValue
// @grant             GM_xmlhttpRequest
// @grant             GM_openInTab
// @require      https://code.jquery.com/jquery-1.12.4.min.js
// ==/UserScript==
(function() {
    'use strict';
    var win = window;
     var aria2_url = "http://127.0.0.1:6800/jsonrpc"; //Aria2 下載地址
    var hasOpenAriac2Tab = false;
    $(document).ready(function(){
        var urls=[];
        console.log(urls);
       //綁定開始下載事件,有點隨意,能下載就行了
        $(document).bind('click',function(){
         //延遲4秒,讓瀏覽器把音頻URL計算完再開始   
            setTimeout(function(){
              getPlayer(); //開始下載
              $(".xuicon-quanjubofangqi-xiayiqu")[0].click(); //點擊下一個
            },4000);
        });
    });
    function getPlayer(){
        var win = unsafeWindow;
        var title= $(".fm-title").text();
        if(!!win.$webPlayer && !!win.$webPlayer.webAudio){
            var url = win.$webPlayer.webAudio._playSrc;
           sendDownloadTaskToAria2(url,title+'.m4a',"J:\Downloads\sanguo");  //傳入地址,名稱和本地保存路徑
        }
    }
//自定義 log 函數(shù)
    function mylog(param1,param2){
        param1 = param1 ? param1 : "";
        param2 = param2 ? param2 : "";
        console.log("#--",param1,param2);
    }
        // 將下載鏈接發(fā)送到 Aria2 下載
    function sendDownloadTaskToAria2(download_url,file_name,save_path){
        var json_rpc = {
            id:'',
            jsonrpc:'2.0',
            method:'aria2.addUri',
            params:[
                [download_url],
                {
                    dir:save_path,
                    out:file_name
                }
            ]
        };
        GM_xmlhttpRequest({
            url:aria2_url,
            method:'POST',
            data:JSON.stringify(json_rpc),
            onerror:function(response){
                mylog(response);
            },
            onload:function(response){
                mylog(response);
                if (!hasOpenAriac2Tab){
                    GM_openInTab('http://aria2c.com/',{active:true});
                    hasOpenAriac2Tab = true;
                }
            }
        });
    }
})();
運行邏輯
由于喜馬拉雅付費音頻的下載地址是需要token驗證的,每個都不一樣,想要得到下載地址有兩個辦法,一是通過分析JS腳本把token加密算法提取出來自己實現(xiàn)一遍,但這個過程比較麻煩,二是讓網(wǎng)頁自己算出來,我們只需要把播放器的playSrc取出來就行了。這種方法有個問題需要一集一集的獲取,不過正好網(wǎng)站提供了下一集功能,那就模擬點擊,稍等幾秒鐘,獲取,下載。
這就是整個下載邏輯,當然,追求完美的你肯定感覺這種實現(xiàn)很丑陋,并且沒有自動停止邏輯。 那就加個浮層,控制一下,不過我也懶得寫了,聰明的你一定可以做的更好 。。。
總結(jié)
以上是生活随笔為你收集整理的喜马拉雅付费音频下载方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: java web 导出word_Java
- 下一篇: wex5教程 js接入阿里天气api接
