LiveGardenTVPlus is a modern, featureβrich IPTV player for Windows. It supports M3U playlists, JSON channel lists, EPG, channel logos, timeshift, playlist editing, Telnet console for Enigma2, and much more.
- πΊ Play & manage IPTV channels (M3U / JSON / remote URLs)
- π‘ Full EPG support with fuzzy matching, timezone handling, local cache (24h) and source selector
- πΌοΈ Channel logos β autoβfetch from remote repository (
OwnerPlugins/logos) - β±οΈ Timeshift β pause and seek back in live HLS streams
- βοΈ Powerful playlist editor β edit names, groups, URLs, logos, EPG ids, favorites, etc.
- π§© JSON import with flexible field mapping (autoβdetect, save profiles)
- π Filter & search channels, check URL status, export results
- π Dynamic language switching (English, Italian, and more)
- π¨ 16 colour themes + Light/Dark variants
- π Autoβupdater β checks for new versions and updates seamlessly
- β€οΈ Favorites β star channels and export only favourites
- π₯οΈ Modern UI β resizable sidebar, WebView2 player, HLS.js playback
- Export OK / KO β Now prompts for output format (M3U or JSON) via SaveFileDialog with filter, preserving all tags/metadata.
- Delete Selected β Allows multiple row deletion with confirmation, automatically updates filters and channel count.
- Stop Button β Added to Playlist Editor to cancel longβrunning operations (URL checks, logo fetching, etc.).
Visit the GitHub repository for updates and support.
-
Telnet Console β Full terminal window to connect and send commands to your Enigma2 decoder.
- Persistent connection settings (host, port, username, password).
- Quickβcommand list loaded from a JSON file (or editable XML), with categories for easy management.
- Command output displayed in real time.
-
Send playlist to Enigma2 β Oneβclick button in main toolbar.
- Converts the loaded playlist (M3U/JSON) into a valid Enigma2 bouquet (
userbouquet.name.tv). - Uploads the bouquet via FTP, automatically updates
/etc/enigma2/bouquets.tvand reloads the channel list via Enigma2 web interface. - Asks for a custom bouquet name and warns if the file already exists (option to overwrite).
- Converts the loaded playlist (M3U/JSON) into a valid Enigma2 bouquet (
-
EPG Enhancements
- Local cache (24 hours) to avoid repeated downloads. β EPG source selector directly in the EPG window. β Date and time displayed in program grid. β Searchβasβyouβtype with debouncing.
- Local EPG Cache β EPG data is cached for 24 hours (saved in %TEMP%\LiveGardenTVPlus\epg_cache). Reduces repeated downloads.
- Clear Cache Button β Added to Settings window with a helpful tooltip showing the cache folder location.
- Status Bar EPG Indicator β Dynamic icon (TelevisionGuide) and text color: green when EPG data exists, gray when none. Clicking opens detailed EPG window.
- Detailed EPG Window β Shows current and next program (title, time, category, description). Autoβsized layout, clean typography, channel name prominent.
- Performance β Replaced slow combo box with searchable, virtualized channel list (debounced search). Builtβin EPG source selector.
- Translations β All EPG related strings are fully localizable via LanguageManager.
Visit the GitHub repository for updates and support.
-
Modern Help Window β Replaced old MessageBox help with a fully translatable, expandable
HelpWindow. Includes sections: Playlist Loading, Playlist Editor, Player Controls, EPG & Logos, Settings, Themes, Updates, Credits. Accessible via newHelpbutton in main toolbar. -
Total Channels Counter β Added
TotalChannelsTextin status bar (leftmost). Shows number of real channels (excludes "β Back to all groups" and other navigation items). Updates dynamically when filtering (favorites only, search, drillβdown). -
Favorites Only Toggle β Replaced old checkbox with a
ToggleButtonstyled uniformly with other toolbar buttons (icon + text). Shows star icon and fully translatable text. -
AboutWindow Full Translation β Added
x:Nameto all labels and buttons; now fully localizable viaLanguageManager. Avatar GIF displays correctly (removed duplicateSourceattribute).
-
M3U online loading crash β Restored
Task.Runfor playlist parsing (v1.6 behaviour). Eliminated crash when loading remote M3U playlists. -
Total counter correction β Fixed total count to exclude pseudoβgroups and navigation items.
-
Theme picker colors β Added proper colors for Pink, Cyan, Lime, Indigo themes in
ColorPickerWindow. -
Ambiguous
Channelreference β Removedusing System.Threading.Channelsconflict. -
UI translations β Completed all missing translations in toolbar, status bar, and context menus.
-
Import Local JSON β New button
Import Localin the playlist editor. Opens a mapping window that allows associating any JSON property with internal fields (name,stream_urls,logo_url,group,tvg_id, etc.).- Autoβdetect properties using common heuristics.
- Save mapping for reuse with similar files.
- Preview first 5 channels before import.
-
Import JSON from URL β New button
Import from URLin the playlist editor. Enter a remote (raw) JSON URL, download content and apply the same mapping procedure.
-
"Load File" button (ex "Load M3U"): now filters both
.m3u/.m3u8and.jsonfiles. Autoβdetects format and directly imports JSON structured like the internal model (no mapping needed for compatible files). -
"Load Online" button: now accepts both M3U and JSON URLs. Content is analysed and handled accordingly. Tooltip and button label updated to reflect dual support.
- Added
Namecolumn to the DataGrid (previously missing). Channel names are now visible immediately. - JSON group buttons renamed for clarity:
Import Local,Import from URL,Export JSON. - All labels are fully translatable via
LanguageManager. - Column sorting enabled for all columns, including template columns (URL primary, Logo, etc.).
- Reset Order button added to restore original channel order after sorting.
- Fixed
PrimaryUrlproperty change notification inChannelJson. The main URL now appears correctly in the grid right after import. - Robust handling of
nullvalues forgroup,tvg_id,country,nanoid,logo_urlduring JSON import. - JSON import now supports:
- Root arrays
[...] - Objects containing arrays e.g.,
{"channels":[...]} - Commaβseparated objects
{...},{...}(automatic wrapping into array).
- Root arrays
- Import no longer appends to existing list β it replaces the current playlist.
- Added debug output for easier troubleshooting.
- All new strings added to language files (e.g.,
Load File,Import Local,Import from URL,Export JSON,Enter playlist URL (M3U or JSON):, etc.).
- JSON files imported from a remote URL must be publicly accessible and in raw format (e.g.,
raw.githubusercontent.com). - The mapping window is available only from the playlist editor; direct loading via
Load FileorLoad Onlineassumes the JSON already matches theChannelJsonmodel (avoids manual mapping for already compatible streams). - Click any column header to sort; use
Reset Orderbutton to revert to original order.
- Click the "Load Online" button on the main toolbar.
- Enter the full URL of the remote M3U playlist.
- The app will automatically detect the format and load the channels.
Example M3U URL (Italian channels):
https://raw.githubusercontent.com/OwnerPlugins/TivuStreamList/refs/heads/list/ios/playlist.m3u
- Click "Load Online" on the main toolbar.
- Paste the URL pointing to a raw JSON file.
- The app will recognise the JSON format and import the channels (structure must match the
ChannelJsonmodel).
Example JSON URL (Italian channels):
https://raw.githubusercontent.com/OwnerPlugins/famelack-data/main/tv/raw/countries/it.json
- Open the Playlist Editor (
Edit Playlistbutton). - Click "Import Local" (JSON group).
- Select a JSON file from your computer.
- A mapping window will appear β use "Auto-detect" to suggest field mappings or manually assign JSON properties to internal fields.
- Click "Import" to add the channels.
- In the Playlist Editor, click "Import from URL".
- Enter the raw JSON URL.
- Map the fields (autoβdetect helps) and import.
- Root array:
[ {...}, {...} ] - Object containing an array:
{ "channels": [...] } - Commaβseparated objects:
{...},{...}(automatically wrapped into an array)
- Click any column header to sort channels by that field.
- Click "Reset Order" (in the editorβs Action group) to revert to the original channel order.
- Recent files button β New button in the main toolbar (clock icon + βRecentβ) that shows a popup list of the last 5 opened M3U files.
- Persistent list β The list of recent playlists is saved between sessions and updated each time you load a local M3U file.
- Quick access β Click any entry in the popup to reload the playlist immediately.
- Popup alignment β Both the βRecentβ and βToolsβ popups are now properly aligned to the left side of their respective buttons.
- Localization β All UI texts (EPG, logos, editor, settings, detail window, URL editor) translatable via
LanguageManager. Added language change event handling to all windows. - Clickable Credits β Links to CORVOBOYS.ORG and LINUXSAT-SUPPORT.COM.
- URL Check β Tests only filtered channels; shows deterministic progress bar. Channels with zero working URLs get status "FAIL".
- Export OK / FAIL β Export only working or failed channels (based on URL check).
- Enrich with EPG β Adds missing
tvg-idtags using fuzzy matching. - Check Duplicates β Detects duplicate URLs across channels.
- Multiple URLs per channel β Commaβseparated URLs in cell edit mode; stored as list in JSON.
- Channel Details Window β Doubleβclick row or click edit button to open a dedicated window with full channel details (name, URL, group, logo, tvg-id, favorite, country, geoblocked, languages, logo preview). Includes Previous / Next navigation through playlist and live logo preview update.
- Icon column β Small logo preview before channel name in the grid.
- Dynamic Theme Support β All windows respect the selected theme (16 themes + Light/Dark). Standard brush keys (
WindowBackgroundBrush,ForegroundBrush,ControlBackgroundBrush,BorderBrush,AccentBrush,AlternateRowBackgroundBrush) unified across all theme files. - Progress Feedback β Indeterminate progress while downloading logos index; deterministic progress during Fetch Logos.
- Resizable Sidebar β Draggable
GridSplitterbetween channel list and player.
- Fixed thread safety issues in timeshift timer and EPG parsing.
- Fixed export OK/FAIL after URL check β channels with zero working URLs now get "FAIL" status.
- Fixed theme colors in SettingsWindow and PlaylistEditorWindow (all controls now use
DynamicResource). - Fixed
UrlToImageConverterand other converters (syntax errors removed). - Fixed window background being black β added fallback brushes in App.xaml and unified theme keys across all theme files.
- Fixed language change event subscription (use
LanguageManager.LanguageChanged += ApplyLanguagewithout parameters). - Fixed channel details window counter positioning (moved below buttons, centered).
- Logo Source Selector β Choose from predefined repositories (OwnerPlugins/logos, picons/picons) or enter a custom URL in Settings.
- Subfolder Filtering β Limit logos to specific folders (SNP, PROVIDER, ALL) for faster matching.
- Fetch Logos β Automatically assign logos to playlist channels using fuzzy matching (Levenshtein distance) with adjustable threshold.
- Logo Picker Window β Browse available logos with search, thumbnails (on/off toggle), and doubleβclick selection. Virtualized list for performance.
- Manual Logo Assignment β Click the β...β button in the Logo cell to open the picker and assign a logo manually.
- Persistent Cache β Logos index and thumbnails are cached locally. First load is slower; subsequent loads are instant.
- Adjustable Matching Threshold β Slider in Settings (0.5 β 1.0) controls how strictly channel names are matched to EPG ids. Lower = more matches, higher = exact or very similar names.
- EPG Source Selector β Choose from multiple XMLTV files (epgshare01) or enter a custom URL (already present, now with threshold control).
- Unified Save As β Export playlist to M3U, JSON, or CSV from a single dialog.
- New Playlist Button β Create an empty playlist directly from the editor.
- Reorganized Toolbar β Buttons grouped into bordered sections (Playlist & Groups, URL Check, JSON, Filtered Export, EPG & LOGOS, Actions) for clarity.
- Enhanced Filters Section β Each filter group has its own border and label; each field has a descriptive label above it.
- Improved Export Logic β Channels without a valid URL are skipped when saving M3U (avoids empty entries).
- Group Management β Add, rename, delete groups with multiβselect support; new group creates an empty channel row.
- Dynamic Theme Support β All UI elements (ComboBoxes, filter labels, etc.) now respect the selected theme. Added fallback brushes to prevent black backgrounds.
- Progress Feedback β Deterministic progress bar during βFetch Logosβ (channelβbyβchannel) and indeterminate progress while downloading the logos index.
- Localization β All new texts (threshold labels, logos picker, editor buttons, filter labels) are translatable via LanguageManager.
- Fixed
NullReferenceExceptionin LogoPickerWindow and SettingsWindow (added null checks and Loaded event initialization). - Fixed M3U export β URLs are no longer missing; channels without a valid URL are skipped.
- Fixed PlaylistEditorWindow constructor β removed erroneous line that caused compile errors.
- Fixed theme colors in SettingsWindow (ComboBoxes and labels now follow the selected theme).
- Fixed filter section colors in PlaylistEditorWindow (text boxes and labels use dynamic resources).
- Full TV Guide Window β Dedicated EPG window accessible from the main toolbar.
- Program List β Select a channel and view all programmes for the day (start/end time, title, description, category).
- Program Details β Doubleβclick any programme (or use the "Details" button) to see the full description.
- Fuzzy Channel Matching β Automatically matches M3U channels to XMLTV channels even when
tvg-idis missing or differs (Levenshtein distance). - Selectable EPG Source β Choose from multiple XMLTV files (epgshare01) or enter a custom URL in Settings.
- XMLTV Support β Parses
.xmland.gzcompressed files with timezone offset handling. - Current Programme β Status bar shows the current programme title and local time for the selected channel.
- Enrich M3U β Editor button adds missing
tvg-idtags to your playlist based on fuzzy matching.
- Pause / Resume β Pause a live HLS stream and resume from the same point (circular buffer).
- Timeshift Slider β Appears automatically when buffer is available; drag to seek backwards in the live stream.
- "Live" Button β Instantly return to the most recent point of the live stream.
- Works with HLS (
.m3u8) and direct video files (.mp4,.mkv,.ts).
- Channel Logos β Logos (
tvg-logo) are downloaded and shown next to each channel, with fallback icon. - M3U8 Support β Player correctly plays
.m3u8(HLS) streams via HLS.js. - Improved M3U Parser β Skips unknown tags and extra comment lines, ensures all channels load.
- Resizable Sidebar β Draggable
GridSplitterbetween channel list and player. - Larger UI Elements β Logos 32x32, channel text 16px, status bar height 55px.
- Clickable Credits β Links to
CORVOBOYS.ORGandLINUXSAT-SUPPORT.COM. - Dynamic Language Switching β UI updates instantly (no restart required).
- Stable Streaming β Fixed issues that caused playback to fail after EPG and logos were added.
- Fixed playlist URL not loading correctly on startup.
- Fixed language persistence and UI refresh.
- Fixed parser bug where channels with extra metadata lines were skipped.
- Fixed thread safety issues in timeshift timer and EPG parsing.
- Fixed settings dialog crashing on save (no more full restart).
- Full channel view in an editable
DataGridwith columns:Name,URL (primary),Group,Logo,TvgId,Favorite,Country,GeoBlocked,Nanoid,Languages,Youtube URLs,Stream URLs,Status. - Inline editing of all fields (except readβonly columns like
LanguagesandURLswhich display concatenated lists). - Group management:
Add Groupβ assigns a new group to all channels without a group.Rename Groupβ renames the group of the selected channel (and all channels in that group).Delete Groupβ deletes all channels belonging to the selected group.
- URL check:
- Tests all URLs in
stream_urlsandyoutube_urls. - Displays status in the
Statuscolumn (e.g.2/3 OK,No URLs,FAIL). - Shows a progress bar and completion message.
- Tests all URLs in
- Advanced filters (above the DataGrid):
- Filters for every column (text, checkboxes) with placeholders and tooltips.
Apply FilterandClear Filterbuttons.- Dynamic counter
(n / total)of currently visible channels. - Visual border with the title
FILTERS.
- Selective export:
Export OKβ exports only channels withOKstatus to an M3U file.Export Failedβ exports only channels withFAILstatus to an M3U file.Export Filtered M3Uβ exports the currently filtered channels to an M3U file.Export Filtered JSONβ exports the currently filtered channels to a JSON file (full format).Export JSONβ exports the entire playlist to a JSON file (all fields).Import JSONβ loads a playlist from a JSON file (replaces current data).
- Save:
Save As M3Uβ saves the current playlist (after edits) as an M3U file (standard fields only).
- Close β button to exit the editor.
[
{
"nanoid": "A7FjWEoxfZfQRg",
"name": "BBC News Europe",
"stream_urls": [
"https://aegis-cloudfront-1.tubi.video/bb1fc6ad-9948-42ea-aaf3-20acfcdeecac/playlist.m3u8",
"https://amg00793-amg00793c6-firetv-us-4067.playouts.now.amagi.tv/playlist.m3u8",
"https://amg00793-amg00793c6-xumo-us-2669.playouts.now.amagi.tv/BBCStudios-BBCEarthA-hls/playlist.m3u8",
"https://pb-zjy36qhp8e8cz.akamaized.net/BBC_Earth_US.m3u8"
],
"youtube_urls": [],
"languages": [
"eng"
],
"country": "uk",
"isGeoBlocked": true,
"logo_url": "https://example.com/logos/bbc.png",
"group": "International",
"tvg_id": "bbc.world",
"isFavorite": false
},
{
"nanoid": "il2nOFg4MhHcyB",
"name": "BBC Four",
"stream_urls": [
"https://streamer.nexyl.uk/48559ccd-6400-457d-8acc-06b9e24c2ed8.m3u8"
],
"youtube_urls": [],
"languages": [
"eng"
],
"country": "uk",
"isGeoBlocked": true,
"logo_url": "https://example.com/logos/bbc.png",
"group": "International",
"tvg_id": "bbc.world",
"isFavorite": false
}
]- Playlist Editor β Builtβin editor to modify channel names, URLs, logos, groups, tvgβid, and favorites. Save changes as a new M3U file.
- Group Management β Add, rename, or delete entire channel groups directly from the editor.
- URL Health Check β Test all channel URLs (with GET + range header) and display status (OK/FAIL) in the editor.
- Export OK / FAIL Channels β Export working or nonβworking channels to separate CSV files for further inspection.
- Save Status Report β Export complete channel list with status to a CSV file.
- Save Playlist As β Button in main toolbar to save the current playlist (including any inβmemory edits) to a new M3U file.
- Export Favorites β Export only favourite channels to a standalone M3U playlist.
- Persistent Favorites β Favourites are saved in
favorites.jsonand automatically restored when reloading the same playlist (URLβbased matching with normalisation). - Timeshift (Pause Live) β Pause/Resume button in status bar allows pausing live HLS streams (works within the buffer window).
- Improved About Window - Dedicated about dialog with logo, animated avatar and a changelog that loads directly from the GitHub README (offline fallback included).
- Larger UI & Better Layout - Bigger icons, larger fonts, a resizable sidebar (GridSplitter) and clickable credit links (CORVOBOYS.ORG / LINUXSATβSUPPORT.COM). Much more comfortable on modern screens.
- Fixed false negatives in URL health check (now uses GET with range header).
- Fixed favourite star being cut off in the channel list (redesigned with a Grid layout).
- Fixed groups collapsing after toggling favourites (no more full refresh).
- Fixed playback starting with audio muted.
- Fixed several XAML binding errors and improved TreeView performance.
- Fixed image resources not showing in runtime (proper
pack://applicationURIs). - Fixed
Environment.Exit(0)causing the app to close instead of restarting during update. - Fixed missing
IsFavoritecolumn in the playlist editor.
- Full EPG Support β Electronic Program Guide now fully functional with timezone handling. Current programme info displayed in the status bar.
- Channel Logos β Logos (
tvg-logo) are downloaded and shown next to each channel, with a fallback icon if missing. - M3U8 Support β Player now correctly plays
.m3u8(HLS) streams via HLS.js integration. - Improved M3U Parser β Skips unknown tags (
#EXTSIZE,#EXTVLCOPT, etc.) and extra comment lines, ensuring all channels load properly. - Resizable Sidebar β Added draggable
GridSplitterbetween channel list and player. - Larger UI Elements β Increased icon and font sizes for better readability (logos 32x32, channel text 16px, status bar height 55px).
- Clickable Credits β Split credits with separate clickable links for
CORVOBOYS.ORGandLINUXSAT-SUPPORT.COM. - Dynamic Language Switching β UI updates instantly when changing language in Settings (no restart required).
- Stable Streaming β Fixed issues that caused playback to fail after EPG and logos were added.
- Fixed playlist URL not loading correctly on startup.
- Fixed language persistence and UI refresh.
- Fixed parser bug where channels with extra metadata lines were skipped.
- Fixed
Environment.Exit(0)causing app to close instead of restart during update.
-
Electronic Program Guide (EPG) support
- EPG URL (
x-tvg-url) is automatically extracted from the M3U playlist header. - Program data is downloaded in the background (supports
.gzcompressed XMLTV). - Current programme title, start and end times are displayed in the status bar, automatically converted to the userβs local timezone.
- Timezone handling: supports UTC with explicit offset (e.g.,
+0200) or assumed UTC.
- EPG URL (
-
Channel logos
- Channel icons (
tvg-logo) are now displayed next to each channel in the TreeView. - Images are loaded from remote URLs with a fallback default icon when the logo is missing or fails to load.
- Improved visual appearance with larger, adjustable icon sizes (32x32) and bigger font for channel names.
- Channel icons (
-
M3U parser improvements
- The parser now correctly skips extra metadata lines (e.g.,
#EXTSIZE,#EXTVLCOPT) that were breaking URL extraction. - All channels, including those with additional tags, are now properly loaded.
- The parser now correctly skips extra metadata lines (e.g.,
-
Streaming stability
- Restored reliable HLS playback that was temporarily affected by parser changes.
- WebView2 player initialisation simplified to avoid race conditions.
-
UI enhancements
- Added a draggable
GridSplitterbetween channel list and player (resizable sidebar). - Toggle sidebar button now hides both the channel column and the splitter.
- Channel list items (logos, folder icons, text) enlarged for better readability.
- Added a draggable
- Autoβupdate β A new fix for "Update" and restarts the app after replacing files.
-
Autoβupdate β A new "Update" button (toolbar or Help menu) checks for a newer version on GitHub. If found, it downloads the ZIP, extracts it, and restarts the app after replacing files.
-
Version display β The current version (e.g.,
1.0) now appears in the main window title, in the Help dialog, and in the "No updates available" message. -
Improved installer (Inno Setup)
- Multiβlanguage selection at startup (English, Italian, Arabic, French, Turkish, Polish, German, Spanish, Dutch, Portuguese, Russian).
- Donation page with QR codes (PayPal & Koβfi).
- Optional .NET Runtime info page with a clickable download link.
-
Cleaner distribution β The ZIP and setup no longer include WebView2 cache or duplicate folders (
Languages\Languages,PlayerHost\PlayerHost). -
Translations β All updateβrelated messages now use
LanguageManager.GetTranslation()for easier localization.
- Playlist support β Load M3U/M3U8 files from your PC or from a remote URL.
- GitHub playlist browser β Automatically fetches all
.m3ufiles from the TivuStreamList repository (root +local/subfolder). Includes a fallback static list. - Channel grouping β TreeView with group drillβdown, search, favorites.
- Themes β 16 predefined color themes + Light/Dark mode, changeable at runtime.
- Player controls β Play/Pause, speed (0.5Γ, 1Γ, 2Γ), buffer slider (1β10 seconds), PictureβinβPicture (PIP).
- Fullscreen mode β Hides all UI; press ESC to exit.
- Sidebar toggle β Collapse the channel list to focus on video.
- Settings window β Change buffer size, select online playlist (GitHub refresh), and choose UI language (see note below).
- Persistent preferences β Saves last playlist URL, buffer, theme, and language (language not yet fully applied).
- Windows 10 / 11 (x64 or x86)
- .NET 10 Runtime (or SDK for development)
- WebView2 Runtime (usually preβinstalled on Windows 11)
- Go to the Releases page (or clone the repository).
- Download
LiveGardenTVPlus.exe(standalone) or the installer. - Run the application β no additional configuration required.
git clone https://github.com/OwnerPlugins/LiveGardenTVPlus.git
cd LiveGardenTVPlus
dotnet build -c ReleaseThe executable will be in bin/Release/net10.0-windows/.
LiveGardenTVPlus/
βββ App.xaml / App.xaml.cs
βββ MainWindow.xaml / MainWindow.xaml.cs
βββ Views/
β βββ AboutWindow.xaml(.cs)
β βββ ChannelDetailsWindow.xaml(.cs)
β βββ ColorPickerWindow.xaml(.cs)
β βββ EpgWindow.xaml(.cs)
β βββ HelpWindow.xaml(.cs)
β βββ JsonImportMappingWindow.xaml(.cs)
β βββ LogoPickerWindow.xaml(.cs)
β βββ PlaylistEditorWindow.xaml(.cs)
β βββ SettingsWindow.xaml(.cs)
β βββ TelnetConfigWindow.xaml(.cs)
β βββ TelnetConsoleWindow.xaml(.cs)
β βββ UrlListEditorWindow.xaml(.cs)
β βββ XtreamLoginDialog.xaml(.cs) (placeholder)
βββ Converters/
β βββ BoolToStarColorConverter.cs
β βββ BoolToStarKindConverter.cs
β βββ BoolToVisibilityConverter.cs
β βββ FirstUrlConverter.cs
β βββ StringToVisibilityConverter.cs
β βββ UrlToImageConverter.cs
βββ Services/
β βββ EpgService.cs
β βββ FavoritesManager.cs
β βββ GitHubPlaylistFetcher.cs
β βββ ImageCache.cs
β βββ JsonMapper.cs
β βββ LanguageManager.cs
β βββ LogoService.cs
β βββ M3uParser.cs
β βββ TelnetClient.cs
β βββ ThemeManager.cs
β βββ TranslationHelper.cs
β βββ UserPreferences.cs
βββ Models/
β βββ Channel.cs
β βββ ChannelEditable.cs
β βββ ChannelGroup.cs
β βββ ChannelJson.cs
β βββ EpgModels.cs
β βββ EpgProgram.cs
β βββ LogoInfo.cs
β βββ MappingConfig.cs
βββ Updater/
β βββ Updater.cs
βββ Languages/ (92+ .lng files)
βββ Themes/ (16 .xaml theme files + logo-garden.png, avatar.gif)
βββ PlayerHost/
βββ player.html
-
Load a playlist
- Click
Load M3U(local file) orOnline M3U(enter raw URL). - Or go to
SettingsβRefresh from GitHubβ select a playlist β pressLOADorSAVE.
- Click
-
Play a channel
- Click any channel in the tree view. The video starts automatically.
-
Manage groups
- Click a group name to see only its channels.
- Click
β Back to all groupsto return.
-
Favorites
- Rightβclick a channel (or use the star icon) to add/remove favorites.
- Toggle the
β Favorites onlycheckbox.
-
Search
- Type in the search box to filter channels (flat result list).
-
Theme & UI
- Use the palette icon to choose a color theme.
Hide Listcollapses the sidebar.Fullscreenhides all UI (press ESC to exit).- Speed buttons change playback speed.
- Drag & drop a
.m3ufile onto the window.
- Development: Beatrice (original author) & community contributions.
- Playlist repository: OwnerPlugins/TivuStreamList β massive collection of Italian and international M3U streams.
- HLS playback: hls.js (MIT license)
- UI components: MaterialDesignThemes.Wpf
- WebView2: Microsoft Edge WebView2 (Microsoft)
- Inspiration and testing: CorvoBoys community (corvoboys.org) | Linuxsat-Support community (linuxsat-support.com)
This project is released under the MIT License β see LICENSE file for details.
Bug reports and pull requests are welcome. Please open an issue first to discuss major changes. For language translation fixes (the current limitation), any help is highly appreciated!
For questions or suggestions, visit the GitHub repository or the official website corvoboys.org.
Happy streaming! π₯




















