github jinlin-teck/StrmTool v2.7.0-emby

4 hours ago

✨ 新增功能

  • 完善音乐库 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 .strm tracks in music libraries (ContentType == "music"), triggering Emby to automatically create and link MusicArtist and MusicAlbum entities 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 / .elrc lyric 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 AudioMetadata payload 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 check AudioTagsProbed, 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 / .elrc files locally before deciding whether remote tag probing is required

Full Changelog: v2.6.0-emby...v2.7.0-emby

Don't miss a new StrmTool release

NewReleases is sending notifications on new releases.