如何自建个人音乐播放器Navidrome

news2024/10/5 15:05:52

文章目录

  • 1. 前言
  • 2. Navidrome网站搭建
    • 2.1 Navidrome下载和安装
      • 2.1.1 安装并添加ffmpeg
      • 2.1.2下载并配置Navidrome
      • 2.1.3 添加Navidrome到系统服务
    • 2.2. Navidrome网页测试
  • 3. 本地网页发布
  • 3.1 cpolar的安装和注册
    • 3.2 Cpolar云端设置
    • 3.3 Cpolar本地设置
  • 4. 公网访问测试
  • 5. 结语

转载自远程内网穿透的文章:Navidrome - 开源音乐服务器【打造属于自己的音乐播放器】「端口映射」随时随地想听就听

1. 前言

不知从何时开始,我们能用的音乐软件越来越少,笔者使用小米手机很久了,自从小米手机的自带音乐播放器变成了QQ音乐,笔者手机里很多的音乐就无法再自由畅听,要求付费加会员听歌,不然就得忍受被剪切的试听版。最重要的,是不让播放自行下载的音乐!!!这就很让人头疼。为了逃避这种情况,笔者打算使用Cpolar内网穿透+ Navidrome方案,自建一个私人音乐服务器,以便能再次自由享受音乐。

2. Navidrome网站搭建

Navidrome是一个开源的音乐服务器,也可以轻松的作为web界面的独立音乐服务器使用,也就意味着我们可以在手机、平板或者其他电脑上访问。只要安装在本地电脑中,并搭配内网穿透软件cpolar,就能让我们在任何地方都能访问到家里电脑上的Navidrome网页,并享受音乐带来的放松。

需要注意的是,由于Navidrome并不依赖网页运行环境,因此其安装过程并不是通常所见的网站安装流程。

2.1 Navidrome下载和安装

2.1.1 安装并添加ffmpeg

首先,我们需要下载并安装ffmpeg,毕竟Navidrome是基于其运行的,因此需要安装一个ffmpeg(很多音乐视频软件都依托其运行)。只要访问ffmpeg官网(ffmpeg.org),就能找到下载。

20230413092401

20230413092402

20230413092403

接着,将ffmpeg加入path环境变量。要记得在环境变量中带上bin文件夹,这样我们就能在任意cmd窗口中调用ffmpeg.exe。

20230413092404

20230413092405

20230413092406

2.1.2下载并配置Navidrome

接着,我们访问Navidrome的官网(www.navidrome.org),点击官网的下载按钮,进入安装指导页面。在这个页面,我们可以看到不同系统中安装Navidrome的指导。很多开源软件都会放在github(Navidrome也不例外),因此其下载页面会转到github。

20230413092407

20230413092408

笔者使用的是windows系统,因此选择Windows版本下载。

20230413092409

20230413092410

完成Navidrome的下载后,将其解压到打算安装的位置,笔者这里将其放在D盘的program file64文件夹下方便管理。根据Navidrome的安装指导,我们还需要修改Navidrome的配置文件,让Navidrome知道应该去哪个文件夹里寻找音乐文件。

20230413092411

Navidrome的配置文件为navidrome.toml,通常放在navidrome.exe同一文件夹下。如果没有这个文件,可以新建一个(新建文本文件,并将后缀名改为.toml),并将如下命令行添加到这个文件中。

# This is just an example! Please see available options to customize Navidrome for your needs at
# https://www.navidrome.org/docs/usage/configuration-options/#available-options

LogLevel = 'DEBUG'
ScanSchedule = '@every 24h'
TranscodingCacheSize = '150MiB'

# IMPORTANT: Use single quotes for paths in Windows
MusicFolder = 'D:\Music'

# Set this to the path of your ffmpeg executable
FFmpegPath = ' D:\Program Files\ffmpegfull\ffmpegfull\bin\ffmpeg.exe'

在这些命令行中,有一些参数是根据实际情况进行修改的,包括MusicFolder = 'D:\Music'FFmpegPath = ' D:\Program Files\ffmpegfull\ffmpegfull\bin\ffmpeg.exe'

20230413092412

20230413092413

更详细的配置参数注释,可以参阅navidrome官网的注释页面:https://www.navidrome.org/docs/usage/configuration-options/

完成配置文件的编辑后,就可以在cmd窗口下,运行navidrome.exe文件(双击这个.exe文件不管用,必须在命令行窗口下运行),正式安装Navidrome。

20230413092414

安装过程中,可能会出现网络安全询问,我们只要选择允许访问即可。

20230413092415

命令行程序运行完成后,不要关闭cmd窗口,我们尝试访问navidrome网页,试试看是否安装成功。在浏览器地址栏中输入localhost:4533(4533为navidrome的默认输出端口)。只要显示出navidrome登录界面,就说明我们的设置成功。登录界面可以直接设置登录名和密码,要记得自己输入的用户信息,不然可能导致之后无法登录。

20230413092416

20230413092417

需要注意的是,这时我们的navidrome还没有加入Windows系统服务中,只要关闭了cmd窗口,就无法访问navidrome页面。因此下一步,我们要将navidrome加入Windows服务中。

2.1.3 添加Navidrome到系统服务

为了随时能访问navidrome网页,而不必时时刻刻开着cmd窗口,我们需要将navidrome加入Windows的系统服务中。根据navidrome官网的建议,可以使用Shawl、NSSM和WinSW将navidrome加入启动目录。这里笔者根据官网指引使用NSSM进行设置。

20230413092418

20230413092419

下载好NSSM压缩包后,解压并在win64文件夹中找到.exe安装文件,笔者使用的是64位版本Windows,因此选择win64安装包。

20230413092420

由于NSSM是绿色程序,不必进行安装,因此直接在cmd中运行即可。即在win64文件夹的搜索栏中输入cmd,在此路径下打开cmd程序,接着输入,命令

nssm install

就能打开nssm的图形化界面。

20230413092421

20230413092422

在nssm的图形化界面中,找到Path栏位,将navidrome.exe输入其中(通过Path栏位后的“…”按钮选择路径),并在下方的service name输入名称进行分辨。再点击install service确定添加服务。

20230413092423

最后,我们打开服务页面(可以在搜索栏中直接输入“服务”,并在搜索结果中打开),启动在Nssm中设置好的服务项目(这个例子中,是笔者设置的navid服务项)。

20230413092424

20230413092425

2.2. Navidrome网页测试

在Windows服务中添加Navidrome后,就能不启动cmd窗口,也能打开Navidrome网页。同样的,为了测试Navidrome是否能正常运行,我们在浏览器地址栏中输入localhost:4533,尝试打开Navidrome的主页面。只要能正常显示,就说明我们已经成功的在本地电脑上安装好了Navidrome音乐网站。

20230413092426

20230413092427

3. 本地网页发布

经过以上步骤,我们成功安装了Navidrome音乐网站服务器,接下来我们就可以使用cpolar内网穿透,创建连接本地Navidrome页面的公共互联网地址,让我们能在公共互联网上访问到局域网电脑上的Navidrome网页。

cpolar官网:https://www.cpolar.com/

3.1 cpolar的安装和注册

完成Navidrome音乐网站在本地电脑上的安装后,就可以转入cpolar的安装。相比Navidrome音乐网站,cpolar的安装要简单很多。我们直接访问cpolar的官网页面,并找到下载按钮。

20230413092428

笔者使用的是Windows操作系统,因此选择Windows版本进行下载。

20230413092429

Cpolar下载完成后,将下载的文件解压,双击解压后的.msi文件执行自动安装程序,一路“Next”就能完成安装。

20230413092430

20230413092431

cpolar会为为每个独立用户创建专属的数据隧道,并以用户密码和token码保证每位用户的数据安全。因此在使用cpolar之前,需要进行用户注册

新注册的程序非常简单,只要在cpolar主页右上角点击“用户注册”,在注册页面填入必要信息,就能完成注册。

20230413092432

20230413092433

3.2 Cpolar云端设置

由于cpolar内网穿透免费版的数据隧道每24小时重置一次。笔者不想每天进行Navidrome音乐网页的连接设置,因此笔者将cpolar升级至vip版,获得能长期稳定存在的内网穿透数据隧道。

要创建能够长期稳定存在的内网穿透隧道,需要分为两步走。首先登录cpolar的官网,并在用户主页面左侧找到预留按钮,并点击进入cpolar的数据隧道预留页面。在这里为本地Navidrome网页生成一个公共互联网地址(也可以看做数据隧道的入口),此时这个地址没有连接本地的软件输出端口,因此也可以看做是空白数据隧道。

20230413092434

在预留页面,可以看到很多种可保留的数据隧道,因为Navidrome是web音乐服务器,因此我们选择保留二级子域名栏位。

20230413092435

在“保留二级子域名”栏位,必须进行几项信息的简单设置,创建独一无二的公共互联网地址,这些需要设置的信息为:

  • 地区:服务器所在区域,就近选择即可;
  • 二级域名:会最终出现在生成的公共互联网地址中,作为网络地址的标识之一;
  • 描述:可以看做该数据隧道的描述,只要能与其他隧道区分开即可。

完成这几项设置后,就可以点击右侧的保留按钮,将这条数据隧道保留下来。

20230413092436

当然,如果这条数据隧道不打算再使用,还可以点击右侧的“x”将其轻松删除,节约宝贵的隧道名额。

20230413092437

3.3 Cpolar本地设置

在cpolar云端设置并保留空白隧道后,我们回到本地的cpolar客户端,将云端生成的空白数据隧道与本地的测试页面连接起来。

在本地打开并登录cpolar客户端(可以在浏览器中输入localhost:9200直接访问,也可以在开始菜单中点击cpolar客户端的快捷方式)。

20230413092438

点击客户端主界面左侧隧道管理项下的创建隧道按钮,进入本地隧道创建页面(如果要创建没24小时重置地址的临时数据隧道,可直接在此进行设置,不必再cpolar官网设置空白数据隧道)。

在这个页面,同样需要进行几项信息设置,这些信息设置包括:

  • 1. 隧道名称 :可以看做cpolar本地的隧道信息注释,只要方便分辨即可;
  • 2. 协议 :由于Navidrome音乐服务是网页形式,因此选择http协议;
  • 3. 本地地址 :本地地址即为本地网站的输出端口号,而Navidrome默认输出端口为4533,因此这里也填入4533;
  • 4. 域名类型 :由于笔者已经在cpolar云端预留了二级子域名的数据隧道,因此勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名)
  • 5. Sub Domain:填入预留的二级子域名,该例子中为“Navidromeweb”(注:如果创建的是临时数据隧道,则直接勾选“随机域名”,由cpolar客户端自行生成网络地址);
  • 6. 地区 :与cpolar云端预留的信息一样,我们依照实际使用地填写即可;

20230413092439

完成这些设置后,就可以点击页面下方的创建按钮,就能将cpolar云端的空白数据隧道与本地的Navidrome音乐站连接起来,也就为我们提供了可以在公共互联网访问本地Navidrome音乐站的数据隧道,cpolar也会自动跳转至“隧道管理”项下的“隧道列表”页面。

20230413092440

在“隧道管理”项下的“隧道列表”页面,可以对这条数据隧道进行管理,包括开启、关闭或删除这条隧道,也可以点击“编辑”按钮,最这条数据隧道的信息进行修改。

4. 公网访问测试

我们可以点击左侧状态项下的在线隧道列表按钮,找到这个页面的公共互联网地址,将这个地址粘贴到浏览器中,就能看到本地Navidrome音乐站页面,建立属于自己的私人音乐站。

20230413092441

20230413092442

5. 结语

到这里,我们就完成了使用Cpolar+Navidrome,搭建私人音乐站的工作,虽然看着步骤很多很杂,但那主要是为大家详细展示每个步骤,实际操作起来只要十多分钟即可。不知大家发现没有,Navidrome音乐服务器搭建过程中,并没有涉及对apache、MySQL这些常见的网页运行环境的配置,而是全程安装Navidrome本身,这无疑大大降低了Navidrome音乐站的搭建难度,,并可以自有播放已下载的音乐。

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

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

相关文章

【总结】Nupmy1

Nupmy numpy的核心是名为ndarray的数据类型,它代表多维数组,封装了操作数据的运算和方法 1. 创建数组对象 1.1 方法1:array 通过array将list转换成数据对象 # 通过array将list转换成数据对象 array1np.array([1,2,3,4,5]) array1 # array([1, 2, 3,…

Nginx + fastCGI 实现动态网页部署

简介 本文章主要介绍下,如何通过Nginx fastCGI来部署动态网页。 CGI介绍 在介绍fastCGI之前先介绍下CGI是什么。CGI : Common Gateway Interface,公共网关接口。在物理层面上是一段程序,运行在服务器上,提供同客户端HTML页面的…

测试理论----Bug的严重程度(Severity)和优先级(Priority)的分类

【原文链接】测试理论----Bug的严重程度(Severity)和优先级(Priority)的分类 一、Bug的严重程度(Severity) Bug的Severity(严重程度)指的是一个Bug对软件系统功能影响的程度&#…

Java常用工具之Collections

目录 一、排序操作二、查找操作三、同步控制三、不可变集合四、其他五、CollectionUtils:Spring 和 Apache 都有提供的集合工具类六 、小结 Collections 是 JDK 提供的一个工具类,位于 java.util 包下,提供了一系列的静态方法,方便…

2023河海大学846软件工程学硕考研高分上岸经验分享

大家好,我是陪你考研每一天的大巴学长。 大巴学长为大家邀请到了2023年846软件工程学硕刚刚上岸的学长,为大家分享一下他的考研经验,经验里详细介绍了各科的复习方法,很有参考意义。 希望对大家有所借鉴和帮助,在此向…

栈实现队列(继续细起来啊)

生命不是要等待风暴过去,而是要学会在风暴中跳舞。 ——卡莉尔吉布朗目录 🍁一.栈实现队列 🍀二.使用两个栈实现队列的功能 🌼1.在队列的结构体中创建两个栈 🚁2.创建一个队列的结构体指针 🌉3…

云计算中的大数据处理:尝试HDFS和MapReduce的应用

云计算中的大数据处理:尝试HDFS和MapReduce的应用 文章目录 云计算中的大数据处理:尝试HDFS和MapReduce的应用一、前言二、第一题1、命令方式2、java API方式 三、第二题1、创建CSV文件并将其上传到HDFS2、编写利用MapReduce框架的java代码3、打包java项…

【设计模式与范式:创建型】41 | 单例模式(上):为什么说支持懒加载的双重检测不比饿汉式更优?

从今天开始,我们正式进入到设计模式的学习。我们知道,经典的设计模式有 23 种。其中,常用的并不是很多。据我的工作经验来看,常用的可能都不到一半。如果随便抓一个程序员,让他说一说最熟悉的 3 种设计模式&#xff0c…

Kelvin和Rossby波 Part-2(浅水方程)

在前面博主有篇关于Kelvin和Rossby波的简要介绍,见下: Kelvin和Rossby波 Part-1(简要介绍) 开尔文波(Kelvin Wave)是发生在大气或海洋中的,迎向地形边界(例如海岸线)平衡…

回顾2023年计算机专业学生卑微求职 / 申博血泪史

0.前言 2023年是悲惨的一年,各个行业都在卷中卷。同时对于个人来说,2023年也是最忙碌的一年,不仅面临毕业,而且面临工作/读博,随便挑出一件,都是一件耗时耗力的事。相信大家也从网络上看到了很多的帖子或者…

文心一言 VS 讯飞星火 VS chatgpt (19)-- go语言的slice和rust语言的Vec的扩容流程是什么?

go语言的slice和rust语言的Vec的扩容流程是什么? 文心一言: 在Go语言中,slice(切片)和Rust语言中的Vec都是用于存储一组固定长度的元素的数据结构。它们的扩容流程略有不同,下面是它们的基本概述&#xf…

HNU数据结构与算法分析-作业3-树结构

1. (简答题) 5.1 定义满二叉树的每一个结点或者是一个分支结点,并恰好有两个非空子结点;或者是叶结点。 证明在有n个分支结点的所有二叉树中,满二叉树的叶结点的数目(或者叶结点与全部结点数的比例)是最高的。 5.6 …

Linux下安装配置maven

1.安装以及配置maven 1.1.下载maven安装包 首先需要切换到自己需要安装的目录 把配置都放到了:/root路径下 1.2.解压下载好的maven包 tar -zxvf apache-maven-3.6.0-bin.tar.gzcp -r apache-maven-3.6.0 /usr/local/1.3.配置maven环境变量 1.3.1.在环境变量中…

微信小程序nodejs+vue校园二手商城交易(积分兑换)38gw6

随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,校园二手交易被用户普遍使用,为方便用户能够可以随时…

chatgpt赋能Python-python3_8怎么设置字体大小

Python3.8如何设置文本字体大小 Python是一种高级编程语言,它在全球开发者中间得到了广泛的应用。随着Python的不断发展,Python 3.8版本也应运而生。在这个新版本中,有许多新的功能,其中一个是设置文本字体大小。本文将展示如何在…

redis高级篇三(分片集群)

一)进行测试Sentinel池: 集群的定义:所谓的集群,就是通过增加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态 之前的哨兵模式是存在着一些问题的,因为如果主节点挂了,那么sentinel集群会选举新的s…

一些题目__

好耶,第一次div2做出来3道题,虽然中间看了个题解,但是思路差不多,被复杂度困住了,nnd 首先是第一个题,emm 第一题 那么这个题的要求是,构造一个数组,满足这些条件: 注意…

Java学习路线(6)——方法

概念: 方法是一种语法结构,可以将一段代码封装成一个功能,方便复用。 特点: 提高代码复用性提高逻辑清晰性 一、基本方法定义和调用 1、有反有参方法 修饰符 返回类型 方法名( 形参列表 ){ 方法体代码; return 返回值; } public…

printf串口重定向标准方法

一,简介 在程序调试的过程中,需要用到串口打印信息来判断单片机程序运行是否正确。需要使用串口对printf进行重定向,本文就介绍一下ARM官方推荐的一种重定向的方法,供参考使用。 二,具体步骤 主要分为两步&#xff…