v4.9.6 - 2026-06-11
Added
-
Added Favorites (lightweight) feature.
- Users can right-click any channel name in the guide grid to Add to Favorites or Remove from Favorites.
- Favorite channels are persisted server-side per user account through the existing user preferences system.
- Favorited channels are marked with a star badge in the guide.
- Added Show Favorites Only toggle to the Guide Preferences submenu on desktop and mobile.
- Toggle label updates to Show All Channels when the favorites-only filter is active.
-
Added Channel Info Banner to the guide player.
- Banner appears when tuning a channel and displays channel logo, channel number, channel name, current program title, program time range, progress bar, remaining time, and description.
- Added an info button to manually toggle the banner.
- Added keyboard shortcut support using the
ikey when focus is not inside an input field. - Added Channel Info Banner support inside virtual-channel fullscreen overlay mode.
-
Added Guide Search / Filter panel.
- Added SEARCH link to the guide header on desktop and mobile.
- Users can search by channel name, program title, program description, group/type, category, and color metadata.
- Added type filter dropdown populated from channel groups, virtual-channel markers, and XMLTV program categories.
- Search/filter behavior updates visible guide rows and recomputes auto-scroll loops.
-
Added Channel Number Entry.
- Added
static/js/channel-number-entry.js. - Users can type numeric channel numbers to jump directly to a channel.
- Supports delayed auto-navigation after number entry.
- Supports immediate confirmation with Enter.
- Supports canceling entry with Escape or GoBack.
- Supports decimal/sub-channel numbers such as
2.1,16.5, and31.2. - Displays a retro-style channel-number HUD while typing.
- Uses
tvg-chnofrom M3U playlists when available, with row-index fallback when missing.
- Added
-
Added Last Channel Return.
- Stores the previously watched channel before switching to a new channel.
- Added
window.returnToLastChannel()helper. - Added
Lkey shortcut support through channel-number entry handling.
-
Added support for parsing
tvg-chnovalues from M3U playlists.- Parsed channel numbers are stored on channel metadata as
tvg_chno. - Guide rows now expose channel numbers through
data-chan-num. /api/channelsnow returns parsedtvg-chnovalues as the channel number when available.
- Parsed channel numbers are stored on channel metadata as
-
Added optional user-controlled channel-number display.
- Added
channel_numbers_enabledto default user preferences. - Added Show Channel Numbers / Hide Channel Numbers toggle to Guide Preferences on desktop and mobile.
- User-injected channel numbers are hidden automatically for themes that already include built-in channel numbers, including
tvguide1990andclassic-cable.
- Added
-
Added XMLTV metadata parsing for guide filtering.
- Program categories are now parsed from XMLTV
<category>entries. - Program color metadata is now parsed from XMLTV
<colour>and<color>entries. - Guide program blocks now expose category and color metadata through
data-categoriesanddata-colors.
- Program categories are now parsed from XMLTV
Changed
-
Improved guide player fullscreen behavior.
- Native video fullscreen now uses
object-fit: containso video letterboxes instead of cropping. - Fullscreen control labeling was generalized from virtual-channel-only wording to broader fullscreen wording.
- Native video fullscreen now uses
-
Improved guide preference handling.
- User preferences now include
favorite_channelsandchannel_numbers_enabled. - API preference updates sanitize
favorite_channelsas a list of non-empty strings. - API preference updates coerce invalid
channel_numbers_enabledvalues tofalse.
- User preferences now include
-
Expanded the right-click channel context menu.
- Added favorite and unfavorite actions.
- Preserved existing play, auto-load, hide, and unhide actions.
Fixed
-
Fixed channel info display behavior for virtual channel fullscreen overlays.
- Info banner and info button now appear correctly in fullscreen overlay mode.
- Info banner controls fade consistently with fullscreen overlay controls.
-
Fixed native video fullscreen cropping.
- Browser fullscreen entered from the video control bar now preserves full video framing instead of cropping to fill.
-
Fixed guide search/filter layout integration.
- Opening or closing the search panel now refreshes the fixed time bar and now-line positioning.
Tests
-
Added
tests/test_channel_info_banner.py. -
Added
tests/test_channel_number_entry.py. -
Added
tests/test_guide_search_filter.py. -
Added
tests/test_last_channel_return.py. -
Added
tests/test_user_prefs_channel_numbers.py. -
Expanded
tests/test_user_prefs.pycoverage for:- favorite channel defaults
- saving and retrieving favorites
- API favorite-channel updates
- invalid favorite-channel sanitization
- preserving favorites during partial preference updates
- channel-number preference toggling
- invalid channel-number preference sanitization
- guide preference controls for channel-number display