Github獲8300星!用Python開發的一個命令列的網易雲音樂
最近在逛Github發現了一個非常有趣的庫musicbox,是用純Python打造的,收穫了8300顆星。Python語言簡單易學,好玩有趣,身邊越來越多的小夥伴都開始學習Python。她的魅力非常大,不僅長期霸佔了程式設計排行榜前三,而且擁有數以萬計的開源庫,這些輪子可以組合運用,創造出很多好玩有趣的專案。
很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!
QQ群:1097524789
今天我們就來看一下這個酷酷的專案,一個命令列版本的網易雲音樂
一共有17個功能,真的是麻雀雖小五臟俱全,加了很多的功能:
-
320kbps的高品質音樂
-
歌曲,藝術家,專輯檢索
-
網易22個歌曲排行榜
-
網易新碟推薦
-
網易精選歌單
-
網易主播電臺
-
私人歌單,每日推薦
-
隨心打碟
-
本地收藏,隨時加❤
-
播放進度及播放模式顯示
-
現在播放及桌面歌詞顯示
-
歌曲評論顯示
-
一鍵進入歌曲專輯
-
定時退出
-
Vimer式快捷鍵讓操作絲般順滑
-
可使用數字快捷鍵
-
可使用自定義全域性快捷鍵
作者是一位張同學,看他的location是在上海。這個專案是用純Python程式碼完成的,目前收穫了8300顆星,非常厲害
其實小編也是一個資深網易雲音樂的愛好者,看到這個專案非常親切,迫不及待的安裝體驗了一把。
1
安裝使用
雖然這個是一個命令列版的網易雲音樂,但是播放器是不能省的,需要安裝一個播放器mpg123,這個庫其實就是對MPEG 播放和解碼用的,我的是Mac 電腦,所以直接用brew安裝。
macOS安裝
$ pip(3) install NetEase-MusicBox
$ brew install mpg123
用pip3 直接安裝這個庫,安裝的有點慢,因為需要安裝幾個包:
-
requests
-
requests-cache
-
pycryptodomex
-
future
作者都已經打包放在requirement.txt裡面,安裝完了Python庫之後,還需要安裝mpg123。這個是必須安裝包,不然無法播放音樂。其他版本的電腦也有對應的安裝方法,詳細可以點選閱讀原文了解。
2
主介面介紹
1).直接在終端敲 musicbox就可以啟動了
$ musicbox
2).看一下主介面:
這裡羅列了網易雲音樂的9大功能,涵蓋了我們的PC版本上的大部分功能,比如排行榜,藝術家,還有我喜歡的主播電臺,私人FM ,每日歌單等等。
大家對比一下,是不是大部分的功能,這個命令列介面都實行了。
3).強大的子選單
上面這個其實是主選單,進入的話每一個選單裡面都有子選單和詳細的功能,比如我們進入排行榜這個選單:
裡面有很多榜單,這個跟我們的PC版的網易雲是一樣的資料。我們選擇第一個雲音樂榜單進去看一下:
裡面會列出上榜的金曲,按鍵盤上面的"J"和"K" 可以快速的進行游標的上下移動,一共排行榜有99首歌曲。
當游標在這個歌曲上停留的時候,整個這個歌曲的名字會進行滾動,這一點作者做的非常貼心。因為有的名字非常長,演唱者的人很多。
3
播放歌曲
上面是簡單的介紹了一下這個介面的使用,如何播放歌曲呢?其實非常簡單,只要選擇對應的歌曲,然後按一下回車鍵就會播放了。而且還可以看到這首歌曲的點評資訊,比如這首歐陽娜娜的“The Best for you”
裡面會羅列114條歌曲的短評,每一頁大概顯示10頁的資料。
4
看一下原始碼
這個專案整個的思路,底層是用爬蟲去爬取網易雲上的資料,然後用命令列去呈現出來,用一個程序去獲取使用者的輸入,然後進行相應!如果你用Flask或者Django去包裝,搭建一個迷你小網站,那就是網站版的網易雲音樂。
目前這個庫的原始碼大概有3-4000行,大部分程式碼都是作者2年前就完成的。整個程式碼寫的還是蠻工整的,每個模組分工非常清晰,進去看每個檔案,作者程式碼寫的很整潔,條理也很清晰。
整個專案的啟動入口就在__main__.py檔案裡面:
其實這個主程式就幹四件事:
-
一個是檢查argparse的命令列的引數的輸入;
-
另外一個就是啟動主介面的選單menu;
-
最後fork一個程序,啟動menu模組裡面的start_fork形成一個死迴圈,等待使用者的鍵盤輸入;
-
如何出現異常或者使用者終止退出就退出整個程式。
其中比較核心的檔案主要是 api.py,menu.py和play.py這幾個檔案。menu.py裡面start就是整個專案的一個永動機,而api.py主要做的就是爬蟲的功能,如果對網易雲音樂爬取有興趣的可以研究一下這個檔案。play檔案主要是對歌曲進行播放控制的。
有興趣的小夥伴可以下載一下這個庫,好好學習一下。相信對你的功力提升一定大有裨益,如果你對這個原始碼有興趣,歡迎留言區吱一聲。
專案連結:
https://github.com/darknessomi/musicbox