为什么造这个?
2003 年 Napster 时代攒的 MP3、CD 转的 FLAC、从虾米 / iTunes Store 买的曲子…… 散落在三块硬盘、几个 NAS、若干网盘里。你想随时听任何一首,但现实是:
流媒体在删你的歌
Spotify 下架了某张专辑、Apple Music 改成了 remix 版、订阅到期"我的音乐"全消失。 你以为是租,结果连租约都说没就没。
本地文件是烂摊子
文件名一半乱码、专辑封面缺一半、CUE+APE 分轨包根本播不了、 同一首歌在三个目录里以 320k MP3 / FLAC / OGG 各存一份。
音乐被视频淹没
打开 YouTube Music 推你听演唱会 vlog;Spotify 塞你 video podcast; 打开 Apple Music 想随便放首歌,先吃一段 MV。 你只是想听,不想看任何东西。
跨设备同步是地狱
手机里只能塞下 1/10。iTunes 同步要插线、Plex Music UI 还是 2014 年的、 Jellyfin 把音乐当视频的二等公民。
付费方案要么贵要么闭源
Roon 一年 $150 还要 ROCK 主机。商业云盘音乐管家说停就停。 你的元数据、播放历史、自己的整理工作,又不是真的属于你。
MusicTidy 的答复
把所有音乐倒进一个目录,剩下交给 MusicTidy:自动 fingerprint 识别每首歌、 从 MusicBrainz 抓回准确元数据和专辑封面、规范目录结构、解 RAR / 拆 CUE 分轨、 合并跨格式重复。整理完,iOS 客户端连上就能听。
Fingerprint 识别
chromaprint + AcoustID 算每首歌的指纹,对得上 MusicBrainz 就把元数据填回。
自动归档
按 艺人/专辑/曲目 规范化目录,cover.jpg / .cue / .log 等 sidecar 跟着走。
原码 + 转码兼顾
WiFi 直传 FLAC;蜂窝服务器自动转 AAC 192k 省流量;下载长按选码率。
iOS 原生
Swift / SwiftUI 写的,跟 Apple Music 一样的播放体验:锁屏控制、车载、CarPlay、AirPlay。
专注的纯音乐
没视频、没短视频、没 podcast 推荐。打开就是你的曲库 → 选 → 听。一秒钟也不浪费在"建议你看一下"。
压缩包友好
RAR/ZIP/7z 自动解(unar,认 GBK / Shift-JIS),CUE+FLAC 自动拆轨,旧资源不再是死文件。
不上传你的数据
App 只连你自己的服务器。MusicBrainz 查询走 server → MB,没有任何遥测进入第三方。
你的专属音乐也管用
老 demo 带、自己录的、小厂牌买的、独立音乐人发的小众专辑…… AcoustID 和 MusicBrainz 数据库里根本没有指纹也没有封面。 别的工具到这里就放弃,你只能盯着一堆"未识别"。
手动指认 → 写进你自己的库
长按曲目改名字 / 关联到对的专辑 / 上传你手机相册里那张正确封面 / 或在 App 内置浏览器搜 Google 图片, 一键带回。你做的每一次决策都进你自己的 musictidy.db,不会丢、不会被回滚。
自动算 chromaprint 存到本地指纹库
就算 AcoustID 查不到,MusicTidy 还是会本地算出每首歌的 chromaprint 指纹, 打上你刚指认的标签存进自己的指纹库。下次同一段音频出现,直接命中。
未来你扒新文件,"我是不是已经有了"立刻知道
过几年你又翻出一块老盘 / 朋友 U 盘塞过来一堆 FLAC —— MusicTidy 用你自己的指纹库跟新文件比一遍, 同首歌不论格式(320k MP3 / FLAC / 24bit / ALAC)都能认出来, 标重复,让你选保留哪份。
你整理的每一分钟,都沉淀成属于你自己的数据库。卸载也带得走(就是几个 SQLite 文件)。
多少钱?
免费。Server 是 MIT 开源你自己跑,iOS 客户端在 App Store 免费下载。 装好 + 连上你服务器,就已经是你的私有 Apple Music。
- 艺人 / 专辑 / 曲目浏览 + 搜索
- 原码 + 转码流播放
- 边听边自动缓存(5 GB LRU)
- 多服务器切换 + Face ID 解锁
- 锁屏控制 / 蓝牙 / CarPlay / AirPlay
- 整套 iOS UI 完整可用
没买 Pro 也能日常一直用,不会被弹窗或灰按钮挡。
- 整张专辑批量下载(可选码率)
- 自定义专辑封面(手机相册 / Google 搜图)
- 手动指认曲目(找回 AcoustID 误识别)
- 把当前队列保存为命名播放列表
- 支持作者继续开发
给重度玩家的快捷键。不买不影响"日常听歌"。
没装服务器?先在线试
我们维护了一个 demo 实例,里面装了 30 来首公共领域 / CC 授权的音乐 —— Kevin MacLeod、1940 年代上海老唱片、戦前昭和歌謡集。 装好 iOS 客户端,配下面这个地址就能用:
试 demo
方法 1:扫码自动填 —— 把下面的二维码截图存到相册, iOS App 启动后在服务器设置页点「扫二维码」选这张照片,三个字段自动填好。 密码进登录页时手输。
方法 2:手输
https demo.musictidy.com 443 (留空即可) demo2026 ⚠ demo 每天 04:00 JST 重置,请别把它当持久库用。
App 长什么样
iPhone 客户端的真实截图(演示从上面那台 demo 服务器拉的内容):



怎么自己跑一份
服务端是 Python + FastAPI,跑在任何能装 Python 3.11 的盒子上:旧 Mac mini、NAS、廉价 VPS 都行。 下面是最短路径,详细见部署文档。
git clone https://github.com/WanpengQian/musictidy.git
cd musictidy/server
python3.11 -m venv .venv
.venv/bin/pip install -e .
echo "APP_PASSWORD=changeme" > .env
echo "MUSIC_ROOT=/path/to/your/music" >> .env
.venv/bin/python -m app.main
# 浏览器打开 http://localhost:8765/healthz