你买的、你扒的、你攒的
音乐都该是你的

视频满天飞的时代,我只想好好听首歌。 MusicTidy 把散落几十年的本地音乐文件整理成一座干净的私有音乐馆, iPhone 上配一个专注、顺手的 App —— 没视频、没短视频、没 podcast 推流。 免费开箱即用,Pro 只是锦上添花。

为什么造这个?

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,没有任何遥测进入第三方。

多少钱?

免费。Server 是 MIT 开源你自己跑,iOS 客户端在 App Store 免费下载。 装好 + 连上你服务器,就已经是你的私有 Apple Music。

基础版
免费
  • 艺人 / 专辑 / 曲目浏览 + 搜索
  • 原码 + 转码流播放
  • 边听边自动缓存(5 GB LRU)
  • 多服务器切换 + Face ID 解锁
  • 锁屏控制 / 蓝牙 / CarPlay / AirPlay
  • 整套 iOS UI 完整可用

没买 Pro 也能日常一直用,不会被弹窗或灰按钮挡。

Pro · 可选
一次性买断
  • 整张专辑批量下载(可选码率)
  • 自定义专辑封面(手机相册 / Google 搜图)
  • 手动指认曲目(找回 AcoustID 误识别)
  • 把当前队列保存为命名播放列表
  • 支持作者继续开发

给重度玩家的快捷键。不买不影响"日常听歌"。

没装服务器?先在线试

我们维护了一个 demo 实例,里面装了 30 来首公共领域 / CC 授权的音乐 —— Kevin MacLeod、1940 年代上海老唱片、戦前昭和歌謡集。 装好 iOS 客户端,配下面这个地址就能用:

试 demo

方法 1:扫码自动填 —— 把下面的二维码截图存到相册, iOS App 启动后在服务器设置页点「扫二维码」选这张照片,三个字段自动填好。 密码进登录页时手输。

MusicTidy demo server QR code

方法 2:手输

schemehttps
hostdemo.musictidy.com
port443 (留空即可)
passworddemo2026

⚠ demo 每天 04:00 JST 重置,请别把它当持久库用。

App 长什么样

iPhone 客户端的真实截图(演示从上面那台 demo 服务器拉的内容):

截图待补 —— 把 PNG 放到 site/public/screenshots/01-XX.png ... 就能自动出现在这里。

怎么自己跑一份

服务端是 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

完整部署文档 → 看源码 ↗