Github獲8300星!用Python開發的一個命令行的網易雲音樂

最近在逛Github發現了一個非常有趣的庫musicbox,是用純Python打造的,收穫了8300顆星。Python語言簡單易學,好玩有趣,身邊越來越多的小夥伴都開始學習Python。她的魅力非常大,不僅長期霸佔了編程排行榜前三,而且擁有數以萬計的開源庫,這些輪子可以組合運用,創造出很多好玩有趣的項目。

今天我們就來看一下這個酷酷的項目,一個命令行版本的網易雲音樂,界面整潔漂亮,功能強大,值得學習!

一共有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

618福利活動,噹噹4折起

衝鴨!羊毛薅起來!噹噹618專享不到4折,Python書籍囤起來!

近期熱門:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章