☰
Antra + Navidrome/Jellyfin/Plex:30分钟搭建家庭音乐流媒体服务器(附目录结构详解)
2026/10/7 8:31:21 网站建设 项目流程

Antra + Navidrome/Jellyfin/Plex:30分钟搭建家庭音乐流媒体服务器(附目录结构详解)

【免费下载链接】AntraA desktop music library builder that turns Spotify, Youtube Music Apple Music, Amazon Music, Tidal, Qobuz, and Deezer links into fully tagged local library in FLAC, ALAC, Dolby Atmos, AAC, or MP3.项目地址: https://gitcode.com/gh_mirrors/an/Antra

🎧Antra是一款桌面音乐库构建工具,能把 Spotify、Apple Music、YouTube Music、Amazon Music、Tidal、Qobuz、Deezer 的链接,自动转成带完整标签的本地无损音乐库(FLAC / ALAC / AAC / MP3),并把文件整理成媒体服务器"开箱即用"的目录结构。配合Navidrome、Jellyfin 或 Plex,30 分钟就能拥有属于自己的家庭音乐流媒体服务器。

为什么选 Antra 做本地音乐库?

很多新手在搭建家庭音乐服务器时,最头疼的不是"服务器",而是"音乐从哪来、怎么整理"。手动下载 + 手动打标签 + 手动建文件夹,几小时就劝退了。

Antra 把这三件事全自动化了:

环节传统做法用 Antra
下载音源逐个平台手动扒粘贴链接自动走多源解析链,优先无损
打标签用其他工具二次处理自动写入标题、艺人、专辑、封面、流派、同步歌词、ISRC
整理目录手动建文件夹自动落进艺术家 / 专辑 / 曲目结构
重复去重靠肉眼基于ISRC全库去重,同一首歌不会下两遍

关键点在于:Antra 输出的目录和编号方式,就是Navidrome / Jellyfin / Plex期望的格式——所以不用改配置,服务器直接就能正确识别艺人、专辑和碟片。它的启动界面就写着"Optimized for Navidrome & Jellyfin"(见 App.svelte)。

第一步:安装 Antra(约 3 分钟)

Antra 是单文件可执行程序,无需安装 Python 或任何依赖。按平台下载对应文件即可(详见 README.md):

平台文件
Windows 10+Antra.exe
macOS 12+(Apple Silicon)Antra-macOS.dmg
macOS 12+(Intel)Antra-macOS-Intel.dmg
LinuxAntra-Linux.AppImage

💡 如果你更想看实现原理,也可以从源码运行:git clone https://gitcode.com/gh_mirrors/an/Antra,目录结构、解析链和打标签逻辑都在 antra/ 下。

第二步:设置音乐库目录 + 选格式(约 5 分钟)

首次启动会进入Setup引导页,只需做两件事:

  1. 选择 Music Library Folder(音乐库根目录)

    • ⚠️ 这里的路径要指向媒体服务器的音乐目录。如果你打算用 Docker 跑 Navidrome,就把它指向容器挂载的那个子目录,例如D:\Music或~/Music。
    • 引导页的提示语就是:"Navidrome / Jellyfin compatible — point this at your media server's music directory."(见 App.svelte)
  2. 选择输出格式

    • 主流家庭服务器推荐FLAC(无损、通用);苹果设备多可选ALAC;想省空间选AAC / MP3。
    • 无损模式下 Antra 会并行查询所有支持的无损源,挑选比特深度和采样率最高的那个(甚至能拿到 24-bit/96kHz 的高解析母带),而不是只取第一个命中(见 FEATURES.md)。

第三步:粘贴链接,开始批量下载(约 15 分钟)

  1. 切到URL标签,把 Spotify / Apple Music / Amazon Music / YouTube Music 的歌曲、专辑或歌单链接粘进去(支持多行 / 逗号分隔)。
  2. 粘贴后先出完整曲目列表,确认无误再点Add to Library。
  3. 默认并行下载 2 首,带实时进度条,几百首歌的歌单也能很快跑完。
  4. 想批量导入自己账号里所有歌单?连接 Spotify 账号后,直接进My Library标签点击卡片即可,连复制 URL 都省了。

🔄失败不慌:下完会有专门的Failed (N)面板,可以单曲重试或Retry All一键重试。

Antra 目录结构详解(媒体服务器友好)

这是本文重点。Antra 的默认目录和编号方式,就是为让服务器"看懂"而设计的(源码见 organizer.py):

Music/ ← 你在 Setup 里选的"音乐库根目录" ├── .antra_state.json ← Antra 状态文件(去重索引,别手动删) │ ├── The Beatles/ ← 艺术家文件夹(第一层) │ └── 1969 - Abbey Road/ ← 专辑文件夹(默认:{year} - {album}) │ ├── 01 - Come Together.flac │ ├── 02 - Something.flac │ └── cover.jpg ← 自动附带的封面 │ ├── Drake/ │ └── 2021 - For All The Dogs/ │ ├── 101 - 0 to 100 (Part 1).flac │ └── 201 - 0 to 100 (Part 2).flac ← 第二碟用 201 编号 │ └── My Top Favs/ ← 歌单也会单独成文件夹 ├── 01 - rises the moon.flac └── My Top Favs.m3u ← 配套 M3U 播放列表

几个新手常问的细节:

  • 为什么是1969 - Abbey Road而不是Abbey Road (1969)?这是默认文件夹模板{album_artist}/{year} - {album}渲染出来的,完全可在设置里改(见下文"自定义模板")。
  • 为什么用101 / 201这种编号?多碟专辑默认采用碟片前缀编号:第 1 碟101、102…,第 2 碟201、202…,这样 Plex / Navidrome / Jellyfin 永远知道某首歌属于哪张碟(见 FEATURES.md)。
  • 没有多余的Albums/、Playlists/套娃文件夹——所有内容直接落在库根目录下,服务器扫描更干净。
  • .antra_state.json是什么?它是 Antra 维护的去重索引,记录了库里已有曲目。删了它不影响已有音频,但会让"智能去重"暂时失效。

自定义文件名与文件夹模板

不喜欢默认命名?在Settings → Folder Settings里用模板变量自定义(变量列表见 filename_prefs.py):

模板默认值效果示例
单曲文件名{artist} - {title}The Beatles - Come Together.flac
专辑内曲目{track} - {title}07 - Come Together.flac
文件夹结构{album_artist}/{year} - {album}The Beatles/1969 - Abbey Road/

可用变量:{title}{artist}{album_artist}{album}{year}{track}{disc}{genre}{isrc}等,改的时候有实时预览。

⚠️ 一个小提醒:如果你的媒体服务器习惯专辑 (年份)的写法,把文件夹模板改成{album_artist}/{album} ({year})即可,两者服务器都认。

自动打标签:媒体服务器为什么"喜欢"它

服务器展示得好不好看,全靠文件标签。Antra 每首文件都会自动写入完整元数据(ID3v2 / Vorbis / MP4 atom,格式全部正确):

标签说明
标题 / 艺人 / 专辑 / 轨序来自流媒体元数据
专辑封面全分辨率封面图
发行日期有则完整 ISO 日期,否则用年份
流派 / 作曲从源元数据抓取,MusicBrainz 兜底
碟片编号多碟专辑正确打标
同步歌词LRC 同步歌词,Jellyfin/Plex 可直接显示
ISRC嵌入音频,保证匹配精准

完整说明见 FEATURES.md。

第四步:部署媒体服务器(约 5 分钟)

音乐库建好后,下面三种服务器任选其一。核心只有一条:把"音乐目录"指向上面 Antra 的库根目录。

方案 A:Navidrome(最轻量,最推荐)

Navidrome 专为音乐优化,启动快、资源占用低。用 Docker 一行搞定:

docker run -d \ --name navidrome \ --restart unless-stopped \ -p 4533:4533 \ -v /path/to/Music:/music:ro \ deluan/navidrome:latest
  • 把/path/to/Music换成你 Antra 的库根目录。
  • 浏览器打开http://你的服务器IP:4533,首次会自动扫描Artist / Album结构。

方案 B:Jellyfin(影音全能)

Jellyfin 同时管视频和音乐,适合已有家庭影音库的用户:

docker run -d \ --name jellyfin \ --restart unless-stopped \ -p 8096:8096 \ -v /path/to/Jellyfin/config:/config \ -v /path/to/Music:/media/music \ jellyfin/jellyfin
  • 进入设置 → 媒体库 → 新建,类型选音乐,路径指向/media/music。

方案 C:Plex(生态最成熟)

Plex 的媒体管理界面最友好,客户端覆盖广:

docker run -d \ --name plex \ --restart unless-stopped \ -p 32400:32400 \ -v /path/to/Plex/config:/config \ -v /path/to/Music:/data/Music \ plexinc/pms-docker
  • 在 Plex 的"添加文件夹"里选择/data/Music,媒体类型选音乐。

📌 三者都会因为 Antra 的碟片编号 + 完整标签而正确分组、显示封面与歌词,无需额外配置。

第五步:保持歌单常新 + 验证(约 2 分钟)

  • 验证:打开服务器,检查艺人 / 专辑分组是否正确、封面是否显示、点一首歌看同步歌词能否滚动高亮。
  • 自动同步:Antra 支持歌单定时同步——给任意歌单卡片打开 ↺ 自动同步,在设置里选好时间,它会定期对比差异、只拉取新增曲目,让家庭服务器上的歌单永远和你账号保持同步(见 FEATURES.md)。
  • 智能去重:默认开启,相同 ISRC 的曲目全库只存一份,省硬盘(见 organizer.py 的身份索引逻辑)。

常见问题 FAQ

Q:服务器里专辑顺序乱 / 碟片不分开?把多碟处理方式设为"碟片前缀"或"101/201 偏移"(默认即此模式,见 FEATURES.md),别用"仅轨序"。

Q:为什么有的歌下载失败?进入Failed (N)面板Retry All;小众/绝版唱片可开启Soulseek P2P兜底(零配置,Antra 自动管理后端)。

Q:想要无损还是高解析?无损模式下 Antra 会优先挑最高比特深度 / 采样率的源,Qobuz 链接还支持"严格 24-bit",避免把 16-bit 冒充 24-bit(见 FEATURES.md)。

Q:目录里能不能没有艺术家文件夹、直接平铺?可以,把文件夹模板清空即为扁平模式(见 organizer.py 中的 flat mode 说明)。


🎉 搞定!现在你已拥有一座"自动下载 → 自动打标 → 自动归档 → 服务器直接播放"的家庭音乐流媒体服务器。以后想扩容,只需在 Antra 里继续粘链接,服务器扫描一下就是新歌。

想了解完整功能清单,看 FEATURES.md;项目说明见 README.md。

【免费下载链接】AntraA desktop music library builder that turns Spotify, Youtube Music Apple Music, Amazon Music, Tidal, Qobuz, and Deezer links into fully tagged local library in FLAC, ALAC, Dolby Atmos, AAC, or MP3.项目地址: https://gitcode.com/gh_mirrors/an/Antra

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询