1. 程式人生 > >樹莓派網易雲音樂播放器

樹莓派網易雲音樂播放器

來源

之前畢業的時候實在閒的無聊,正好手頭上有個樹莓派,就寫了個簡單的網易雲音樂播放器,程式碼很簡單,寫的也很亂,功能更簡單–只能搜尋歌曲,然後播放之,放在了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命令時顯示的播放資訊是錯誤的。