Repository navigation
Releases: outkst/IPTVUltra
Releases · outkst/IPTVUltra
Release list
v3.14.0
- Live engine: the new setting "Live engine" selects hls.js or Shaka Player for the HLS channels with the rewind buffer. The default is hls.js. Shaka Player also plays E-AC-3 audio in MPEG-TS segments, which hls.js cannot play. The 2 engines share the provider workarounds. These are the wait for a cold relay, the restart after a relay restart, and the placeholder detection. The 70 MB buffer limit and the stop in the background also apply.
- Shaka Player: when a playlist refresh answers an HTTP error on each try, the engine starts again on the channel URL. When the browser buffers no video frame from the transmuxed segments, or when the transmuxer fails, the native pipeline plays the channel.
- Stall watchdog: it also counts a stall while Shaka Player waits for data.
- Codec line: the measured frame rate, and
MP3for MPEG-1 audio. - Channels that hls.js cannot play (for example HEVC or E-AC-3 in MPEG-TS segments) play through the MPEG-TS URL of the provider, which starts faster than the native HLS pipeline.
v3.13.3
- Connection limit: the app tells you that a different device uses the account only after a second check. The provider counts the last stream of the app for approximately 15 s after a channel change. Thus, the first check frequently found the account full.
- While the second check is pending, the stream error tells you that the app checks the account.
- Finished events: when the provider sends only a black placeholder, the app shows
No broadcast. The watchdog does not reload that channel. - Diagnostics: each unusual start of a live channel writes its cause, for example "watchdog" or "Reload button".
- A reload does not cause a script error when you go to the start page in the 2 s after it.
v3.13.2
- Live channels on hls.js: a relay of the provider can start again and send a new playlist from segment 0. The app then starts hls.js again on the same channel. Some event (PPV) channels had this problem.
- When the provider sends the text "Cannot read …" for a playlist, the app waits and requests the playlist again, for a maximum of 60 s. The playback does not start again from the first segment.
- The stall watchdog does not reload a slow stream while the buffer gets data. A reload made a cold relay start again.
- hls.js waits 20 s for the first byte of a slow playlist.
- Diagnostics shows the cause of each hls.js error.
- Player OSD: when the OSD is hidden, Up, Down, or a click only shows it. In the live player, Down on the bar starts the channel surfing.
v3.13.1
- Live channels: a channel on hls.js does not stop after approximately 11 s when the first playlist from the provider has an end tag. Some event (PPV) channels had this problem.
- Versions menu: the menu shows the quality variants of a channel. For each variant, it shows the resolution and the fps from the last playback.
- Push OK to play a variant.
- Push Green to make the variant the favorite. It replaces the starred variant.
- To open the menu, use the live player banner. You can also push and hold OK on a row of the guide or the channel list.
- The rows of the guide and the channel list operate when you release OK.
- The OK key that opens a player does not pause the playback when you release it.
- Archive: on a channel with catch-up, hold Left in the live player before the start of the hls.js buffer. The playback then continues in the provider archive at the same time of day.
- With the live buffer set to Off, Left starts the archive 10 s before the live point.
- The text that the app shows uses American spelling.
- The code is in 14 files in
IPTVUltra/js/, in Google style. The app operates the same as before.
v2.9.4
- Left/Right remote: short-press ±3s seek, hold for speed-ramped trick play (rewind/FF)
- Back in fullscreen exits fullscreen
- Back in main app shows confirmation dialog before returning to home screen
- Returning to home screen now fully stops and clears all EPG/playlist data and in-flight fetches
- Confirm dialog is a centered modal (reused for Clear All and Return to Home)
v2.9.3
What's New
- Fix — EPG guide now correctly populates Favorites on initial load (channels were not appearing)
- Fix — Default auto-play channel is now the first channel from Favorites instead of the first channel in the full list
- Style — Stream Info button (both standard and EPG views) now matches the Prev/Next timeline button style with semi-transparent blue fill
v2.9.2
What's New
- View isolation — Xtream playlists exclusively use the EPG guide view; M3U playlists exclusively use the standard channel list. Neither playlist type touches the other view's DOM.
- EPG INP reduction — Group changes no longer rebuild the time strip. The time strip (skeleton) is now cached per hour window; only the channel rows reset on group/search changes.
- NOW marker on column toggle — Collapsing/expanding the groups column repositions only the full-height NOW line, not the entire guide.
- rAF on group click — Group selection defers the channel/guide refresh one frame so the keypress is visually acknowledged before DOM work starts.
- 60-second tick — The per-minute EPG refresh now calls
renderEPGVisibleRows()only (not a full guide rebuild). - Fix —
goToHomeScreen()now resetsepgModeandcurrentPlaylistTypeto prevent stale state when switching between playlist types.
v2.9.0
What's New
- Long-press Enter (fullscreen) switches to last-viewed channel; short-press toggles play/pause
- EPG active-row highlight updates in-place without rebuilding the grid (reduces INP lag)
- Scroll position preservation across EPG grid and channel list re-renders
- "Now Playing" label in EPG info panel; shows time remaining instead of total duration
- Group name displayed below channel name in EPG info panel
- Tab bar redesign — connected browser-style tabs with border treatment
v2.8.7
Bug Fix
- EPG title encoding — fixed garbled/mojibake characters in programme titles and descriptions (e.g. "J+¶À")
- Base64-encoded titles from Xtream providers now properly decoded as UTF-8 instead of Latin-1
- XML entities (
&,<,', etc.) in XMLTV programme titles are now unescaped correctly
v2.8.6
EPG UI Polish
- Up Next section in the EPG info panel showing the next airing's title, description, and time range
- Favorite button moved to top-right of the EPG info panel
- Floating Groups button appears in the top-left of the screen when the groups column is hidden in EPG view
- Timestrip 15-minute ticks — hour labels with 3 tick marks between each (at :15, :30, :45)
- Stream Info button moved to top-right of the video player