2022 年更新
超声波并没有被贬低,但我没有那么多时间来开发它。我打算以后再回来,希望大家多多包涵!即将到来的一个重要更新是关于Ultrasonics-api 的。我目前正在 Heroku 免费套餐上托管一个公共版本,正如 8 月份宣布的那样,该版本将于 2022 年 11 月底关闭。任何公共流媒体服务(Spotify、Last.fm 等)都需要它。
我还没有设置任何替代方案,因此在此之前,我强烈建议您设置自己的ultrasons-api实例以及ultrasons以及您想要同步的任何在线服务的密钥。这些说明都可以在该存储库中找到!
概述
安装
系统
选项 1(手动安装)
选项 2(码头工人)
小程序
输入
修饰符(可选)
输出
触发器
插件
播放列表模式与歌曲模式
贡献
编写你自己的插件
改进超声波源代码
欢迎来到超声波!
超声波是一款旨在帮助您控制音乐库和音乐播放列表的工具。让您的播放列表分散在三种不同服务中的日子已经一去不复返了,或者因为您没有时间手动管理同一播放列表的多个副本而仅限于使用一种服务的日子已经一去不复返了。
超声波使用插件与您喜爱的服务进行交互。这意味着只需安装新插件即可添加功能。每个插件都可以提供与服务的兼容性,例如官方 Spotify 插件链接到......当然,Spotify。其他插件提供附加功能,例如合并多个来源的播放列表。
所有包含的插件的概述可以在[文档不完整]中找到。
要运行超声波,您有两种选择:
直接下载并运行超声波。
拉取并运行官方 docker 镜像。
超声波是在 Linux 上开发的。它应该是跨平台兼容的,但尚未经过测试,因此请做好应对 Windows / macOS 上的错误或问题的准备!
确保你已经安装了Python 3
# 如果此命令不起作用,请在 ~↪ python3 --version 中的 uluru 安装 Python 3callum Python 3.8.2
将存储库克隆到安装目录,可能是/opt/ultrasonics
# 移至您的安装目录callum at uluru in ~↪ cd /opt# 克隆此repocallum at uluru in /opt ↪ git clone https://github.com/XDGFX/ultrasonics# 确保您拥有 /opt 中 uluru 的超声波文件夹callum 的所有权 ↪ sudo chown -R callum:callum 超声波/
创建一个虚拟环境,并在其中安装所需的依赖项。
# 进入超声波目录callum at uluru in /opt ↪ cd ultrasonics# 在 /o/ultrasonics 中的 uluru 文件夹 '.venv'callum 中创建虚拟环境 ↪ python3 -m venv .venv# 激活环境。# 如果您使用不同的 shell,请使用 activate.<shell># 例如,fish 的 source .venv/bin/activate.fish!callum at uluru in /o/ultrasonics ↪ source .venv/bin/activate# 确保您的 venv 处于活动状态(请参阅行开头的 .venv)# 在 /o/ultrasonics 中的 uluru 安装 Python 依赖项callum (.venv) ↪ pip3 install -r requests.txt
运行app.py
# 在 venv 仍然处于活动状态的情况下,在 /o/ultrasonics 中的 uluru 运行 app.pycallum (.venv) ↪ python3 app.py
如果您想将其作为 systemd 进程运行,请按照以下步骤操作:
将示例服务文件复制到/etc/systemd/system/ultrasonics.service
sudo cp ultrasonics.service /etc/systemd/system/ultrasonics.service
重新加载 systemctl 守护进程以获取新服务
sudo systemctl 守护进程重新加载
启用并启动服务
sudo systemctl enable --now 超声波
您可以使用以下方法检查进程的状态:
systemctl 状态超声波
官方超声波图像位于 xdgfx/ultrasonics。您可以手动拉取并运行它,或者将其粘贴到docker-compose.yml
文件中。
版本:“3.7”服务:超声波:图像:xdgfx/ultrasonicscontainer_name:超声波重新启动:除非停止端口: - 5000:5000卷: - /path/to/config:/config - /path/to/plugins:/plugins # 用于第三方插件环境: - PUID=${PUID} - PGID=${PGID}
如果您曾经使用过 IFTTT,那么您已经了解了基础知识。超声波的工作原理是“小程序”的概念。您创建的每个小程序都包含属于以下四个类别之一的插件:
这些插件连接到服务以获取歌曲或播放列表的列表,并将该列表传递到修改器和输出插件。
这些插件从一个或多个输入插件获取歌曲或播放列表列表,并以某种方式修改该列表。例如,他们可能会合并重复的播放列表,或者使用音乐发现 API 将歌曲替换为类似的歌曲。
这些插件获取传递给它们的播放列表列表,并将它们保存到服务中。也许他们会在 Plex 中更新或创建您的播放列表,或者将它们保存到您的家庭服务器上的 .m3u 文件中。
这些插件不是歌曲/播放列表流的一部分,而是确定小程序实际运行的时间。最简单的触发器是基于时间的,例如“每 6 小时运行一次”。
您可以使用已安装的插件构建自定义小程序,将其保存到数据库,然后它将从触发器插件自动运行,或者从主页手动运行小程序。
超声波与几个官方插件捆绑在一起。有关更多信息,请参阅[文档不完整]。
只需将包含插件的文件夹复制到plugins
目录中即可安装新插件。
每个小程序至少需要一个输入和一个输出插件。要自动运行,它还需要一个触发插件。
大多数插件都会有要配置的设置,这些设置可以是全局持久设置(对于所有插件的所有实例通用,在所有小程序中),或者特定于该插件实例。
当您构建小程序时,系统将提示您输入任何必需的设置。
设置始终可以留空!在某些情况下,这很好或符合预期,但在其他情况下,这可能会导致插件错误,可能需要手动修复超声波数据库!确保填写您应该填写的所有设置!
一些插件被设计为与播放列表一起使用 - 例如 Spotify 插件与您的 Spotify 播放列表交互。有些插件设计用于处理歌曲,例如 Last.fm 上的前 100 首歌曲。
如果插件仅在歌曲模式下工作,则“选择插件”屏幕上将显示警告。
通过将单个播放列表添加到小程序流程,将歌曲模式插件添加到输入将有效地工作。只要相关插件为该单个播放列表提供名称,这应该可以正常工作。
尝试将多个播放列表输入单个歌曲模式输出插件可能会导致问题,不建议这样做。
那么您想帮助改进超声波吗?首先——谢谢!作为一个非软件工程师的人,这是我从事过的最大的项目之一。非常感谢任何帮助或建议!
扩展超声波的功能非常简单!插件是拖放式安装,因此可以以最小的复杂性极大地改进项目。最好的学习方式是通过 wiki。您可以分叉这个项目,或者专门为您的插件创建自己的存储库。它可以分开保存,或者如果您认为将其设为默认插件将使社区受益,请通过 GitHub 问题告诉我!
我会将任何未来计划、已知问题或一般改进放在问题中。还要查看项目板,其中应该显示高优先级的问题。
或者,如果您有新想法,请尝试一下,并通过拉取请求或问题让我知道! ?