再一次,实现听歌自由
20年前,中国网民听歌是自由的,准确点说是听盗版歌的自由。
2002年11月,百度上线MP3搜索功能,几乎能搜索和下载到所有的歌曲。按相关的版权法规,百度未经授权使用他人资源牟利是违法的。当时互联网产业违法采集数据、传播盗版是家常便饭,版权管理形同虚设,百度顺势而为分了一块大蛋糕。盗版音乐砸了音乐人的饭碗,就如同盗版软件摧残软件从业者。最近十多年,政府对音像作品版权的管理日趋严格,这是一件利国利民的好事,一个行业兴盛的起点首先是从业者得到应有的报酬。
百度MP3搜索
今天,付费听音乐已经成为网民的共识。我常常使用网易云听音乐,这是一个好软件,只是没有周杰伦的歌,网易云官方解释是没有拿到周杰伦歌曲的版权。QQ音乐倒是有周杰伦歌曲,但是偶尔也会因版权问题下架其他歌手作品。同样,酷狗音乐、咪咕音乐也不能提供所有的歌曲。问题来了,如何在一个音乐APP上听到所有的我喜欢的歌,实现听歌自由呢?自建音乐服务器是唯一的路。
Navidrome 是一款开源音乐服务器,用于自建云端音乐播放器,兼容手机、桌面等多种客户端。Navidrome 资源占用率非常低,支持中文界面,可以播放任何音频格式,实在是码农+音乐爱好者的折腾利器。Navidrome 提供了 Demo 地址 demo.navidrome.org/app/ , 账号密码都是 demo。
首先准备可以远程访问的服务器,最好有独立的公网IP,硬件配置至少1核1G,预装CentOS或者Debian系统。有一个独立的域名更好,比如 music.test.com ,否则就要用 IP+端口号访问音乐服务器。
1 安装docker-compose
推荐使用 docker 安装 Navidrome ,首先安装 docker-compose :
shell
复制代码
# 安装yum工具 yum install -y yum-utils # 设置源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装docker yum install -y docker-ce # 启动doker服务 systemctl start docker # 安装docker-compose yum install docker-compose
2 安装Navidrome
编辑docker-compose.yml,内容如下:
yaml
复制代码
version: "3" services: navidrome: image: deluan/navidrome:latest user: 0:0 ports: - "8080:8080" #自定义端口 restart: unless-stopped environment: ND_SCANSCHEDULE: 1h ND_LOGLEVEL: info ND_SESSIONTIMEOUT: 24h ND_BASEURL: "" volumes: - "/usr/local/music.test.com/data:/data" - "/usr/local/music.test.com/music:/music:ro"
volumes 参数指定数据 data 和音乐文件 music 的映射路径,/usr/local/music.test.com/ 即为真实的文件路径。
shell
复制代码
# -f 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定,指定多个yml docker-compose -f docker-compose.yml up -d
执行以上启动命令后 Navidrome 将会安装成功,内网访问路径是 http://localhost:8080 。
3 配置外网访问
配置 Nginx 将 music.test.com 域名映射给内网地址,再配置域名解析,将 music.test.com 解析为真实IP。
nginx
复制代码
server { listen 80; server_name music.test.com; access_log /var/log/nginx/music.test.com combined; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; } }
完成以上三步后,在路径 /usr/local/music.test.com/music 上传一些音乐文件,然后通过地址 music.test.com/app 就能访问到音乐服务器界面,按系统提示添加管理员账号和密码,最后呈现的效果如下图所示:
Navidrome管理界面
Navidrome 会自动扫描 music 目录下的音乐文件元信息,形成一个歌曲管理清单。如果在清单里面看不到最新上传的歌曲,可以点击右上角的心跳图标,再点击“完全扫描”按钮,扫描所有文件。
4 配置手机客户端
日常听歌时,可以通过 Navidrome 管理后台直接播放音乐,也可以安装手机客户端:
- IOS: playSub、Substreamer、Amperfy、iSub
- Android: DSub、Subtracks、Substreamer、Ultrasonic 、Audinaut
推荐使用 Substreamer,这个APP更加符合国人的使用习惯,主页地址: substreamerapp.com/ 。IOS客户端下载地址: apps.apple.com/us/app/subs… ;Android客户端下载地址: m.289.com/azrj/477219… 。Substreamer 首次启动后根据界面提示填写服务器地址 music.test.com ,以及第三步配置的账号和密码。Substreamer 启动之后自动获取音乐数据,如下所示:
Substreamer客户端
5 修改歌曲元信息
无论歌手发布过多少歌曲,一般只有几首歌会被放在歌单反复听,像周杰伦这种高产者几乎是凤毛麟角。好听的歌曲往往分布在不同的专辑中,Substreamer 默认按专辑分组展示音乐列表,界面上专辑列表很长,但是进入专辑里面仅有一两首歌,用户听起来非常不方便。可以用软件 Mp3tag 修改歌曲元信息,将歌曲改成同一个专辑名称,这样就将它们聚合在一起。Mp3tag的下载地址 www.mp3tag.de/en/dodownlo… 。
Mp3tag
根据我国法律规定,未经著作权人许可,将其享有著作权的内容复制传播,原则上触犯著作权法。请购买正版歌曲再上传至 Navidrome 实现你的听歌自由,切勿使用磁力搜索器获取盗版音乐。