跨平台音乐播放器Feishin

news2024/11/27 14:35:56

在这里插入图片描述

什么是 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: 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

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

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

相关文章

【mmsegmentation】Loss模块详解(入门)以调用FocalLoss为例

1、mmdet中损失函数模块简介 1.1. Loss的注册器 先来看段代码:mmseg/models/builder.py # mmseg/registry/registry.py # mangage all kinds of modules inheriting nn.Module # MODELS Registry(model, parentMMENGINE_MODELS, locations[mmseg.models])from mm…

风格迁移项目一:如何使用

前言 由于我不太会pr,所以直接新建的项目, 原项目地址:https://github.com/Optimistism/Style-transfer 原项目代码的讲解地址:https://www.bilibili.com/video/BV1yY4y1c7Cz/ 本项目是对原项目的一点点完善。 项目地址&…

C语言复习概要(一)

本文 C语言入门详解:从基础概念到分支与循环1. C语言常见概念1.1 程序的基本结构1.2 变量作用域和存储类1.3 输入输出1.4 编译与运行 2. C语言中的数据类型和变量2.1 基本数据类型2.2 变量的声明与初始化2.3 常量与枚举 3. C语言的分支结构3.1 if语句3.2 if-else语句…

Python笔记 - 函数、方法和类装饰器

前言 装饰器最早出现是Python2.4版本,为什么这个版本开始存在?这是因为最早标记类方法的做法是: def foo(self):perform method operation foo classmethod(foo)当方法体过长的时候很容易让人忽略掉最后的语句classmethod(foo)&#xff0c…

Win10之解决:设置静态IP后,为什么自动获取动态IP问题(七十八)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

域内密码喷洒 Password Spray 实验

password spray 1. 实验网络拓扑 kali: 192.168.72.128win2008: 192.168.135.129 192.168.72.139win7: 192.168.72.149win2012:(DC) 192.168.72.131 2. 简单原理 Kerberos针对同一个用户,多次的密码尝试请求有锁定保护策略。 但是我们可以切换用户,…

【Streamlit案例】制作销售数据可视化看板

目录 一、案例效果 二、数据分析 三、加载数据 四、网站前端 (一)网页标题和图标 (二)侧边栏和多选框 (三)主页面信息 ​(四)主页面图表 (五)隐藏部…

基于四种网络结构的WISDM数据集仿真及对比:Resnet、LSTM、Shufflenet及CNN

在上节中,我们已经详细介绍了WISDM数据集及如何使用CNN网络训练,得到了六个维度的模型仿真指标及五个维度的可视化分析,那么现在我们将训练模型推广到其他网路结构中去,通过仿真实验来对比一下不同网络之间对于WISDM数据集的训练效…

【docker笔记8-镜像推送】

docker笔记8-镜像推送 一、基本命令二、案例1.Java demo2.打包镜像 一、基本命令 (1)推送镜像到远程仓库 docker tag local-image:tagname new-repo:tagname docker push new-repo:tagname这里首先要登录到docker,然后需要输入登录用户名和…

构建electron项目

1. 使用electron-vite构建工具 官网链接 安装构建工具 pnpm i electron-vite -g创建electron-vite项目 pnpm create quick-start/electron安装所有依赖 pnpm i其他 pnpm -D add sass scss1. 启动项目 2. 配置 package.json "dev": "electron-vite dev --…

【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错

1. 运行项目 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Appl…

Chromium 修改UA的几种办法方法c++

第一种方式 启动浏览器添加命令行 格式 --user-agent"自定义的UA" 1、C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe --user-agent"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome…

vgg19提取特征

一般来说,大家使用VGG16,用的是第四列的网络架构,而使用VGG19,使用的就是第六列的网络架构。 使用vgg进行提取特征,在这个项目中,使用的就是每一块卷积层的第一层。 import torch.nn as nn from torchvis…

T10:数据增强

T10周:数据增强 **一、前期工作**1.设置GPU,导入库2.加载数据 **二、数据增强****三、增强方式**方法一:将其嵌入model中方法二:在Dataset数据集中进行数据增强 **四、训练模型****五、自定义增强函数****六、总结** 🍨 本文为&am…

idea使用ant源码运行tomcat8.5

1 安装ant 下载ant 下载地址 使用apache-ant-1.10.15版本 将压缩包放到/Library/Java/ant解压 设置ant环境变量 打开finder到用户根目录 按下shiftcmd.显示隐藏文件 打开隐藏文件.zprofile 按照以下格式设置环境变量 #ant export ANT_HOME/Library/Java/ant/apache-a…

数据丢失怎么办?2024四款恢复工具帮你忙!

数据是我们日常生活和工作中不可或缺的一部分,然而,由于误操作、硬件故障或其他原因导致的数据丢失却是常有的事情。这时候,一款可靠的数据恢复工具就显得尤为重要。 福昕数据恢复 直达链接:www.pdf365.cn/foxit-restore/ 假设…

Linux命令:用于显示 Linux 发行版信息的命令行工具lsb_release详解

目录 一、概述 二、用法 1、基本用法 2、选项 3、获取帮助 三、示例 1. 显示所有信息 2. 只显示发行版名称 3. 只显示发行版版本号 4. 只显示发行版代号 5. 只显示发行版描述 6. 只显示值,不显示标签 四、使用场景 1、自动化脚本 2、诊断问题 3、环…

【KVM】虚拟化技术及实战

一,KVM简介 KVM全称为QEMU-KVM。 KVM可以模拟内存,cpu的虚拟化,不能模拟其他设备虚拟化。 QEMU可以模拟I/O设备(网卡,磁盘等) 两者结合,实现真正意义上的虚拟化。 从rhel6版本开始&#xff0c…

Elasticsearch——数据聚合、数据同步与集群搭建

目录 1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket 聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric 聚合语法1.2.5.小结 1.3.RestAPI 实现聚合1.3.1.API 语法1.3.2.业务需求1.3.3.业务实现 2.自动补全2.1.拼音分词器2.2.自定义分词器2.3.自动补全查询2.4.…

YOLOv8 结合设计硬件感知神经网络设计的高效 Repvgg的ConvNet 网络结构 ,改进EfficientRep结构

一、理论部分 摘要—我们提出了一种硬件高效的卷积神经网络架构,它具有类似 repvgg 的架构。Flops 或参数是评估网络效率的传统指标,这些网络对硬件(包括计算能力和内存带宽)不敏感。因此,如何设计神经网络以有效利用硬件的计算能力和内存带宽是一个关键问题。本文提出了一…