MCPcopy Index your code
hub / github.com/chrisbenincasa/tunarr

github.com/chrisbenincasa/tunarr @v1.3.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.3.8 ↗ · + Follow
5,801 symbols 18,918 edges 1,350 files 51 documented · 1%

Browse by type

Functions 4,665 Types & classes 1,136
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Tunarr TV Guide

Tunarr

Create your own live TV channels from media on Plex, Jellyfin, Emby, or local files.

GitHub Release Docker Pulls GitHub Stars Discord License


What is Tunarr?

Tunarr lets you build custom live TV channels out of your existing media libraries — movies, TV episodes, music videos, or local files — and stream them as if they were real broadcast channels.

Tune in by adding Tunarr's spoofed HDHomeRun tuner to Plex, Jellyfin, or Emby, or grab the M3U URL for any IPTV player like Tivimate or UHF.

Features

Media Sources

  • Connect Plex, Jellyfin, Emby, or local file libraries
  • Advanced search, filter, and sort across all connected libraries

Channel Management

  • Drag-and-drop lineup editor
  • Filler content between programs (commercials, music videos, prerolls, branding)
  • Per-channel logos and automatic configuration backups

Scheduling

  • Time-slot and random-slot scheduling tools
  • Web-based TV guide for viewing channel lineups

Playback & Integration

  • Spoofed HDHR tuner for Plex, Jellyfin, and Emby
  • M3U/IPTV output for Dispatcharr, Threadfin, xTeVe, or any IPTV client
  • Stream channels directly in the browser
  • Per-channel audio language and subtitle preferences

Transcoding

  • Hardware-accelerated transcoding: Nvidia NVENC, VAAPI, Intel QuickSync, macOS VideoToolbox
  • Multiple transcode profiles, configurable per channel

Screenshots

Channel Management Channel Management Channel Configuration Channel Configuration

Quick Start

The easiest way to run Tunarr is with Docker Compose. Create a docker-compose.yml:

services:
  tunarr:
    image: chrisbenincasa/tunarr:latest
    container_name: tunarr
    ports:
      - 8000:8000
    environment:
      - TZ=America/New_York
    volumes:
      - ./tunarr-data:/config/tunarr
    restart: unless-stopped

Then run:

docker compose up -d

Tunarr will be available at http://localhost:8000.

Other installation options:

Platform Method
Linux / macOS / Windows Standalone binaries
Unraid Community App Store
Proxmox LXC helper script
ARM (Raspberry Pi, etc.) Docker image (linux/arm64)

For hardware-accelerated transcoding setup, see the transcoding docs.

Documentation

Development

pnpm i
pnpm turbo dev  # backend at :8000, frontend at :5173/web

See CONTRIBUTING.md for a full development guide.

Community

License

Tunarr is released under the Zlib License.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 2,440
Method 2,225
Class 989
Interface 143
Enum 4

Languages

TypeScript100%

Modules by API surface

web/src/generated/@tanstack/react-query.gen.ts339 symbols
web/src/generated/sdk.gen.ts156 symbols
server/src/external/plex/PlexApiClient.ts71 symbols
server/src/external/jellyfin/JellyfinApiClient.ts62 symbols
server/src/external/emby/EmbyApiClient.ts61 symbols
server/src/ffmpeg/builder/format/PixelFormat.ts47 symbols
server/src/types/result.ts44 symbols
server/src/services/MeilisearchService.ts44 symbols
server/src/util/index.ts40 symbols
server/src/ffmpeg/builder/pipeline/BasePipelineBuilder.ts40 symbols
server/src/db/ChannelDB.ts38 symbols
server/src/services/scheduling/ProgramIterator.ts36 symbols

For agents

$ claude mcp add tunarr \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page