🚀 TubeArr 0.9.1
THE METADATA UPDATE
YouTube → TV library translation that doesn't suck.
A lot of this update is about making metadata behave like a real media source, tightening up the pipeline, and cutting down the jank.
✨ Added
-
Custom Plex metadata provider
TubeArr can now serve metadata directly to Plex in a TV-shaped format.
Stable mapping for Channel → Playlist → Video is now much more intentional instead of “hope Plex figures it out.” -
Custom NFO pipeline
Proper support fortvshow.nfo,season.nfo, and episode NFOs.
Includes repair/sync flows so your library doesn’t slowly rot over time. -
Custom playlists
Rule-based grouping for videos that YouTube refuses to organize properly.
Includes conflict handling and matching helpers so things land where they should. -
Metadata activity tracking
Metadata queue/history is now visible.
Scheduled tasks also track run results instead of silently doing their thing. -
Nightly/release groundwork
GitHub Actions improvements for builds and releases.
Less manual nonsense. -
Localization improvements
Expanded Spanish translation coverage.
Less English leaking everywhere.
🔧 Changed
-
Metadata model (media-server-first)
Continued cleanup toward:- Channel → Show
- Playlist → Season
- Video → Episode
-
Playlist resolution + performance
Batched primary playlist resolution to reduce DB thrashing.
Queue/history lookups are less stupid now. -
FFprobe handling
Centralized execution logic so probing doesn't randomly hang or behave inconsistently. -
yt-dlp integration
Updated format filtering syntax to match newer yt-dlp.
Removed deprecated--prefer-ffmpegusage from defaults.
🐛 Fixed
-
yt-dlp format filter compatibility
Fixed broken selector syntax with newer yt-dlp versions.
Cleaned up deprecated args in profiles and migrations. -
Metadata/history UI rendering
Fixed invalid nested table cells causing layout issues. -
Playlist resolution inefficiencies
Removed per-channel query loops that were hammering the DB. -
Media probing robustness
FFprobe handling improved to avoid deadlocks/timeouts. -
Localization gaps
Filled missing Spanish strings that were falling back to English.
🧠 TL;DR
- Plex integration is actually usable now
- NFO + metadata pipeline is way more solid
- Custom playlists make YouTube less chaotic
- yt-dlp stopped breaking every 5 minutes
- Less backend jank, fewer silent failures
Full Changelog: 0.8.6 → 0.9.1