自建音乐服Navidrome-从Docker搭建、音乐刮削到音流享受

最后更新于 2024-11-15 701 次阅读


写在前面

日常中,我们喜欢听的歌曲也就几十斤几百首,自建音乐服就可以满足日常需求。本教程将从Navidrome搭架、音乐采集、音乐刮削,以及音流导入、搭建歌词api顺序阐述。
本文所有docker配置均仅允许本地访问,即均需使用nginx反代访问。
新手和省事党建议配合宝塔搭建,老手和折腾党随意。

Docker搭建Navidrome音乐服

创建docker compose配置文件

mkdir -p /data/music/compose
cd /data/music/compose
vim docker-compose.yml

写入以下内容,部分内容需要自行更改

version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - "127.0.0.1:4533:4533"
    environment:
      # Optional: put your config options customization here. Examples(这些都是可选的):
      ND_SCANSCHEDULE: 1m
      ND_LASTFM_LANGUAGE: zh
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
      ND_ENABLETRANSCODINGCONFIG: "true"
      ND_TRANSCODINGCACHESIZE: "4000M"
      ND_IMAGECACHESIZE: "1000M"
    volumes:
      - "./data:/data"
      - "/data/music:/music:ro"  # 冒号左边修改成自己本地的音乐文件夹路径
  miniserve:
    image: svenstaro/miniserve:latest
    depends_on:
      - navidrome
    ports:
      - "4534:8080"
    volumes:
      - "/data/music:/downloads"  # 冒号左边修改成自己本地的音乐文件夹路径
    command: "-r -z -u -q -p 8080 -a Chitanda:Oreki /downloads"  # Chitanda:Oreki 修改成自己的账号:密码
    restart: unless-stopped

其中lashfm和Spotify为外部api,可调用专辑和歌手信息,可选择是否启用,如不启用请删除(该两项服务均不面向中国大陆服务,大陆服务器部署建议删除有关参数)

Lashfm api创建

访问Lashfm api官网创建api。
获取API Key 和 Shared Secret ID,填入docker compose配置文件

Spotify api创建

访问spotify官网创建api。
获取Client ID 和 Client Secret,填入docker compose配置文件。

纯文字api创建教程看不懂可以访问Navidrome官网阅读官方写的图文教程,为缩短篇幅,本处不在详细介绍api创建。

启动Navidrome音乐服

docker-compose up -d

反代Navidrome音乐服

#PROXY-START/

location ^~ /
{
    proxy_pass http://127.0.0.1:4533;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;
    #Set Nginx Cache

    set $static_filemTH5IpAC 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
        set $static_filemTH5IpAC 1;
        expires 1m;
    }
    if ( $static_filemTH5IpAC = 0 )
    {
        add_header Cache-Control no-cache;
    }
}
#PROXY-END/

配置Navidrome音乐服

登录并进入后台

捕获.JPG

设置中文

捕获.JPG

开启Lashfm

捕获.JPG

搜集并上传音乐

搜集途径提示:某酷音乐破解版、F12抓去、APP抓包、公开分享网站下载。
推荐一个下载网站:my free mp3,在此感谢该站站长的无私奉献。
下载后,上传至/data/music文件夹下,如果你修改了前面docker的路径,这里上传至你设定的路径。 上传后,等待几秒,Navidrome会自动加载,此时字幕、封面均没有,这时就要对音乐刮削了。

刮削音乐

本步骤使用Music Tag Web进行刮削。

部署Music Tag Web

mkdir -p /data/music_config
docker run -d -p 127.0.0.1:8002:8002 -v /data/music:/app/media -v /data/music_config:/app/data --restart=always xhongc/music_tag_web:latest

docker拉取后,自行反代访问。

编辑音乐

手动刮削

点击左侧音乐列表,选中目标音乐,手动输入、上传元数据。
捕获.JPG

自动刮削

多选歌曲,点击自动刮削。
image_2024-11-14_12-36-38.png

至此,Navidrome音乐服的搭建和音乐上传、刮削均已完成。
**从Navidrome界面来看确实不算美观,并且不适合手机使用,综上本文推荐友友使用音流这款app搭配Navidrome音乐服。

导入Navidrome到音流

音流专注于音乐. 支持常见的音乐服务,让您可以通过一个客户端访问多种音乐服务。 跨平台支持. 可在Android、iOS、macOS 和Windows 上使用,并提供与平台一致的体验。
image

下载并安装音流

访问官网安装音流。

导入Navidrome数据

选择Navidrome
photo_2024-11-14_12-53-45 (2).jpg
输入地址及账号密码
photo_2024-11-14_12-53-45.jpg

至此导入完毕,如未进行音乐刮削-挂在歌词、专辑封面,播放音乐后是没有歌词和封面显示的,这是就需要使用LrcApi

搭建并使用LrcApi

Docker部署

docker run -d \
    -p 127.0.0.1:28883:28883 \
    -v /home/user/music:/music \
    hisatri/lrcapi:1.5.2

部署后,自行反代。

导入LrcApi至音流APP

点击自定义API,输入地址、密钥
photo_2024-11-14_13-06-23.jpg

至此,音乐服搭建及使用已经正式完结,Enjoy your music server。

此作者没有提供个人介绍
最后更新于 2024-11-15