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

āš™ļø System Requirements

Windows Users (Standalone Executable):

  1. Windows 10 or 11
  2. VLC Media Player (64-bit)
  3. 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):

  1. Python 3.8+
  2. VLC Media Player installed on your system.
  3. python-vlc module:
    pip install python-vlc
  4. ffmpeg (for DVR recording)
    • Install via your package manager (e.g. brew install ffmpeg or apt install ffmpeg).
  5. Pillow (Optional): Recommended for transparent PNG watermarks and EPG channel icons.
    pip install Pillow
  6. screeninfo (Optional): For proper multi-monitor fullscreen detection.
    pip install screeninfo

šŸš€ Installation & Usage

Option A: Windows Executable

  1. Download the installer (see top of page).
  2. Ensure VLC is installed on your system.
  3. Run the installer — ffmpeg is included automatically, no extra steps needed.
  4. 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
  5. 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)

  1. Ensure Python 3.8+ and VLC are installed.
  2. Install the VLC binding: pip install python-vlc.
  3. For DVR recording, install ffmpeg via your package manager.
  4. Run the app: python retro_tv.py.
  5. On first run, the Setup Wizard will help you configure channels.

šŸŽ® Controls

ActionControl
Change Channel / TrackLeft / Right Arrow Keys
Adjust VolumeUp / Down Arrow Keys or Sidebar Slider
Toggle FavoriteF Key
Toggle Schedule OverlayG Key or šŸ“‹ GUIDE Button
Toggle DVR RecordingR Key or ā— REC Button
Play / Pause (Local / DVR)Space Key, āø PAUSE Button, or Media Key Play/Pause
Toggle SubtitlesCC Button in control bar
Toggle MutešŸ”Š Icon or Media Key Mute
Seek (Local Files)Drag the Position Slider in the control bar
FullscreenF11 or Double-Click the video area
Exit FullscreenEscape
Fullscreen OverlayMove mouse in fullscreen to reveal floating controls v2.0
Previous / Next Trackā® PREV / NEXT ā­ Buttons
Open Log FileCtrl+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 SidebarDrag the sash (border between sidebar and video)
Search ChannelsType in šŸ” search box at top of sidebar
Right-Click ChannelContext menu: Favorite toggle, Tune
Schedule RecordingClick a programme cell in the EPG guide (CH 00)
Programme DetailsClick 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

Scheduled Recording

Recordings Library

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.

šŸ› ļø 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:

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:

FieldRequiredDescription
nameYesDisplay name for the channel
urlOne of url/playlistLive stream URL (HLS/m3u8, DASH, etc.)
playlistOne of url/playlistPath to XSPF, M3U, or M3U8 playlist file
randomNoSet to "1" to shuffle playlist order
commercialsNoSet to "0" to disable commercial breaks on this channel (default: enabled)
watermarkNoPath to a transparent PNG shown bottom-right
channel-idNoMatches this channel to an entry in the XMLTV guide data
descriptionNoShort description shown in the channel guide
colorNoHex 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:

  1. Create a playlist file named commercials.xspf, commercials.m3u, or commercials.m3u8 in the same directory as the app.
  2. Or, place video files directly into a folder named commercials/.
  3. The app will automatically play 2–4 random commercials between every track in your local playlists (configurable in Settings).
  4. 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.

SettingDefaultDescription
Commercials min / max2 / 4Number of commercials played per break
EPG refresh interval6 hoursHow often the guide data is refreshed in the background
24-hour clockOffDisplay times in 24h format in the EPG guide
Hardware accelerationOnUse GPU decoding in VLC (requires restart)
Network buffer1500 msVLC's network/live caching delay (requires restart)
Resume last channelOnAutomatically tune to the last-watched channel on startup
Start fullscreenOffLaunch directly into fullscreen mode
Always on topOffKeep the RetroTV window above other windows
Suppress screensaverOnPrevent display sleep while in fullscreen
Use curated channelsOffAuto-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

v1.9.0

v1.8.0

v1.7.5

v1.7.2

v1.5.0

āš ļø Troubleshooting

"NO SIGNAL" or Black Screen:

"CHANNEL OFFLINE" or red "NOT BROADCASTING" indicator:

EPG/Guide shows "No schedule available":

DVR recording fails or ā— REC button shows "ffmpeg Not Found":

Scheduled recording didn't fire:

Watermark has black background:

Local file won't play / "BUFFERING (RETRY)" message:

Volume changes have no effect:

Stream freezes and doesn't recover:

Sleep timer closed the app during a recording:

Fullscreen overlay doesn't appear:

First-run wizard doesn't appear:

šŸ’– 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.