python 录制网易云登陆_Github获8300星!用Python开发的一个命令行的网易云音乐

211e668c1915974c6a427ac6b2f51aa0.png

最近在逛Github发现了一个非常有趣的库musicbox,是用纯Python打造的,收获了8300颗星。Python语言简单易学,好玩有趣,身边越来越多的小伙伴都开始学习Python。她的魅力非常大,不仅长期霸占了编程排行榜前三,而且拥有数以万计的开源库,这些轮子可以组合运用,创造出很多好玩有趣的项目。

今天我们就来看一下这个酷酷的项目,一个命令行版本的网易云音乐,界面整洁漂亮,功能强大,值得学习!

0189b79bccb44b43bb57231c77223147.png

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

2

主界面介绍

1).直接在终端敲 musicbox就可以启动了

$ musicbox

2).看一下主界面:

b4507d1296c01205d4d37296509977c4.png

这里罗列了网易云音乐的9大功能,涵盖了我们的PC版本上的大部分功能,比如排行榜,艺术家,还有我喜欢的主播电台,私人FM ,每日歌单等等。

e425f11fea9ec4b49ba5fda21cfabd44.png

大家对比一下,是不是大部分的功能,这个命令行界面都实行了。

3).强大的子菜单

上面这个其实是主菜单,进入的话每一个菜单里面都有子菜单和详细的功能,比如我们进入排行榜这个菜单:

9960ee1a3c67df993e7fdc6edf7e8bae.png

里面有很多榜单,这个跟我们的PC版的网易云是一样的数据。我们选择第一个云音乐榜单进去看一下:

6e5b3b5d6c5cfd7252cd9e63e13f5b0f.png

里面会列出上榜的金曲,按键盘上面的"J"和"K" 可以快速的进行光标的上下移动,一共排行榜有99首歌曲。

865a70c76866cf1eab74444010ad8cb7.png

当光标在这个歌曲上停留的时候,整个这个歌曲的名字会进行滚动,这一点作者做的非常贴心。因为有的名字非常长,演唱者的人很多。

3

播放歌曲

上面是简单的介绍了一下这个界面的使用,如何播放歌曲呢?其实非常简单,只要选择对应的歌曲,然后按一下回车键就会播放了。而且还可以看到这首歌曲的点评信息,比如这首欧阳娜娜的“The Best for you”

13a2eff4a2375cc819d6b87c480aa2c7.png

里面会罗列114条歌曲的短评,每一页大概显示10页的数据。

4

看一下源码

这个项目整个的思路,底层是用爬虫去爬取网易云上的数据,然后用命令行去呈现出来,用一个进程去获取用户的输入,然后进行相应!如果你用Flask或者Django去包装,搭建一个迷你小网站,那就是网站版的网易云音乐。

目前这个库的源码大概有3-4000行,大部分代码都是作者2年前就完成的。整个代码写的还是蛮工整的,每个模块分工非常清晰,进去看每个文件,作者代码写的很整洁,条理也很清晰。

cacac79678b1ecc8d91f81ea5883cb59.png

整个项目的启动入口就在__main__.py文件里面:

1c31dd11ff3623dbfcf4bf2db0d6ba0c.png

其实这个主程序就干四件事:

  • 一个是检查argparse的命令行的参数的输入;

  • 另外一个就是启动主界面的菜单menu;

  • 最后fork一个进程,启动menu模块里面的start_fork形成一个死循环,等待用户的键盘输入;

  • 如何出现异常或者用户终止退出就退出整个程序。

其中比较核心的文件主要是 api.py,menu.py和play.py这几个文件。menu.py里面start就是整个项目的一个永动机,而api.py主要做的就是爬虫的功能,如果对网易云音乐爬取有兴趣的可以研究一下这个文件。play文件主要是对歌曲进行播放控制的。

213486cbfa60e15e1dd000626422f451.png

有兴趣的小伙伴可以下载一下这个库,好好学习一下。相信对你的功力提升一定大有裨益,如果你对这个源码有兴趣,欢迎留言区吱一声。

项目链接:

https://github.com/darknessomi/musicbox

618福利活动,当当4折起

冲鸭!羊毛薅起来!当当618专享不到4折,Python书籍囤起来!

近期热门:

  • 墙裂推荐!B站上的Python学习资源
  • 只要三步,带你用Python换脸
  • 趣味!用Python竟然还能做一个文字套娃
  • 只要三步,带你用Python换脸
  • 一行Python代码写的游戏,我能这样玩一天!
  • 让你纵横 GitHub 的五大神器
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值