树莓派网易云音乐播放器
来源
之前毕业的时候实在闲的无聊,正好手头上有个树莓派,就写了个简单的网易云音乐播放器,代码很简单,写的也很乱,功能更简单–只能搜索歌曲,然后播放之,放在了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
命令时显示的播放信息是错误的。
树莓派网易云音乐播放器相关推荐
- 树莓派云音乐c语言,基于树莓派的红外遥控版网易云音乐播放器
基于树莓派的红外遥控版网易云音乐播放器.下面是遥控键盘示意图: CH- CH CH+ << >> || - + EQ 0 100+ 200+ 1 2 3 4 5 6 7 8 9 ...
- linux树莓派网易云音乐,基于树莓派的红外遥控版网易云音乐播放器
基于树莓派的红外遥控版网易云音乐播放器.下面是遥控键盘示意图: CH- CH CH+ << >> || - + EQ 0 100+ 200+ 1 2 3 4 5 6 7 8 9 ...
- HTML+CSS+JAVASCRIPT 高仿低配网页版网易云音乐播放器 1
HTML+CSS+JAVASCRIPT 高仿低配网页版网易云音乐播放器 前言 没有使用任何框架,只是想用最简单纯js的代码实现下 前台: Javascript+jQuery 后台: php/nodej ...
- HTML网页调用 网易云 音乐播放器代码
表现形式一:单曲播放 调用代码: <iframe frameborder="no" border="0" marginwidth="0" ...
- vue3 + TypeScript + vant +pinia 实现网易云音乐播放器
vue3 + TypeScript + vant +pinia 实现网易云音乐播放器 实现功能 每日推荐 私人FM 歌单广场 排行榜 歌手 歌曲播放 mv播放 上下滑动切换 云盘上传 用户登录 歌单创 ...
- 移动应用开发——uni-app框架 仿网易云音乐播放器学习心得
目录 一.uni-app框架介绍 1.什么是 uni-app 2.为什么要选择uni-app 3.uni-app 统一规范 4.uni-app功能框架 二.开发工具与项目创建 1.开发工具 2.项目创 ...
- YesPlayMusic:一个高颜值多音频资源的网易云音乐播放器
都2023年了还有人不知道这款开源免费下载的多音频,高颜值的音乐播放器吗(文末有下载地址) 首先我们来看一下YesPlayMusic的特性 和网易云音乐播放器的功能大同小异,少了歌曲评论的功能,这个功 ...
- 第三方网易云音乐播放器ieaseMusic Mac中文版v1.3.4版
ieasemusic mac中文版是目前mac平台上最好的网易云音乐播放器,与网易云音乐官方客户端最大的区别是,官方的就是「客户端」,完全按照其产品内容进行直接堆砌布局,而 ieaseMusic 是基 ...
- 树莓派-微信-网易云音乐播放器
发现一个很好的个人微信框架ItChat,基于Python实现了网页版微信的大部分功能,正好手头上有个闲置的树莓派,就做了个简易的音乐播放器,源码及使用教程都放在Github上了,猛戳这里,欢迎大家st ...
- 静态博客网页中的网易云音乐播放器
见我的博客 https://blog.wyue.site/2020/04/12/1/ 转载前请联系我,联系方式请见我博客 https://blog.wyue.site/ 一直想做个博客中的音乐播放器, ...
最新文章
- JS中点语法和方括号语法访问属性的区别
- 十、Go协程的调度,互斥锁,计数器和线程池
- “烘焙”ImageNet:自蒸馏下的知识整合
- DataTable转成List集合
- 基于多搜索引擎和深度学习技术的自动问答
- Mac 16进制编辑器Hex Friend
- top 命令按内存和 cpu 排序
- 远程服务器网刻系统,网刻-wu123119-ChinaUnix博客
- 带大家认识下Kvaser CAN总线协议
- c语言编程 模拟掷骰子,用C语言编写一个模拟掷骰子游戏
- UG二次开发GRIP显示图层
- 近邻成分分析(NCA)算法
- RabbitMQ极速入门
- stm32 CAN通信 TJA1040
- Mac恢复系统更新命令
- 阿里淘系优质开源项目推荐(下)
- java空指针异常解决_Java中的空指针异常是什么以及如何解决?
- CodeForces - 55D UVALive - 6528
- 最新界面很漂亮的在线工具箱,包含站长工具箱等等功能
- python输入数字输出月份英文_编写一个程序,输入月份号,输出该月的中文名和英文名。...
热门文章
- android ip地址扫描仪,通过IP地址添加网络扫描仪(适用于CC2软件Mac OS)
- java画图工具_java画图板工具
- 助教日志—请沈航13级同学将GIT地址和CNBLOG地址发到这篇博文的评论中
- 浏览器默认打开360搜索怎么办?
- 深度剖析E680G应用二.MPKG
- 转:多玩网总裁李学凌:在腾讯阴影下
- (七) 三维点云课程---ICP(Point-to-Point)
- word2016 图片去底灰_打印图片怎样去灰色底
- 地缘剧本杀 (十一):疗伤(原创小说连载,内含语音)
- python 西门子触摸屏通讯_PLC通过以太网与触摸屏通讯