v1.0.0-alpha.4 — Streaming Engine, EPG, and HDHomeRun Compatibility
Pre-releaseM3Undle v1.0.0-alpha.4 (Alpha)
M3Undle is a self-hosted lineup manager for large streaming provider catalogs,
focused on explicit control, stable output, and DVR-friendly publishing.
This alpha milestone delivers the core streaming engine, EPG source management,
Xtream-Codes compatibility, and hardened HDHomeRun emulation — tested against
NextPVR, Jellyfin, and native LibHDHomeRun clients.
What's in this release
Stream relay engine
- New stream proxy with ring-buffer architecture for live channel relay
- Shared live sessions: multiple clients watching the same channel share a single upstream connection
- Configurable session limits, idle grace periods, buffer sizes, and reconnect behavior
- Upstream reconnect with stall detection, outage window, and failure strike tracking
- Subscriber queue model with per-client backpressure and disconnect reason tracking
- HLS detection and manifest rewriting for browser-based clients (IPTVnator, Electron)
- HLS proxy endpoint for segment-level relay with provider header forwarding
- Stream administration page with live session and viewer monitoring
- Streaming settings UI with validation and restart-required tracking
- Fixed
HttpResponseMessagedisposal leak in upstream connector - Fixed response disposal on non-success HTTP status codes
HDHomeRun emulation (hardened)
- Native tuner protocol support:
/tuner{N}/v{ch},/tuner{N}/ch{ch}, and/tuner{N}/auto/...routes used by LibHDHomeRun clients (NextPVR, Channels DVR, Plex) - Auto-tune endpoints:
/hdhr/auto/v{ch},/hdhr/auto/ch{ch},/hdhr/auto/{ch}— resolve guide numbers and redirect to tune URL - HDHomeRun tuner manager with tuner slot reservation and concurrency control
- Native tuner routes force raw MPEG-TS delivery, matching real HDHomeRun device behavior
- Default tuner count changed to 4 (matching advertised HDHR3-US model)
- Virtual tuner ID includes tuner index for per-tuner session isolation
- Structured event logging (
EventType = "HDHR") across all HDHR endpoints and discovery services - Client endpoint status codes preserved — HDHR, stream, playlist, and guide 404/503 responses no longer rewritten to Blazor HTML
EPG source management
- EPG source CRUD with fetch scheduling and manual refresh
- XMLTV parser for external guide data ingestion
- EPG channel mapper with auto-matching and manual mapping UI
- EPG compiler that merges multiple sources with configurable priority ordering
- EPG catalogue model linking sources to lineup channels
- Fixed O(m*n)
FindIndexinEpgCompilerOrderBywith pre-built priority dictionary
Xtream-Codes compatibility
- Full Xtream-Codes API endpoint set for player compatibility
- Xtream path credential filter for URL-embedded authentication
- Xtream stream ID cache for stable ID mapping across refreshes
- Live stream URL generation
Live proxy URLs
- Now include a
.tsextension tail (e.g.,/live/{key}/20312.ts) when the upstream URL is a bare numeric ID, so clients that content-sniff by file extension recognize the stream as MPEG-TS - HLS streams (
.m3u8extension or?output=m3u8/?type=hlsquery params) are preserved without.tsrewriting
Provider and data model
- Provider stream limit support (per-provider concurrent stream caps)
- EPG schema:
epg_sources,epg_source_channels,epg_channel_mappings,epg_fetch_runs - Streaming settings columns added to
site_settings - Consolidated alpha.4 migration gate (single
Alpha4_Schemamigration) - Migration repair for databases upgraded from early alpha.4 builds with split migrations
- Default stream limit set when adding a provider
Security and access control
- Forwarded headers security fix: removed unrestricted proxy trust, added configurable trusted proxies
- Client endpoint access denial logging (path, method, reason, client IP)
- SQLite connection pool cleanup to prevent stale file locks
Build and observability
- Version bumped to
1.0.0-alpha.4 - Build date (UTC) and optional build number stamped as assembly metadata at compile time
- Version, build date, and build number logged at startup for binary traceability
- CLI
--versiondisplays full build info
UI and dashboard
- Streams page for monitoring active sessions and connected viewers
- Settings page expanded with streaming configuration controls
- EPG Sources page with source management and mapping workflows
- Dashboard updates for streaming status visibility
- Log scroll initialization fix (proper cleanup on component dispose)
- Navigation menu updated for new pages
Testing
- Ring buffer unit tests: eviction, lease ref-counting, snapshot retention, complete behavior
- Channel session integration tests (shared sessions, subscriber lifecycle, idle shutdown)
- Stream request resolver tests including native HDHR tuner routes
- HLS proxy endpoint security tests
- HDHomeRun endpoint and lineup service tests (auto-tune, guide number resolution, native tuner routes)
- Streaming settings service and options validator tests
- EPG compiler, mapper, source fetcher, and XMLTV parser tests
- M3U serializer tests for
.tstail logic AppBuildInfotests- Application restart service tests
- Centralized SQLite test cleanup infrastructure (connection pool handling, retry-on-lock)
Container Images
ghcr.io/sydney-elvis/m3undle:v1.0.0-alpha.4
ghcr.io/sydney-elvis/m3undle:alpha
alphais a rolling tag — it always points to the latest alpha release.
Known alpha limitations
Still alpha: HLS proxy is functional but not fully hardened for all edge cases,
EPG merging covers common XMLTV formats but exotic sources may need parser
extensions, and Xtream-Codes compatibility covers standard player flows but
not the full API surface. Broader client interoperability testing is ongoing.
Contributor
Full Changelog: v1.0.0-alpha.3...v1.0.0-alpha.4