RETROARR

Self-hosted YouTube linear TV. The classic channels of yesteryear — Fox Kids, Cartoon Cartoons, Kids WB, Disney Afternoon, Nick at Nite, MST3K, Classic Game Shows — running live 24/7.

View on GitHub Watch Live

Just Like Real TV

30+ curated channels running 24/7 with HDHomeRun emulation

Classic Channels of Yesteryear

15 hand-curated networks — Fox Kids, Cartoon Cartoons, Kids WB, Disney Afternoon, Nick at Nite, Classic Nickelodeon, Saturday Morning Cartoons, MST3K, Classic Game Shows, Late Night Classics, Sci-Fi Originals, PBS Kids Classic, Unsolved Mysteries, Infomercials, and 80s/90s Commercials — plus a small grid of decade/genre channels to round it out.

HDHomeRun Emulation

Auto-detected by Plex, Jellyfin, and Emby as a network tuner via SSDP. No manual setup needed.

M3U + XMLTV EPG

Standard playlist and electronic program guide compatible with any IPTV player.

Virtual Clock

Seeded shuffle ensures every viewer sees the same thing at the same time. Tune in like real broadcast TV.

Plugin System

Add custom channels beyond the grid with community-contributed or your own YAML playlists.

Web Dashboard

Manage channels, toggle categories, view the TV guide, report broken videos, and install plugins.

TV Mode

Full-screen CRT television UI in the browser with channel surfing for the authentic experience.

Docker Ready

Single container with FFmpeg and yt-dlp included. One command to deploy.

24-Hour EPG

Auto-generated TV guide synced to the virtual clock. Always know what's playing and what's next.

Works With Your Stack

Plug into the media server you already use

Plex
Media Server
Jellyfin
Media Server
Emby
Media Server
M3U / IPTV
Any Player

Up and Running in Seconds

Docker is the fastest path

Docker Compose

# docker-compose.yml

version: '3.8'
services:
  retroarr:
    image: f00d4tehg0dz/retroarr:latest
    container_name: retroarr
    restart: unless-stopped
    network_mode: host
    ports:
      - "8888:8888"
      - "1900:1900/udp"
    volumes:
      - retroarr-db:/app/server/db
    env_file: .env
    environment:
      - PORT=8888
      - DB_PATH=/app/server/db/db.json

volumes:
  retroarr-db:
    driver: local

# Then run:
docker compose up -d

# Dashboard available at
http://localhost:8888

# Add to your media server
# Tuner URL:  http://<your-ip>:8888
# EPG URL:    http://<your-ip>:8888/epg.xml