#spotify #librespot #macos #fork #source #client

程序+库 actinium226-librespot

librespot 的分支,包含在 MacOS 上切换音频源的修复

1 个不稳定版本

0.4.3 2024 年 2 月 4 日

#387音频

MIT 许可证

335KB
7.5K 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。请查阅维基百科获取更多信息以及可能的 使用选项

安装后,您可以使用类似 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 提供了良好的概述。

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 的文件夹,用于缓存音频数据和凭据。

运行时选项的完整列表可在 这里 查看。

请注意:当使用缓存功能时,将在缓存目录中存储您的账户的认证 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