11个版本
0.7.1 | 2023年7月13日 |
---|---|
0.7.0 | 2023年1月20日 |
0.6.2 | 2022年11月16日 |
0.6.0 | 2022年7月20日 |
0.4.0 | 2021年5月7日 |
#24 在 多媒体
每月 25次下载
45KB
804 行
rescrobbled
Rescrobbled是一个音乐抓取守护进程。它使用MPRIS检测在D-Bus上运行的媒体播放器,自动更新“正在播放”状态,并在播放时将歌曲抓取到Last.fm或ListenBrainz兼容的服务。
例如,由于共享Spotify账号(我知道,我知道),我需要一个方法在不将Spotify账号连接到我的Last.fm账号的情况下将抓取记录到Last.fm。Rescrobbled为此提供了一个简单的解决方案。
安装
您可以从这里下载预构建的二进制文件。可以将二进制文件放置在任何您喜欢的位置。
Rescrobbled在crates.io上有提供
cargo install rescrobbled
或者您可以使用以下命令从源代码安装:cargo install --path .
从crate根目录。
还有由brycied00d提供的AUR软件包,它将始终从这个存储库构建最新的Rescrobbled版本。
配置
Rescrobbled期望在~/.config/rescrobbled/config.toml
中有一个配置文件,其格式如下
lastfm-key = "Last.fm API key"
lastfm-secret = "Last.fm API secret"
min-play-time = 0
player-whitelist = [ "Player MPRIS identity or bus name" ]
filter-script = "path/to/script"
[[listenbrainz]]
url = "Custom API URL"
token = "User token"
所有设置都是可选的,尽管没有Last.fm或ListenBrainz凭据,Rescrobbled并不会非常有用。:-)
如果配置文件不存在,当您第一次运行Rescrobbled时,它会为您生成一个示例配置。
lastfm-key
、lastfm-secret
要使用Rescrobbled与Last.fm一起使用,您需要一个Last.fm API密钥和密钥。这些可以从这里获得。
min-play-time
在抓取歌曲之前,所需的最短播放时间(秒)。
默认情况下,曲目提交会遵循Last.fm推荐的操作行为:歌曲只有在播放了至少一半的时长或4分钟,以先到者为准时,才会被抓取。使用min-play-time
可以覆盖此行为。
player-whitelist
如果为空或省略,所有播放器的音乐将被scrobbled;否则,仅重新scrobbled将只监听此列表中的播放器。
可以使用类似 playerctl 的CLI应用程序来确定播放器的名称以用于白名单。要这样做,请播放一首歌并运行以下命令
playerctl --list-all
filter-script
在更新状态和提交曲目之前将运行 filter-script
。它在其标准输入的连续行上接收以下属性(由 \n
分隔)
- 艺术家;
- 歌曲标题;
- 专辑名称;
- 一个或多个由逗号分隔的(
,
)流派
脚本应在标准输出的相应行上写入过滤后的艺术家、歌曲标题和专辑名称。这可以用于清理歌曲名称,例如删除“重新大师版”和类似后缀。如果过滤脚本没有返回任何输出,则忽略当前曲目。
可以在 filter-script-examples
目录中找到一些示例脚本。
[[listenbrainz]]
可以通过重复此选项来指定一个或多个ListenBrainz实例。每个定义至少需要一个 token
。您可以将 url
设置为使用自定义API URL(例如,用于自定义ListenBrainz实例或类似Maloja的服务)。如果没有提供URL,则默认为ListenBrainz.org实例。
如果您只想使用ListenBrainz.org,则可以设置 listenbrainz-token
选项作为简写。
对于ListenBrainz.org,用户令牌可以在 这里 找到。其他服务可能不同,请参阅它们的文档以获取更多信息。
注意:由于TOML的工作方式,这些需要是配置文件的最后内容。
用法
要确保rescrobbled可以将scrobbled发送到Last.fm,您需要在终端中运行程序。这将提示您输入您的Last.fm用户名和密码,并与Last.fm进行身份验证。然后获取一个持久的会话令牌,该令牌将在后续运行中替代您的用户名/密码。会话令牌存储在 ~/.config/rescrobbled/session
中。
如果您想将rescrobbled作为守护进程运行,可以将提供的 systemd单元文件 放在 ~/.config/systemd/user/
目录中。根据需要更改 ExecStart
以指向二进制文件的位置。然后,要使程序在启动时运行,请使用
systemctl --user enable rescrobbled.service
您可以在当前会话中运行它
systemctl --user start rescrobbled.service
项目资源
问题和拉取请求非常受欢迎!开发发生在 development
分支上,因此请针对该分支创建拉取请求。所有贡献都将根据GPLv3许可。
许可
GPL-3.0,请参阅 LICENSE
。
依赖项
~9–20MB
~297K SLoC