Files
2026-06-09 18:40:21 +02:00

4.8 KiB

title, created, updated, type, tags, confidence, contested, sources
title created updated type tags confidence contested sources
Tunarr 2026-06-07 2026-06-07 app
catalogue
media-streaming
tunarr
iptv
m3u
transcoding
high false
https://selfh.st/apps/?tag=Media+Streaming
https://github.com/Tunarr/Tunarr
https://tunarr.com/

🎬 Tunarr

Créateur de chaînes IPTV personnalisées à partir de ta bibliothèque Plex/Jellyfin/Emby : transforme ton contenu en flux 24/7 façon "live TV".

📋 Informations Générales

Attribut Valeur
Nom Tunarr
Slug app-tunarr
Description Génère des chaînes IPTV (M3U + XMLTV) à partir d'une bibliothèque locale ou distante, avec programmation type grille TV
Site officiel https://tunarr.com/
Repository https://github.com/Tunarr/Tunarr
Stars 2 352
Licence AGPL-3.0
Langage principal TypeScript (Node.js)
Catégorie Media Streaming
Tags [catalogue, media-streaming, tunarr, iptv, m3u, transcoding]

📝 Description

Tunarr (anciennement "Autobahn") résout un cas d'usage original : transformer une bibliothèque Jellyfin/Plex/Emby en chaîne TV linéaire, avec grille de programmes, enchaînement automatique, inserts publicitaires fictifs, et exposition en M3U/XMLTV vers n'importe quel client IPTV (Jellyfin Live TV, Plex DVR, Kodi, Tivimate, etc.).

Le principe : tu déclares un "média source" (Jellyfin, Plex, Emby, dossier local), tu définis une ou plusieurs chaînes avec un planning (exemple : "films SF le lundi, séries le mardi, documentaires le week-end"), tu choisis l'ordre de lecture (aléatoire, séquentiel, pondéré, par genre), et Tunarr expose le tout comme un flux IPTV classique. Les chaînes peuvent être en 24/7 avec un programme d'appoint pour combler les trous.

Le transcodage à la volée (ffmpeg) gère la conversion en HLS/MPEG-TS pour des clients hétérogènes. Les médias sont lus en direct, l'utilisateur a l'impression de regarder une vraie chaîne TV, alors que c'est une playlist géante auto-générée. Limites : la configuration est un peu austère au début, l'UI web est jeune, et la documentation de l'API est encore en progression.

🚀 Installation

Via Docker (recommandé)

# docker-compose.yml
version: "3.8"

services:
  tunarr:
    image: ghcr.io/tunarr/tunarr:latest
    container_name: tunarr
    restart: unless-stopped
    ports:
      - "8000:8000"   # Interface web + API
    environment:
      TUNARR_DB_PATH: /db/tunarr.db
      TUNARR_CACHE_PATH: /cache
    volumes:
      - ./config:/config
      - ./db:/db
      - ./cache:/cache

Installation manuelle

Node 20+, ffmpeg 6+. Cloner le repo, pnpm install, pnpm build, lancer node dist/server.js. L'UI est servie par le même process sur le port 8000.

⚙️ Configuration

  • Sources : ajouter une source Jellyfin (URL + token) ou Plex (URL + X-Plex-Token). Tester la connexion.
  • Chaînes : créer une chaîne, lui assigner un nom, un numéro, une icône, un fuseau horaire.
  • Programmation : choisir l'ordre de lecture (aléatoire, par genre, par show, par saison). Définir un planning hebdo (chaque jour a son template).
  • Clients : générer l'URL M3U (par défaut http://tunarr:8000/playout/m3u). Importer dans Jellyfin (Live TV > Add M3U).
  • Transcodage : choisir le profil par défaut (copy = pas de transcodage, transcode = H264/AAC 720p, etc.).
  • Filler : configurer un média de remplissage pour les heures creuses.

🔗 Alternatives

  • ErsatzTV — Concept similaire (.NET), plus mature, mais plus complexe à configurer.
  • xTeVe — Plus ancien, peu de maintenance, mais nombreuses intégrations.
  • Threadfin — Proxy IPTV (XMLTV + M3U), complémentaire à Tunarr.
  • m3u-proxy / dispatcharr — Outils d'agrégation, ne créent pas de chaînes à partir de bibliothèque locale.

🔒 Sécurité

  • Placer derrière app-traefik avec auth SSO (Authelia/Authentik) — les flux IPTV doivent rester privés.
  • L'API Tunarr permet l'ajout de sources : sécuriser avec mot de passe admin fort.
  • Les flux M3U n'ont pas d'authentification par défaut : restreindre par IP ou par reverse proxy.
  • Vérifier que le dossier cache n'est pas trop volumineux (peut gonfler avec les transients).

📚 Ressources

🔗 Pages Liées