云计算百科
云计算领域专业知识百科平台

MusicFree:一个「All in One」的个人音乐服务器,让听歌回归简单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}

不需要分别搭建 Navidrome、MusicTagWeb、MusicDL 三套服务,运行一条 docker compose up -d,你就能拥有一个集媒体库管理、元数据刮削、在线搜索下载、歌单同步于一身的私人音乐中枢。


痛点:搭建一套完整的私人音乐库,到底有多折腾?

每个喜欢收藏本地无损音乐的人,大概都经历过这样的折腾:

  • 你有一堆音乐文件,散落在 NAS、本地硬盘、甚至 WebDAV 挂载的云盘里,想统一管理 —— 于是你搭建了 Navidrome,一个媒体库管理服务。
  • 元数据一团糟,封面缺失、标题是乱码、艺人信息空白 —— 于是你又搭建了 MusicTagWeb,专门做标签刮削。
  • 想找新歌,想从网易云、QQ 音乐等平台搜罗资源下载入库 —— 于是你又去折腾 MusicDL。
  • 三套服务,三个数据库,三种配置方式,互不相通。光是维护它们就已经让人心力交瘁,更别提「优雅地听歌」这件事了。

    有没有一种可能,把这三件事合在一起?

    这就是 MusicFree 诞生的初心。


    MusicFree 是什么?

    MusicFree 是一个基于 Go + Vue 3 + TypeScript 构建的开源个人音乐服务器,核心理念只有一句话:

    让听歌这件事变得简单一点。

    它不是某个单一功能的替代品,而是音乐全生命周期的管理中枢:

    从获取曲目到完美播放,一个服务就够了。


    核心能力一图速览

    音乐管理:搜索、去重、刮削,一站式搞定

    MusicFree 的管理后台将三大音乐运维能力整合在同一个页面中:

    Tab 做什么 怎么做的 音乐搜索 从外部平台搜索歌曲并一键下载入库 通过 WASM 插件接入各平台搜索/下载能力 音乐去重 发现库内重复曲目并批量清理 基于音频指纹(fpcalc)技术,识别转码、改名后的同一首歌 音乐刮削 补全元数据:封面、歌词、艺术家、专辑信息 多插件编排,依次尝试不同数据源直至命中

    这不是三个独立的工具,而是同一套系统里无缝衔接的三个功能。
    在这里插入图片描述

    插件体系:能力边界,由你定义

    MusicFree 的核心能力不写死在代码里,而是全部通过 WASM 插件 提供:

    产品能力 插件接口 常见插件 在线搜索 / 下载 RemoteSearch / RemoteDownload mf-plugin-gomusicdl 元数据 / 封面 / 歌词 ScraperSong / GetCover / GetLyrics 网易云、QQ 音乐、MusicBrainz 专辑信息刮削 GetAlbumInfo 同上 艺术家信息与头像 GetArtistInfo 同上 歌单导入 / 同步 FetchPlaylist mf-plugin-netease、mf-plugin-qqmusic

    你只需要在插件商店中订阅一个注册表 URL,就能看到所有可用插件,点击安装即可使用。
    在这里插入图片描述

    当多个插件实现同一能力时,还能通过插件编排设定优先级链,按序尝试——覆盖、歌词、专辑、艺术家、头像五个维度可分别指定插件链:
    在这里插入图片描述

    插件编排 – 五个维度的插件链配置

    这意味着什么?—— 某个平台 API 变了?更新插件即可,你不需要等 MusicFree 发新版。远程搜索也由插件驱动,选好来源就能直接检索并下载入库:
    在这里插入图片描述

    客户端兼容:不只是 Web 播放器

    MusicFree 实现了完整的 OpenSubsonic 1.16.1 接口规范,以及部分 Navidrome 风格 REST API。这意味着你可以用任何你喜欢的客户端来听歌:

    • 音流 — 国产精品 Subsonic 客户端,iOS/Android 双端
    • Supersonic — 跨平台桌面客户端,界面精美
    • Feishin、Symfonium、DSub — 更多兼容应用任你选

    不需要被限制在某个特定的前端里。用你最顺手的播放器,连上 MusicFree 服务端,就像连上一个标准的流媒体服务器。

    多源接入:本地 + WebDAV,一盘统管

    音乐不一定都存在本地硬盘上。MusicFree 支持两类媒体源:

    • 本地目录:直接扫描服务器上的音乐文件夹
    • WebDAV:挂载远程存储(NAS、云盘),统一管理

    配置后可以手动触发扫描,也支持定时增量扫描(默认每 30 分钟)。你还可开启文件监听器(基于 fsnotify),本地目录一有变化就自动同步入库。
    在这里插入图片描述


    一分钟部署

    MusicFree 已经发布为 Docker 镜像,一条 Compose 即可启动:

    services:
    music-free:
    image: ansgoo/music-free:latest
    container_name: music-free
    restart: unless-stopped
    ports:
    – "4533:4533"
    volumes:
    – /vol1/docker/music-free:/app/data
    – /vol1/music:/app/music

    docker compose up -d

    然后打开浏览器访问 http://<你的服务器IP>:4533,默认账号 admin / admin,进入后建议立刻修改密码。

    不需要额外部署 Nginx,不需要单独启动前后端服务——Go 进程把静态页面和 API 合并在一个端口上,这就是「简单」的含义。


    支持的音频格式

    扫描器明确支持的格式覆盖了你的绝大多数收藏:

    mp3 · flac · m4a · aac · ogg · opus · wav · wma · ape · dsf · dff


    路线图与当前状态

    MusicFree 是一个活跃开发中的项目,以下是当前完成度概览:

    模块

    状态

    音乐扫描(全量 + 增量)

    ✅ 已完整实现

    音频播放核心接口

    ✅ 已完整实现

    OpenSubsonic 基础兼容

    ✅ 已完整实现

    登录认证

    ✅ 已完整实现

    播放记录与统计

    ✅ 已完整实现

    刮削系统(插件管理 + 批量刮削)

    ✅ 已完整实现

    媒体源管理(本地 / WebDAV)

    ✅ 已完整实现

    首页(随机歌曲、热门、最近播放)

    ✅ 已完整实现

    歌曲库 / 专辑 / 艺术家 / 歌单页面

    ✅ 已完整实现

    媒体源扫描联动

    ✅ 已完整实现

    转码 / 高级播放策略

    ✅ 已完整实现

    项目当前已具备一个音乐服务原型里最关键的能力:能启动、能扫描、能播放、能刮削、能记录。如果你需要的是一个稳定的个人音乐服务器基础,它已经够用了。


    功能掠影

    更多核心界面一览:

    音乐刮削
    在这里插入图片描述

    音乐去重
    在这里插入图片描述

    专辑管理
    在这里插入图片描述

    艺术家管理
    在这里插入图片描述

    歌单管理
    在这里插入图片描述

    歌单详情
    在这里插入图片描述


    总结

    对比维度

    传统方案(多服务组合)

    MusicFree

    部署复杂度

    3 套服务,各自配置

    1 条 docker compose

    数据互通

    割裂,各自独立数据库

    统一曲库

    搜索下载

    单独工具

    内置插件,一键入库

    元数据刮削

    单独工具

    内置,支持多源编排

    客户端

    各有兼容范围

    OpenSubsonic 标准,多客户端可选

    扩展性

    受限于各工具自身

    WASM 插件体系,无需改核心

    MusicFree 不追求成为功能最庞杂的音乐平台,而是追求用最简洁的方式覆盖最核心的需求。

    它就是那个你想听歌的时候,不需要折腾环境的「一条龙」解决方案。


    Docker 镜像:ansgoo/music-free:latest

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » MusicFree:一个「All in One」的个人音乐服务器,让听歌回归简单
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!