跨平台音乐播放器Feishin

杨浦老苏 各种折腾 2024年10月03日 19:00

什么是 Feishin ?

Feishin 是一款现代的自托管音乐播放器,支持多种音乐来源和功能。它是由Sonixd 的重构版本发展而来,能够与 NavidromeJellyfin API 音乐服务器兼容,目前还不支持 Subsonic APIFeishin 具有现代化的用户界面,支持 MPVWeb 播放器后端,并且提供智能播放列表编辑和歌词同步等功能。此外,Feishin 支持跨平台使用,包括桌面客户端、Web 版本和 Docker部署方式,适用于本地音乐库和在线流媒体。

软件功能:

  • [x] MPV播放器后端
  • [x] 网络播放器后端
  • [x] 现代用户界面
  • [x] 将播放记录发送到您的服务器
  • [x] 智能播放列表编辑器(Navidrome
  • [x] 支持同步和非同步歌词
图片

Feishin 是一个跨平台的音乐播放器,除了支持支持 Docker 部署外,还支持 LinuxMacOSWindows 平台

图片

准备

Feishin 只是个音乐播放器,需要配合 NavidromeJellyfin 音乐服务器使用。官方的示例是针对 Jellyfin 的,所以老苏研究了一下 Navidrome 的设置

首先当然是需要先安装 Navidrome

文章传送门:音乐流媒体服务器Navidrome

如果你之前没安装过,可能用 docker cli 更快捷

# 新建文件夹 navidrome 和 子目录
mkdir -p /volume1/docker/navidrome/{data,music}

# 进入 navidrome 目录
cd /volume1/docker/navidrome

# 修改目录权限
chmod a+w data

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name navidrome \
   --user 1000:1000 \
   -p 4533:4533 \
   -v $(pwd)/data:/data \
   -v $(pwd)/music:/music:ro \
   -e ND_ENABLETRANSCODINGCONFIG=true \
   -e ND_SESSIONTIMEOUT=72h \
   deluan/navidrome
可变
ND_SESSIONTIMEOUTNavidrome 将等待多长时间后关闭网页用户界面的空闲会话
ND_ENABLETRANSCODINGCONFIG在用户界面中启用转码配置

更多的Navidrome 的环境变量设置,请参考官方文档: https://www.navidrome.org/docs/usage/configuration-options/

music 目录中正好了留了之前的一张无损的专辑

图片

安装

在群晖上以 Docker 方式安装。

官方的镜像没有发布在 docker hub,而是在 ghcr.io,所以直接用命令行来安装。

SSH 客户端中依次执行下面的命令

# 下载镜像
docker pull ghcr.io/jeffvli/feishin:latest

本文写作时, latest 版本对应为  0.10.1

图片

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 运行容器
docker run -d \
  --name feishin \
  --restart unless-stopped \
  -p 9180:9180 \
  -e SERVER_NAME=navidrome \
  -e SERVER_LOCK=true \
  -e SERVER_TYPE=navidrome \
  -e SERVER_URL='http://192.168.0.197:4533' \
  -e PUID=1000 \
  -e PGID=1000 \
  -e UMASK=002 \
  -e TZ=Asia/Shanghai \
  ghcr.io/jeffvli/feishin:latest
可变
SERVER_NAME定义服务器的名称
SERVER_LOCK当设置为 true 且已设置名称/类型/URL 时,仅可以切换用户名/密码
SERVER_TYPE支持 jellyfinnavidrome
SERVER_URLjellyfinnavidrome服务器的完整 URL,包括协议和端口
PUIDUserID,默认设为 1000
PGIDGroupID,默认设为 1000
UMASKumask=002 意味着新创建的文件和目录默认会关闭写权限,但不会关闭执行权限(对于目录)
TZ时区设置

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  feishin:
    image: 'ghcr.io/jeffvli/feishin:latest'
    container_name: feishin
    restart: unless-stopped
    ports:
      - 9180:9180
    environment:
      - SERVER_NAME=navidrome
      - SERVER_LOCK=true
      - SERVER_TYPE=navidrome
      - SERVER_URL=http://192.168.0.197:4533
      - PUID=1000
      - PGID=1000
      - UMASK=002
      - TZ=Asia/Shanghai

然后执行下面的命令

# 新建文件夹 feishin
mkdir -p /volume1/docker/feishin

# 进入 feishin 目录
cd /volume1/docker/feishin

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:9180 就能看到主界面

图片

Open menu --> Manage servers

图片

Add Server

图片

因为环境变量已经设置了类型和地址,所以这里只要填 UsernamePassword 即可

图片

Add 添加

为了获得最佳体验,在创建服务器时请选择“保存密码”,并在 Navidrome 环境变量中将 SessionTimeout 设置为更大的值(例如 72 小时)。

图片

Go back 会进入主界面

图片

选中专辑进行播放

图片

Navidrome 的客户端中,会看到 Feishin 的使用记录

图片

参考文档

jeffvli/feishin: A modern self-hosted music player.
地址:https://github.com/jeffvli/feishin/

Feishin
地址:https://feishin.vercel.app

@所有人:写文不易,如果你都看到了这里,请点个在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

群晖 · 目录
上一篇Markdown笔记管理工具Haptic下一篇高级图片编辑器Photopea

微信扫一扫
关注该公众号