#spotify #应用程序 #音乐播放器 #播放器 #tui #媒体播放器 #终端

应用 spotify_player

终端中具有完整功能一致性的 Spotify 播放器

43 个版本 (18 个重大更新)

0.19.1 2024 年 7 月 8 日
0.18.2 2024 年 5 月 25 日
0.17.2 2024 年 3 月 29 日
0.16.2 2023 年 12 月 11 日
0.5.1 2021 年 11 月 5 日

#14音频

Download history 78/week @ 2024-05-04 94/week @ 2024-05-11 86/week @ 2024-05-18 323/week @ 2024-05-25 97/week @ 2024-06-01 87/week @ 2024-06-08 82/week @ 2024-06-15 71/week @ 2024-06-22 400/week @ 2024-06-29 613/week @ 2024-07-06 201/week @ 2024-07-13 127/week @ 2024-07-20 122/week @ 2024-07-27 92/week @ 2024-08-03 81/week @ 2024-08-10 60/week @ 2024-08-17

每月 369 次下载

MIT 和可能 LGPL-3.0-or-later

440KB
10K SLoC

spotify_player

目录

简介

spotify_player 是一个快速、易于使用且可配置的终端音乐播放器。

特性

示例

youtubeasciicast上查看spotify_player的演示,版本为v0.5.0-pre-release

请查看examples/README.md获取更多示例。

安装

默认情况下,应用程序的安装二进制文件为spotify_player

要求

需要一个Spotify Premium账户。

依赖项

Windows和MacOS
Linux
  • 作为构建依赖项,需要Rust和cargo

  • 安装opensslalsa-libstreaming功能)、libdbusmedia-control功能)。

    • 例如,在基于Debian的系统上,运行以下命令安装应用程序的依赖项

      sudo apt install libssl-dev libasound2-dev libdbus-1-dev
      

二进制文件

应用程序的预构建二进制文件可以在发布页面找到。

注意:要运行应用程序,Linux系统需要安装依赖项部分中指定的额外依赖项。

Homebrew

运行brew install spotify_player安装应用程序。

Scoop

运行scoop install spotify-player安装应用程序。

Cargo

运行cargo install spotify_playercrates.io安装应用程序。

AUR

运行yay -S spotify-player将应用程序作为AUR包安装。

或者,运行yay -S spotify-player-full-pipe安装一个具有完整功能支持和Pulseaudio/Pipewire而不是rodio的AUR包。

Void Linux

运行xbps-install -S spotify-player安装应用程序。

FreeBSD

运行pkg install spotify-player从FreeBSD端口安装spotify_player二进制文件。

NetBSD

使用包管理器,运行pkgin install spotify-player从官方仓库安装。

从源码构建,

cd /usr/pkgsrc/audio/spotify-player
make install

Docker

注意:在使用docker镜像时,streaming功能被禁用。

您可以通过运行以下命令从master分支下载最新构建的二进制镜像

docker pull aome510/spotify_player:latest

然后运行

docker run --rm -it aome510/spotify_player:latest

以运行应用程序。

您还可以使用本地配置文件夹来配置应用程序,或在运行docker镜像时使用本地缓存文件夹来存储应用程序的缓存数据。

docker run --rm \
-v $APP_CONFIG_FOLDER:/app/config/ \
-v $APP_CACHE_FOLDER:/app/cache/ \
-it aome510/spotify_player:latest

特性

Spotify Connect

要启用完整的Spotify connect支持,用户需要注册Spotify应用程序,并在配置文档中描述的一般配置文件中指定应用程序的client_id

有关注册Spotify应用程序的更多详细信息,请参阅官方Spotify文档

当使用自己的client_id运行spotify_player时,按D(默认快捷键为SwitchDevice命令)获取可用设备列表,然后按Enter(默认快捷键为ChooseSelected命令)连接到所选设备。

流媒体

spotify_player支持流媒体,需要构建/安装具有streaming功能(默认启用)和音频后端(默认为rodio-backend)。流媒体功能允许spotify_player直接从终端播放音乐。

应用程序在运行时使用librespot库创建集成Spotify客户端。集成客户端将在spotify-player名称下注册Spotify扬声器设备,该设备可在Spotify connect设备列表中访问。

音频后端

spotify_player使用rodio作为默认的音频后端。可用音频后端列表

  • alsa-backend
  • pulseaudio-backend
  • rodio-backend
  • portaudio-backend
  • jackaudio-backend
  • rodiojack-backend
  • sdl-backend
  • gstreamer-backend

用户可以在构建/安装应用程序时通过指定--features选项来更改音频后端。例如,要使用pulseaudio-backend安装spotify_player,请运行

cargo install spotify_player --no-default-features --features pulseaudio-backend

注意:

  • 需要在此处指定--no-default-features,因为rodio-backend是默认功能之一。
  • 用户将需要根据所选音频后端安装额外的依赖项。更多详细信息请参阅Librespot文档

在安装时,也可以通过运行来禁用streaming功能

cargo install spotify_player --no-default-features

歌词

要启用歌词支持,spotify_player需要构建/安装具有lyric-finder功能(默认禁用)。要安装包含lyric-finder功能的程序,请运行

cargo install spotify_player --features lyric-finder

用户可以通过调用LyricPage命令进入歌词页面来查看当前播放歌曲的歌词。为此,spotify_player需要构建带有lyric-finder功能的版本。

在底层,spotify_player使用Genius.com检索歌曲的歌词。

媒体控制

要启用媒体控制支持,spotify_player需要构建/安装具有media-control功能(默认启用)并将enable_media_control配置选项设置为true常规配置文件中。

媒体控制支持在Linux上使用MPRIS DBus实现,在Windows和MacOS上使用OS窗口事件监听器。

图像

要启用图像渲染支持,spotify_player需要构建/安装具有image功能(默认禁用)。要安装包含image功能的程序,请运行

cargo install spotify_player --features image

spotify_player支持在运行在KittyiTerm2上的程序时以全分辨率渲染图像。否则,图像将以块字符的形式显示。

spotify_player还支持在sixel功能标志下渲染图像,这同样启用了image功能

cargo install spotify_player --features sixel

注意事项:

  • 并非所有由libsixel支持的终端都被spotify_player支持,因为它依赖于一个第三方库进行图像渲染。可能支持的终端列表可以在这里找到。
  • sixel渲染的图像可能具有奇怪的缩放比例。建议调整cover_img_scale配置选项以获得最佳结果,因为缩放方式因不同的终端和字体而异。

图像渲染示例

  • iTerm2

iTerm2

  • Kitty

kitty

  • Sixel (foot终端,cover_img_scale=1.8)

sixel

  • 其他

others

通知

要启用桌面通知支持,需要将spotify_player构建/安装为带有notify功能(默认禁用)。要安装包含notify功能的程序,请运行

cargo install spotify_player --features notify

注意:与Linux相比,MacOSWindows的通知支持相当有限。

鼠标支持

目前,鼠标的唯一支持用例是通过在播放进度条中左键单击到该位置来定位当前播放的位置。

守护进程

要启用守护进程支持,需要将spotify_player构建/安装为带有daemon功能(默认禁用)。要安装包含daemon功能的程序,请运行

cargo install spotify_player --features daemon

您可以通过指定-d--daemon选项来作为守护进程运行应用程序:spotify_player -d

注意事项:

  • daemon功能不支持Windows

  • daemon功能需要启用streaming功能,并以带有音频后端构建的应用程序运行

  • 由于操作系统的限制,daemon功能与MacOS上的media-control功能不兼容,该功能默认启用。换句话说,如果您想在MacOS上使用daemon功能,您必须禁用media-control功能安装应用程序

    cargo install spotify_player --no-default-features --features daemon,rodio-backend
    

要启用模糊搜索支持,需要将spotify_player构建/安装为带有fzf功能(默认禁用)。

CLI命令

spotify_player提供了一些CLI命令来与Spotify交互

  • get:获取Spotify数据(播放列表/专辑/艺术家数据,用户数据等)
  • playback:与播放交互(开始播放,播放暂停,下一曲等)
  • connect:连接到Spotify设备
  • like:喜欢当前播放的曲目
  • authenticate:验证应用程序
  • playlist:播放列表编辑(新建,删除,导入,分支等)

有关更多详细信息,请运行spotify_player -hspotify_player {command} -h,其中{command}是CLI命令。

注意事项

  • 第一次使用命令行界面时,您需要先运行 spotify_player authenticate 命令来验证应用程序。
  • 在内部,命令行命令通过向运行在端口号 client_portspotify_player 客户端套接字发送请求来处理,这是一个通用的应用程序配置,默认值为 8080。如果没有运行应用程序的实例,在处理命令行命令时将创建一个新的客户端,这会增加命令的延迟。

命令

要转到快捷键帮助页面,请按 ?C-h(默认快捷键为 OpenCommandHelp 命令)。

提示:

  • 您可以使用 Search 命令在快捷键帮助页面(以及一些其他页面)中搜索
  • RefreshPlayback 可用于手动更新播放状态。
  • RestartIntegratedClient 当用户想要切换到另一个音频设备(耳机、耳塞等)而不重新启动应用程序时非常有用,因为集成客户端将使用新设备重新初始化。

支持命令列表

命令 描述 默认快捷键
NextTrack 下一首歌曲 n
PreviousTrack 上一首歌曲 p
ResumePause 根据当前播放状态暂停或继续 space
PlayRandom 在当前上下文中播放随机歌曲 .
Repeat 循环重复模式 C-r
ToggleFakeTrackRepeatMode 切换假轨道重复模式 M-r
Shuffle 切换随机播放模式 C-s
VolumeUp 增加播放音量5% +
VolumeDown 减少播放音量5% -
Mute 在0%和上一个级别之间切换播放音量 _
SeekForward 向前搜索5秒 >
SeekBackward 向后搜索5秒 <
Quit 退出应用程序 C-cq
ClosePopup 关闭弹出窗口 esc
SelectNextOrScrollDown 选择列表/表格中的下一项或向下滚动 jC-ndown
SelectPreviousOrScrollUp 选择列表/表格中的上一项或向上滚动 kC-pup
PageSelectNextOrScrollDown 选择列表/表格中的下一页项或向下滚动一页 page_downC-f
PageSelectPreviousOrScrollUp 选择列表/表格中的上一页项或向上滚动一页 page_upC-b
SelectFirstOrScrollToTop 选择列表/表格中的第一项或滚动到顶部 g ghome
SelectLastOrScrollToBottom 选择列表/表格中的最后一项或滚动到底部 Gend
ChooseSelected 选择选定的项目 enter
RefreshPlayback 手动刷新当前播放 r
RestartIntegratedClient 重新启动集成客户端(仅限 streaming 功能) R
ShowActionsOnSelectedItem 打开一个弹出窗口,显示对选定项的操作 g aC-space
ShowActionsOnCurrentTrack 打开一个弹出窗口,显示对当前歌曲的操作 a
AddSelectedItemToQueue 将选定的项目添加到队列 ZC-z
FocusNextWindow 聚焦下一个可聚焦的窗口(如果有) tab
FocusPreviousWindow 聚焦上一个可聚焦的窗口(如果有) backtab
SwitchTheme 打开切换主题的弹出窗口 T
SwitchDevice 打开切换设备的弹出窗口 D
Search 打开当前页面搜索的弹出窗口 /
BrowseUserPlaylists 打开浏览用户播放列表的弹出窗口 u p
BrowseUserFollowedArtists 打开浏览用户关注的艺术家的弹出窗口 u a
BrowseUserSavedAlbums 打开浏览用户保存的专辑的弹出窗口 u A
CurrentlyPlayingContextPage 转到当前播放的上下文页面 g space
TopTrackPage 转到用户最高排名曲目页面 g t
RecentlyPlayedTrackPage 转到用户最近播放曲目页面 g r
LikedTrackPage 转到用户喜欢曲目页面 g y
LyricPage 转到当前曲目歌词页面(仅限“歌词查找”功能) g L, l
LibraryPage 转到用户图书馆页面 g l
SearchPage 转到搜索页面 g s
BrowsePage 转到浏览页面 g b
Queue 转到队列页面 z
OpenCommandHelp 转到命令帮助页面 ?, C-h
PreviousPage 转到上一页 backspace, C-q
OpenSpotifyLinkFromClipboard 从剪贴板打开Spotify链接 O
SortTrackByTitle 按曲目名称对曲目表(如果有)进行排序 s t
SortTrackByArtists 按曲目艺术家对曲目表(如果有)进行排序 s a
SortTrackByAlbum 按专辑对曲目表(如果有)进行排序 s A
SortTrackByAddedDate 按添加日期对曲目表(如果有)进行排序 s D
SortTrackByDuration 按持续时间对曲目表(如果有)进行排序 s d
ReverseOrder 反转曲目表(如果有)的顺序 s r
MovePlaylistItemUp 将播放列表项目向上移动一个位置 C-k
MovePlaylistItemDown 将播放列表项目向下移动一个位置 C-j
CreatePlaylist 创建一个新的播放列表 N

要添加新快捷键或修改默认快捷键,请参阅配置文档中的键映射部分

Actions

有一个一般性的动作列表可用;然而,并不是所有的Spotify项(曲目、专辑、艺术家或播放列表)都实现了每个动作。要获取一个项上可用的动作列表,请调用ShowActionsOnCurrentTrack命令或ShowActionsOnSelectedItem命令,然后按回车(默认绑定为ChooseSelected命令)来启动所选动作。某些动作可能不会出现在弹出窗口中,但可以绑定到快捷键。

可用的动作列表

  • GoToArtist
  • GoToAlbum
  • GoToRadio
  • AddToLibrary
  • AddToPlaylist
  • AddToQueue
  • AddToLiked
  • DeleteFromLiked
  • DeleteFromLibrary
  • DeleteFromPlaylist
  • ShowActionsOnAlbum
  • ShowActionsOnArtist
  • ToggleLiked
  • CopyLink
  • Follow
  • Unfollow

这些操作也可以绑定到快捷键。要添加新的快捷键,请参考配置文档中的操作部分

搜索页面

首次进入搜索页面时,应用程序会聚焦到搜索输入框。用户可以输入文本,使用backspace键删除一个字符,或使用enter键进行搜索。

要将焦点从搜索输入框移动到其他窗口(如曲目结果、专辑结果等),请使用FocusNextWindowFocusPreviousWindow

配置

默认情况下,spotify_player会查找位于$HOME/.config/spotify-player的应用程序配置文件。这可以通过指定-c <FOLDER_PATH>--config-folder <FOLDER_PATH>选项来更改。

如果找不到应用程序配置文件,将创建一个包含默认值的配置文件。

有关配置选项的更多详细信息,请参阅配置文档

缓存

默认情况下,spotify_player会查找位于$HOME/.cache/spotify-player的应用程序缓存文件,包括日志文件、Spotify的授权凭证、音频缓存文件等。这可以通过指定-C <FOLDER_PATH>--cache-folder <FOLDER_PATH>选项来更改。

日志

应用程序将日志存储在$APP_CACHE_FOLDER/spotify-player-*.log文件中。对于调试或提交问题,用户还可以参考$APP_CACHE_FOLDER/spotify-player-*.backtrace中的回溯文件,其中包含应用程序在异常/意外错误时的回溯信息。

spotify_player使用环境变量RUST_LOG来定义应用程序的日志级别。默认情况下,RUST_LOG设置为spotify_player=INFO,这只会显示应用程序的日志。

致谢

spotify_player是用Rust编写的,并基于tui-rsrspotifylibrespot等出色的库构建的。它深受spotify-tuincspot的启发。

依赖项

~31–92MB
~1.5M SLoC