当你辛辛苦苦收集了几个T的无损音乐,存进 NAS 或者本地硬盘,准备用 Audio Station、Plex、Emby 好好享受时,却发现:

  • 没有歌词:听不懂外语歌,或者想跟着哼两句时一脸懵。
  • 没有封面:播放界面光秃秃的,或者显示一个默认的灰色图标,不仅丑,找歌也费劲。
  • 强迫症发作:看着杂乱无章的音乐库,心里总是痒痒的。

市面上的刮削器(Scraper)要么太复杂,要么就是针对电影电视剧的,专门针对本地音乐文件刮削歌词和封面的好用工具并不多。

作为一个爱折腾的程序员,既然找不到顺手的,那就自己写一个!

今天老宁就给大家介绍一下我自己开发并开源的项目:LyricFlow。它能自动扫描你的音乐库,从各大音乐平台下载歌词和专辑封面,让你的音乐库从此“声色俱全”。

最重要的是,这个项目基于 Docker 开发,不局限于群晖!无论你是用威联通、极空间、绿联,还是飞牛,甚至是一台普通的 Linux 服务器、Windows 电脑,只要能运行 Docker,统统都能用!

项目地址

https://github.com/laoning666/lyricFlow

功能特性

LyricFlow 的设计初衷就是简单、自动化、全平台

  • 🎵 格式全支持:支持扫描 MP3、FLAC、M4A、WAV 等常见音乐格式。
  • 📝 自动下歌词:自动搜索并下载歌词,保存为同名的 .lrc 文件,播放器能自动识别。
  • 🖼️ 自动下封面:自动下载专辑封面,保存为 cover.jpg,让文件夹视图赏心悦目。
  • 🔄 增量处理:智能跳过已经有歌词或封面的文件,不会重复下载,节省资源。
  • ⏰ 定时扫描:支持设置定时任务(比如每天扫一次),新加的歌自动处理。
  • 🐳 全平台部署:Docker 容器化,支持 X86、ARM 架构,哪里都能跑。

安装部署

为了照顾不同用户的使用习惯,这里提供通用部署群晖图形化部署两种方式。

方式一:通用 Docker Compose(推荐)

如果你使用的是 Linux 服务器、Mac、威联通(Container Station)、极空间、绿联 或者习惯使用命令行的群晖用户,推荐使用这种方式。

  1. 创建一个 docker-compose.yml 文件,内容如下:

    version: '3'
    
    services:
      lyricflow:
     image: ghcr.io/laoning666/lyricflow:latest
     container_name: lyricflow
     restart: unless-stopped
     environment:
       # 扫描间隔(天),0 = 运行一次退出,1 = 每天运行一次
       - SCAN_INTERVAL_DAYS=1
       # 是否下载歌词
       - DOWNLOAD_LYRICS=true
       # 是否下载封面
       - DOWNLOAD_COVER=true
       # 是否覆盖已有文件(建议 false)
       - OVERWRITE_LYRICS=false
       - OVERWRITE_COVER=false
       # 音乐搜索平台优先级
       - PLATFORMS=netease,kuwo,qq
     volumes:
       # 🔴 关键:冒号左边修改为你设备上实际的音乐文件夹路径
       - /path/to/your/music:/music
  2. 在该文件所在目录下运行启动命令:
docker-compose up -d

方式二:Docker CLI(一行命令快速体验)

如果你不想创建文件,只想快速跑一次试试,可以直接在终端运行以下命令:

docker run --rm \
  -v /你的音乐路径:/music \
  ghcr.io/laoning666/lyricflow:latest

注意:运行完成后容器会自动删除,适合临时整理一次。

方式三:群晖图形化部署(Container Manager)

对于习惯使用图形界面的群晖用户,操作依然简单:

  1. 打开【File Station】,在 docker 文件夹下创建 lyricflow 文件夹。

  1. 打开【Container Manager】套件,在项目菜单下点击创建

  1. 输入项目名称,路径选择刚才创建的 lyricflow 文件夹。

  1. 来源选择创建 docker-compose.yml,并将方式一中的代码复制进去。

  1. 重要修改:一定要把 volumes 下的 /path/to/your/music 修改为你群晖实际的音乐路径(例如 /volume1/music/齐秦)。

  1. 点击下一步构建并启动即可。

效果展示

部署完成后,LyricFlow 就会默默在后台工作了。

你可以去文件管理器里看看你的音乐文件夹。为了获得最佳效果,老宁建议大家按 歌手/专辑/ 的结构来整理音乐。

工具运行后,你的文件夹里会自动多出 .lrc 歌词文件和 cover.jpg 封面图:

/music/
├── 周杰伦/
│   ├── 七里香/
│   │   ├── 七里香.mp3
│   │   ├── 七里香.lrc      ← 自动生成的歌词
│   │   ├── 止战之殇.flac
│   │   ├── 止战之殇.lrc    ← 自动生成的歌词
│   │   └── cover.jpg      ← 自动生成的专辑封面

这时候,你再用 Audio Station、Plex、Emby、Jellyfin 或者任何支持挂载本地目录的播放器听歌,歌词和封面就都能完美显示了!

进阶配置:多文件夹挂载

很多朋友的音乐可能分散在不同的硬盘或文件夹里,比如一部分在“下载盘”,一部分在“仓库盘”。LyricFlow 支持同时扫描多个目录。

只需要修改 docker-compose.yml 中的 volumes 部分,将它们映射到容器内的不同子目录即可:

    volumes:
      # 映射第一个音乐目录
      - /share/music_downloads:/music/downloads
      # 映射第二个音乐目录
      - /share/lossless_storage:/music/lossless

这样,LyricFlow 就会同时扫描这两个文件夹下的所有音乐。

后记

开发 LyricFlow 的初衷是为了解决我自己音乐库管理的痛点,作为一个强迫症患者,看到音乐文件只有光秃秃的文件名实在是忍不了。

虽然教程里经常提到群晖,但 Docker 的魅力就在于它的通用性。无论你用什么设备,只要想整理本地音乐,这个小工具都能帮上忙。项目完全免费,也不需要复杂的 API Key 配置,希望能帮大家省下找歌词找封面的时间,把时间留给欣赏音乐本身。

如果你觉得这个小工具好用,欢迎去 GitHub 给老宁点个 Star 🌟,或者在评论区反馈你的使用体验!

最后修改:2025 年 12 月 26 日
如果觉得我的文章对你有用,就给个赏~~写文章,费烟~