1. 程式人生 > >酷狗音樂、QQ音樂、網易雲音樂API

酷狗音樂、QQ音樂、網易雲音樂API

寫在前面

​ 一開始現操期中課程設計想要做一個可以共享各大音樂平臺的音樂播放器,而這些音樂平臺都沒有提供API介面(很正常ヾ(・ε・`*) ),所以研究了一下酷狗音樂、QQ音樂、網易雲音樂的網頁版,通過網頁版來獲取資料;然而最後因為時間的關係課程設計只使用了網易雲音樂,emm。。。期中課程設計是團隊合作完成的,專案連結,如果之後有空的話也會寫篇部落格簡要介紹一下我們的期中課程設計(~ ̄▽ ̄)~

​ 說回正題,這篇部落格首先會分享一下那時候收集到的API,這裡有的是大神已經找好的,有一些是自己解析網頁版資源得到的,僅供學習研究(正經臉);然後會介紹一下是怎麼解析網頁版的資料的,不過涉及到解密的部分我就不會啦,逃。。。順帶一提,這個還是挺有用的,利用這個方法制作了一個自動簽到的指令碼,雖然最後只隨機分到了四個鑰匙扣(為毛分不到抱枕嘞,(ノДT))繼續逃。。。

酷狗音樂

歌曲搜尋

方法一:

方法二:

獲取音樂下載地址

首先,我們需要上面方法二搜尋結果的hash:

獲取MV總共有兩種方法

方法一:

方法二:

MV搜尋

必選引數:keyword(關鍵字)

可選引數:page(第幾頁),pagesize(一頁的搜尋結果數目)

eg:

獲取MV下載地址

首先,我們需要上面搜尋MV返回結果的MvHash

如圖:

獲取MV總共有四種方法:

方法一:

方法二:

方法三:

方法四:

QQ音樂

獲取最新音樂

url:

獲取推薦歌曲

url:

歌曲搜尋

url:

必選引數:w(關鍵詞)

可選引數:p(相當於上面的page),(相當於上面的pagesize)

eg:

獲取歌曲播放連結

首先,我們需要上面API提供的songmid

如圖:

(這裡的songmid替換為上面的songmid)

必選引數:

fromtag:0

guid:一個隨機的9位數

eg:

獲取歌詞

獲取歌詞就比較麻煩了,emm,

首先,我們需要先獲取一個vkey:

例如:

上面連結中的songmid需要替換為對應的songmid,filename需要替換為對應的C400 + songmid + .m4a

上面的連結會返回一個json字串檔案,其中就有我們要的vkey:

因為QQ音樂還要驗證我們的請求頭資訊,所以簡單地在瀏覽器輸入一個url是不能成功的,所以,我們需要使用程式碼偽裝我們的請求頭,這裡使用python(py大法好)獲取歌詞資訊:

def lrc_save(self, path=os.path.join(os.path.abspath('./'), 'song')):
    ''' 儲存歌詞 '''
    headers = {
        "Referer": "https://y.qq.com/portal/1player.html",
        "Cookie": "[email protected];p",
    }
    url = 'https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg?g_tk=753738303&songmid=' + self.song_mid;
    lrc_data = requests.get(url, headers=headers)

    if lrc_data.status_code != 200:
        print('歌詞不存在或網路錯誤')
        return False

    lrc_dict = json.loads(lrc_data.text[18:-1])
    lrc_data = base64.b64decode(lrc_dict['lyric'])

    with open(os.path.join(path, self.save_title + '.lrc'), 'w') as fr:
        try:
            fr.write(lrc_data)
            except TypeError:
                fr.write(bytes.decode(lrc_data))

                # 若有翻譯歌詞
                if lrc_dict.get('trans'):
                    lrc_data = base64.b64decode(lrc_dict['trans'])
                    with open(os.path.join(path, self.save_title + '-trans.lrc'), 'w') as fr:
                        try:
                            fr.write(lrc_data)
                            except TypeError:
                                fr.write(bytes.decode(lrc_data))
                                print('歌詞下載完成')
                                print(os.path.join(path, self.save_title + '.lrc'))
                                return True

網易雲音樂

解析網頁資料初嘗試

以酷狗音樂為例(因為酷狗音樂的搜尋不涉及加密,最簡單(~ ̄▽ ̄)~ );開啟瀏覽器開發者工具(DevTools),之後開啟Network選項卡,在這裡我們可以看到接收到的所有資料;

進行搜尋,我們就可以看到Network選項卡中同步更新著接收的資料。

從接收的資料項中我們可以找到含有搜尋結果的資料項,此時我們可以檢視Header

這裡包含了請求的資訊,各引數的意思看一下就知道了,可以看到Request URL為:

刪除一些可選項,最後的結果就是:

有一些網站還有對請求頭進行驗證,這時候就需要偽造請求頭了,如上面QQ音樂的歌詞獲取

而且大部分網站都是對請求進行加密的,這就需要檢視程式碼(或解密,這個真的不會)了,在Network選項卡里包含了一些程式碼檔案,有時候需要看程式碼才能知道怎麼弄了。

相關推薦

萬能音樂下載器(已支援音樂QQ音樂)破解VIP

  昨天想給自己的車下載點音樂,上了網易雲,然後就看到下圖 全是要錢的,一個歌單全部下載成功下載了幾首,能忍嗎?忍不了。然後花了2個小時破解出了下載的方法。做成了軟體。 軟體介面如下圖     下載的歌曲如下圖----都是要錢才能

音樂QQ音樂音樂API

寫在前面 ​ 一開始現操期中課程設計想要做一個可以共享各大音樂平臺的音樂播放器,而這些音樂平臺都沒有提供API介面(很正常ヾ(・ε・`*) ),所以研究了一下酷狗音樂、QQ音樂、網易雲音樂的網頁版,通過網頁版來獲取資料;然而最後因為時間的關係課程

Python從音樂QQ 音樂音樂蝦米音樂等搜尋和下載歌曲

music-dl 從網易雲音樂、QQ音樂、酷狗音樂、百度音樂、蝦米音樂等搜尋和下載歌曲。 Search and download

Ubuntu 16.04 一系列軟體安裝命令,包括QQChromevlc音樂安裝方法

1 簡介Ubuntu 16.04安裝完後,還需要做一些配置才能愉快的使用,包括新增軟體源、安裝搜狗輸入法、Chrome瀏覽器、網易雲音樂、配置快捷鍵、安裝git等等,下面就跟著我來配置吧,just do it2 版本選擇如果你是小白,不想折騰,可以直接選擇安裝deepin linux,中文名”深度Linux”

python qq音樂音樂音樂

網易雲 1. 評論 https://music.163.com/weapi/v1/resource/comments/R_SO_4_歌曲id?csrf_token= 可以直接傳入空{} 1.1 {"csrf_token":""}

Android ScrollView滾動實現大眾點評音樂評論懸停效果

ins schema bar 音樂 layout mage for bin andro 今天聽著網易雲音樂,寫著代碼,真是爽翻了。 http://blog.csdn.net/linshijun33/article/details/47910833 網

iOS音樂首頁源碼動畫引擎源碼等

圖像 自帶 集成 ref ole hololens demo 拖拽 基礎 iOS精選源碼 自己維護的框架, 超級多功能 圖片選擇SDK:支持多選,相冊選擇,預覽,網絡圖預覽 一款可以簡單實現長按拖拽重排的 UICe

音樂mp3外鏈真實地址下載方法

itl 例如 得到 公式 http 網址 一個 下載方法 音樂 第一步打開網易雲音樂,隨便找到一首歌,播放,復制網址的ID, 例如:楊鈺瑩的心雨,網址是: http://music.163.com/#/song?id=317151 很明顯,ID是317151 那麽,這首歌的

iOS轉場彈窗音樂動效圓環取色器Loading效果等原始碼

iOS精選原始碼 view controller transition and popover (控制器轉場和彈窗) UITableView頭部懸停+UITableView側滑巢狀 一行程式碼整合時間選擇器 iOS仿滴滴時間選擇picker BMMusic

微信web開發者工具音樂為知筆記等軟體崩潰無法開啟等問題的解決

問題描述 更新了一波A卡驅動以後,很多電腦上的軟體莫名開始出問題,表現為網易雲沒介面,但是程序存在;微信開發者工具黑屏;為知筆記錯位等現象。不論是重灌軟體還是驅動還原都沒辦法解決,其中還伴隨了一兩次系統藍屏崩潰。 問題解決 在網易雲貼吧中,一個老哥的話點醒了我,libgles

【技術乾貨】如何下載音樂的MV短視訊?其實很簡單

本人:網易雲音樂死粉,朋友圈大多都用的是雲音樂,因為推薦功能牛逼然後:發現雲音樂APP裡越來越多吸引我的短視訊,經常看到好的就想儲存到相簿,然後微信發給朋友但是:不知道怎麼下載網易雲音樂的短視訊,比如:好友動態裡的短視訊怎麼儲存到手機?使用方法:開啟網易雲音樂APP,點開某個

Scrapy爬取音樂和評論(一思路分析)

目錄: 前提: scrapy這個框架很多人用過,網上教程也很多,但大多就是爬爬小說這種比較簡單且有規律的,網易雲音樂也有很多人寫過,也有API,不過大多是爬取了熱門歌曲,或是從歌單下手,但是考慮到歌單會有很多重複的。當然,從歌手頁的話,如果

ios音樂原始碼動畫引擎原始碼等

iOS精選原始碼 iOS優質部落格 簡介Fastlane是一套使用Ruby寫的自動化工具集,用於iOS和Android的自動化打包、釋出等工作,可以節省大量的時間。FastlaneGithub:https:/ /github. com/fast

Java: 根據音樂URL下載歌曲歌詞專輯封面和MV

先看最終效果圖: 前提請下載: (1)jsoup-1.11.3.jar (2)JMF 2.1.1e 然後使用開源的JSoup分析框架原始碼得到如下: <script type="application/ld+json"> { "@context"

iOS朋友圈原始碼仿音樂原始碼許可權提示原始碼等

iOS精選原始碼 登入按鈕 iOS優質部落格 每年蘋果爸爸都會在六月份的WWDC上釋出有關下一代iOS的新特性和改動內容,開發者們有半年時間去準備和相容最新版本的iPhone和作業系統。但是這一次為了在釋出會前不洩露iPhone X的相關資訊(實

Web前端:博客美化:四音樂單曲播放器

mar inter 自動播放 adding opacity 喜歡 cnblogs city size 1、頁面定制CSS代碼 /*3、音樂播放器*/ .content-wrap { overflow-y: scroll; -webkit-overflow-s

WPF仿音樂系列(一左側菜單欄:Expander+RadioButton)

dpa template expand pat one none borde ems .cn 原文:WPF仿網易雲音樂系列(一、左側菜單欄:Expander+RadioButton)1.簡介 上一篇咱們說到,網易雲音樂的左側菜單欄可以通過Expander+RadioBut

音樂/QQ音樂API更新,支援多音質切換/MV獲取

自從上一版開源過後到現在音樂介面的呼叫量已經達到了快100W,但是最近由於網易雲的更新,導致部分介面不能使用,最近在工作之餘抽出時間把API重寫。 本次API版本不再使用PHP,使用Java,相比以前速度更快(畢竟我是擼Java的,不會PHP),前期不考慮開源,

音樂app使用者個人中心(對比QQ音樂

開啟網易雲,尋找使用者個人中心咋一看,頂部居中的三枚按鈕沒有個人中心,排除法,點來左上角類似設定的圖示發現個人中心入口,一張晶瑩剔透的背景牆上有頭像,暱稱,使用者等級的資訊,這個預設的背景牆上還有一個小巧的”簽到”Button,簽到加積分還能跳轉去積分商城介面(這個興趣型需求

python爬取音樂歌單音樂

string attrs default textarea bsp color read contents dom 在網易雲音樂中第一頁歌單的url:http://music.163.com/#/discover/playlist/ 依次第二頁:http://music.1