#spotify #waybar #cli #polybar #access-token #run-command #grpc-server

app spotifatius

一个简单的 Spotify CLI,主要用于监控您正在收听的曲目,并在您选择的工具栏(如 waybar 或 polybar)中显示。

9 个版本

0.2.5 2024年4月27日
0.2.4 2023年5月20日
0.2.3 2022年5月29日
0.2.2 2022年4月29日
0.1.2 2022年4月25日

命令行工具 中排名第 595

MIT 许可证

49KB
1K SLoC

Spotifatius

Spotify + 状态 + 一些拉丁文 = Spotifatius。

一个简单的 Spotify CLI,主要用于监控您正在收听的曲目,并在您选择的工具栏(如 waybarpolybar)中显示。

用法

首先确保在您的 shell 环境中设置了 RSPOTIFY_CLIENT_IDRSPOTIFY_CLIENT_SECRET 环境变量。它们需要包含 Spotify 开发者客户端 ID 和密钥。按照 Spotify 开发者文档 进行设置,确保重定向 URI 设置为 https://127.0.0.1。完成后,运行一次 spotifatius monitor 以设置 Spotify 访问令牌

$ spotifatius monitor
Opened https://accounts.spotify.com/authorize?[...] in your browser.
Please enter the URL you were redirected to:
[INSERT URL HERE]
{"text":"Twenty One Pilots - Bounce Man","tooltip":"Scaled And Icy","class":["playing"]}

从那时起,此步骤将不再需要。您可以将 spotifatius monitor 添加到您最喜欢的工具栏中,查看 工具栏集成。该命令的第一次调用将启动其他命令所需的服务器。如果已经有一个服务器正在运行,它将镜像该服务器的输出,这在您希望在多个显示器上显示监控时非常有用。

要切换任何地方的喜爱状态,请使用 toggle-liked

$ spotifatius toggle-liked
Added to library!

这将更新监控服务器/客户端

{"text":"Added to library!","class":["added"]}
{"text":"Twenty One Pilots + Bounce Man","tooltip":"Scaled And Icy","class":["liked","playing"]}

再次执行此操作将删除喜爱状态

$ spotifatius toggle-liked
Removed from library!
{"text":"Removed from library!","class":["removed"]}
{"text":"Twenty One Pilots - Bounce Man","tooltip":"Scaled And Icy","class":["playing"]}

喜爱歌曲在艺术家和歌曲标题之间有 + 而不是 -

工具栏集成

以下是支持的工具栏的配置示例。

Waybar

添加以下内容以使其作为模块可用

"custom/spotify": {
    "format": "{}",
    "return-type": "json",
    "on-click-right": "spotifatius toggle-liked",
    "exec": "spotifatius monitor"
}

以下类受支持

  • playing:当前歌曲正在播放。
  • paused:当前歌曲已暂停。
  • stopped:当前歌曲已停止。
  • liked:当前歌曲在您的喜爱歌曲列表中。
  • added:显示一条消息,说明歌曲已被添加到您喜欢的歌曲中。
  • removed:显示一条消息,说明歌曲已被从您喜欢的歌曲中移除。

Polybar

[module/spotify]
type = custom/script
exec = spotifatius monitor --output-type polybar
tail = true
click-right = spotifatius toggle-liked

Polybar 将 waybar 的输出类别映射到您可以在配置文件 ~/.config/spotifatius/config.toml 中定义的颜色。

[polybar]
[polybar.colors]
# added = ""
# liked = ""
paused = "#6E6E6E"
playing = "#CECECE"
# removed = ""

默认情况下,polybar 没有设置颜色。

一些示例输出

$ spotifatius monitor --output-type polybar
# Output for playing unliked song.
%{F#CECECE}Twenty One Pilots - Bounce Man%{F-}
# Output for playing liked song.
%{F#CECECE}Twenty One Pilots + Bounce Man%{F-}
# Output for paused liked song.
%{F#6E6E6E}Twenty One Pilots + Bounce Man%{F-}

Server/Client via gRPC

Spotifatius 的监控命令默认开启,因为有一个 gRPC 服务器正在流式传输监控更新,请参阅 proto/service.proto。如果监控实例检测到端口已被另一个监控实例使用,它将开始通过 gRPC 监听,以确保所有实例保持同步。截至编写本文时,关闭服务器实例也将关闭客户端。

安装

如果您希望 spotifatius 可在您发行版的包管理器上使用,如果您有时间帮助,请随意提交一个问题。

Arch 用户仓库 (AUR)

paru -S spotifatius

Cargo (crates.io)

cargo install spotifatius --locked

手动

git clone [email protected]:AndreasBackx/spotifatius.git
cd spotifatius
cargo install --path . --locked

日志记录

使用 RUST_LOG 传递 tracedebuginfowarnerror 来设置日志级别,默认为 error。有关更多信息,请参阅 tracing-subcriber 文档

依赖关系

~20–39MB
~559K SLoC