跨平台音乐播放器Feishin

在这里插入图片描述

什么是 Feishin ?

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

软件功能:

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

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: feishinrestart: unless-stoppedports:- 9180:9180environment:- 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1553538.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

大论文记录

基础知识回顾 1.强化学习(Agent、Environment) 在 RL 中,代理通过不断与环境交互、以试错的方式进行学习,在不确定性下做出顺序决策,并在探索(新领域)和开发(使用从经验中学到的知识&#xff…

Linux 信号详解

目录 一.前置知识 1.前台进程和后台进程 a.概念理解 b.相关指令 2.信号的前置知识 a.Linux 系统下信号的概念 b.进程对信号的处理方式 3.信号的底层机制 二.详解信号 1.信号的产生 a.键盘组合键 b.kill 指令和系统调用接口 ① kill 指令 ② kill() 系统调用接口 ③ raise() 系统…

【AIGC】AI时代的数据安全:使用ChatGPT时的自查要点

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯法律法规背景中华人民共和国保守秘密法中华人民共和国网络安全法中华人民共和国个人信息保护法遵守法律法规的重要性 💯ChatGPT的数据使用特点ChatGPT数据安全…

学校在线学习作业批改教学管理平台的设计与实现SpringBoot+VUE

目录 一、项目背景及目标 二、技术选型 三、系统功能模块设计 四、关键技术实现 五、总结 在当今社会上,随着社会的发展和进步,对于现代的学生来说网络课程已经广泛应用于学校的每个角落,而一个课程教学管理平台对于现如今的课堂是不可缺…

资源《Arduino 扩展板4-单游戏摇杆》说明。

资源链接: Arduino 扩展板4-单游戏摇杆 1.文件明细: 2.文件内容说明 包含:AD工程、原理图、PCB。 3.内容展示 4.简述 该文件为PCB工程,采用AD做的。 该文件打板后配合Arduino使用,属于Arduino的扩展板。 该文件…

华为资源分享

紫光云文档中心提供弹性计算服务文档https://www.unicloud.com/document/product/ElasticComputeService/index.html报文格式华为报文格式资料Info-Finder(在线工具) 报文格式华为IP网络电子书华为IP网络相关电子书IP网络系列丛书 - 华为企业业务华为产品…

(C语言贪吃蛇)11.贪吃蛇方向移动和刷新界面一起实现面临的问题

目录 前言 实现效果 支持方向变换 修改默认效果 如何修改 总结 前言 我们上节实现了不需要按下右键就可以是贪吃蛇自发的向右移动,本节我们主要来解决贪吃蛇方向移动和刷新界面所遇到的问题。 实现效果 上图是我们希望实现的效果,我们可以自发地控…

【递归】13. leetcode 1457. 二叉树中的伪回文路径

1 题目描述 题目链接:二叉树中的伪回文路径 2 解答思路 第一步:挖掘出相同的子问题 (关系到具体函数头的设计) 第二步:只关心具体子问题做了什么 (关系到具体函数体怎么写,是一个宏观的过…

已解决:Could not find artifact xxx

已解决:Could not find artifact xxx 文章目录 写在前面问题描述报错原因分析 解决思路解决办法1. 检查依赖声明的正确性2. 检查远程仓库配置3. 检查网络连接4. 清理本地缓存并强制更新5. 手动上传依赖到私有仓库6. 检查本地仓库是否已被损坏 总结 写在前面 在使用…

生信初学者教程(二十三):REF+SVM筛选候选标记物

文章目录 介绍加载R包导入数据准备数据机器学习特征筛选数据分割基础模型Recursive Feature Elimination特征筛选调参最终分类模型测试集验证标记基因输出结果总结介绍 采用了REF(Recursive Feature Elimination) 结合 SVM(Support Vector Machine) 的方法,对差异基因(参…

遥感影像-语义分割数据集:Landsat8云数据集详细介绍及训练样本处理流程

原始数据集详情 简介:该云数据集包括RGB三通道的高分辨率图像,在全球不同区域的分辨率15米。这些图像采集自Lansat8的五种主要土地覆盖类型,即水、植被、湿地、城市、冰雪和贫瘠土地。 KeyValue卫星类型landsat8覆盖区域未知场景水、植被、…

Llama3.2开源:Meta发布1B和3B端侧模型、11B和90B多模态模型

最近这一两周不少互联网公司都已经开始秋招提前批面试了。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友…

司法质量改善:巡回法庭的准自然实验(2000-2022年)(原始数据、计算代码、最终计算结果(Excel和Dta)和参考文献)

巡回法庭的设立背景 最高人民法院自2015年起分批次设立地方巡回法庭,以期改善司法质量,促进司法公正。这种改革措施为研究提供了一个独特的机会,可以通过准自然实验的方法来评估其效果。 2000-2022年司法质量改善:巡回法庭的准自…

ML 系列: (10)— ML 中的不同类型的学习

一、说明 我们之前将机器学习方法分为三类:监督学习、无监督学习和强化学习。机器学习方法可以分为不同的类型,我们将在下面讨论最重要的类型。 二、懒惰学习与急切学习 预先学习的工作原理是使用训练数据构建模型,然后使用此模型评估测试数据…

强大的JVM监控工具

介绍 在生产环境中,经常会遇到各种各样奇葩的性能问题,所以掌握最基本的JVM命令行监控工具还是很有必要的 名称主要作用jps查看正在运行的Java进程jstack打印线程快照jmap导出堆内存映像文件jstat查看jvm统计信息jinfo实时查看和修改jvm配置参数jhat用…

水域救援方案

水域救援是一项在复杂水域环境中进行的紧急救援行动,旨在保障人民生命财产安全、维护社会稳定,并促进相关产业的发展。以下是对水域救援的全面介绍: 一、定义与重要性 水域救援是指在人员在水域中生命受到严重威胁或重要场所、建筑物受到水…

前缀和(8)_矩阵区域和

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 前缀和(8)_矩阵区域和 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 温馨提示:…

MybatisPlus代码生成器的使用

在使用MybatisPlus以后,基础的Mapper、Service、PO代码相对固定,重复编写也比较麻烦。因此MybatisPlus官方提供了代码生成器根据数据库表结构生成PO、Mapper、Service等相关代码。只不过代码生成器同样要编码使用,也很麻烦。 这里推荐大家使…

华为Nova9开启开发人员选项

默认状态下,华为Nova9的开发人员选项是隐藏的,如下图: 要开启开发人员选项,在“设置→关于手机”中找到“HarmonyOS版本”或者“软件版本”,在版本号上连续点击,每次点击“HarmonyOS版本”和“软件版本”会…

Yocto - 使用Yocto开发嵌入式Linux系统_05 认识Bitbake工具

Meeting the BitBake Tool 通过本章,我们将开始学习 Yocto 项目引擎如何在幕后工作的旅程。正如每一段旅程一样,沟通是至关重要的,因此我们需要理解 Yocto 项目工具所使用的语言,并学习如何充分利用这些工具来实现我们的目标。 Wi…