开发了一款基于网易云歌单的命令行播放器,分享给大家 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Mellcap
V2EX    Python

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

  •  2
     
  •   Mellcap
    Mellcap 2017 年 3 月 12 日 7359 次点击
    这是一个创建于 3248 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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] ---> 显示/关闭帮助 
    63 条回复    2017-03-14 20:03:09 +08:00
    Mellcap
        1
    Mellcap  
    OP
       2017 年 3 月 12 日
    希望大家能喜欢,提一些建议。我接下来会不断的优化
    izgnod
        2
    izgnod  
       2017 年 3 月 12 日 via Android
    可惜用虾米
    zgqq
        3
    zgqq  
       2017 年 3 月 12 日 via Android
    重复了
    Mellcap
        4
    Mellcap  
    OP
       2017 年 3 月 12 日
    @izgnod 可以试一下哈
    Mellcap
        5
    Mellcap  
    OP
       2017 年 3 月 12 日
    @zgqq 仔细看
    TangMonk
        6
    TangMonk  
       2017 年 3 月 12 日 via Android
    网易的新版 api 好像加了加了密
    oIMOo
        7
    oIMOo  
       2017 年 3 月 12 日
    会员歌曲怎么办呢……
    zgqq
        8
    zgqq  
       2017 年 3 月 12 日 via Android
    @Mellcap 比 musicbox 好用?
    Mellcap
        9
    Mellcap  
    OP
       2017 年 3 月 12 日
    @oIMOo 我做的这个是基于歌单听歌的,所以都是免费的。主要是想解决歌单间随机切换的小痛点
    Mellcap
        10
    Mellcap  
    OP
       2017 年 3 月 12 日
    @zgqq 我做的这个是基于歌单听歌的,主要是想解决歌单间随机切换的小痛点,并没有想做类似 musicbox 的大而全的播放器呀
    Mellcap
        11
    Mellcap  
    OP
       2017 年 3 月 12 日
    @TangMonk 哈哈,一看就是懂得人
    jpmorn
        12
    jpmorn  
       2017 年 3 月 12 日
    法务部门周一上班,哈哈哈
    Mellcap
        13
    Mellcap  
    OP
       2017 年 3 月 12 日 via iPhone
    @jpmorn 哈哈哈 所以趁早发
    BoBoy
        14
    BoBoy  
       2017 年 3 月 12 日 via iPhone
    这种东西只能拿来自娱自乐一下,没什么实际意义呀。
    murmur
        15
    murmur  
       2017 年 3 月 12 日
    网易花了那么大力气开发了手机端、网页版和 mac 的图形客户端 你们现在搞命令行 我要是产品经理得苦出来
    soliloquy
        16
    soliloquy  
       2017 年 3 月 12 日
    已 star py 小萌新求互 follow ?
    Mellcap
        17
    Mellcap  
    OP
       2017 年 3 月 12 日
    @BoBoy 代码的乐趣就在这里呀
    Mellcap
        18
    Mellcap  
    OP
       2017 年 3 月 12 日
    @murmur 哈哈 生命不息 折腾不止
    flaneurse
        19
    flaneurse  
       2017 年 3 月 12 日 via Android
    会被网易发律师函的小心点
    Mellcap
        20
    Mellcap  
    OP
       2017 年 3 月 12 日
    @soliloquy 已 follow ,互相学习
    Mellcap
        21
    Mellcap  
    OP
       2017 年 3 月 12 日
    @flaneurse 好的,多谢提醒
    jaylong
        22
    jaylong  
       2017 年 3 月 12 日
    之前好像有过类似的作品,后来因为版权原因项目被作者删除了
    Mellcap
        23
    Mellcap  
    OP
       2017 年 3 月 12 日
    @jaylong 我这刚开发出来就听到这么悲桑的故事
    jaylong
        24
    jaylong  
       2017 年 3 月 12 日
    @Mellcap 不过我还是很支持这些项目的^_^
    Mellcap
        25
    Mellcap  
    OP
       2017 年 3 月 12 日
    @jaylong 来个 star 互相 follow 一下啊
    jaylong
        26
    jaylong  
       2017 年 3 月 12 日
    @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
        27
    0915240  
       2017 年 3 月 12 日
    @jaylong 肿么都是黄易音乐的,没见过有虾米的。。
    iFlicker
        28
    iFlicker  
       2017 年 3 月 12 日
    重复造轮子啦
    Mellcap
        29
    Mellcap  
    OP
       2017 年 3 月 12 日 via iPhone
    @jaylong 我的天 志同道合的人这么多
    Mellcap
        30
    Mellcap  
    OP
       2017 年 3 月 12 日 via iPhone
    @iFlicker 也不能说重复造轮子,只是展示的很像,解决的小痛点却各有不同
    iFlicker
        31
    iFlicker  
       2017 年 3 月 12 日
    @Mellcap 恩恩。。
    forelegance
        32
    forelegance  
       2017 年 3 月 12 日
    确实挺好的,不知道缓存机制怎么样
    ins
        33
    ins  
       2017 年 3 月 12 日
    mark..感谢分享啊
    Mellcap
        34
    Mellcap  
    OP
       2017 年 3 月 12 日
    @forelegance 目前是用 mpv 自己的缓存,准备下个版本收集点意见建议一步步开发出来。
    Mellcap
        35
    Mellcap  
    OP
       2017 年 3 月 12 日
    @ins 哈哈哈 说句经典的话 “你的支持就是我最大的动力”
    just1
        36
    just1  
       2017 年 3 月 12 日 via Android
    想请教一下楼主这命令行 ui 怎么做的
    Mellcap
        37
    Mellcap  
    OP
       2017 年 3 月 12 日   1
    @just1 首先获取 terminal_size ,然后计算一下当前要打印的行数和布局,然后直接打印出来,最后捕捉键入信息刷新当前页面。但是要注意多线程打印会跳行,所以在结尾加\r 。源码在 mellplayer/ui.py 中。
    littleshy
        38
    littleshy  
       2017 年 3 月 12 日
    我把 musicbox 集成到 flask 放到树莓派上,就可以在手机上控制或定时让树莓派放音乐。
    现在就用这个当闹钟。
    songjiaxin2008
        39
    songjiaxin2008  
       2017 年 3 月 12 日
    楼主一看就是个 vim 党
    Mellcap
        40
    Mellcap  
    OP
       2017 年 3 月 12 日
    @littleshy 哈哈哈 猜到了开头 猜不到结局
    Mellcap
        41
    Mellcap  
    OP
       2017 年 3 月 12 日
    @songjiaxin2008 啥都玩儿一点儿
    bigmercu
        42
    bigmercu  
       2017 年 3 月 12 日
    我基本调通他的加密过程,并且在 musicbox 代码基础上修改尝试了一些接口,比如获取某个用户歌单什么的,有兴趣可以交流一下。
    just1
        43
    just1  
       2017 年 3 月 12 日 via Android
    @Mellcap ui 这样写感觉蛮厉害
    mingyun
        44
    mingyun  
       2017 年 3 月 12 日
    win 下装不了

    Skipping optional fixer: buffer
    Skipping optional fixer: idioms
    Skipping optional fixer: set_literal
    Skipping optional fixer: ws_comma
    running build_ext
    warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastm
    th.
    building 'Crypto.Random.OSRNG.winrandom' extension
    error: Unable to find vcvarsall.bat
    mingyun
        45
    mingyun  
       2017 年 3 月 12 日
    抱歉,没看清,目前不支持 win
    Mellcap
        46
    Mellcap  
    OP
       2017 年 3 月 13 日 via iPhone
    @bigmercu 那真是极好的,交流交流,怎么联系?
    Mellcap
        47
    Mellcap  
    OP
       2017 年 3 月 13 日 via iPhone
    @just1 哈哈哈 过奖了
    Mellcap
        48
    Mellcap  
    OP
       2017 年 3 月 13 日 via iPhone
    @mingyun 目前 linux 还有些问题,我会逐步完善这个项目 感谢支持
    araraloren
        49
    araraloren  
       2017 年 3 月 13 日
    mark 一下,支持支持 ~~
    iNohn
        50
    iNohn  
       2017 年 3 月 13 日
    我这边系统是 macOS 10.12.3 ,一进选歌单环境界面就 Crash 了
    报错原因:“ Fatal Python error: Cannot recover from stack overflow.”
    运行环境 Python3.6.0 ,是 brew 安装的
    Mellcap
        51
    Mellcap  
    OP
       2017 年 3 月 13 日
    @araraloren 感谢感谢
    Mellcap
        52
    Mellcap  
    OP
       2017 年 3 月 13 日
    @iNohn 嗨,能把全部报错信息推上来么,推到 github 上也行。我马上去查
    bigmercu
        53
    bigmercu  
       2017 年 3 月 13 日
    @Mellcap id 就是 github ib 里面有邮箱
    iNohn
        54
    iNohn  
       2017 年 3 月 13 日
    @Mellcap 已发 GitHub Issue
    Mellcap
        55
    Mellcap  
    OP
       2017 年 3 月 13 日
    Mellcap
        56
    Mellcap  
    OP
       2017 年 3 月 13 日
    @iNohn 已收到,我升级一下,如果产生同样的报错我会尽快解决,保持联系哈
    AlisaDestiny
        57
    AlisaDestiny  
       2017 年 3 月 13 日
    厉害了。居然破解了网易加密接口的方法。
    Mellcap
        58
    Mellcap  
    OP
       2017 年 3 月 13 日
    @AlisaDestiny 是大神破的
    joyc
        59
    joyc  
       2017 年 3 月 13 日
    window 不能用吗?
    Mellcap
        60
    Mellcap  
    OP
       2017 年 3 月 13 日
    @joyc 目前还没支持,有感兴趣的朋友可以一起开发哈。
    Mellcap
        61
    Mellcap  
    OP
       2017 年 3 月 14 日 via iPhone
    谢谢大家的支持
    henryshen233
        62
    henryshen233  
       2017 年 3 月 14 日
    为楼主点个赞
    Mellcap
        63
    Mellcap  
    OP
       2017 年 3 月 14 日 via iPhone
    @henryshen233 谢谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2056 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 11:22 PVG 19:22 LAX 03:22 JFK 06:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86