樹莓派網易雲音樂播放器
來源
之前畢業的時候實在閒的無聊,正好手頭上有個樹莓派,就寫了個簡單的網易雲音樂播放器,程式碼很簡單,寫的也很亂,功能更簡單–只能搜尋歌曲,然後播放之,放在了github上,沒想到竟然收到三十多顆星,實在慚愧,然後放年假,就想著把功能稍微完善一下,於是就有了WxNeteaseMusic,其實做的工作也不多,基於itchat和網易雲音樂的python API,廢話不多說,容我簡單介紹一下吧。
安裝
專案原始碼都都在我的Github上,注意一共有兩個版本,電腦版和樹莓派版,電腦版,即Windows/Linux/OSX自用的是Python的mp3play包,由於樹莓派的Raspbian不支援mp3play,所以只能使用自帶的omxplayer。
電腦版下載
大家先下載下來,麻煩順手點個Star呀~,你們的Star才是我堅持做下去的動力,謝謝哦。
下面我們以樹莓派環境為例,安裝其實很簡單,都是一些python的pip依賴包:
- sudo apt-get install python-dev
- sudo pip install requests
- sudo pip install future
- sudo pip install crypto
- sudo pip install bs4
- sudo pip install pycrypto
- sudo pip install mp3play (如果是樹莓派平臺,可以不用安裝此包)
上面這些依賴應該夠了,如果提示缺少包的話,大家根據提示自行安裝就可以了,然後切換到專案目錄,執行 python run.py
,用微信掃碼登陸,Bingo, just enjoy it !
功能
嗯,先來看看都有什麼功能。
- H: 幫助資訊
- L: 登陸網易雲音樂
- U: 使用者歌單
- M: 播放列表
- N: 下一曲
- R: 正在播放
- S: 歌曲搜尋
- T: 熱門單曲
- G:推薦歌單(樹莓派版由於在使用session模組時有問題,因此暫時不提供該功能)
- E: 退出
這就是WxNeteaseMusic V0.1版的功能選單啦,後面如果大家有其它的需求或者使用過程中有什麼問題,都可以提出來,github上提Issue或者在下面評論都可以,後面我會盡量完善。
使用
微信掃碼登陸後,向登陸的微訊號傳送命令,就可以使用了。我的微訊號是可以自己向自己傳送資訊的,使用起來比較方便,但是有些微訊號好像不能自己給自己發信息,這種情況下,就需要通過另一個微訊號向掃碼登陸的微訊號發命令。這裡需要注意,掃碼的時候itchat是以網頁版/電腦版的方式登陸微信的,如果掃碼的手機退出微信客戶端,那麼WxNeteaseMusic自然也不能正常使用。不過也有手機退出微信但是網頁版/電腦版不退出的辦法,大家自行百度一下。
如果大家看一下程式碼就會發現,WxNeteaseMusic是以空格為分隔符來切割命令的,所以對於有兩個或者三個引數的命令時,需要以空格為分隔符,下面我具體來介紹一下。
獲取幫助資訊
傳送 H
。
登陸網易雲音樂
命令格式為 L 使用者名稱 密碼
,注意,L
和使用者名稱
、密碼
之間以空格分開,這裡的使用者名稱和密碼是你的網易雲音樂的使用者名稱和密碼,郵箱格式。之後客戶端會收到一條訊息,登陸成功或者登陸失敗,如果登陸成功,WxNeteaseMusic會儲存你的UserId,所以並不需要每次使用都要登陸賬號,除非要換其它賬號,UserId在網易雲音樂中是唯一的,使用者的歌單、收藏列表等資訊都是通過UserId來獲取的。登陸成功後,就可以使用下面的功能了,預設是我的UserId哦,別忘記登入呀~
獲取使用者歌單
登陸成功後,播放列表預設為網易雲音樂的熱歌榜,些時傳送U
可以獲取使用者的歌單,就是你在網易雲音樂建立的歌單,獲取歌單後,通過命令U 序號
來選擇對應的歌單,注意U
和序號
之間有空格,此時播放列表是你歌單裡的歌曲。
播放列表
使用過程中,傳送M
可以隨時檢視當時的播放列表。
下一曲
傳送命令N
來播放下一曲,N 序號
播放列表中對應的歌曲,當前列表通過命令M
獲取。這裡需要注意,通過N 序號
選擇列表中的歌曲時,播放是臨時的,並不儲存在播放列表中,此時再發R
命令時顯示的播放資訊是錯誤的。
正在播放
傳送命令R
可獲取正在播放的歌曲詳情。
歌曲搜尋
傳送命令S 歌曲名
可進行歌曲搜尋,成功後會返回搜尋結果列表,再發送S 歌曲名 序號
來播放對應序號的歌曲,注意,兩次命令的歌曲名必須完全一致。
熱門單曲榜
傳送T
獲取網易雲音樂的熱門單曲榜,並更新播放列表。
推薦歌單
傳送G
獲取網易雲音樂的熱門單曲榜,並更新播放列表。
退出
傳送E
退出播放,此時播放列表變為空,使用者如果要恢復播放,需要獲取歌單更新播放列表。
功能演示
好吧好吧,說了這麼多,還是讓我來實際來演示一下吧。注意,演示中的登陸密碼我已經修改了,你們就不要試了哈。
如果還不清楚的話,我還拍了個小視訊,放在了優酷上,請點選這裡觀看。
其它
當前在樹莓派上使用的播放器為raspbian自帶的omxplayer,因為python的mp3play包不能在樹莓派上使用,後來對比了mpg123和omxplayer發現,omxplayer音質還要相對好一些。另外,在登陸網易雲音樂的時候需要進行一個加密演算法,由於樹莓派的計算能力有限,所以需要多等待一會。
BUGS
1.網易雲音樂中部分音樂連結已失效,所以可能導致播放失敗的情況,這種情況下,因為樹莓派版使用的是omxplayer,而非其它平臺下的WxNeteaseMusic使用的mp3play模組,omxplayer並不能感知到播放失敗,還會一直等待當前播放失敗的歌曲的時長才會播放下一首,或者其它命令觸發切換動作,如(N)等,建議使用網易音樂的客戶端把播放失敗的這首歌直接刪除掉,這樣在樹莓派上播放時就不會卡住了。而電腦版使用的是python的mp3play包,播放失敗時會自動跳過。
2.通過N 序號
選擇列表中的歌曲時,播放是臨時的,並不儲存在播放列表中,此時再發R
命令時顯示的播放資訊是錯誤的。