Java實現蝦米音樂免蝦幣下載

平心而論,雖然沒了杰倫 coldplay,可是對於冷門的歌曲,蝦米的曲庫還算比較全的,是一個不錯的選擇。以前下載歌曲的時候用過各類 chrome 插件,大概的原理都是瀏覽器聽歌的時候嗅探訪問地址,或者到瀏覽器緩存中招到歌曲。也一直沒去深究沒想去作一個本身的下載器。git

昨天晚上的時候看到有人提到歌曲下載:據網易雲音樂上面的歌單來下載 FLAC 無損音樂,因而乎研究了下蝦米的歌曲下載。今天花了2個小時把蝦米的下載寫了出來。github

分析

經過對瀏覽器發出請求的分析容易得出,歌曲的下載地址是以下形式的url:http://m5.file.xiami.com/46/1046/2100200848/1774781460_58802904_l.mp3?auth_key=3200136d589894789ba042e2843e2b0c-1462147200-0-nullchrome

這裏關鍵是要找出auth_key。瀏覽器

這裏要用到這個地址:http://www.xiami.com/song/playlist/id/[歌曲ID]/object_name/default/object_id/0緩存

根據歌曲的 ID,找到上面的連接,你會看到一個 xml,而後根據裏面的 locations 來找出原始的下載連接,這裏 locations 是用凱撒方陣加密的,破解不難,不過要注意不是齊整方陣的狀況。測試

拿到下載連接後,下載就簡單啦~!能下載一首歌,下載一個專輯也不是難事啦~!加密

GitHub 地址:DownloadXiaMiurl

效率

本地測試:此時時刻 巡迴演唱會 25+1 首歌曲,所有下載成功,共133M,10M電信帶寬,耗時1分38秒。spa

簡單的數學:1.25M/S * 98S = 122.5M

說明本程序的速度仍是至關能夠的(電信帶寬居然超過了平均?).net

Just For Fun ^_^

Github 地址:https://github.com/houweitao/DownloadXiaMi

2016年05月01日16:41:15

相關文章
相關標籤/搜索