音乐管理策略
自从上班的地方不给用苹果之后,我就慢慢地将使用环境从苹果中迁移出来, 这篇博客说的是将音乐库从 Apple Music 迁移到 navidrome 中的一些实践。
需求
- 智能歌单功能
- 可以缓存音乐的客户端
- 可直接扫描音乐文件夹
综上,选择目前能满足我需求而且开发较活跃的 navidrome 。
navidrome
安装方面,用 docker compose 启动镜像,配置好之后可以开机启动,只要设置好 docker desktop 的开机启动即可。
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: 1000:1000
ports:
- "4533:4533"
restart: unless-stopped # 自动重启
environment:
PUID: 1000
PGID: 1000
TZ: Asia/Shanghai
ND_TRANSCODINGENABLED: true
volumes:
- "/home/ruan/navidrome/config:/data" # 映射配置文件
- "/mnt/g/Music:/music:ro" # 映射音乐库
遇到的问题
alac 无损格式无法播放
之前通过 apple music 无损格式管理音乐库,所以音乐格式是通过m4a容器存储的。 但是 navidrome 的 web 页面和一部分客户端没办法直接播放m4a播放,这一点让我比较烦恼。
经过询问gpt发现能利用ffmpeg直接将m4a格式转换成flac格式,并且能保留全部标签。
# 把music.m4a转换成music.flac
ffmpeg -i "music.m4a" -c:a flac -compression_level 8 -map 0 -map_metadata 0 "music.flac"
# 把当前文件夹下的m4a音频转换成flac
for i in *m4a; do ffmpeg -i "$i" -c:a flac -compression_level 8 -map 0 -map_metadata 0 "${i%m4a}flac" && rm "$i"; done
# 把当前文件夹下所有子文件夹里的m4a音频转换成flac
for f in *; do `cd "$f"; for i in *m4a; do ffmpeg -i "$i" -c:a flac -compression_level 8 -map 0 -map_metadata 0 "${i%m4a}flac" && rm "$i"; done`; done
智能歌单创建
navidrome官方只支持编辑配置文件的智能歌单,没有图形界面的操作方式。我觉得这样太麻烦, 所以直接使用Feishin这个带有图形界面功能的桌面客户端创建。
思考
以前总觉得互联网是开放自由的,但是国内互联网的发展却越来越封闭,各大厂商抢到用户之后马上开始封闭,就像是在圈养可以产羊毛的绵羊一样。 里面的内容搜索引擎都搜不到,逼迫用户注册、看广告、充钱。另外,国内的互联网信息丢失非常严重,以前逛的论坛、资源网站逐渐消失, 这一点从寻找失传媒体越来越火可以看出。所以,我觉得各种数据还是由自己管理保存更好。自己的东西毕竟可以做321备份策略, 丢了也怨不了谁。