开发了一款基于网易云歌单的命令行播放器,分享给大家

2017-03-12 08:56:14 +08:00
 Mellcap

MellPlayer

前言

我写代码时非常喜欢听音乐,最近在网易云歌单中听到了许多入耳惊艳的歌,觉得非常不错。但是歌单的随机播放以及快速切换是个软肋,于是开发了 MellPlayer ,可以按照分类随机听歌,实现了歌单间的快速切换,希望大家能够喜欢。

开发理念

MellPlayer 的初版刚刚发布,还有许许多多需要改进的地方,非常希望能有志同道合的朋友 Fork 下来,一起打造越来越完美的播放器,下面就说下我的开发理念:

MellPlayer 是一款命令行播放器,主要是为了实现根据心情随机听歌,并且能够快速进行歌单间的切换,简约流畅,我希望在此基础上谨慎添加小而美的功能。并不想引入过多繁琐的功能,添加一大堆的快捷键,将简洁的东西繁琐化是违背我的初衷的。

关于项目

项目地址:MellPlayer

项目基于 python3 开发,依赖 mpv 。还有很多地方需要优化改进,大家发现什么问题可以给我提 Issue ,当然非常欢迎有兴趣的朋友加入,一起打造我们喜欢的播放器。

既然看到这儿了,就来 Star 一下, 互相 Follow 一下吧哈哈!!!

支持

OSX & Linux (Linux 未经过测试)

安装

通过 pip3 安装

[sudo] pip3 install MellPlayer

Mac OSX 安装依赖

通过 Homebrew 安装 mpv

brew install mpv

更新

通过 pip3 更新

[sudo] pip3 install MellPlayer --upgrade

使用

在命令行直接输入 mellplayer 即可享受:

mellplayer

快捷键


 操作
 [j]     [Next Line]         --->  下
 [k]     [Prev Line]         --->  上
 [q]     [Quit]              --->  退出

 音乐
 [space] [Start/Pause]       --->  播放/暂停
 [n]     [Next Song]         --->  下一曲
 [p]     [Prev Song]         --->  上一曲
 [f]     [Forward Playlist]  --->  下个歌单
 [b]     [Backward Playlist] --->  上个歌单

 音量
 [-]     [Reduce Volume]     --->  减小音量
 [=]     [Increase Volume]   --->  增加音量
 [m]     [Mute]              --->  静音

 歌词
 [l]     [Show/Hide Lyric]   --->  显示/关闭歌词

 帮助
 [h]     [Show/Hide Help]    --->  显示/关闭帮助
     
6856 次点击
所在节点    Python
63 条回复
Mellcap
2017-03-12 12:10:10 +08:00
@flaneurse 😓好的,多谢提醒
jaylong
2017-03-12 13:16:01 +08:00
之前好像有过类似的作品,后来因为版权原因项目被作者删除了
Mellcap
2017-03-12 13:18:19 +08:00
@jaylong 我这刚开发出来就听到这么悲桑的故事
jaylong
2017-03-12 13:19:51 +08:00
@Mellcap 不过我还是很支持这些项目的^_^
Mellcap
2017-03-12 13:31:53 +08:00
@jaylong 来个 star 互相 follow 一下啊
jaylong
2017-03-12 13:48:58 +08:00
@Mellcap https://github.com/sutar/WasAPlayer 这个好像是那个悲桑的故事

不过还有这些:
https://github.com/darknessomi/musicbox
https://github.com/arrowing/ColorPlayer
https://github.com/chenminhua/netsound
https://github.com/fraserxu/music163-cli
你们可以好好交流一下,一起搞一搞

我只是一名不会写代码的吃瓜群众~~~
0915240
2017-03-12 14:05:59 +08:00
@jaylong 肿么都是黄易音乐的,没见过有虾米的。。
iFlicker
2017-03-12 14:57:01 +08:00
重复造轮子啦
Mellcap
2017-03-12 15:56:50 +08:00
@jaylong 我的天 志同道合的人这么多
Mellcap
2017-03-12 15:58:10 +08:00
@iFlicker 也不能说重复造轮子,只是展示的很像,解决的小痛点却各有不同
iFlicker
2017-03-12 17:12:59 +08:00
@Mellcap 恩恩。。
forelegance
2017-03-12 17:36:45 +08:00
确实挺好的,不知道缓存机制怎么样
ins
2017-03-12 17:47:21 +08:00
mark..感谢分享啊
Mellcap
2017-03-12 18:00:05 +08:00
@forelegance 目前是用 mpv 自己的缓存,准备下个版本收集点意见建议一步步开发出来。
Mellcap
2017-03-12 18:00:39 +08:00
@ins 哈哈哈 说句经典的话 “你的支持就是我最大的动力”
just1
2017-03-12 18:59:45 +08:00
想请教一下楼主这命令行 ui 怎么做的
Mellcap
2017-03-12 19:12:13 +08:00
@just1 首先获取 terminal_size ,然后计算一下当前要打印的行数和布局,然后直接打印出来,最后捕捉键入信息刷新当前页面。但是要注意多线程打印会跳行,所以在结尾加\r 。源码在 mellplayer/ui.py 中。
littleshy
2017-03-12 20:06:56 +08:00
我把 musicbox 集成到 flask 放到树莓派上,就可以在手机上控制或定时让树莓派放音乐。
现在就用这个当闹钟。
songjiaxin2008
2017-03-12 20:26:37 +08:00
楼主一看就是个 vim 党
Mellcap
2017-03-12 20:56:56 +08:00
@littleshy 哈哈哈 猜到了开头 猜不到结局😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/346791

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX