自托管互联网广播电台Airstation
简介
什么是 Airstation ?
Airstation是一个自托管的Web应用程序,用于通过Internet流式传输音乐。它具有一个简单的界面,用于上传曲目和管理播放队列,以及一个供听众使用的简约播放器。在后台,它使用HLS通过HTTP流式传输音乐,将数据存储在SQLite中,并利用FFmpeg进行音频处理 — 所有这些都打包在一个紧凑的Docker容器中,以便于部署。
主要特点
- 自托管:用户可以自行部署,完全控制音频流媒体。
- 简洁界面:易于使用的界面,方便上传和管理音乐。
- HTTP 流媒体:通过 HLS(HTTP Live Streaming)技术进行音乐流媒体传输。
- 数据存储:使用 SQLite存储数据,确保轻量级和高效。
- 音频处理:利用 FFmpeg进行音频处理,提供高质量的音频流。
应用场景
- 个人在线电台:用户可以创建自己的在线电台,分享音乐。
- 活动直播:用于活动或聚会中的音乐播放。
- 社区广播:帮助社区组织共享音乐或播客内容。

Airstation 为音乐爱好者提供了一个灵活且易于使用的平台,满足个人和小型组织的音乐流媒体需求。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 airstation ,选择第一个 cheatsnake/airstation,版本选择 latest。
本文写作时,
latest版本对应为1.0.0-beta.4;

卷
在 docker 文件夹中,创建一个新文件夹 airstation,并在其中建两个子文件夹 data 和 static
| 文件夹 | 装载路径 | 说明 | 
|---|---|---|
| docker/airstation/data | /app/storage | 存放数据库 | 
| docker/airstation/static | /app/static | 存放上传的音乐文件和 HLS切片文件等 | 

端口
本地端口不冲突就行,不确定的话可以用命令查一下
| 1 | # 查看端口占用 | 
| 本地端口 | 容器端口 | 
|---|---|
| 7331 | 7331 | 

环境
| 可变 | 值 | 
|---|---|
| AIRSTATION_SECRET_KEY | 用来登录电台控制面板的密钥 | 
| AIRSTATION_JWT_SIGN | 用于签名 JWT会话的密钥 | 
使用长度至少为 10 个字符的随机字符串生成器来为这些变量生成值!可以使用 openssl rand -base64 32 或者 Bitwarden来生成

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
| 1 | # 新建文件夹 airstation 和 子目录 | 
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
| 1 | services: | 
然后执行下面的命令
| 1 | # 新建文件夹 airstation 和 子目录 | 

运行
后台
在浏览器中输入 http://群晖IP:7331/studio ,输入环境变量 AIRSTATION_SECRET_KEY 的值

登录成功后的主界面

点 Add  添加 mp3 音乐文件

处理完成后,会显示在 Library 中

勾选后,点 Queue

等添加到 Live queue 后,点播放按钮

播放
打开 http://192.168.0.197:7331。如果后台没有点播放按钮,你只会在下面看到 Stream offline

而后台点了播放按钮,会看到当前播放的曲名

进后台可以看到播放的进度

点中间的播放键,就可以听到音乐了

如果没声,开关扬声器试试

参考文档
cheatsnake/airstation: 🎵 Your own online radio station
地址:https://github.com/cheatsnake/airstationAirstation: self-hosted Internet radio station : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1kjyo2d/airstation_selfhosted_internet_radio_station/
