#spotify #applications #connect #receiver #client #open #source

已删除 openlibspot

Spotify的开源客户端库,支持Spotify Connect

1 个不稳定版本

0.6.0 2024年2月15日

#38#receiver

MIT 许可证

1MB
18K SLoC

openlibspot

openlibspot 是一个开源的 Spotify 客户端库。它使应用程序能够使用 Spotify 的服务通过各种后端来控制播放音乐,并充当 Spotify Connect 接收器。它是官方和 现已弃用的 封闭源 libspotify 的替代品。此外,它还将提供官方库中没有的额外功能。

注意:openlibspot 仅适用于所有 Spotify 账户类型。

快速入门

我们可以在 crates.io 上以 openlibspot 包的形式使用。只需运行 cargo install openlibspot 来在您的系统上安装 openlibspot。有关更多信息和使用选项,请查看 wiki。

安装后,您可以使用如 openlibspot -n "openlibspot Speaker"" -160 的命令从 CLI 运行 openlibspot,以创建一个名为 openlibspot Speaker 的扬声器,提供 160 kbps 的音频。

此分支

由于原版由 plietar 已不再积极维护,因此已建立此组织和仓库,以便项目可以在未来进行维护和升级。

文档

文档目前正在制作中,欢迎贡献!

docs 文件夹中有一些关于协议如何工作的简要文档。

COMPILING.md 包含设置开发环境和编译 openlibspot 的详细说明。更多通用使用和编译信息可在 wiki 上找到。 CONTRIBUTING.md 还包含我们的贡献指南。

如果您想了解更多关于openlibspot整体工作原理的信息,最好的方法就是直接阅读代码,并在我们Gitter房间中提出您的问题。

问题与讨论

我们最近开始使用Github讨论来处理一般问题和功能请求,因为它们是处理此类情况的更自然介质,并允许通过点赞来优先开发功能。您可以在这里查看它们。对于底层库的bug和问题,仍应报告为问题。

如果您在使用openlibspot时遇到bug,请在创建新的问题之前先搜索现有的问题。可能我们已经遇到过,并提供了解决方案。如果没有,请创建一个新的问题,并在可能的情况下,包括openlibspot在崩溃时生成的backtrace,以及我们可以用来重现问题的任何内容,例如导致崩溃的歌曲的Spotify URI。

构建

下面概述了构建过程的快速指导,而详细的编译指南可以在这里找到。

额外依赖项

我们最近切换到使用Rodio作为默认音频播放,因此对于macOS和Windows,您只需克隆并构建openlibspot(使用以下命令)。对于Linux,您将需要根据您的发行版运行以下附加命令。

在Debian/Ubuntu上,以下命令将安装这些依赖项

sudo apt-get install build-essential libasound2-dev

在Fedora系统上,以下命令将安装这些依赖项

sudo dnf install alsa-lib-devel make gcc

openlibspot目前提供以下音频后端选择

Rodio (default)
ALSA
GStreamer
PortAudio
PulseAudio
JACK
JACK over Rodio
SDL
Pipe
Subprocess

请查看维基百科上相应的编译条目,了解特定后端的依赖项。

安装依赖项并克隆此存储库后,您可以使用Cargo使用默认后端构建openlibspot

cargo build --release

openlibspot也通过各种操作系统的官方包系统提供,如Linux、FreeBSD、NetBSD。《Repology》提供了一个很好的概述。Repology

Packaging status

用法

提供了一个实现无头Spotify Connect接收器的示例程序。一旦构建了openlibspot,请使用以下方式运行它

target/release/openlibspot --name DEVICENAME

上面的只是一个最小示例。这里有一个更完整的示例

target/release/openlibspot -n "openlibspot" -b 320 -c ./cache --enable-volume-normalisation --initial-volume 75 --device-type avr

上面的命令将创建一个名为openlibspot的接收器,比特率为320 kbps,初始音量为75%,启用音量标准化,并在应用中显示为音频/视频接收器。将在当前目录中创建/使用名为cache的文件夹,并用于缓存音频数据和凭证。

完整的运行时选项列表可在这里找到。

请注意:当使用缓存功能时,将在缓存目录中存储您的账户的认证blob。出于安全原因,我们建议您将缓存目录的目录权限设置为700

免责声明

使用此代码连接到Spotify的API可能违反他们的规定。风险自负。

许可证

此存储库中的所有内容均受MIT许可证的许可。

依赖项

~38–77MB
~1.5M SLoC