#spotify #connect #client #open #source #music #receiver

bin+lib librespot

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

12 个版本

0.4.2 2022 年 7 月 29 日
0.3.1 2021 年 10 月 25 日
0.2.0 2021 年 5 月 4 日
0.1.6 2021 年 2 月 22 日
0.0.0 2018 年 2 月 24 日

#85 in 音频

Download history 2551/week @ 2024-04-22 2294/week @ 2024-04-29 2290/week @ 2024-05-06 2774/week @ 2024-05-13 2702/week @ 2024-05-20 2818/week @ 2024-05-27 1808/week @ 2024-06-03 2111/week @ 2024-06-10 2520/week @ 2024-06-17 2259/week @ 2024-06-24 2472/week @ 2024-07-01 1951/week @ 2024-07-08 2158/week @ 2024-07-15 2099/week @ 2024-07-22 1762/week @ 2024-07-29 1877/week @ 2024-08-05

8,119 每月下载量
4 crates 中使用

MIT 许可证

520KB
12K SLoC

Build Status Gitter chat Crates.io

当前维护者名单可在 GitHub 上找到。

librespot

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

注意:librespot 仅支持 Spotify Premium。这种情况将保持不变。我们不会支持任何使 librespot 与免费账户兼容的功能,例如限制跳过次数和广告。

快速入门

我们作为 librespot 软件包在 crates.io 上可用。只需运行 cargo install librespot 就可在您的系统上安装 librespot。有关更多信息和使用选项,请查阅维基百科。

安装完成后,您可以通过命令行界面(CLI)使用类似以下命令运行librespot:librespot -n "Librespot Speaker" -b 160 来创建一个名为 Librespot Speaker 的扬声器,提供 160 kbps 的音频。

此分支

由于 plietar 的原始版本已不再积极维护,因此已建立此组织和存储库,以便未来可以维护和升级该项目。

文档

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

有关协议工作原理的简要文档可以在 docs 文件夹中找到。

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

如果您想了解 librespot 的工作原理,最好的方式是阅读代码,并在我们的 Gitter 房间 中提出您的问题。

问题 & 讨论

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

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

构建

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

附加依赖

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

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

sudo apt-get install build-essential libasound2-dev

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

sudo dnf install alsa-lib-devel make gcc

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

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

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

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

cargo build --release

软件包

librespot 还可以通过各种操作系统的官方软件包系统获得,例如 Linux、FreeBSD、NetBSD。《Repology》提供了一个很好的概述。

Packaging status

使用方法

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

target/release/librespot --name DEVICENAME

以上是一个最小示例。以下是一个更完整的示例

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

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

完整的运行时选项列表请见 此处

请注意:使用缓存功能时,会在缓存目录中存储您账户的认证数据块。出于安全考虑,我们建议将缓存目录的权限设置为 700

联系方式

如果您需要帮助或想要提供一些信息,请来 gitter 上一起闲逛:https://gitter.im/librespot-org/spotify-connect-resources

免责声明

使用此代码连接到 Spotify 的 API 可能被他们禁止。请自行承担风险。

许可证

此存储库中的一切均受 MIT 许可证许可。

以下是一个不完整的列表,列出了使用或修改了 librespot 的项目。如果您想添加自己的项目,请提交 PR。

  • librespot-golang - librespot 的 golang 版本。
  • plugin.audio.spotify - Spotify 的 Kodi 插件。
  • raspotify - 只需连接即可工作的 Raspberry Pi Spotify Connect 客户端。
  • Spotifyd - 精简的 librespot UNIX 守护程序。
  • rpi-audio-receiver - Spotifyd、蓝牙、Shairport 等其他音频接收器的 Raspbian 安装脚本。
  • Spotcontrol - Spotify Connect 控制器的 golang 实现。没有播放功能。
  • librespot-java - librespot 的 Java 版本。
  • ncspot - 跨平台的 ncurses Spotify 客户端。
  • Spot - Gtk/Rust 原生 Spotify 客户端,适用于 GNOME 桌面。
  • Snapcast - 使用 librespot 作为 Spotify 内容源的同步多房间音频播放器。
  • ansible-role-librespot - 用于构建、安装和配置 Librespot 的 Ansible 角色和模块。

依赖项

~21–40MB
~693K SLoC