Hey everyone — first off, apologies for the gap between releases. I've been in the middle of a move, so things slowed down a bit. Don't worry though, the project is very much alive and I've got more QoL features coming soon even if I'm a bit busier right now.
What's New
External EPG support — You can now use third-party EPG sources (like epg.pw) alongside your provider's built-in EPG. sbtlTV will automatically match your provider's channels to the external EPG data using a multi-strategy matching system. It tries exact ID matching first, then progressively looser approaches (display names, call signs, fuzzy word matching) to maximize how many channels get program guide data.
Handles massive EPG files — The new streaming parser runs in a background thread and can handle multi-gigabyte EPG files without freezing the UI or running out of memory. It's smart about it too — it scans channels first, figures out which ones match yours, then only processes the program data for those channels. Skips about 90% of the data in most cases.
Persistent mappings — Once your channels are matched to an EPG source, those mappings are saved. Re-syncing doesn't redo all the matching work from scratch.
Bug Fixes & Improvements
- Fixed a bug where multiple Xtream sources could overwrite each other's program data
- Single-quoted XML attributes in XMLTV files now work (previously silently dropped)
- Better error reporting — EPG sync failures now show up in the debug log with actual error messages instead of just "0 programs"
- Download and decompression size limits prevent runaway disk usage from malformed EPG files
- Worker thread timeout prevents indefinite hangs on bad data
Full changelog: https://github.com/thesubtleties/sbtlTV/blob/main/CHANGELOG.md
What's Changed
- feat: EPG channel matching with external EPG sources by @thesubtleties in #69
- v0.7.0 — EPG channel matching with external sources by @thesubtleties in #70
Full Changelog: v0.6.3...v0.7.0