9 个版本 (稳定)
使用旧的 Rust 2015
1.1.2 | 2020 年 12 月 13 日 |
---|---|
1.1.0 | 2019 年 7 月 12 日 |
1.0.2 | 2020 年 12 月 13 日 |
1.0.1 | 2019 年 2 月 1 日 |
0.0.2 | 2017 年 5 月 13 日 |
#269 in 音频
535KB
4K SLoC
Connectr
一个超级轻量级的 Spotify 控制器。
Connectr 是一个小程序,让您可以快速轻松地查看或更改 Spotify 账户上正在播放的内容。
它与支持 Spotify Connect 的任何设备兼容:电脑、手机、扬声器、电视、PlayStation 等。
注意: 使用 Spotify 的远程控制功能需要 Spotify Premium。免费账户无法使用。
它运行在 Mac 菜单栏(右上角)或 Windows 系统托盘(右下角...),以及 Mac Touch Bar(新 Macbook 键盘上的触摸屏)。它只是一个图标,当您需要时弹出控制,不需要时隐藏起来。或者只需悬停在其上即可查看当前正在播放的内容。
它能做什么
- 显示播放内容
- 播放/暂停
- 跳过曲目
- 快速播放保存的“预设”
- 快速将播放的曲目保存到播放列表
- 选择播放设备
- 更改音量
- 闹钟(在指定时间在所选设备上播放)
- 向 Last.fm 播放
最重要的是,它在运行时保持极小的内存占用。与 Spotify 桌面应用的 300-1000MB 相比,Mac 上约为 10MB。您不需要购买额外的 RAM 只是为了监控扬声器上正在播放的内容。
闹钟和 scrobbling 功能期望 Connectr 在始终开启的服务器上运行。如果您想在无头 Linux 机器上运行它,您可以先在本地机器上配置它,然后将 ~/.connectr.ini
移动到您的服务器。
对于开发者:与 Spotify 后端通信的 API 以 Rust 库的形式提供,作为 Cargo crate 提供。Connectr 提供了官方的 Spotify 'Player' Web API 以控制 Spotify Connect 设备。
注意: Connectr 不是一个音频播放工具;它只是一个遥控器。Spotify 没有公开发布支持 Spotify Connect 的音频播放库。有一个逆向工程努力,巧合的是也在 Rust 中,在 librespot。librespot + connectr 组合可以在约 15MB 的 RAM 中为您提供完整的 Spotify 播放体验。这是听 Spotify 最节省资源的途径。
注意: Connectr 不是由 Spotify 开发的,与他们的公司无关。
下载
提供二进制发布是为了方便。建议从源代码构建。
Connectr v1.1.0
Mac OS X (64 位,md5: ce958529bcf3fef1ece3c73b1197678d)
旧版本:Connectr v0.2.0
Windows 10 (64 位,md5: 1745ecb67bd5ef0822eeabd96d98dcde)
屏幕截图
Mac OS X |
Windows 10 |
Macbook 触控栏 |
构建说明
您需要下载 Rust 来进行构建。
$ git clone https://github.com/mrmekon/connectr.git
$ cd connectr
$ cargo run
使用/帮助
首次启动时,Connectr 将打开您的网络浏览器到一个自配置页面,并将其配置保存到您的系统主目录。配置页面将指导您创建必要的 Spotify 开发者应用程序。
Spotify 开发者应用程序配置
首次启动时,Connectr 将指导您设置 Spotify 开发者应用程序。如果您想手动操作或出现错误,请按照以下说明操作
- 转到您的 Spotify 应用程序 页面(使用您的 Spotify 凭据登录)
- 点击右上角的“创建应用”
- 输入名称(例如“Connectr”)和描述(“使用 Connectr 应用与我的账户一起使用。”)
- 添加重定向 URI: http://127.0.0.1:5432
- 将您的 客户端 ID 和 客户端密钥 复制到
connectr.ini
(见下文)。
Mac 触控栏界面
设置
- 确保在系统偏好设置的键盘部分已启用“控制条”,在
Touch Bar 显示
下。 - 按下控制条中的 Connectr 图标以展开它。它将在您按下左侧的
x
按钮之前保持展开。 - 控制条仅支持 4 个图标,并将所有新的图标堆叠在最左侧的图标上。如果 Connectr 图标缺失,它可能被隐藏在其他图标“下面”。您可以继续单击最左侧的图标以打开它们。
控件
- 双击曲目标题以在模式之间旋转
- 曲目和艺术家
- 曲目
- 艺术家
- 要快速保存曲目,在曲目标题上向右滑动直到围绕它画出一个框,然后释放。首先在
connectr.ini
中配置快速保存。
配置文件(connectr.ini)格式
注意: 如果存在,connectr 使用 ~/.connectr.ini
。如果不存在,connectr 将尝试从运行目录中尝试使用 connectr.ini
。在 connectr.ini.in
中提供了一个模板。
配置文件是在 Connectr 首次启动时由图形化网络配置生成的,可以通过从菜单中选择 重新配置 Connectr
来重新配置。您不需要自己编写 connectr.ini
。以下文档仅供参考。
connectr 的配置是从具有以下部分的常规 INI 文件中读取的
[connectr]
- 端口号 - 请求初始OAuth令牌时,临时运行Web服务器的端口号(整数)。默认为5432。例如:
端口号 = 5432
- quicksave_default - 选择“快速保存”时保存曲目到播放列表
[应用]
- client_id - Spotify Web应用程序的Client ID(字符串)。例如:
client_id = ABCABCABCABC123123123
- secret - Spotify Web应用程序的Client Secret(字符串)。例如:
secret = DEFDEFDEFDEF456456456
[预设]
每行一个预设,格式如下
- [预设名称] = [上下文URI]
- [预设名称] = [上下文URI],[快速保存播放列表URI]
其中
预设名称
是您为预设选择的任何名称上下文URI
是选择时播放的Spotify上下文(专辑、播放列表等)快速保存URI
是(可选的)在播放此预设时,如果点击“快速保存”,将当前曲目保存到播放列表的URI。
示例
创建一个名为Bakesale
的预设,当选择时播放Sebadoh的专辑,并将该专辑中我喜欢的曲目保存到私人播放列表
Bakesale=spotify:album:70XjdLKH7HHsFVWoQipP0T,spotify:user:mrmekon:playlist:4aqg0RkXSxknWvIXARV7or
[闹钟]
注意:此设置应通过图形化Web界面配置,而不是直接编辑。从Connectr菜单中选择编辑闹钟
以启动图形界面。
最多五个闹钟条目,指定时间、设备、要播放的播放列表和重复闹钟的日期。
格式
alarm<i> = <hour>:<minute>,<repeat>,<Spotify URI>,<Device ID>
<i>
- 从0到4(包括0和4)的数字<hour>
- 24小时制的小时(0-23)<minute>
- 分钟(0-59)<repeat>
- 其中之一:daily
、weekdays
、weekends
<Spotify URI>
- 要播放的Spotify上下文的URI。格式与预设相同。<Device ID>
- 要播放的设备的唯一ID。这些在图形化Web界面上列出,或者在~/.connectr.log
日志文件中可以找到。
注意:Connectr必须在预定闹钟时间运行并连接到互联网。目标设备也必须运行并使用您的Spotify账户登录。这意味着闹钟功能在运行在始终开启的机器上(如家庭媒体服务器或VPS)时最有用。您可以通过在桌面机器上配置它并在服务器上复制~/.connectr.ini
配置文件来在无头服务器上运行Connectr。
[lastfm]
可选配置让Connectr将播放的曲目同步到Last.fm同步服务。这需要一个免费的Last.fm账户和免费的Last.fm开发者API令牌。
注意:必须通过图形化网页界面进行配置。网页界面会请求您的Last.fm用户名和密码,并在保存到配置文件之前将密码替换为会话密钥。在配置文件中无法指定密码,因此没有GUI无法启用Last.fm同步。一旦启用,有效的Last.fm配置可以传输到其他机器。
注意:与闹钟功能类似,同步需要Connectr始终运行。这意味着应该从始终开启的计算机上运行,例如家庭媒体服务器或VPS。您可以先在普通机器上配置它,然后将/.connectr.ini
文件复制到您的始终开启的服务器。
有选项可以忽略在手机/平板电脑或计算机上播放的曲目,如果您希望官方的Spotify客户端处理这些设备上的同步。这对手机尤其有利,因为Spotify可以在离线时同步播放的曲目。
- 启用 - 是否启用Last.fm同步
- key - Last.fm开发者API密钥
- secret - Last.fm开发者API密钥
- session_key - 缓存的Last.fm认证令牌
- username - Last.fm用户名
- ignore_pc - Connectr是否应忽略在计算机上播放的曲目
- ignore_phone - Connectr是否应忽略在手机/平板电脑上播放的曲目
[tokens]
注意:此部分在运行时自动生成和自动更新。如果您制作自己的配置文件,则可以将其留空。
- version - Connectr认证格式的版本
- access - Spotify Web API访问令牌
- refresh - Spotify Web API刷新令牌
- expire - 访问令牌的过期时间(UTC)
示例connectr.ini
[connectr]
port=5432
[application]
secret=xxxxxyyyyyaaaaabbbbbcccccddddd
client_id=xXxXxyYyYynNnNnNmMmMmMpPpPpP
[presets]
Discover Weekly=spotify:user:spotify:playlist:37i9dQZEVXcOmDhsenkuCu
Edge Detector=spotify:user:mrmekon:playlist:4SKkpDbZwNGklpIILmEZAg
Play Today=spotify:user:mrmekon:playlist:4c8eKK6kKrcdt1HToEX7Jc
[tokens]
version=1
access=this-is-autogenerated
refresh=this-is-also-autogenerated
expire=1492766270
[lastfm]
enabled=true
key=aaaaabbbbbbccccccddddddeeeeee
secret=ffffffgggggghhhhhhhiiiiiijjjjjj
session_key=kkkkkkllllllmmmmmmnnnnnooooooppppp
username=MyGloriousUsername
ignore_phone=true
ignore_pc=false
[alarms]
alarm1=08:00,weekdays,spotify:user:mrmekon:playlist:1BayoBGuBA5HhF0ZuYw2sN,1267eba791c19740744eb5c41a5165ce6691fb9b
功能进度
功能 | OS X | Windows | Linux |
---|---|---|---|
API | |||
获取设备列表 |
|
|
|
获取当前播放信息 |
|
|
|
将播放传输到设备 |
|
|
|
在设备上开始新的播放 |
|
|
|
暂停/恢复 |
|
|
|
跳到下一曲/上一曲 |
|
|
|
在曲目中搜索 |
|
|
|
更改音量 |
|
|
|
更改重复状态 |
|
|
|
更改随机播放状态 |
|
|
|
闹钟 |
|
|
|
Last.fm同步 |
|
|
|
获取专辑封面 |
|
|
|
用户界面 | |||
显示当前曲目 |
|
|
|
工具提示中的当前曲目 |
|
|
|
播放控制 |
|
|
|
设备选择 |
|
|
|
音量控制 |
|
|
|
预设 |
|
|
|
将当前曲目保存到播放列表 |
|
|
|
系统 | |||
持久配置 |
|
|
|
系统日志 |
|
|
|
重要依赖项
- fruitbasket - 为Connectr编写的Mac应用程序生命周期框架。
- rubrail - 为Connectr编写的Mac触控栏库。
- objc - SSheldon的Objective-C包装器套件,用于Rust。
- cocoa-rs - 与
objc
互补的Rust的Cocoa绑定。 - systray - Rust的Windows系统托盘库。
- rustfm-scrobble - Last.fm同步库。
依赖项
~12–24MB
~388K SLoC