RetroTV Simulator v2.0.0
š Quick Download
šŖ Windows .exe
Requires VLC Media Player installed. ffmpeg for DVR recording is included in the installer.
A retro-styled desktop IPTV player and media centre ā your streams, your channels, your TV.
⨠Features
- Setup Wizard: On first launch, RetroTV now shows a guided setup dialog. Choose curated channels from N5 Networks, import your own M3U/M3U8 playlist from a file or URL, and optionally add an EPG source ā all before you even see the main screen. No more blank startup on a fresh install. v2.0
- Channel Builder: Build custom channels from video files on your computer. Click
ļ¼ Add Channel ā āŗ OPEN CHANNEL BUILDER to pick files or entire folders, drag to reorder, toggle shuffle and commercial breaks ā then save as an M3U playlist in the playlists/ folder. No manual file editing required. v2.0
- M3U Playlist Import: Import channels directly from local or remote M3U/M3U8 playlists. Available in the Channel Editor (
⬠Import M3U), Settings dialog (⬠Import M3Uā¦), and the first-run setup wizard. Channel names, stream URLs, and tvg-id EPG IDs are parsed automatically. v2.0
- Fullscreen Overlay: Mouse-triggered floating control bar in fullscreen mode. Move your cursor to reveal channel navigation (āā / ā¶ā¶), transport controls (ā® / āø / ā for local files), seek slider, volume slider, EPG toggle, and exit button. Auto-hides after 3 seconds of inactivity. Works even when VLC's hardware surface absorbs normal mouse events. v2.0
- EPG Click-to-Record: Click any programme cell in the EPG guide (CH 00) to see a detail popup showing title, time, category, description, and a one-click
ā SCHEDULE RECORDING button. Already-scheduled programmes show a red dot indicator in the grid. v2.0
- Manual DVR Scheduling: Open
š
DVR SCHED ā ā Manual to set a time-based recording without EPG data. Pick a channel, date, start time, and stop time ā RetroTV arms a background timer and starts ffmpeg automatically. v2.0
- Guide Livestream Preview: Channel 00 now features a split-screen layout: the bottom two-thirds shows the full EPG grid, while the top third displays a live video preview playing a random channel from your lineup. The preview shows the channel name and is click-to-tune. v2.0
- EPG Channel Icons: Network logos from XMLTV
<channel><icon> data are automatically fetched in background threads and displayed in the EPG guide grid. Icons are cached in memory with generation-based invalidation for clean refreshes. v2.0
- Stream Freeze Detection: An 8-second watchdog monitors live stream playhead movement. If the stream freezes, RetroTV automatically reconnects with a 10-second safety deadline to prevent infinite retry loops. A stuck-state fix ensures that reconnect attempts that silently fail are retried instead of leaving the channel broken forever. v2.0
- Drive Pre-Warming: Local files are pre-read (1 KB) before VLC opens them, triggering the OS to spin up external or sleeping drives. This eliminates the "file not found" errors that occurred when VLC tried to open a file on a drive that wasn't ready yet. v2.0
- Sleep Timer: Click
ā¾ SLEEP to set an auto-shutdown timer ā choose from 15, 30, 45, 60, 90, or 120 minutes, or enter a custom duration. When the timer expires, RetroTV closes gracefully. If a DVR recording is active, the app mutes and minimizes instead so your capture finishes cleanly. The countdown is shown on the SLEEP button in real time.
- Channel Surfing: Hit the
š² SURF button to jump to a random channel ā automatically avoiding your recently watched stations for a true channel-surfing experience. Never know what's coming next.
- Recently Watched: Your last 10 watched channels are remembered across sessions. Filter the sidebar with the
ā· HIST button to quickly jump back to stations you were just watching.
- Settings Dialog: Click the
ā button to configure RetroTV without editing files. Adjust commercials per break (min/max), EPG refresh interval, 24-hour clock, hardware acceleration, network buffer size, startup behaviour (resume last channel, start fullscreen), always-on-top, screensaver suppression, curated channel list mode, and import M3U playlists.
- DVR Recording: Press
R or click the ā REC button to record any live stream in real time. Recordings are saved as .ts files in a recordings/ folder. A blinking ā REC indicator appears on screen while recording. ffmpeg is included with the Windows installer.
- Scheduled Recordings: Click any programme cell in the EPG guide (CH 00) to schedule an automatic recording ā RetroTV starts and stops ffmpeg at the right times. Or use the Manual Schedule dialog to set a time-based recording. Scheduled entries show a red dot indicator in the guide grid. Pending schedules are re-armed automatically on app launch.
- Recordings Library: Click
š¼ LIBRARY to browse, play, and delete your DVR recordings. Play recordings directly inside RetroTV with full pause and seek support. Active recordings show elapsed time and file size in real time. Click š Open Folder to access recordings directly.
- DVR Schedule Manager: Click
š
DVR SCHED to view all pending, active, and completed scheduled recordings. Cancel, delete, or add manual entries from a single dashboard. Old entries (7+ days) can be purged with one click.
- Live EPG Program Guide (Ch 00): Tune to Channel 00 for a full-screen Electronic Program Guide. Powered by XMLTV data, it displays a scrollable grid of current and upcoming programs with channel icons, titles, times, categories, and progress bars. Includes a live video preview window and click-to-tune on the preview channel.
- Schedule Overlay: Press
G while watching any channel to see a "Now Playing" / "Up Next" strip at the bottom of the screen. Works for both live channels (EPG schedule with time slots and progress bars) and local playlists (track cards with progress bars). Auto-refreshes every 30 seconds for live channels, every 2 seconds for local playlists.
- Channel Search: Type a name or number in the sidebar search box to instantly filter the channel list. A ā button clears the search. No more scrolling through a long lineup.
- Favorites: Star your favorite channels with
F ā they appear highlighted with ā
in the sidebar and channel guide. Filter the sidebar to show only favorites with the ā
FAV button. Right-click any channel for a quick favorite toggle. Favorites persist by channel name across lineup changes.
- CC Subtitles: Toggle closed captions on/off with the
CC button. Subtitle state persists across channel changes and is re-applied after VLC loads new media.
- Custom EPG Sources: Add your own XMLTV guide data URLs or local .xml files via the built-in EPG Sources Editor (š” button). Your custom sources are merged with the default guide on every refresh. Click a row to edit, or add/remove/reorder sources.
- In-App News Feed: The app automatically checks for network news and update announcements on startup, displaying them in a retro-styled modal window. Messages are tracked by hash so you only see each one once.
- Hybrid Media Support:
- Live Streams: Tune into any live stream URL (HLS/m3u8, DASH, etc.) via the powerful VLC backend.
- Local Files: Play your own video library using XSPF, M3U, or M3U8 playlists. Mix live channels with your personal media collection.
- M3U Import: Import entire channel lineups from Extended M3U playlists (with tvg-id and channel names) from the Channel Editor, Settings dialog, or Setup Wizard.
- Commercial Breaks: Automatically insert commercial breaks between local playlist tracks. Just add a
commercials.xspf, commercials.m3u, or drop video files into a commercials/ folder. Commercials per break are configurable in Settings. Commercial state is properly saved ā your content position is preserved when the break starts.
- Channel Editor: No need to edit JSON files manually! Use the built-in Editor (ā EDIT button) to add, remove, duplicate, or reorder channels graphically. Import M3U playlists with one click. Use the Channel Builder to create channels from video files. Configure names, URLs, playlists, watermarks, EPG IDs, shuffle, and commercial settings.
- Network Watermarks: Assign a transparent PNG "network bug" to any channel in your config. The image overlays the video just like a real TV broadcast. Scales automatically on window resize.
- Smart Resume & Retry: Automatically saves your playback position for local files ā even mid-commercial-break. Local files retry on error with exponential backoff (up to 3 attempts) to handle drive spin-up or temporary errors. Seeks to the furthest known position on retry so you never rewind.
- Stream Recovery: Live channels detect frozen streams (8-second watchdog) and automatically reconnect with deadline-based safeguards. If a stream goes offline, the app shows a clear "CHANNEL OFFLINE" indicator. Stuck-state recovery ensures reconnect attempts don't silently fail.
- Playlist Modes: Toggle Shuffle mode for your local playlists or play them in order. Commercials can be enabled/disabled per channel. Shuffle order persists per channel across re-tunes.
- Auto-Updated Lineup: Channel lists sync automatically in the background. Hit the
āŗ LINEUP button to manually check for updates. Software update notifications keep you on the latest version. Favorites survive lineup changes.
- Rotating Log File: All activity is logged to
retrotv.log (5 Ć 1 MB rotating files). libvlc's internal diagnostics are captured with full vsnprintf formatting. Press Ctrl+L to open the log file. Set RETROTV_LIBVLC_DEBUG=1 environment variable for verbose libvlc tracing. Thread exceptions are captured too.
- Authentic CRT Aesthetic: Immersive amber phosphor color palette, animated CRT scanlines, and "static" transition effects between channels. Volume OSD with amber ā yellow ā red gradient.
- Interactive Controls:
- Channel Navigation: Prev/Next buttons, direct channel number entry, or click the sidebar list. Double-click the video area for fullscreen. š² SURF for random channel hopping.
- Transport Controls: Seek through local files with the playhead slider. Skip tracks using Prev/Next buttons. Play/Pause for local files and DVR recordings.
- Volume OSD: A visual volume bar overlay appears when adjusting volume ā amber ā yellow ā red gradient with segment markers and speaker glyph.
- Fullscreen Overlay: In fullscreen, move the mouse to reveal a floating control bar with channel navigation, seek slider, volume, and more. Auto-hides after 3 seconds. v2.0
- Sidebar: Click ā HIDE to collapse the sidebar for a wider view. Drag the resize sash to adjust sidebar width. Filter by ā
FAV or ā· HIST.
- Keyboard & Media Keys: Full support for Arrow keys,
F (favorites), G (schedule overlay), R (DVR record), Space (play/pause), CC, and Windows Media Keys (Play/Pause, Next/Prev, Volume, Mute).
- Fullscreen Mode: Press
F11 or double-click the video area to enter immersive fullscreen. The app suppresses the screensaver while watching. Multi-monitor aware with proper monitor detection. Mouse-triggered overlay gives you full control without leaving fullscreen.
āļø System Requirements
Windows Users (Standalone Executable):
- Windows 10 or 11
- VLC Media Player (64-bit)
- ffmpeg (included in installer)
- Bundled with the Windows installer ā no separate download needed.
- Required for DVR recording and scheduled recordings.
Mac / Linux Users (Python Source):
- Python 3.8+
- VLC Media Player installed on your system.
- python-vlc module:
pip install python-vlc
- ffmpeg (for DVR recording)
- Install via your package manager (e.g.
brew install ffmpeg or apt install ffmpeg).
- Pillow (Optional): Recommended for transparent PNG watermarks and EPG channel icons.
pip install Pillow
- screeninfo (Optional): For proper multi-monitor fullscreen detection.
pip install screeninfo
š Installation & Usage
Option A: Windows Executable
- Download the installer (see top of page).
- Ensure VLC is installed on your system.
- Run the installer ā ffmpeg is included automatically, no extra steps needed.
- First-launch setup: On first run, the Setup Wizard will guide you through choosing a channel source ā curated channels from N5 Networks, or import your own M3U/M3U8 playlist. v2.0
- Add more streams anytime via the Channel Editor (ā EDIT), Settings dialog (ā ā Import M3U), or by editing
user_config.json.
Option B: Python Source (Mac/Linux/Windows)
- Ensure Python 3.8+ and VLC are installed.
- Install the VLC binding:
pip install python-vlc.
- For DVR recording, install ffmpeg via your package manager.
- Run the app:
python retro_tv.py.
- On first run, the Setup Wizard will help you configure channels.
š® Controls
| Action | Control |
| Change Channel / Track | Left / Right Arrow Keys |
| Adjust Volume | Up / Down Arrow Keys or Sidebar Slider |
| Toggle Favorite | F Key |
| Toggle Schedule Overlay | G Key or š GUIDE Button |
| Toggle DVR Recording | R Key or ā REC Button |
| Play / Pause (Local / DVR) | Space Key, āø PAUSE Button, or Media Key Play/Pause |
| Toggle Subtitles | CC Button in control bar |
| Toggle Mute | š Icon or Media Key Mute |
| Seek (Local Files) | Drag the Position Slider in the control bar |
| Fullscreen | F11 or Double-Click the video area |
| Exit Fullscreen | Escape |
| Fullscreen Overlay | Move mouse in fullscreen to reveal floating controls v2.0 |
| Previous / Next Track | ā® PREV / NEXT ā Buttons |
| Open Log File | Ctrl+L |
| Open Settings | ā Button in control bar |
| Channel Surf | š² SURF Button in sidebar |
| Sleep Timer | ā¾ SLEEP Button in control bar |
| Filter Favorites | ā
FAV Button in sidebar |
| Filter Recently Watched | ā· HIST Button in sidebar |
| Collapse Sidebar | ā HIDE Button in sidebar |
| Resize Sidebar | Drag the sash (border between sidebar and video) |
| Search Channels | Type in š search box at top of sidebar |
| Right-Click Channel | Context menu: Favorite toggle, Tune |
| Schedule Recording | Click a programme cell in the EPG guide (CH 00) |
| Programme Details | Click any EPG programme cell to see title, time, description, and schedule button v2.0 |
š“ DVR Recording
RetroTV includes a built-in DVR system for recording live streams. Recordings are saved as transport stream (.ts) files that can be played back in RetroTV or any video player.
Quick Record
- Press
R or click ā REC to start recording the current channel immediately.
- Press
R again or click ā STOP REC to stop. The recording is saved to the recordings/ folder.
- A blinking
ā REC indicator appears on screen while recording is active.
Scheduled Recording
- Open the EPG guide (tune to CH 00) and click any programme cell to see a detail popup with title, time, category, and description. Click
ā SCHEDULE RECORDING to set it up. v2.0
- Scheduled recordings appear with a red dot indicator in the EPG grid.
- Or use
š
DVR SCHED ā ā Manual to set a manual time-based recording ā pick a channel, date, start time, and stop time. v2.0
- Pending schedules are re-armed automatically when the app starts.
Recordings Library
- Click
š¼ LIBRARY to open the recordings manager.
- Browse recordings by date and file size. Play recordings in-app or delete them.
- Click
š Open Folder to access the recordings directory directly.
- While playing a DVR recording, click
ā EXIT DVR to return to your live channel.
- Active recordings show real-time elapsed time and a REC/STOP toggle right in the library dialog. v2.0
Note: DVR recording requires ffmpeg. The Windows installer includes ffmpeg automatically ā no extra download needed. Mac/Linux users running from source should install ffmpeg via their package manager (e.g. brew install ffmpeg or sudo apt install ffmpeg).
ā¾ Sleep Timer
RetroTV includes a sleep timer that automatically shuts down the app after a specified duration. This is perfect for falling asleep to your favorite channels.
- Click
ā¾ SLEEP in the control bar to open the timer dialog.
- Choose a preset duration: 15, 30, 45, 60, 90, or 120 minutes. Or enter a custom number of minutes.
- The button shows a live countdown (e.g.
ā¾ 45:23) while the timer is active.
- Click the countdown button again to cancel the timer.
- DVR-safe: If a DVR recording (manual or scheduled) is active when the timer fires, RetroTV mutes the audio and minimizes to the taskbar instead of closing ā so your recording finishes cleanly.
š ļø Custom Channels & Playlists
You can create your own channels using the built-in Channel Editor (click the ā EDIT button in the control bar). The editor now offers two paths when adding a channel:
- Use Existing Playlist / Live URL: Paste a stream URL or reference an M3U/XSPF playlist file. v2.0
- Open Channel Builder: Pick video files or folders from your computer, reorder them, toggle shuffle and commercial breaks, and save as an M3U playlist. v2.0
The editor also supports importing channels from Extended M3U playlists via the ⬠Import M3U button.
Alternatively, you can create a user_config.json file manually next to the executable or script. The file supports two formats:
Format 1 ā Simple list (legacy):
[
{
"name": "My Movies",
"playlist": "my_movies.xspf",
"random": "1",
"watermark": "my_logo.png",
"channel-id": "MyMovies.us"
},
{
"name": "My Live Stream",
"url": "http://192.168.1.100:8080/stream.m3u8"
}
]
Format 2 ā Dict with EPG sources (recommended):
{
"channels": [
{
"name": "My Movies",
"playlist": "my_movies.xspf",
"random": "1",
"commercials": "1",
"watermark": "my_logo.png",
"channel-id": "MyMovies.us",
"description": "Classic Films"
},
{
"name": "My Live Stream",
"url": "http://192.168.1.100:8080/stream.m3u8",
"description": "Webcam"
}
],
"epg_urls": [
"https://example.com/my-guide.xml",
"/path/to/local-guide.xml"
]
}
The app will automatically load these channels alongside the default lineup. Supported fields:
| Field | Required | Description |
name | Yes | Display name for the channel |
url | One of url/playlist | Live stream URL (HLS/m3u8, DASH, etc.) |
playlist | One of url/playlist | Path to XSPF, M3U, or M3U8 playlist file |
random | No | Set to "1" to shuffle playlist order |
commercials | No | Set to "0" to disable commercial breaks on this channel (default: enabled) |
watermark | No | Path to a transparent PNG shown bottom-right |
channel-id | No | Matches this channel to an entry in the XMLTV guide data |
description | No | Short description shown in the channel guide |
color | No | Hex accent color e.g. "#ff6600" |
The epg_urls array in the dict format lets you specify additional XMLTV sources that are merged with the built-in guide on startup. You can also manage EPG sources through the š” EPG button in the control bar.
šŗ Commercial Breaks
To enable automatic commercial breaks between your local video files:
- Create a playlist file named
commercials.xspf, commercials.m3u, or commercials.m3u8 in the same directory as the app.
- Or, place video files directly into a folder named
commercials/.
- The app will automatically play 2ā4 random commercials between every track in your local playlists (configurable in Settings).
- To disable commercials on a specific channel, set
"commercials": "0" in its config entry.
āļø Settings
Click the ā button in the control bar to open the Settings dialog. All settings are saved to retrotv_settings.json and persist across restarts.
| Setting | Default | Description |
| Commercials min / max | 2 / 4 | Number of commercials played per break |
| EPG refresh interval | 6 hours | How often the guide data is refreshed in the background |
| 24-hour clock | Off | Display times in 24h format in the EPG guide |
| Hardware acceleration | On | Use GPU decoding in VLC (requires restart) |
| Network buffer | 1500 ms | VLC's network/live caching delay (requires restart) |
| Resume last channel | On | Automatically tune to the last-watched channel on startup |
| Start fullscreen | Off | Launch directly into fullscreen mode |
| Always on top | Off | Keep the RetroTV window above other windows |
| Suppress screensaver | On | Prevent display sleep while in fullscreen |
| Use curated channels | Off | Auto-update channel lineup from the remote server |
| Import M3U | ā | Import channels from a local or remote M3U/M3U8 playlist v2.0 |
š What's New
v2.0.0
Current Release
- Setup Wizard ā guided first-run dialog: choose curated channels or import M3U/M3U8 playlist (file or URL), optionally add EPG source
- Channel Builder ā build custom channels from video files or folders with drag reorder, shuffle toggle, and commercial break toggle; saves as M3U in playlists/ folder
- M3U Import in Settings ā import M3U/M3U8 playlists directly from the Settings dialog
- Fullscreen Overlay ā mouse-triggered floating control bar in fullscreen with channel nav, seek slider, volume, transport, and EPG toggle; auto-hides after 3 seconds
- EPG Click-to-Record ā click any programme cell in the guide to see a detail popup (title, time, category, description) with one-click Schedule Recording button
- Manual DVR Scheduling ā set time-based recordings from the DVR Schedule Manager without EPG data
- Guide Livestream Preview ā Channel 00 now has a split-screen layout with a live video preview playing a random channel from your lineup, with click-to-tune
- EPG Channel Icons ā network logos from XMLTV data are fetched in background threads and displayed in the guide grid
- Stream Freeze Detection ā 8-second watchdog with 10-second safety deadline; stuck-state fix for silently broken reconnects
- Drive Pre-Warming ā local files are pre-read (1 KB) before VLC opens them to trigger OS drive spin-up
- Channel Editor type picker ā "Add Channel" now offers two paths: Use Existing Playlist/Live URL or Open Channel Builder
- Improved reconnect logic ā deadline-based safeguards prevent infinite retry loops; Error-state player cleanup before loading new media to prevent segfaults
- Volume re-application after VLC pipeline ready ā fixes silent-startup bug where audio_set_volume was ignored
- Subtitle and mute state re-applied after new media loads
- Favorites survive lineup changes ā tracked by channel name instead of number
- Commercial break state properly saved ā content position preserved when break starts
- Local retry seeks to furthest known position ā never rewinds on retry
- Win32 double-click hook for VLC child window ā fullscreen toggle via double-click even on hardware-accelerated surfaces
- Mouse position polling for fullscreen overlay ā works even when VLC absorbs Win32 mouse messages
- Improved window cleanup on close ā VLC stop/release offloaded to daemon thread to prevent deadlocks
- Thread exception hooking ā uncaught exceptions in background threads are captured in the rotating log
v1.9.0
- Sleep Timer ā click ā¾ SLEEP to set an auto-shutdown timer (15ā120 min or custom); DVR-safe: mutes and minimizes if a recording is active
- Channel Surfing ā š² SURF button jumps to a random channel, avoiding recently watched stations
- Recently Watched ā tracks last 10 channels across sessions; ā· HIST sidebar filter to quickly return to them
- Settings Dialog ā ā button opens a full settings panel (commercials, EPG, playback, startup, window, channels) without editing JSON
- Play/Pause with Space bar ā pause/resume local files and DVR recordings without reaching for the mouse
- Stream recovery improvements ā 8-second freeze watchdog, deadline-based reconnect safeguards, stuck-state fix for silently broken reconnects
- libvlc log hook enhancement ā C-level vsnprintf formatting for detailed VLC diagnostics, with
RETROTV_LIBVLC_DEBUG=1 env var for verbose tracing
- Configurable commercials per break ā adjust min/max via Settings dialog instead of editing files
- Favorites filter button ā ā
FAV toggles the sidebar to show only starred channels
- Improved volume OSD ā amber ā yellow ā red gradient with segment tick marks
v1.8.0
- DVR Recording ā press
R or click ā REC to record any live stream in real time
- Scheduled Recordings ā click programme cells in the EPG guide to schedule automatic recordings
- Manual Schedule dialog ā set time-based recordings for any channel
- DVR Schedule Manager (š
DVR SCHED) ā view, cancel, and manage all scheduled recordings
- Recordings Library (š¼ LIBRARY) ā browse, play, and delete DVR recordings
- In-app DVR playback with pause/seek and ā EXIT DVR button
- Red dot indicator in EPG grid for scheduled recordings
- ā REC on-screen blinking indicator during active recording
- ffmpeg included in the Windows installer ā no separate download needed
- ffmpeg auto-detection ā searches app directory, common install paths, and system PATH
- M3U playlist import in Channel Editor (⬠Import M3U button)
- Extended M3U parser ā imports channel names, URLs, and tvg-id from EXTM3U playlists
- Resizable sidebar ā drag the sash between sidebar and video to adjust width
- Software update checker ā notifies when a new version is available
- Configurable guide livestream URL via
guide_livestream_url in tv_config.json
- Programme detail popup ā click EPG cells to see title, time, description, and schedule recording
- Old schedule entries auto-purged after 7 days
- DVR recording state survives app restart (pending schedules re-armed on launch)
v1.7.5
- Per-channel schedule overlay ā press
G to see Now/Next for any channel
- Channel search box in sidebar with instant filtering
- Favorites system ā press
F to star channels, ā
shown in guide
- Right-click context menu on channels in sidebar
- CC subtitle toggle with persistent state across channels
- EPG Sources Editor ā add custom XMLTV URLs or local .xml files
- Custom EPG sources via
epg_urls in user_config.json
- Stream recovery ā freeze detection and auto-reconnect for live channels
- Local file retry with exponential backoff (3 attempts)
- Manual lineup refresh button (āŗ LINEUP)
- Rotating log file (retrotv.log) with Ctrl+L to open
- Visual volume OSD with amber ā yellow ā red gradient
- Sidebar collapse button (ā HIDE)
- M3U/M3U8 playlist support (in addition to XSPF)
- EPG channel icons in the guide grid
- Channel offline indicator for dead streams
- user_config.json now supports dict format with
channels and epg_urls
- Commercials can be disabled per channel via
"commercials": "0"
- libvlc log messages now captured into the rotating log
v1.7.2
- Channel Editor with add, remove, reorder, duplicate
- Network watermarks (transparent PNG overlay)
- Smart resume for local files
- In-app news feed modal
- Schedule overlay (Guide button)
- Favorites (F key)
v1.5.0
- Initial EPG Program Guide (Channel 0)
- Commercial break simulator
- XSPF playlist support
- Auto-updated channel lineup
- Fullscreen mode with screensaver suppression
ā ļø Troubleshooting
"NO SIGNAL" or Black Screen:
- Ensure VLC Media Player is installed correctly (64-bit version for 64-bit Windows).
- For local files, ensure the video format is supported by your VLC installation.
- Check
retrotv.log for error details ā press Ctrl+L to open it.
"CHANNEL OFFLINE" or red "NOT BROADCASTING" indicator:
- The stream is not currently available. The app will attempt to reconnect automatically.
- Try tuning away and back. If the problem persists, the stream may be temporarily down.
- Check
retrotv.log for details ā it will show the reconnect attempts.
EPG/Guide shows "No schedule available":
- The app downloads guide data from a remote server on startup. Ensure you have an internet connection.
- If using custom channels, ensure the
channel-id in your config matches a valid ID in the EPG data.
- You can add custom EPG sources via the š” EPG button or
epg_urls in user_config.json.
DVR recording fails or ā REC button shows "ffmpeg Not Found":
- Windows: The installer includes ffmpeg. If you moved the app folder after installing, make sure
ffmpeg.exe is still next to retrotv_setup.exe or retrotv.exe.
- Mac/Linux (from source): Install ffmpeg via your package manager (e.g.
brew install ffmpeg or sudo apt install ffmpeg).
- You can also download ffmpeg manually from ffmpeg.org and place it next to the app executable.
- Check
retrotv.log for ffmpeg error output.
Scheduled recording didn't fire:
- Ensure the app was running at the scheduled start time. Scheduled recordings only work while RetroTV is open.
- Check the DVR Schedule Manager (š
DVR SCHED) ā the entry will show "missed" if it was skipped.
- Ensure ffmpeg is available and the stream URL is still valid.
Watermark has black background:
- Install the Pillow library (
pip install Pillow) for proper transparent PNG support. Without it, transparency is not rendered correctly.
Local file won't play / "BUFFERING (RETRY)" message:
- The app will automatically retry up to 3 times with increasing delays for drive spin-up or temporary errors.
- Ensure the file path in your playlist is correct and the drive is connected.
- v2.0 pre-reads local files before VLC opens them to spin up sleeping drives. v2.0
- Check
retrotv.log for detailed error messages from VLC.
Volume changes have no effect:
- Volume is re-applied after VLC's audio pipeline is fully ready ā this fixes a known issue where volume was ignored on startup.
- If the problem persists, check that your system audio device is working and not muted at the OS level.
Stream freezes and doesn't recover:
- RetroTV includes an 8-second freeze watchdog that should auto-reconnect frozen streams.
- v2.0 adds a 10-second safety deadline and stuck-state recovery to prevent silently broken reconnects. v2.0
- If the stream repeatedly freezes, it may be a source issue. Try a different stream or check your internet connection.
- Set the environment variable
RETROTV_LIBVLC_DEBUG=1 and check retrotv.log for detailed VLC-level diagnostics.
Sleep timer closed the app during a recording:
- If a DVR recording was active, the timer should have muted and minimized instead of closing. Check that the recording process was running at the time.
- Scheduled recordings (pending but not yet started) are also detected ā the timer will minimize in this case too.
Fullscreen overlay doesn't appear:
- Move your mouse while in fullscreen ā the overlay is triggered by cursor movement, not just mouse position. v2.0
- The overlay auto-hides after 3 seconds of inactivity. Move the mouse again to bring it back.
- On Windows, cursor position is polled at the OS level so it works even over VLC's hardware-accelerated surface.
First-run wizard doesn't appear:
- The wizard only appears when neither
tv_config.json nor user_config.json exists ā i.e., a completely fresh install. v2.0
- To trigger it manually, delete both config files and restart the app.
š Support & Donations
RetroTV is a passion project. If you enjoy the nostalgia trip and want to support development:
ā„ Donate via PayPal
š License
This project is distributed as-is. Please respect the terms of service of any streams you access through this player. VLC is released under the LGPL license. ffmpeg is released under the LGPL/GPL license.
Ā© 2026 N5 Networks. All Rights Reserved.