如何使用 Polaris 搭建个人音乐流媒体服务,无需订阅
流媒体服务为我们带来了便利,但也有个恼人的问题:喜欢的曲目可能因为版权纠纷突然从曲库中消失,而且订阅费用也在不断上涨。如果你硬盘或家庭服务器上存有多年积累的 GB 级 FLAC 和 MP3 文件,用 U 盘随身携带显然很不方便。你需要自己的流媒体服务——随时随地可用,还不需要每月付费。
最近我发现了 Polaris——一款轻量级自托管音乐流媒体服务器,采用 Rust 编写。没有付费等级,没有功能限制版本,也没有臃肿的界面。
Polaris 能做什么
项目作者的主要关注点是响应速度和处理真正海量媒体库的能力。描述中声称可以流畅处理超过 100,000 首曲目的收藏。
与 Plex 或 Jellyfin 这类重量级一体化解决方案不同,Polaris 专注于音频:
- 支持读取 flac、mp3、mp4、mpc、ogg、opus、ape、wav 和 aiff 格式。
- 在播放器中直接渲染音频波形可视化,方便快速跳转到曲目中的指定时刻。
- 支持元数据中的多值标签,当单首曲目有多个艺术家或流派时也能正确处理。
- 可以按标签(艺术家、专辑、流派)以及磁盘上熟悉的文件夹树结构展示音乐库。当早期发行的标签填写得比较随意时,这种方式非常有用。
- 支持按特定元数据字段搜索。
- 支持用户分离,每个用户有独立的播放列表。
一个贴心的细节:界面支持深色主题和调色板自定义。
技术实现
Polaris 采用 Rust 编写,这意味着它占用极少的系统资源,并能快速提供静态内容和流媒体。不需要处理复杂的数据库来存储配置:设置保存在纯文本文件中,但如果愿意,也可以直接从 Web 界面编辑。
开发者将服务器 API 完全开放并通过 OpenAPI 进行了文档化。Polaris 的任何本地实例都会在 /api-docs/ 启动一个交互式 Swagger 页面,因此编写自己的客户端或自动化脚本非常直接。
顺便说一下,功能完善的客户端已经存在。除了 Web 界面外,你还可以使用:
- 官方 Android 客户端(可在 Google Play 和 F-Droid 下载)。
- 第三方 iOS 应用 Polarios。
- 适用于嵌入式系统和桌面的 Polarity 客户端。
快速入门
服务器支持在 Linux、Windows 和 BSD 上构建,但最简单的方式是通过 Docker 运行。基本 docker-compose.yml 看起来非常简洁:
version: "3"
services:
polaris:
image: agersant/polaris:latest
container_name: polaris
ports:
- "5050:5050"
volumes:
- /path/to/your/music:/music:ro
- /path/to/polaris/data:/var/lib/polaris
restart: unless-stopped
启动后,界面可在端口 5050 访问。你只需要设置一个管理员密码,然后指向包含音频文件的目录。Polaris 会在后台快速为曲目建立索引。
如果你不想立即配置容器,开发者维护了一个在线演示,地址在 demo.polaris.stream(登录名:demo_user,密码:demo_password),收录了采用知识共享许可的曲目。
适用人群
Polaris 非常适合在低配置硬件(如树莓派或老旧上网本)上运行家庭服务器、想要一个快速播放器但不需要 4K 视频转码等额外功能的人。如果你追求纯净的音频、即时响应以及对文件的完全控制,这款工具绝对值得收藏。
相关项目