Continuous multi-day schedules, commercial breaks, on-TV channel guide, Retroflix on-demand, neural-narrated weather & news, and live sports with interactive gameplay field radars. Runs on Raspberry Pi 4 & Linux.
Retro-TV is free, open source, and built with love for retro broadcast television enthusiasts. If you enjoy the project, please consider buying me a coffee to help fuel new channels and features!
Every show and movie has a deterministic start and end time. Change channels or reload the page and you drop right into the current sceneβno per-user pause or rewind, just real television.
A full Netflix-style interactive On Demand interface (`/vod`). Search your library, explore featured spotlights, filter by genre or recent additions, and launch straight to your HDMI TV.
Dedicated sports channel & interactive game center (`/sports`). Live scores, neural TTS announcer play-by-play, and dynamic SVG gameplay radars: football 100-yd gridiron with down/distance, baseball diamond with active base runners, basketball court, hockey rink, and soccer pitch.
Generates an authentic 90s-style Weather Channel loop with real National Weather Service forecasts, hourly trajectories, 7-day outlooks, live radar sweeps, and natural neural voice narration every 30 minutes.
Automatically fetches your local RSS news feed and pictures, composing broadcast headline slides with neural voice narration and commercial breaks on-the-fly.
Control everything from your phone browser (`/remote`) or a 2.4GHz wireless USB remote. Dedicated SPORTS and ON DEMAND buttons, amber LCD channel display, D-pad navigation, and instant volume control.
Commercial compilations are intelligently sliced and tracked so you never see the same commercials back-to-back, rotating evenly across program breaks.
Auto-creates dedicated movie channels (Action, Comedy, Sci-Fi, Horror) when your library has 5+ qualifying movies, keeping three full days of scheduled lineups generated in advance.
Stream your live cable channels anywhere on your local network at `/watch`, complete with on-the-fly audio transcoding and HLS remuxing for mobile and desktop browsers.
100% native Kotlin companion app with UDP broadcast auto-discovery, 6-digit Web UI pairing, ExoPlayer Media3 live TV streaming, interactive EPG guide, Retroflix VOD, and tactile remote.
Experience Retro TV on your phone with zero-config auto-discovery, persistent 6-digit PIN pairing, low-latency ExoPlayer streaming, and a classic tactile handset remote.
Finds your Retro TV server instantly via UDP broadcast responder on port 5002, with automatic fallback to manual IP entry and server handshake verification.
Generate a one-time 6-digit sync code on the Web UI (/remote), punch it into your phone, and establish a permanent cryptographically signed session token.
Hardware-accelerated native video playback with low-latency HLS remuxing, seamless channel switching, picture-in-picture, and fullscreen player modes.
Explore synchronous multi-channel program timelines, view episode descriptions, tune the TV receiver with one tap, or watch directly on your mobile device.
Browse your library's movies and TV shows with cached poster artwork, season/episode drawers, and quick "Watch on Phone" or "Play on TV" controls.
Authentic handheld handset with real-time amber LCD receiver telemetry, directional D-pad, channel and volume rockers, and 0β9 keypad.
Tested, paired, and verified on physical hardware over USB ADB. Zero WebViews β pure AndroidX, Media3 ExoPlayer, and Kotlin Coroutines.
The real 1080p HDMI output displaying a classic cable-box channel change banner with program title and countdown.
Native high-performance mpv ASS overlay for browsing movies and episodes directly on your television screen.
Hardware-accelerated TV overlay displaying live scoreboards, league categories, and game matchups over HDMI.
Interactive vector football field radar, line of scrimmage, box score, and one-click neural TTS play-by-play announcer on TV.
Interactive web catalog with featured hero billboard, genre chips, poster carousels, and one-click play on TV.
Interactive sports billboard featuring real-time matchup odds, scores, and vector SVG gameplay field radars.
Deep-dive game center modal with AI announcer commentary playback and full team statistics.
Continuously generated HD sports channel loop with headlines, active game scores, and natural voice narration.
Interactive weather dashboard featuring current observations, live Doppler radar sweep, and hourly timeline.
Classic cable-box guide grid displaying multi-channel lineups, live progress markers, and program artwork.
Tactile handheld remote with amber LCD screen, green SPORTS button, GUIDE, keypad, and volume rockers.
On-device rendered video card with NWS forecast and neural voice narration aired on the TV channel lineup.
Headline news broadcast card pairing local news articles with high-res photos and automated news anchors.
Brushed receiver housing with green LED segment display, live channel lineup, and quick remote pairing address.
Comprehensive setup dashboard for organizing channels, scheduling rules, commercial modes, and library scans.
# 1. Clone the repository git clone https://github.com/chartmann1590/retro-tv.git cd retro-tv # 2. Set up Python virtual environment python3 -m venv venv venv/bin/pip install -r requirements.txt # 3. Configure your sports backend (optional: connects to ArenaPulse) cp .env.example .env # Edit .env with ARENAPULSE_URL=http://<your-sports-server>:3000 # 4. Start Retro-TV! venv/bin/python app.py # Opens on http://localhost:5000 with scanning & schedules auto-initialized