Google Play Music的命令行播放器
项目描述

关于
快速入门
文档
要求
哪些功能可用
正在开发的功能
安装 * [方法1(PyPi,自动)](#method-1-pypi-automatic) * [方法2(从源码,手动)](#method-2-from-source-manual) * [方法3(在Docker中)](#method-3-in-docker)
配置
控件 * [通用](#general) * [歌曲](#songs) * [播放](#playback) * [均衡器](#equalizer) * [其他](#misc)
故障排除
致谢
变更日志(./CHANGELOG.rst)
# Clay [beta]
[](https://travis-ci.org/and3rson/clay) [](http://clay.readthedocs.io/en/latest/?badge=latest) [](https://badge.fury.io/py/clay-player) [](https://codeclimate.com/github/and3rson/clay/maintainability)
独立的Google Play Music命令行播放器。
没有优秀的[gmusicapi]和[VLC]库,这款应用不可能实现。
本项目与Google无关,也不受其支持。
本项目正在积极开发中,但仍然处于早期beta阶段,因此许多功能尚不完善或可能存在bug。
我们在IRC上!
服务器:irc.oftc.net
频道: #clay
截图

点击下面的图片查看屏幕录制
[](https://asciinema.org/a/69ygwYGRDyB5a7pFgyrwWo1ea)
快速开始
`bash sudo apt install python-gi python-gi-cairo python3-gi python3-gi-cairo vlc keybinder python-keybinder pip install --user clay-player clay `
文档
文档[在此处](http://clay.readthedocs.io/en/latest/)可获取。
需求
Python 3.x(原生)
[gmusicapi](PYPI)
[urwid](PYPI)
[PyYAML](PYPI)
lib[VLC](原生,与VLC播放器一起分发)
[PyGObject](可选)(原生,用于全局X键绑定)
[Keybinder](可选)(原生,用于全局X键绑定)
[setproctitle](可选)PYPI,用于将clay进程名称从‘python’更改为‘clay’)
python-dbus(可选)
功能 - 音频均衡器 - 缓存(不适用于歌曲数据,该功能即将推出) - 可配置的键绑定和颜色 - 配置UI - 过滤结果 - 全局热键 - 喜欢或不喜欢曲目 - 喜欢的歌曲播放列表 - 音乐库浏览与管理 - 通知 - 应用内和OSD(通过DBus) - PYPI软件包 - 播放 - 播放列表 - 队列管理 - 广播电台 - 歌曲文件缓存 - 歌曲操作(添加到库、启动电台等) - 歌曲搜索 - 令牌缓存以加快授权速度
正在开发的功能 - 艺术家/专辑显示 - 艺术家/专辑搜索 - 由[gmusicapi]支持的其他功能 - 播放列表编辑
安装
警告:名为python3-keybinder的AUR和PyPy软件包与Clay不兼容,因为您需要使用官方绑定。由于Ubuntu将官方绑定分到了一个不同的软件包中,但名称与未授权软件包相同,这可能会导致一些混淆。因此,如果您收到Namespace Keybinder不可用的警告,这可能是由于此原因。例如,在Arch Linux上,您需要使用libkeybinder3软件包。
使用您的软件包管理器安装Python 3和VLC。
如果您想使用全局X键绑定,可以选择安装PyGObject、Python的DBus和keybinder以及绑定。
## 方法 1(PyPi,自动)
只需使用pip安装播放器
`bash pip install --user clay-player clay `
## 方法 2(从源码,手动)
克隆源代码。
使用系统软件包创建并激活virtualenv
`bash virtualenv --system-site-packages --prompt="(clay) " .env source .env/bin/activate `
安装需求
`bash pip install -r requirements.txt `
运行播放器
`bash ./clay/app.py `
## 方法 3(在Docker中)
有时您想在Docker中运行一些东西。您也可以在Docker中运行Clay。
有两个严格的要求
您需要自己构建容器(因为PulseAudio相关路径和魔法cookie。)
您必须在主机上运行PulseAudio,并且启用了module-native-protocol-tcp模块。
以下是操作步骤
克隆源代码
创建“~/.config/clay”目录(以在docker中获得适当的卷权限)
`bash mkdir ~/.config/clay `
构建并运行镜像
`bash make run `
您应该能听到声音。此外,docker将重用来自主机的Clay配置文件(如果您有的话)。
配置
启动应用程序后,请使用“设置”页面输入您的用户名和密码。
您还需要知道您的设备ID。感谢[gmusicapi],当您输入错误ID时,应用程序应显示可能的ID。
请注意,此应用程序尚未与2FA进行测试。
对于需要2FA的人,您只需在Google账户页面创建一个应用程序密码,然后正常进行即可。(感谢 @j605)
控制
## 通用
<UP|DOWN|LEFT|RIGHT> - 在界面中导航
<ALT> + 0..9 - 切换活动标签页
## 歌曲列表
<ENTER> - 播放高亮曲目
<CTRL> w - 播放/暂停
<CTRL> e - 播放下一首歌曲
<CTRL> a - 将高亮歌曲添加到播放队列
<CTRL> u - 从播放队列中删除高亮歌曲
<CTRL> p - 从高亮歌曲开始播放电台
<ALT> m - 显示当前歌曲的上下文菜单
<ALT> u - 对高亮歌曲点赞
<ALT> d - 对高亮歌曲踩
## 播放控制
<CTRL> s - 切换随机播放
<CTRL> r - 切换单曲循环
<SHIFT> <LEFT|RIGHT> - 快退/快进到歌曲的5%处
<CTRL> q - 跳转到歌曲开头
## 均衡器 - + - 增加音量 - - - 减少音量
## 其他
<ESC> 或 <CTRL> / 或 <CTRL> _ - 关闭最新通知或弹出窗口
<CTRL> x - 退出应用
要过滤歌曲,只需开始键入单词。按 <ESC> 取消。
## X 键绑定 注意: 要使以下功能生效,需要传递 –with-x-keybinds 标志 - <XF86AudioPlay> - 播放/暂停歌曲 - <XF86AudioNext> - 播放下一首歌曲 - <XF86AudioPrev> - 播放上一首歌曲
# 故障排除
在某个时刻,应用可能会失败。可能的原因是应用错误、Google Play Music API 问题、[gmusicapi] 错误、[urwid] 错误等。
如果您遇到问题,请随时提交 [issue](https://github.com/and3rson/clay/issues)。我将尽快尝试解决这个问题。
大多数问题只能在 Google Play Music 服务器提供的数据下重现。
在应用内使用“调试”标签选择错误,然后按“Enter”键将其复制到剪贴板。这将帮助我调查这个问题。
# 致谢
由 Andrew Dunai 制作。
感谢 [gmusicapi] 和 [VLC],它们使得这一切成为可能。
为此项目做出贡献的人
[@ValentijnvdBeek (Valentijn)](https://github.com/ValentijnvdBeek)
[@Fluctuz](https://github.com/Fluctuz)
[@sjkingo (Sam Kingston)](https://github.com/sjkingo)
[gmusicapi]: https://github.com/simon-weber/gmusicapi [VLC]: https://wiki.videolan.org/python_bindings [urwid]: http://www.urwid.org/ [pyyaml]: https://github.com/yaml/pyyaml [PyGObject]: https://pygobject.readthedocs.io/en/latest/getting_started.html [Keybinder]: https://github.com/kupferlauncher/keybinder [setproctitle]: https://pypi.ac.cn/project/setproctitle/