Repository navigation
Releases: minerport/VynodeIPTV
Release list
VynodeIPTV 0.11.1 - Browser recording playback
Server/browser recording playback update. Android remains at 0.11.0.
Recording playback now prepares an H.264/AAC browser copy with audio timing correction instead of asking the browser to decode the provider's original codecs. Existing recordings work with this path; original files remain untouched. Completed copies are cached across restarts. Closing playback cancels unfinished preparation, and browser wall decoders pause while a recording is open.
Update the Unraid container using ghcr.io/minerport/vynodeiptv:latest or pin ghcr.io/minerport/vynodeiptv:0.11.1, then refresh the browser. Keep the existing persistent configuration and recordings mappings. No Android APK update is required.
Preparation uses CPU and extra recording storage; one conversion runs at a time. Output is up to 720p/30 fps with stereo AAC. It starts playback after a buffer is prepared; a late resume point may take longer. Missing footage cannot be reconstructed. This addresses a verified codec-path difference, not a confirmed diagnosis of any particular user recording.
Validation: Go tests/vet and 23 browser tests; complete synthetic MPEG-2/AC3 conversion and decoding, monotonic packet timing and audio/video alignment, owner isolation, cancellation, original preservation and cache reuse. Publication is gated on Linux race tests and authenticated live/DVR/browser-copy container smoke checks. Physical Unraid and the affected recording still need user verification.
See docs/RECORDING.md and docs/VALIDATION-0.11.1.md for behavior and limits.
VynodeIPTV 0.11.0 — Built-in recording
Built-in recording for VynodeIPTV: Android can record locally without a server or manage recordings on its paired server. The browser includes programme recording actions and a recording library.
Includes persistent schedules, configurable padding, cancel/delete/play/resume, independent recording workers, provider connection accounting, bounded recovery and partial-footage retention. Android remembers internal or USB folder selection.
Unraid upgrade: add a writable host path mapped to /recordings before using DVR. Suggested host path: /mnt/user/recordings/vynodeiptv, owned by UID/GID 10001. Keep existing /config and /transcode mappings. Container: ghcr.io/minerport/vynodeiptv:0.11.0 or :latest.
Install the attached APK over the existing app. Open Recordings to select local storage; allow Alarms & reminders when Android requests it.
Validation: Go tests/vet, synthetic FFmpeg restart/decode and authenticated DVR smoke; 20 browser tests; Android build, 39 JVM tests and lint. Linux container race tests, build, authenticated live playback and DVR smoke tests passed.
Preview limitations: standalone capture requires the provider MPEG-TS endpoint. Original codecs are retained; browser playback depends on codec support. EPG changes do not automatically retime schedules. Physical Shield/USB/Unraid and extended sleep/boot acceptance remain pending. Series recording and watch-while-recording are not included.
VynodeIPTV 0.10.1 — Provider editing and automatic reconnect
Fixes the provider edit form: URL and username are editable, failed verification retains the existing login, and successful edits preserve favorites/group identifiers.
- Server restores encrypted channel and EPG snapshots after restart, retains them through failures, and automatically retries without requiring daily refresh to be enabled.
- Browser lineups update automatically after recovery; provider errors distinguish TLS, DNS and timeout failures.
- Android restores cached lineups for saved connections and retries without asking users to sign in again.
- Optional Automatic HTTP fallback on server and standalone Android, off by default. Requires Allow HTTP; credentials travel unencrypted when fallback is used. HTTPS verification remains enabled. A working provider HTTP endpoint is required.
Update Unraid's ghcr.io/minerport/vynodeiptv:latest or pin :0.10.1, then reload the dashboard to get the editable form. Install the APK over the existing app. Keep /config and Android app data. No provider fallback setting is enabled automatically.
A successful import is required to seed the new server cache; older releases did not save channel snapshots. Physical Shield/Safari/Unraid UI acceptance remains pending. See docs/VALIDATION-0.10.1.md for checks and limitations.
Verified: Linux Go race/vet, browser tests, container build and authenticated playback/recovery checks passed. Public GHCR 0.10.1 and latest resolve to the same image. Android build, 36 unit tests and lint passed.
VynodeIPTV 0.10.0 — Saved accounts and standalone switching
Adds saved accounts, independent channel/EPG refresh and optional daily refresh to the server and Android.
- Refresh EPG sits directly under Refresh channels and does not reimport the channel lineup.
- Independent daily switches; failed refreshes retain existing data.
- Setup lists saved accounts with add, edit and delete controls. Provider password edits keep existing credentials when the field is blank.
- Favorites, group order, hidden groups and custom groups remain saved through logout and provider re-add with the same identity.
- Android works independently in Standalone / Xtream mode. Saved standalone and paired companion connections coexist; Connection settings > Switch mode / accounts selects either, including when the server is offline. Pairing does not replace the standalone login.
Update Unraid's ghcr.io/minerport/vynodeiptv:latest or pin :0.10.0. Install the attached Android APK over the existing app without clearing app data. Keep persistent /config when updating the container. Daily refresh defaults off. Android scheduling depends on OS/network availability; use server scheduling for always-on companion refresh.
Local Go tests/vet, live synthetic API checks, 17 browser tests and Android assembly/34 unit tests/lint passed. Physical Shield and browser visual acceptance remain pending. This release does not add cross-device or cross-mode preference synchronization. See the version validation document and installation guide for details.
Release validation: Linux Go race/vet, browser tests, container build, authenticated HLS and forced-worker recovery all passed. GHCR 0.10.0 and latest are anonymously pullable and resolve to the same manifest.
VynodeIPTV 0.9.3 — Safari native fullscreen
Fixes the browser player falling back to an expanded page with the address bar still visible.
- Requests native fullscreen with browser navigation hidden on supporting browsers.
- Uses Safari's native video-fullscreen API when container fullscreen is unavailable or rejected.
- Handles Safari's native Done/exit event and restores the wall or guide without removing streams.
- Shows a useful error when fullscreen is blocked or video has not loaded, instead of silently leaving the address bar visible.
Update Unraid's ghcr.io/minerport/vynodeiptv:latest (or pin :0.9.3), reload Safari, start a channel, then tap Fullscreen after playback begins. Safari uses its own native player controls for this fallback, including its own zoom/aspect controls. Android remains 0.9.0.
17 JavaScript tests passed, including mocked Safari APIs. Physical Safari acceptance remains pending; this is an implemented and tested compatibility fix, not a claim of device verification.
VynodeIPTV 0.9.2 — Edge-to-edge fullscreen
Fixes the visible outline and unused landscape space around fullscreen video.
- Removes the selected-tile inset shadow, border, outline and decoration from single-stream fullscreen.
- Landscape fills the screen without stretching; wider screens may crop the top/bottom of the broadcast.
- Enables edge-to-edge rendering on supported phones with display cutouts while keeping return controls inside safe areas.
- Portrait keeps the full picture visible.
Update the Unraid container using ghcr.io/minerport/vynodeiptv:latest (or :0.9.2), then reload the browser. Android remains 0.9.0.
Browser layout properties verified at 844x390 and 390x844. Physical phone/browser acceptance remains pending.
VynodeIPTV 0.9.1 — Portrait fullscreen
Improves the browser player's portrait fullscreen behavior:
- Shows the entire video frame instead of cropping a widescreen broadcast into portrait.
- Uses black letterboxing, dynamic viewport height and safe-area-aware return controls.
- Prevents the guide behind fullscreen from scrolling.
- Two-stream portrait walls stack vertically; six streams use two columns.
- Return button describes the actual destination: wall or guide. Streams remain running when returning.
Update Unraid's ghcr.io/minerport/vynodeiptv:latest container (or pin :0.9.1), then reload the browser. Android remains 0.9.0; no APK update needed.
Verified with a synthetic stream at 390x844 and 844x390, plus the JavaScript suite and container release checks. Physical phone/OS fullscreen behavior remains an acceptance item.
VynodeIPTV 0.9.0 — Cinema identity
A cleaner home-media presentation for Android TV, with a matching neutral palette on the server dashboard.
- Charcoal surfaces and warm-white focus states replace blue panels; amber is reserved for live/brand accents.
- Android programme feature area adds stronger typography, schedule context, duration and live progress.
- Branded header with date/time, rounded preview and navigation surfaces, and simpler guide hints.
- Browser desktop/mobile layout remains intact with the matching palette.
- Includes Android 0.8.1 fullscreen guide-focus and current-programme fixes.
Install the attached Android 0.9.0 APK over the existing app. Update Unraid using Check for Updates → Update with ghcr.io/minerport/vynodeiptv:latest, or pin ghcr.io/minerport/vynodeiptv:0.9.0. Reload the browser after updating.
Android build, 29 unit tests and lint passed. Browser colors were visually checked using synthetic channels. Physical Shield visual/remote acceptance remains pending. Provider-supplied EPG and live video are used; no poster artwork is fabricated.
VynodeIPTV 0.8.0 — Unified theme and complete guide cells
Android now matches the web dashboard’s navy and pale-blue styling. Both guides show available past, current and future programmes, with explicit No EPG data cells for missing schedules and gaps.
- Full Xtream EPG request with short-guide fallback in standalone Android.
- Provider timezone/date parsing and readable plain-text or encoded programme titles.
- Server retains provider-supplied XMLTV history up to seven days; future data remains provider-dependent.
- EPG refresh clears stale browser guide data; unavailable EPG no longer remains stuck on Loading.
Update Unraid using Check for Updates → Update with ghcr.io/minerport/vynodeiptv:latest, or pin ghcr.io/minerport/vynodeiptv:0.8.0. Install the attached Android 0.8.0 debug APK over the existing app. Refresh EPG in server settings after updating to import available history.
28 Android tests, Android build/lint, 11 JavaScript tests and Go race/vet passed. Browser checks used synthetic listings. Physical Shield validation remains pending. Listings depend on your provider; past guide entries do not enable catch-up playback.
VynodeIPTV 0.7.1 — Mobile-friendly dashboard
The server dashboard now adapts to phone screens while retaining the desktop TV layout.
- Horizontal phone navigation and a dismissible channel-group drawer.
- Full-width preview, collapsible player controls and accessible fullscreen return.
- One-hour mobile guide with channel names kept visible; drag or use arrows to browse times.
- Stacked settings forms and group editor; larger touch controls and no sideways page overflow at tested phone widths.
- Desktop retains the vertical rail, three-hour guide and expanded controls. Streaming, authentication and provider settings are unchanged.
Container: ghcr.io/minerport/vynodeiptv:0.7.1 or ghcr.io/minerport/vynodeiptv:latest.
In Unraid, use Check for Updates → Update if your Repository already ends in :latest. Keep your config, scratch and port mappings. Android remains 0.7.0; no APK update is needed for this web-dashboard release.
Checked with synthetic channels at 320, 390, 768 and 1440 pixel browser widths, plus browser behavior tests and the container verification workflow. Physical phone-browser testing remains pending; existing HLS.js playback requirements still apply.