Skip to content

✨ New Features#3

Open
JawadYzbk wants to merge 11 commits into
iptv-app:mainfrom
JawadYzbk:main
Open

✨ New Features#3
JawadYzbk wants to merge 11 commits into
iptv-app:mainfrom
JawadYzbk:main

Conversation

@JawadYzbk

@JawadYzbk JawadYzbk commented Mar 25, 2026

Copy link
Copy Markdown

✨ New Features

  • Added Favorite Channels feature

  • Added channel logo resolution with improved channel filtering

  • Video Player:

    • Added stream fallback and error recovery
    • Remember user's preferred stream per channel
    • Added native HLS fallback
    • Added timeshift support for live TV

🔧 Improvements

  • Simplified video player control visibility logic
  • Improved stream handling and stability
  • Enhanced live stream detection logic
  • Updated Electron + Vite configuration
  • Upgraded project dependencies

♻️ Refactoring

  • Simplified HLS handling
  • Cleaned up video player internal logic

🐛 Fixes

  • Increased live detection grace period to 6 seconds to prevent false negatives

📦 Build

  • Updated electron-vite config
  • Dependency upgrades

🚀 Summary

This release focuses on video player stability, better stream fallback, favorites support, and live TV improvements including timeshift and smarter stream detection.

image image

Remove mouse hover detection and use window focus/blur events instead.
This eliminates the _isMouseOverControl state and consolidates control
visibility management into _showControlAndResetIdle and _hideControl methods.
- Implement logo resolution with fallback logic and caching
- Add country and category filters to channel list
- Introduce global keyboard shortcuts for video player navigation
- Fix favorites navigation to prevent empty state
- Improve channel search with fuzzy matching algorithm
- Add stream selector UI with placement option to switch between available URLs
- Implement automatic fallback to next stream on network, codec, or media errors
- Add retry and manual fallback buttons to error overlay with stream status
- Introduce CPU‑based quality capping and adaptive downshifting on stalls
- Improve error handling with specific reasons and recovery attempts
Persist the last successfully played stream URL for each channel in localStorage.
When loading a channel, automatically select the previously preferred stream if available.
This improves user experience by avoiding manual stream reselection after reloads.
- Add native HLS playback fallback when Hls.js is not supported or fails
- Refactor stream loading into separate methods (_playWithHls, _playWithNative)
- Track HLS attachment state to avoid duplicate attach/detach calls
- Add fallback attempt tracking to prevent infinite retry loops
- Improve error recovery by trying native playback before failing
- Remove openStreamInVlc API and IPC handler
- Remove VLC fallback logic and native HLS playback fallback
- Simplify video player to always use HLS.js when available
- Add vlc-media-player dependency for potential future use
- Clean up unused state variables and methods
- Migrate from deprecated `externalizeDepsPlugin` to new `externalizeDeps` option
- Enable bytecode compilation for main and preload processes
- Upgrade electron-vite to v5.0.0 and related toolkit dependencies
- Update Electron to v41.0.3 and other dev dependencies to latest versions
- Add timeshift configuration options (enabled/disabled, buffer size)
- Implement timeshift UI with seek bar, live indicator, and keyboard shortcuts
- Update HLS back buffer length based on timeshift configuration
- Add timeshift controls to video player with live edge tracking
The previous 3-second threshold was too strict, causing the player to frequently switch between live and timeshift modes during normal playback. The 6-second grace period provides more stable live detection while still accurately reflecting when the user is significantly behind the live edge.

Additionally, improve visual feedback by displaying "LIVE" in red text when at live edge instead of showing an empty label.
@JawadYzbk JawadYzbk changed the title Implemented Favorite channels feature to app ✨ New Features Mar 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant