✨ 新增功能
- 完善音乐库 STRM 支持:针对音乐媒体库(
ContentType == "music")中的独立.strm曲目,自动从远程音频提取内嵌标签(标题、排序名、专辑、歌手、专辑歌手、作曲家、流派、音轨号、碟片号、发行年份/日期、外部 ID),并触发 Emby 自动生成与关联MusicArtist、MusicAlbum及专辑/艺术家封面 - 多级目录与文件名兜底:当远程音频缺少内嵌标签或离线恢复旧版备份时,优先遵循 Emby 媒体库的
MusicFolderStructure(艺术家\专辑\音轨/专辑\音轨)规则,并结合文件名解析([碟号-]音轨号 - 歌手 - 歌名/歌手 - 歌名)与物理目录层级自动补齐元数据 - 外挂歌词自动合并与恢复:自动扫描并合并
.strm同目录下的同名.lrc/.elrc外挂歌词流;JSON 导出时脱敏为相对文件名,恢复时自动还原为当前目录完整路径 - 音乐元数据备份与平滑升级:
-mediainfo.json新增向后兼容的AudioMetadata载荷;数据库已具备完整音频元数据时支持零远程探测直接升级旧版 JSON;无标签且无法推断专辑的音频在探测后自动收敛,避免重复探测
🛠 优化
- 轻量级 JSON 音频标签检测:采用文件尾部读取 + 基于
(LastWriteTimeUtc, Length)的内存缓存检测AudioTagsProbed,避免全量读取和反序列化含 Base64 内嵌封面的大体积 JSON - 精确探测成败判定:基于当次远程探测实际返回的媒体流判定成败,防止已有旧流的音频在远程探测失败时误标为已完成
- 本地歌词优先合并:已有媒体流的音频在新增同目录
.lrc/.elrc歌词时先完成纯本地歌词入库,不强制触发远程探测
✨ Features
- Full Music Library STRM Support: Automatically extracts embedded tags (title, sort name, album, artists, album artists, composers, genres, track/disc numbers, release year/date, provider IDs) for standalone
.strmtracks in music libraries (ContentType == "music"), triggering Emby to automatically create and linkMusicArtistandMusicAlbumentities along with local cover images - Multi-Level Folder & Filename Fallback: Falls back to Emby's configured
MusicFolderStructure(Artist\Album\Track/Album\Track), filename parsing ([Disc-]Track - Artist - Title/Artist - Title), and physical folder hierarchy when embedded tags are missing or when restoring legacy backups offline - External Lyrics Auto-Merge & Restore: Automatically scans and attaches sidecar
.lrc/.elrclyric streams in the same folder; sanitizes paths to filenames on JSON export and restores full paths upon import - Audio Metadata Backup & Smooth Upgrade: Added backward-compatible
AudioMetadatapayload to-mediainfo.json; supports zero-probe local upgrade of legacy JSON when DB metadata is already complete, and converges cleanly for untagged tracks without repeated remote probing
🛠 Improvements
- Lightweight JSON Audio Tag Detection: Uses file-tail reading +
(LastWriteTimeUtc, Length)in-memory caching to checkAudioTagsProbed, avoiding full file reads and deserialization of large Base64 embedded images - Accurate Probe Success Check: Validates probe results against newly returned media streams rather than pre-existing DB streams
- Local-First Lyric Merging: Merges newly added
.lrc/.elrcfiles locally before deciding whether remote tag probing is required
Full Changelog: v2.6.0-emby...v2.7.0-emby