Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 36 additions & 73 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,42 @@ This project follows [Semantic Versioning](https://semver.org/).

---

## v4.9.5 - 2026-04-29

### Added
- Added channel logo to be displayed in "Current Program" information area.
- Added channel logo support to the `/api/current_program` response.
- The endpoint now returns a top-level `logo` field for the requested channel.
- If a channel has no logo, the endpoint returns an empty string instead of omitting the field.
- Added regression coverage in `tests/test_current_program_logo.py` to ensure the logo field is present without breaking existing program metadata.
- Added ability to hide channels per user.
- Users can right-click any channel name in the guide grid to access a context menu with **Hide Channel** / **Unhide Channel** options; hidden channels are persisted server-side per user account.
- Added **Show/Hide Hidden Channels** toggle to the **Guide Preferences** submenu in the Settings menu (desktop and mobile) so users can reveal or re-hide all their hidden channels with one click.
- Admins can now view a summary of hidden channels per user and **set hidden channels directly** from the **Manage Users** preferences panel using a multi-select channel picker — selecting channels marks them as hidden, deselecting all clears the list.
- Added **IPTV Backends** wiki page (`docs/wiki/IPTV-Backends.md`) listing compatible IPTV server software that provides HLS segmenter streams (#189).
- Documents Tunarr, dizqueTV, Channels DVR, TVHeadend, Jellyfin, Plex, and Emby as ErsatzTV alternatives.
- Includes an FFmpeg direct-segmenter example for advanced users.
- Includes guidance on using the built-in stream detector to verify backend compatibility.
- Updated `README.md` and `docs/wiki/FAQ.md` to reference the new page and broaden ErsatzTV-specific language.

### Removed
- Removed **Sizzle Reels** feature (hover-to-preview channel stream). The `sizzle_reels_enabled` preference key has been retired; any stored values are silently ignored going forward.

### Fixed
- Fixed virtual channel standalone pages not fitting the viewport on mobile devices.
- Updated `weather.html`, `news.html`, `status.html`, `traffic.html`, `nasa.html`, and `on_this_day.html` to use `height: 100vh` (instead of `min-height: 100vh`) so the page fills the screen without overflow.
- Added `calc(100vh * 16 / 9)` as an additional constraint to each channel frame's `width: min(...)` so the 16:9 frame stays fully visible and correctly proportioned on landscape mobile screens. This brings these pages in line with `sports.html` and `updates.html`.
- Improved mobile layout of the Virtual Channels admin page (`/virtual_channels`):
- Channel list items now wrap gracefully on narrow screens instead of overflowing.
- Channel names allow wrapping on very small viewports.
- Per-channel preferences fields stack vertically at ≤ 700 px.
- Traffic demo city table gains horizontal scrolling so all columns remain accessible on narrow screens.
- Audio file list items stack vertically on mobile so filenames and audio controls are readable.
- Drag handles in the Channel Order list are larger for easier touch interaction.
- Page title font size is reduced slightly on narrow screens to prevent overflow.

---

## v4.9.4 - 2026-04-25

### Added
Expand All @@ -15,7 +51,6 @@ This project follows [Semantic Versioning](https://semver.org/).
- Deprecation notice added to the Windows Installation section of `INSTALL.md`.
- Deprecation note added to `ROADMAP.md` under Installer Enhancements.
- Deprecation notice shown on the **About** page when RetroIPTVGuide is running on Windows.
- The About page now shows a Windows deprecation notice when running on Windows.
- Added structured wiki documentation under `docs/wiki/`:
- `Home.md` — wiki landing page with navigation table
- `Installation.md` — full installation guide covering Docker, Linux, Raspberry Pi, and Windows
Expand All @@ -24,78 +59,6 @@ This project follows [Semantic Versioning](https://semver.org/).
- `FAQ.md` — frequently asked questions
- `Troubleshooting.md` — common problems and step-by-step fixes
- Updated `README.md` to link to the new wiki pages.
- Added Space Channel naming to replace NASA-facing labels.
- Added optional external sports data configuration:
- External sports data is disabled by default.
- Users must explicitly enable external sports data.
- Users must provide their own compatible scores API base URL.
- Added notice that RetroIPTVGuide does not provide sports data.
- Added weather channel segment rotation controls.
- Current Conditions
- 5-Day Forecast
- Regional Radar
- Severe Weather Alerts
- Added configurable weather segment duration.
- Added NOAA-style regional radar URL generation based on configured latitude/longitude.
- Added XMLTV program icon support for guide display.
- Added M3U `group-title` parsing for channel grouping.
- Added new guide theme styling:
- Classic Cable-style theme rules
- Icon/ErsatzTV-style guide theme rules

### Changed
- Bumped application version from `v4.9.3` to `v4.9.4`.
- Updated release date from `2026-04-08` to `2026-04-25`.
- Renamed the virtual NASA channel display name to **Space Channel**.
- Updated NASA-facing preview text to Space Channel-facing text.
- Removed hardcoded ESPN scoreboard API behavior.
- Replaced ESPN-specific sports score fetching with a user-configured external JSON scores endpoint.
- Changed sports league defaults so leagues are no longer enabled by default.
- Changed external sports data behavior so no outside sports requests are made unless explicitly enabled.
- Changed virtual channel defaults from enabled by default to disabled by default.
- Changed default overlay refresh from 300 seconds to 30 seconds.
- Updated Updates / Announcements wording from “Beta” to “Pre-release”.
- Updated README documentation links to point to the new wiki documentation.
- Updated install documentation to better position Docker as the recommended long-term deployment method.
- Updated guide theme handling so server-side/admin-assigned default themes override local browser storage.
- Updated guide rendering to carry channel group metadata into the DOM.
- Updated program blocks to support optional XMLTV icon artwork.
- Updated Channel Mix fullscreen behavior to better sync the active sub-channel iframe while fullscreen is open.
- Updated Virtual Channels admin UI:
- Shows disabled virtual channels differently due to default-disabled behavior.
- Adds weather rotation details.
- Adds sports external data opt-in controls.
- Adds sports scores base URL input.
- Starts icon pack details collapsed by default.
- Updated diagnostics/config reporting to include newer virtual-channel and sports/weather configuration fields.
- Updated Linux and Raspberry Pi installer scripts.
- Updated Windows installer scripts with deprecation notices.
- Updated CodeQL workflow configuration.
- Updated Unraid Docker documentation wording.

### Fixed
- Fixed virtual channel enablement logic so missing settings no longer implicitly enable all virtual channels.
- Fixed sports channel behavior to avoid relying on a specific third-party API by default.
- Fixed weather virtual channel layout to support multi-screen rotation without overflowing.
- Fixed guide theme persistence so admin/user-selected defaults apply reliably.
- Fixed tuner validation behavior to allow single `.m3u8` stream tuners without requiring an XML URL.
- Fixed tuner validation behavior around private/local M3U URLs.
- Fixed drag/reorder handling cleanup in the Virtual Channels admin page.
- Fixed additional test coverage around:
- virtual channels
- tuner validation
- traffic demo behavior
- admin diagnostics
- app configuration diagnostics

### Removed
- Removed default Plex and Tubi sample tuner entries.
- Removed ESPN-specific naming and API dependency from sports score handling.
- Removed public-facing NASA channel naming in favor of Space Channel naming.

### Deprecated
- Deprecated the Windows installer path for future removal in v5.0.
- Docker is now the recommended deployment method going forward.

---

Expand Down
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,11 @@ It aggregates **IPTV playlists and XMLTV program data** and presents
them in a **retro‑style channel guide** designed for home lab and
local network deployments, including use on smart TV browsers.

The project works particularly well alongside playout systems such as
**ErsatzTV**, but supports any IPTV backend that provides:
The project works well alongside any IPTV playout system that provides HLS segmented
streams, such as **Tunarr**, **dizqueTV**, **Channels DVR**, **ErsatzTV**, and others.
See [IPTV Backends](docs/wiki/IPTV-Backends.md) for a full compatibility list.

Any backend that provides:

- `.m3u` / `.m3u8` playlists
- XMLTV `.xml` EPG data
Expand Down Expand Up @@ -115,6 +118,7 @@ A structured wiki is available in [`docs/wiki/`](docs/wiki/Home.md):
- [Home](docs/wiki/Home.md) -- Wiki home and navigation
- [Installation](docs/wiki/Installation.md) -- Installation and update instructions
- [Configuration](docs/wiki/Configuration.md) -- Tuner setup and settings
- [IPTV Backends](docs/wiki/IPTV-Backends.md) -- Compatible IPTV servers with HLS output
- [Virtual Channels](docs/wiki/Virtual-Channels.md) -- Built-in virtual channels
- [FAQ](docs/wiki/FAQ.md) -- Frequently asked questions
- [Troubleshooting](docs/wiki/Troubleshooting.md) -- Common problems and fixes
Expand All @@ -139,7 +143,8 @@ Many IPTV servers output **MPEG‑TS streams**, which are not directly
playable in browsers.

For best compatibility, use an IPTV backend that provides **HLS
output**, such as **ErsatzTV**.
output**, such as **Tunarr** or **Channels DVR**. See
[IPTV Backends](docs/wiki/IPTV-Backends.md) for a full list of compatible servers.

------------------------------------------------------------------------

Expand Down
59 changes: 13 additions & 46 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ These are **not yet implemented**, partially implemented, or completed in previo
## 🔮 Feature Upgrades

### 1. Tuner Management
- [x] Add ability to **add/remove tuners** from the UI *(v2.3.0)*
- [x] Add ability to rename tuners via the UI *(v2.3.0)*
- [x] Support for **.m3u8 single-channel playlists** as tuner sources *(v4.6.0)*
- [x] Validate tuner URLs *(v2.0.0 → improved v4.9.1–v4.9.4)*
- [x] Add ability to **add/remove tuners** from the UI (v2.3.0).
- [x] Add ability to rename tuners via the UI (v2.3.0).
- [x] Support for **.m3u8 single-channel playlists** as tuner sources. *(v4.6.0)*
- [x] Validate tuner URLs *(v2.0.0 → improved v4.9.1–v4.9.2)*
- [x] Duplicate tuner name prevention *(v4.6.0)*
- [x] Optional auto-refresh of tuner lineup *(v4.3.0)*
- [x] Per-user tuner assignment and default preferences *(v4.7.0)*
Expand All @@ -32,18 +32,14 @@ These are **not yet implemented**, partially implemented, or completed in previo
- [x] Post-install verification *(v3.1.0)*
- [x] Unified guide refresh scheduler *(v4.2.0)*
- [x] Sanitized diagnostics and error responses *(v4.9.1–v4.9.2)*
- [x] Expanded diagnostics/config reporting *(v4.9.4)*

---

### 3. Guide & Playback
- [x] Auto-Scroll *(v4.1.0 → v4.6.0 enhancements)*
- [x] Responsive layout *(v4.2.0)*
- [x] Fullscreen improvements for virtual channels *(v4.9.3)*
- [x] Channel Mix dynamic fullscreen switching *(v4.9.3 → improved v4.9.4)*
- [x] XMLTV program icon support *(v4.9.4)*
- [x] M3U `group-title` parsing *(v4.9.4)*
- [x] Theme priority handling (server/admin defaults override stale browser storage) *(v4.9.4)*
- [x] Channel Mix dynamic fullscreen switching *(v4.9.3)*
- [ ] Search/filter box
- [ ] Favorites (lightweight)
- [ ] Channel Info Banner
Expand Down Expand Up @@ -78,18 +74,14 @@ These are **not yet implemented**, partially implemented, or completed in previo
- [x] Mobile responsiveness *(v4.2.0)*
- [x] Theme auto-detect *(v4.5.0)*
- [x] Display size settings *(v4.6.0)*
- [x] Virtual channel fullscreen enhancements *(v4.8.0–v4.9.4)*
- [x] New guide themes:
- Classic Cable Style *(v4.9.4)*
- Icon / ErsatzTV Style *(v4.9.4)*
- [x] Virtual channel fullscreen enhancements *(v4.8.0–v4.9.3)*

---

### 6. Cross-Platform
- [x] Linux / Windows / Raspberry Pi installers *(v4.0.0)*
- [x] Windows parity *(v4.1.0)*
- [ ] TrueNAS SCALE App Catalog certification
- [ ] Windows installer retirement in v5.0 (Docker-first direction)

---

Expand All @@ -101,26 +93,16 @@ These are **not yet implemented**, partially implemented, or completed in previo

### 8. Virtual Channels
- [x] Virtual Channels framework *(v4.8.0)*
- [x] Weather *(v4.8.0 → expanded v4.9.4)*
- [x] Weather *(v4.8.0)*
- [x] News *(v4.8.0)*
- [x] Traffic *(v4.8.0)*
- [x] System Status *(v4.8.0)*
- [x] Updates *(v4.9.3)*
- [x] Sports *(v4.9.3 → reworked v4.9.4)*
- [x] Space Channel *(renamed from NASA in v4.9.4)*
- [x] Sports *(v4.9.3)*
- [x] NASA *(v4.9.3)*
- [x] On This Day *(v4.9.3)*
- [x] Channel Mix *(v4.9.3)*
- [x] Expanded Virtual Channels admin UI *(v4.9.3 → improved v4.9.4)*
- [x] Virtual channels default disabled for safer deployments *(v4.9.4)*
- [x] Weather segment rotation:
- Current Conditions
- 5-Day Forecast
- Regional Radar
- Severe Weather Alerts *(v4.9.4)*
- [x] Configurable weather segment duration *(v4.9.4)*
- [x] Regional radar generation using configured coordinates *(v4.9.4)*
- [x] External sports data opt-in only *(v4.9.4)*
- [x] User-configurable sports scores API base URL *(v4.9.4)*
- [x] Expanded Virtual Channels admin UI *(v4.9.3)*
- [ ] Advanced Virtual Channel Composition Engine
- Scheduled rotation blocks
- Weighted/random playback
Expand All @@ -133,34 +115,19 @@ These are **not yet implemented**, partially implemented, or completed in previo
- [x] DB schema migration guards *(v4.7.1)*
- [x] Security hardening *(v4.9.1–v4.9.2)*
- [x] Database-backed activity logging *(v4.9.3)*
- [x] CodeQL workflow improvements *(v4.9.4)*

---

## 🍓 Installer Enhancements
- [x] Unified installer architecture
- [x] Windows parity
- [x] Windows deprecation notices added *(v4.9.4)*
- [ ] **Deprecate Windows installer in v5.0** — Docker is the recommended deployment method going forward

---

## 📚 Documentation
- [x] Added GitHub Wiki-ready documentation structure *(v4.9.4)*
- Home
- Installation
- Configuration
- Virtual Channels
- FAQ
- Troubleshooting
- [x] Updated README links to point users toward the new wiki documentation *(v4.9.4)*
- [x] Updated install documentation around Docker-first deployment direction *(v4.9.4)*
- [ ] **Deprecate Windows installer in v5.0** — Docker is the recommended deployment method going forward

---

## User Submitted Enhancements
- [x] Resize Pop Out Video *(v4.6.0)*
- [x] Resize video *(v4.6.0)*
- [x] Auto load Channel from Guide
- [ ] Auto load Channel from Guide
- [x] Adjustable scrolling speed *(v4.6.0)*
- [x] Unraid Template
- [x] Unraid Template
Loading
Loading