RETROARR

Self-hosted YouTube linear TV. Turn YouTube playlists into live cable TV channels organized by decade and genre.

View on GitHub Try the Demo

Take It for a Spin

Click a channel to surf — just like the real thing

NO SIGNAL
Select a channel
Channel Selector

Just Like Real TV

90+ channels running 24/7 with HDHomeRun emulation

90+ Live Channels

7 decades (60s–20s) across 13 categories. Cartoons, sitcoms, movies, drama, specials, and more.

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