大家好,我是菜鸟哥!

最近在逛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去包装,搭建一个迷你小网站,那就是网站版的网易云音乐。

目前这个库的源码大概有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

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

  • 1).卧槽!Pdf转Word用Python轻松搞定!

  • 2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃

  • 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密

  • 4).80行代码!用Python做一个哆来A梦分身

  • 5).你必须掌握的20个python代码,短小精悍,用处无穷

  • 6).30个Python奇淫技巧集

  • 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货

  • 8).再见Python!我要学Go了!2500字深度分析!

  • 9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

点阅读原文,看原创200个趣味案例!

膜拜高手!Python竟然开发命令行版网易云音乐!相关推荐

  1. python刷网易云_牛逼了!用Python开发的命令行版网易云音乐,Github获8300颗星!...

    大家好,我是程序员G哥 最近在逛Github发现了一个非常有趣的库musicbox,是用纯Python打造的,收获了8300颗星.Python语言简单易学,好玩有趣,身边越来越多的小伙伴都开始学习Py ...

  2. python获取键盘输入能不能不按回车键_Github获8300星!用Python开发的一个命令行的网易云音乐...

    最近在逛Github发现了一个非常有趣的库musicbox,是用纯Python打造的,收获了8300颗星.Python语言简单易学,好玩有趣,身边越来越多的小伙伴都开始学习Python.她的魅力非常大 ...

  3. 树莓派4B命令行安装网易云音乐播放在线歌曲

    手把手教你在树莓派上配置网易云音乐播放在线歌曲 0 鸣谢 首先鸣谢github上的开源贡献者ZHANG RT为我们开发如此优秀的脚本Free Free Free 感谢为MusicBox的开发付出过努力 ...

  4. Python 写一个命令行版的火车票查看器

    用python另一个抢票神器,你get到了吗? 2017年时间飞逝,转眼间距离2018年春节还有不到1个月的时间,还在为抢不到火车票发愁吗?作为程序员的我们撸一个抢票软件可好? 难以想象的数据, 预示 ...

  5. 树莓派云音乐c语言,基于树莓派的红外遥控版网易云音乐播放器

    基于树莓派的红外遥控版网易云音乐播放器.下面是遥控键盘示意图: CH- CH CH+ << >> || - + EQ 0 100+ 200+ 1 2 3 4 5 6 7 8 9 ...

  6. linux树莓派网易云音乐,基于树莓派的红外遥控版网易云音乐播放器

    基于树莓派的红外遥控版网易云音乐播放器.下面是遥控键盘示意图: CH- CH CH+ << >> || - + EQ 0 100+ 200+ 1 2 3 4 5 6 7 8 9 ...

  7. Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路...

     Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路 先看一看我的代码运行结果. 代码运行起来初始化状态: 点击开始按钮,唱片机的机械臂匀速接近唱片磁盘,同时唱片磁盘也 ...

  8. HTML+CSS+JAVASCRIPT 高仿低配网页版网易云音乐播放器 1

    HTML+CSS+JAVASCRIPT 高仿低配网页版网易云音乐播放器 前言 没有使用任何框架,只是想用最简单纯js的代码实现下 前台: Javascript+jQuery 后台: php/nodej ...

  9. 关于 Linux 版网易云音乐音高畸变的问题解决

    问题描述: Linux 版本的网易云音乐最后更新于 2019 年,对于今天来说,其中的许多库文件已经有些过时了.我在使用 Linux 版网易云音乐时,在暂停之后继续播放音乐,经常能感受到歌曲整体音调出 ...

  10. Python网络爬虫(三)网易云音乐热评

    目录 一.获取网易云歌曲的url 二.发送请求获取json 三.生成词云 一.获取网易云歌曲的url 1.进入网页版网易云音乐,选择一首歌曲,进去评论区 2.接着F12进入开发者控制台(审查元素),我 ...

最新文章

  1. Python 数据结构视频教程一
  2. 使用Preplot批量将ascii文件转为二进制文件
  3. 算法提高 c++_ch02_01 (强制类型转换)
  4. Oracle视图添加约束,Oracle创建视图的语法
  5. 基于SSM实现酒店入住预定管理系统
  6. python爬公众号文章_python爬取指定微信公众号文章
  7. Xweibo2.0nbsp;游客可以访问任何页面【…
  8. 什么是ARP协议,如何查看ARP表项、如何配置静态ARP?
  9. 树莓派教程(3)——树莓派设置中文
  10. 如何用Python快速计算股票的Beta系数并排序存入Excel表中
  11. 什么是验收测试?一份详细向导
  12. 笔迹宽度估计的低质量文本图像二值化(Robust Document Image Binarization Technique for Degraded Document Images)
  13. 时间序列的分析及滚动预测代码
  14. R语言与克朗巴哈alpha系数
  15. 非常详细的讲解在浏览器中输入bilibili.com后执行的全部过程,可结合我前面说的TCP协议食用
  16. wework oracle,氪空间总裁钟澍:中国联合办公已经不需要再去效仿WeWork
  17. 详解 atoi 函数并模拟实现
  18. 计算机学院教师老带新总结,教师“以老带新”工作总结
  19. nice-learning
  20. 如何微调Chinese-Vicuna-7b模型

热门文章

  1. 【广东大学生网络攻防大赛-WriteUp(非官方)】Web | in
  2. python统计图的三层结构设计_中大型LABVIEW软件三层设计架构(带图片目录完整版)...
  3. 笔记本cpu降压 XTU
  4. 右耳Python小作业--快递分拣
  5. CSS之内联、内部、外部样式
  6. vue2生成图片导出pdf
  7. 松下服务器显示18号报警,松下伺服报警代码预览表
  8. windows_正确修改windows用户名(win10/win11)实践/副作用说明
  9. 泛函分析 04.05 有界线性算子 - 闭算子与闭图像定理
  10. spring cloud - 概述