Navidrome - 开源音乐服务器【打造属于自己的音乐播放器】「端口映射」随时随地想听就听

转载自cpolar极点云文章: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官网的注释页面:Navidrome Configuration Options | Navidrome

完成配置文件的编辑后,就可以在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官网:cpolar - 安全的内网穿透工具

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音乐站的搭建难度,,并可以自有播放已下载的音乐。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MIAOYUN获评“2023年度一云多芯稳定安全运行优秀案例”

2023年7月25日至26日,由中国信息通信研究院(简称“中国信通院”)、中国通信标准化协会主办的以“云领创新,算启新篇”为主题的“2023可信云大会”在北京成功举办。会上公布了多项前瞻领域的评估结果和2023年度最佳实践案例&#x…

浅析视频技术与AI智能感知与生鲜供应链的数字化应用

一、行业背景 近年来,我国肉类、水果、蔬菜、水产品、乳品、速冻食品等生鲜市场需求快速增长,营商环境持续改善,推动冷链物流较快发展,但仍面临不少突出瓶颈和痛点难点卡点问题,难以有效满足市场需求。传统生鲜食材供…

公司植物日常护养方法备忘录

植物为我们净化空气,美化环境,我们要按照科学的经验照顾好它们。公司植物日常通用护养方法如下: 首先剪掉已经枯黄的部分。 需要晒太阳的植物按时搬到外面晒太阳,每次晒1到2个小时。 所有植物统一在每个月的20号左右施肥一次&am…

docker logs 使用说明

docker logs 可以查看某个容器内的日志情况。 前置参数说明 c_name容器名称 / 容器ID logs 获取容器的日志 , 命令如下: docker logs [options] c_name option参数: -n 查看最近多少条记录:docker logs -n 5 c_name--tail与-n 一样 &#…

如何编写一个易于维护的考试系统源码

编写一个易于维护的考试系统源码对于开发人员来说非常重要。一个易于维护的系统可以使代码更易于理解、修改和扩展,从而提高开发效率和系统稳定性。 第一步:良好的项目结构 良好的项目结构是一个易于维护的源码的基础。可以按照模块、功能或层次等方式…

C++初阶 - 6.模板初阶

目录 1.泛型编程 2.函数模板 2.1函数模板的概念 2.2函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5模板参数的匹配原则 3.类模板 3.1类模板的定义格式 3.2类模板的实例化 1.泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left…

LeetCode 626. 换座位

题目链接:LeetCode 626. 换座位 题目描述 表名:Seat 编写SQL查询来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。 按 id 升序 返回结果表。 查询结果格式如下所示。 示例1: 题目分析 如…

java后端富文本转word,再传递到浏览器下载。

思路参考,以及所有的工具类都使用了》牧羊人大佬的代码《 有帮助的话不用给到我点赞,给大佬点赞即可 这是前端代码,必须使用get。 post后端返回的流浏览器接收不到(具体原因不详)。get无法传递requestBody,…

Json文件编辑功能

1 Json格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。…

Java-多态

目录 1.多态的概念 2.多态的实现条件。 3.重写 4.向上转型和向下转型 5.多态的优缺点 6.避免在构造方法中调用重写方法 1.多态的概念 多态字面意思就是多种形态,具体点就是完成某个行为时,不同的对象完成时产生不同的状态。 总之,同一件…

uniapp运行项目到iOS基座

2022年9月,因收到苹果公司警告,目前开发者已无法在iOS真机设备使用未签名的标准基座,所以现在要运行到 IOS ,也需要进行签名。 Windows系统,HBuilderX 3.6.20以下版本,无法像MacOSX那样对标准基座进行签名…

JavaSE【继承和多态】(2)(向上转型、向下转型、重写、动态绑定、静态绑定、多态的运用)

一、多态 1.多态的概念 多态的概念:通俗来说,就是多种形态, 具体点就是去完成某个行为,当不同的对象去完成时会产生出不同 的状 态。 简单说就是,同一件事情,发生在不同对象身上,就会产生不同…

Mac强制停止应用

有时候使用Mac的时候,某个应用卡住了,但是肯定不能因为一个应用卡住了, 就将电脑重启吧,所以只需要单独停止该应用即可,使用快捷键optioncommandesc就会出现强制停止的界面,选择所要停止的应用,…

如何解决跨域问题?

一,什么是跨域 域(Origin)是由协议、域名和端口组成的,只有这三者完全一致的情况下,浏览器才会认为两个网址同源,否则就认为存在跨域。跨域是指在Web开发中,一个网页的JavaScript代码试图访问另…

yolov8-制作数据集,数据集格式转换(yolo格式-voc格式)附完整代码

yolo训练时可使用的数据集格式为yolo格式以及voc格式, voc格式的数据集在训练时需要先转换为yolo格式,然后根据自己的数据集的位置更改yaml配置文件的文件路径即可。基于目前对Yolo系列训练模型的讲解已经很全面,所以本文主要讲解yolo数据集与…

aws中opensearch 日志通(Centralized Logging with OpenSearch)2.0(一)

aws日志通2.0 实现全面的日志管理和分析功能 一体化日志摄取 :把aws服务器日志和应用日志传输到opensearch域中无代码日志处理 :在网页控制台中就可以实现数据处理开箱即用 :提供可视化模版(nginx、HTTP server ) 架构…

如何有效保障企业内部网络安全?好的方式是什么?

据统计,70%的数据泄露安全事故来源于企业内部。所以有效保障企业内部网络安全至关重要。但不少企业还不知道如何有效保障企业内部网络安全?也不知道有哪些好的方式?这里我们小编就跟大家来一起简单探讨一下。 什么是网络安全? 网…

【沁恒蓝牙mesh】CH58x系统时钟配置与计算

本文主要记录了【沁恒蓝牙mesh】CH58x系统时钟配置与计算 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎📝 个人主页:欢迎访问我的 Ethernet_Comm 博客主页🔥🎉 支持我&am…

Redis秒杀:一人一单问题及初步解决

优惠券秒杀一人一单 前言一、需求以及之前存在的问题二、增加一人一单逻辑1.初步代码2.封装一人一单逻辑3.控制锁的粒度 三、事务控制问题四、总结 前言 跟随黑马虎哥学习redis: 这是我认为b站上最好的redis教程,各方面讲解透彻,知识点覆盖…

【网络安全带你练爬虫-100练】第16练:使用session发送请求

目录 一、目标1:使用seesion进去请求 二、网络安全O 一、目标1:使用seesion进去请求 (1)应用: 通过创建会话(session)对象来请求并爬取返回的数据包 情景:需要登录才能爬取的网…