Folia 本地歌单完整指南:建单、排序到 M3U8 导入导出一次讲清
【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major
Folia 是一款以绚丽歌词动画著称的本地音乐 / Navidrome / 多平台在线音乐播放器。这篇 Folia 本地歌单指南带你从零走通建单、保存队列、排序、收藏与 M3U8 导入导出的全流程,看完就能上手。
它替你省掉了什么
- 别的播放器歌单只记路径,音乐文件夹挪个位置整单失效,你得逐首重找;
- 换设备后歌单对不上号,只能重新点一遍想听的歌;
- 手动整理顺序费时,重复歌曲还容易塞进歌单两次。
Folia 的本地歌单只存歌曲引用、不搬动磁盘上的音频文件,建单、调序、删单都可逆。
能力速览
| 能力 | 在哪操作 | 一句话说明 |
|---|---|---|
| 新建歌单 | 本地音乐区选歌后"新建歌单" | 输入名称即建单 |
| 保存队列为歌单 | 队列面板右上角"保存为歌单" | 当前播放队列原样固化为歌单 |
| 收藏歌曲 | 播放区心形按钮 | 写入内置 Liked Songs 收藏歌单 |
| 排序 / 移除歌曲 | 歌单卡片 → 编辑模式 | 拖动排序立即持久化,移除即剔除 |
| 重命名 / 删除歌单 | 歌单卡片操作 | 系统收藏歌单受保护不可删 |
| 导出 M3U8 | 歌单卡片"导出 M3U8" | 生成 UTF-8 的 .m3u8 自动下载 |
| 导入歌单 | 本地音乐首页"导入歌单" | 读 .m3u / .m3u8,自动匹配本地歌曲 |
跟着走一遍
第一次建单:从选歌到出歌单
- 进入本地音乐区,在歌单卡片里勾选你想收录的歌曲;
- 在命令面板执行"用选中卡片的歌曲新建歌单",或直接在选中卡片上触发"新建歌单";
- 输入歌单名确认,新卡片就出现在本地音乐区。
添加时所有歌曲 id 都会先过一遍去重逻辑(src/services/localPlaylistService.ts里的dedupeSongIds),同一首歌不可能进歌单两次。
把正在听的队列存成歌单
- 在底部播放区打开队列面板;
- 把不想要的歌先移走;
- 点面板右上角的"保存为歌单",弹窗里给歌单命名并确认。
这个按钮只在队列里全部是本地歌曲时才出现(src/components/panelTab/QueueTab.tsx),因为在线歌曲没有磁盘路径,不属于本地歌单体系。保存后新顺序与当前队列完全一致。
调整顺序、改名、删歌
- 点开目标歌单卡片进入集合视图;
- 通过卡片操作或命令面板的
toggle-edit-mode命令切换编辑模式; - 拖动歌曲调序、删除不想要的歌,改动立即写回本地数据库。
调序走reorderLocalPlaylistSongs,移除走removeSongsFromLocalPlaylist(均在src/services/localPlaylistService.ts),重命名走src/library/app/createLibraryMutationPort.ts。下次打开 Folia,顺序和名字都保持你最后一次操作的状态。
导入 .m3u 歌单
前提一步:先把歌单引用的音乐文件夹导入 Folia,建好曲库索引——导入动作只做路径匹配,不会替你申请新的文件夹权限。
- 本地音乐首页点"导入歌单",选择
.m3u或.m3u8文件; - Folia 逐条匹配路径后建单,状态栏报出成功导入的歌曲数与被跳过的路径数(未匹配 + 歧义);
- 歌单名优先取文件里的
#PLAYLIST:行,否则用文件名。
匹配在src/services/localPlaylistFileService.ts的importLocalPlaylistFile里,normalizeM3uPath负责把file://地址、Windows 盘符路径、反斜杠统一成斜杠形式再比较。
导出 M3U8 放到哪能直接播
- 打开目标歌单卡片,选择"导出 M3U8"(命令面板同名命令
export-playlist也可触发); - 应用自动下载一个以歌单名命名的
.m3u8文件,状态栏提示成功。
文件里每首歌带#EXTINF时长行和"艺术家 - 标题"。导出时先收集所有歌曲路径的第一段(导入根目录名):全部来自同一个根目录时,写入相对该根的路径——把.m3u8放进这个根目录即可直接播放;来自多个根目录时保留完整路径,把文件放到它们的共同父目录即可。实现见serializeLocalPlaylistToM3u8。
设计里的取舍
只存 songIds,不存路径。歌单就是一个songIds数组(src/types/appPlayback.ts)。收益是文件夹改名、歌曲被删后,读取时自动剔除失效引用并合并重复导入的同一份文件,脏数据不用手动清。局限是文件改名后引用仍可能对不上,得等下次索引或导入匹配。
导入匹配宁缺勿错。先按完整路径、去根相对路径、文件名做大小写不敏感的精确匹配,没命中再按路径后缀兜底;命中多个候选时直接跳过计入ambiguousPaths。收益是不会把同名文件导成另一首。局限是跳过的歌要你自己补齐文件夹后重新导入,不会自动重试。
收藏歌单前后端双重保护。deleteLocalPlaylist开头就检查isFavorite,系统收藏歌单删不掉;前端canDeleteLocalPlaylist直接把删除入口禁掉。收益是"误删 Liked Songs"这种事故不存在。局限是受保护歌单想"换个名字"也没法做到,只能清空里面的歌。
边界与限制
- 只解析
.m3u/.m3u8文本格式,foobar2000 的二进制.fpl读不了。 - 导入不会自动拉取音频文件,也不会申请新的文件夹权限。
- 普通网络 URL(如
http://路径)在匹配前就被判为无效,不会误当成本地歌曲。 - 换设备用导出的 M3U8,前提是文件在、目录结构和相对路径一致,否则要手动改路径。
- 保存队列为歌单只收本地歌曲,队列里混了在线歌时按钮不出现。
Folia 本地歌单围绕"存引用、可排序、M3U8 互通"做成闭环。想深入.foliaignore排除规则与批量匹配,看仓库里的 docs/local-library-management.md。
【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考