1 个不稳定版本
0.4.3 | 2024 年 2 月 4 日 |
---|
#387 在 音频
335KB
7.5K SLoC
当前维护人员列在 GitHub 上。
librespot
librespot 是 Spotify 的开源客户端库。它允许应用程序通过各种后端使用 Spotify 的服务来控制和播放音乐,并作为 Spotify Connect 接收器。它是官方和 现在已弃用的 封闭源 libspotify
的替代品。此外,它还将提供官方库中不可用的额外功能。
注意:librespot 仅与 Spotify Premium 兼容。这种情况将保持不变。我们不会支持使 librespot 与免费账户兼容的功能,例如限制跳过次数和广告。
快速开始
我们作为 librespot 软件包在 crates.io 上提供。只需运行 cargo install librespot
命令即可在您的系统上安装 librespot。请查阅维基百科获取更多信息以及可能的 使用选项。
安装后,您可以使用类似 librespot -n "Librespot Speaker" -b 160
的命令从 CLI 运行 librespot,以创建一个名为 Librespot Speaker 的扬声器,提供 160 kbps 的音频。
此分支
由于原始版本 plietar 已不再积极维护,因此已设置此组织和存储库,以便将来维护和升级该项目。
文档
文档目前正在制作中,欢迎贡献!
在 docs 文件夹中提供了一些关于协议如何工作的简要文档。
COMPILING.md 包含了设置开发环境和编译 librespot 的详细说明。有关更通用的使用和编译信息,请参阅 维基百科。 CONTRIBUTING.md 也包含我们的贡献指南。
如果您想更全面地了解 librespot 的工作原理,最好的方式是直接阅读代码,并在我们的 Gitter 房间 提出您的问题。
问题 & 讨论
我们最近开始使用 Github 讨论区来处理一般问题和功能请求,因为这些方式更适合此类情况,并且可以通过点赞来优先开发功能。您可以在此 查看。对于底层库的bug和问题,仍应报告为问题。
如果在使用 librespot 时遇到bug,请在创建新问题之前先搜索现有的问题。很可能我们已经遇到过,并提供了解决方案。如果没有,请创建一个新的问题,并在可能的情况下,包括 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 提供了良好的概述。
用法
提供了一个实现无头 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
的文件夹,用于缓存音频数据和凭据。
运行时选项的完整列表可在 这里 查看。
请注意:当使用缓存功能时,将在缓存目录中存储您的账户的认证 blob。出于安全考虑,我们建议您将缓存目录的权限设置为 700
。
联系方式
如果您需要帮助或想提供帮助,请来 gitter 玩:https://gitter.im/librespot-org/spotify-connect-resources
免责声明
使用此代码连接到 Spotify 的 API 可能违反他们的规定。自行承担风险。
许可
此存储库中的所有内容均受 MIT 许可证的许可。
相关项目
这是一个使用或修改了 librespot 的项目的非详尽列表。如果您想将其包括在内,请提交 PR。
- librespot-golang - librespot 的 golang 端口。
- plugin.audio.spotify - Kodi Spotify 插件。
- raspotify - 简单易用的 Raspberry Pi Spotify Connect 客户端。
- Spotifyd - 简化版的 librespot UNIX 守护进程。
- rpi-audio-receiver - Spotifyd、蓝牙、Shairport 等音频接收器的 easy Raspbian 安装脚本。
- Spotcontrol - Spotify Connect 控制器的 golang 实现。无播放功能。
- librespot-java - librespot 的 Java 版本。
- ncspot - 跨平台 ncurses Spotify 客户端。
- ansible-role-librespot - 用于构建、安装和配置 Librespot 的 Ansible 角色。
- Spot - GNOME 桌面环境的 Gtk/Rust 原生 Spotify 客户端。
- Snapcast - 使用 librespot 作为 Spotify 内容源的同步多房间音频播放器。
依赖项
~21–62MB
~1M SLoC