18 août 2022

Forum milbako

Les modérateurs et les administrateurs du forum Milbako.com vous souhaitent la bienvenue! Pour utiliser au mieux ce forum, consultez les règles du forum ainsi que l’aide à l’utilisation du forum.
Avant de poser une question, vérifiez que la solution ne se trouve pas dans la documentation ou le forum grâce à la « Recherche rapide » en haut de cette page. Sinon, postez dans la bonne section afin d’obtenir de meilleures réponses. Si vous avez résolu votre problème, ajoutez [Résolu] au titre de la discussion.


Veuillez ou S’enregistrer pour créer des messages et des sujets de discussion.

TVHeadend : les directs Youtube en tant que chaînes IPTV

 

Lien permanent

TVHeadend : Dans ce guide, nous apprendrons comment alimenter des flux en direct Youtube dans un serveur TVHeadend (TVH) en tant que chaînes IPTV. Il s'agit d'un guide assez avancé, mais je ferai de mon mieux pour le rendre aussi digeste que possible pour toute personne ayant un minimum de connaissances sur l'auto-hébergement. Vous aurez besoin d'une distribution Linux (par exemple, Debian, Ubuntu) pour suivre ce guide. Tous les logiciels décrits ici sont gratuits et open-source .

Je ne suis un expert dans aucun des sujets mentionnés ici. Si vous avez des suggestions sur la façon d'améliorer quelque chose, veuillez laisser un commentaire ci-dessous ou sur le forum indiquant ce qui pourrait être changé et pourquoi cela devrait être changé.

Youtube4tvh est un programme utilitaire que j'ai écrit juste pour ce guide. Je souhaite la bienvenue à tous ceux qui souhaitent l'améliorer ou se lancer dans quelque chose de plus abstrait. Si cela ressemble à quelque chose que vous voulez faire, rendez-vous sur mon référentiel Github et contactez-moi une fois que vous avez fait du codage.

MotivationLien permanent

Il existe plusieurs raisons de regarder les flux en direct sur Youtube comme s'il s'agissait de chaînes IPTV. Voici quelques raisons qui me viennent à l'esprit en ce moment :

  • C'est gratuit et tous les programmes sont open-source ;
  • Il y a au moins un flux en direct Youtube 24/7 que vous appréciez. Certains de mes favoris personnels, par catégorie :
    • News : ABC News AU, Sky News, DW en anglais, France 24 en anglais
    • Espace : NASA TV, Space Videos, Space & The Universe HD
    • Webcam - Nature : Cornell Lab of Ornithology Cams, Monterey Bay Aquarium, Explorer les océans, Explorer la nature, Volcanoverse
    • Webcam - Autre : Virtual Railfan, earthTV, Je t'aime Venise,
    • Radio : chaîne BGM, Cafe del Mar, Stay See
  • Vous souhaitez mettre à disposition des flux en direct Youtube sélectionnés sous forme de chaînes IPTV via un serveur TVH (TVH -> Streamlink pipe -> Youtube) ;
  • Vous souhaitez garder vos services de streaming aussi centralisés que possible. Autrement dit, au lieu de plusieurs applications, vous pouvez toutes les gérer à l'aide d'une seule application (TVH) ;
  • Vous souhaitez profiter de l'un des réseaux de diffusion multimédia les plus rapides et les plus fiables (le CDN de Youtube) ;
  • Vous n'aimez pas les publicités Youtube (Streamlink s'en débarrassera sans avoir besoin d'installer de système de filtrage) ;
  • Vous aimez son apparence pour le client :

ObjectifsLien permanent

À la fin du guide, vous aurez appris à effectuer les opérations suivantes :

  • Créez une liste de lecture m3u personnalisée en direct sur Youtube avec l'aide de youtube4tvh;
  • Installez un serveur TVH sur une machine Linux ;
  • Installez Streamlink pour acheminer les données de diffusion en direct vers un serveur TVH ;
  • Ajoutez une liste de lecture m3u en direct sur Youtube à un serveur TVH en tant que réseau automatique IPTV ;
  • Configurez un serveur TVH pour mapper automatiquement les multiplexeurs sur les chaînes à l'aide de bouquets ;
  • Créez une tâche cron pour mettre à jour automatiquement la liste de lecture m3u en direct de Youtube tous les jours à 6h du matin.

Disposition client-serveur TVHeadendLien permanent

Cette configuration comprend trois composants principaux, à savoir TVH , Streamlink et youtube4tvh , qui sont tous open-source et gratuits :

  • TVHeadend : Tvheadend est un serveur de streaming TV pour Linux prenant en charge DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, SAT>IP et d'autres formats via le canal unix comme sources d'entrée.

  • Streamlink : Streamlink est un utilitaire CLI qui dirige les flux vidéo de divers services vers un lecteur vidéo.

  • youtube4tvh : Youtube4tvh est un programme Python CLI qui utilise l'API Youtube pour créer (ou mettre à jour) des listes de lecture m3u de flux en direct qui sont redirigés vers un serveur TVH via Streamlink.

Pour ce guide, nous supposerons que ces composants sont liés les uns aux autres et à tous les clients (tous les lecteurs IPTV, tels que VLC, Plex ou un PVR Kodi) selon la disposition suivante :

Cependant, une fois que vous avez terminé la configuration initiale, vous pouvez essayer de la modifier pour répondre à vos besoins. Par exemple, vous pouvez multidiffuser un flux en direct vers un serveur TVH à l'aide de VLC . Cela vous permettra d'utiliser une seule connexion à Youtube pour être distribuée à plusieurs clients, au lieu de créer plusieurs connexions à Youtube - jetez-y un coup d'œil si vous servez un grand nombre de clients avec votre serveur TVH. En outre, vous souhaiterez peut-être diriger les données Streamlink vers FFMPEG avant de les envoyer à TVH, ce qui vous permettra de définir des codecs AV personnalisés.

Youtube4tvhLien permanent

Il s'agit d'un programme utilitaire qui nous permettra de créer et de gérer une liste de lecture m3u de flux en direct Youtube. Il peut extraire des informations directement du frontend de Youtube (par défaut) ou de l'API de Youtube (en utilisant une clé API valide). Sachez que les clés API ont des quotas journaliers que ce programme atteindra assez rapidement. Pour plus d'informations, consultez la page github .

Créer une API Youtube v3Lien permanent

Depuis la sortie de la v0.1.1 , youtube4tvh ne nécessite plus l'utilisation de clés API pour fonctionner. Par conséquent, l'utilisation des clés API est désormais facultative . Si vous choisissez d'ignorer cette étape, omettez simplement l' --apikey argument lors de l'exécution de cet utilitaire.

Vous pouvez trouver des instructions sur la page officielle . Si vous ne voulez pas vous diriger là-bas, voici une version simplifiée :

  1. Inscrivez-vous ou connectez-vous à votre compte Google ;

  2. Accédez à votre tableau de bord API ;

  3. Créez un projet (en haut à gauche > nouveau projet) ;

  4. Donnez un nom au projet et créez-le (cela devrait prendre quelques secondes…) ;

  5. Sélectionnez le projet que vous venez de créer et dans le tableau de bord, allez dans '+ Activer les API et les services' ;

  6. Recherchez Youtube Data API v3 et activez-le ;

  7. Il devrait vous rediriger vers son tableau de bord, mais si ce n'est pas le cas, sélectionnez Gérer ;

  8. Sélectionnez Créer des informations d'identification (si vous ne voyez pas de bouton, accédez simplement à Informations d'identification dans le menu latéral) ;

  9. Il va vous demander quelle API vous allez utiliser (sélectionnez Youtube Data API v3), d'où vous allez l'appeler (Autre interface utilisateur) et quelles données (Données publiques). Sélectionnez ensuite "De quelles informations d'identification ai-je besoin ?" et il générera une API sans restriction pour le projet que vous avez créé ;

  10. Dans le menu latéral, accédez à Credentials et modifiez la clé API que vous avez générée ;

  11. Sous "Restrictions API", sélectionnez Restreindre la clé > Youtube Data API v3 > Enregistrer.

C'est ça! Votre clé est cette longue chaîne avec des lettres et des chiffres aléatoires dans la colonne intitulée Key . Chaque fois que vous voyez un champ à YOURKEY, utilisez celui-ci. Vous pouvez également répéter ce processus pour générer des clés supplémentaires. C'est une bonne idée de le faire.

Installer youtube4tvhLien permanent

Ouvrez une fenêtre de terminal et exécutez la commande suivante :

sudo apt update
sudo apt install git python-pip
cd /opt
sudo git clone https://github.com/cgomesu/youtube4tvh.git
cd youtube4tvh

Installez les packages requis via pip :

pip install .

Testez le programme (changez YOURKEYpour votre clé API)

cd youtube4tvh
python main.py --apikey=YOURKEY --channelname="DW News"

Maintenant, il devrait y avoir un fichier output.m3u dans le même dossier que vous (vous pouvez lslister les fichiers).

Si vous rencontrez des problèmes d'autorisation, assurez-vous d'utiliser un utilisateur avec sudo perission. De plus, si votre utilisateur n'est pas autorisé à écrire dans /opt, exécutez la commande suivante (en changeant YOURUSERpour votre nom d'utilisateur sudo) :

sudo chown -R YOURUSER:sudo /opt/youtube4tvh

Si tout semble bon, continuez et ajoutez l'autorisation d'exécuter le script d'assistance streamlink.sh qui dirigera les données vers TVH (si vous souhaitez modifier les paramètres de streamlink, modifiez-les dans le fichier streamlink.sh) :

sudo chmod +x /opt/youtube4tvh/streamlink.sh

Utilisation de baseLien permanent

Ce programme a deux modes d'exécution, add et update . C'est --mode=add le mode par défaut et il créera un fichier m3u si vous n'en spécifiez pas un. Cependant, si vous fournissez un --m3uinput=/path/to/file.m3u, il ajoutera à la place des canaux à output.m3u. (Si --m3uinput et --m3uoutput sont identiques, alors il s'ajoute à lui-même.)

Le --mode=update analysera --m3uinput=/path/to/file.m3u et mettra à jour toutes les URL pour s'assurer qu'elles sont celles actuellement disponibles (au lieu d'une URL cassée). Ceci est utile car même si certaines chaînes Youtube diffusent 24 heures sur 24, 7 jours sur 7, elles arrêtent et redémarrent parfois le flux, ce qui oblige Youtube à générer une nouvelle URL vers leur flux en direct. Cela s'assurera que votre output.m3u --mode=update utilise toujours les URL correctes. (Encore une fois, si vous souhaitez mettre à jour le même fichier d'entrée, pointez à la fois --m3uinput et --m3uoutput vers le même fichier m3u.)

Tout d'abord, nous allons générer un fichier youtube.m3u avec la chaîne "DW News". Ensuite, nous ajouterons quelques chaînes supplémentaires au fichier youtube.m3u. Ensuite, nous créerons un cronjob pour maintenir notre youtube.m3u à jour.

  • Créez le fichier youtube.m3u et ajoutez la chaîne "DW News" (modifiez YOURKEYvotre clé API actuelle) :
cd /opt/youtube4tvh/youtube4tvh
python main.py --apikey=YOURKEY --m3uoutput=youtube.m3u --channelname="DW News"
  • Ajoutez la chaîne "France 24 anglais" au fichier youtube.m3u :
python main.py --apikey=YOURKEY --m3uinput=youtube.m3u --m3uoutput=youtube.m3u --channelname="France 24 English"
  • Ajoutez la chaîne "Explore Nature" au fichier youtube.m3u :
python main.py --apikey=YOURKEY --m3uinput=youtube.m3u --m3uoutput=youtube.m3u --channelname="Explore Nature"
  • Créez un cronjob pour mettre à jour le fichier youtube.m3u tous les jours à 6h du matin. Tout d'abord, faites une sauvegarde de votre fichier youtube.m3u :
cp /opt/youtube4tvh/youtube4tvh/youtube.m3u /opt/youtube4tvh/youtube4tvh/youtube.m3u.backup
  • Créez une tâche cron :
crontab -e
  • Ajoutez ce qui suit en bas
0 6 * * * /usr/bin/python /opt/youtube4tvh/youtube4tvh/main.py --apikey=YOURKEY --m3uinput=/opt/youtube4tvh/youtube4tvh/youtube.m3u --m3uoutput=/opt/youtube4tvh/youtube4tvh/youtube.m3u --mode=update
  • Enregistrer et quitter (ctrl+x)

C'est tout ce que nous devons faire avec ce programme. Si jamais vous avez envie d'ajouter une nouvelle chaîne à la liste de lecture, vous pouvez simplement répéter les exemples "Ajouter" avec la nouvelle chaîne à la place.

Si vous souhaitez supprimer une chaîne, vous devrez modifier manuellement le fichier youtube.m3u (supprimez la ligne #EXTINF de la chaîne et celle située immédiatement en dessous, qui contient la commande pipe). Vous pouvez également modifier manuellement le fichier m3u pour ajouter un titre de groupe aux chaînes (voir sample/input.m3u, par exemple), modifier leur ordre, etc. Utilisez simplement votre éditeur de texte préféré pour le faire et lorsque vous avez terminé , enregistrez en conservant l'extension .m3u.

RecommandationsLien permanent

Théoriquement, les listes de lecture m3u peuvent contenir autant de flux que vous le souhaitez. Cependant, en règle générale, je trouve utile de créer une liste de lecture m3u pour chaque type de chaîne de streaming – par exemple, youtube-webcams.m3u, youtube-news.m3u, youtube-radio.m3u, etc. – et disposer alors d'une clé API unique pour chacun d'eux. De cette façon, je peux exécuter le cronjob youtube4tvh plus souvent, réduisant ainsi le risque d'avoir des URL cassées dans le fichier m3u.

Lien de fluxLien permanent

Streamlink est un programme utilitaire génial et si vous ne l'avez jamais utilisé auparavant, assurez-vous de consulter leur documentation . Ici, nous ne l'utiliserons que pour diriger les données de Youtube vers un serveur TVH mais Streamlink est capable de diriger les flux vidéo de nombreuses autres plateformes (Twitch, Dailymotion, etc.).

Pour installer Streamlink, veuillez suivre les instructions sur le site officiel . Assurez-vous d'utiliser la dernière version par la suite. Vous pouvez trouver la version installée en exécutant streamlink --version, qui devrait être la même que la dernière version sur leur page Releases .

(Il semble que plusieurs dépôts distribuent une version beaucoup plus ancienne que la 1.4.1, qui est la dernière lorsque cet article a été publié pour la première fois. Si c'est le cas pour votre distribution, jetez un œil à l'installation de PyPi et de la source sur leur page d'installation . Désinstallez l'ancienne version et installez via pip et si cela ne fonctionne pas, essayez de cloner leur référentiel git et installez via setup-tools, un peu comme l'utilitaire youtube4tvh.)

Dans /opt/youtube4tvh, vous remarquerez un fichier appelé streamlink.sh . Il s'agit d'un script d'assistance que TVH utilisera pour obtenir le flux vidéo à partir d'une URL Youtube. Si vous l'ouvrez avec un éditeur de texte, vous verrez ce qui suit :

#!/bin/bash
####################################################
################ Streamlink script #################
####################################################
# The default version writes the data from the best
# stream ($1, the first argument) to stdout using a
# thread pool of size 2 to download HLS segments.
# Everything else follows default values.
#
# Inspired by niwi_niwi's post at
# https://tvheadend.org/boards/5/topics/35658
#
# More info: https://streamlink.github.io/cli.html
#
####################################################
#### Add/modify script according to your needs #####
streamlink 
--stdout 
--hls-segment-threads 4 
--hls-live-edge 10 
"$1" best

La commande réelle pour exécuter streamlink et ses options sont toutes en bas. Si vous savez ce que vous faites et que vous voulez jouer avec différentes configurations, continuez et modifiez les arguments dans la commande streamlink. Dites, si au lieu de toujours lire le "meilleur" flux, vous voulez lire la version 480p, changez-le simplement en cela (mais partez toujours --stdoutou vous ne pourrez pas acheminer les données vers TVH). Encore une fois, consultez la documentation pour une liste complète des options.

Pour tester le script, vous pouvez simplement exécuter ce qui suit (changement YOUTUBEURLpour l'URL d'un live-stream Youtube) :

bash streamlink.sh YOUTUBEURL

Vous devriez voir tout un tas de caractères aléatoires lorsque streamlink envoie le flux vidéo au terminal. Appuyez sur ctrl+c pour terminer le processus. Si vous avez un joueur, vous pouvez exécuter la commande ci-dessus avec un tuyau vers le joueur. En utilisant VLC , par exemple :

bash streamlink.sh YOUTUBEURL | vlc -

TVH serverLien permanent

TVH a changé la donne pour moi. Il offre un système centralisé pour gérer plusieurs réseaux IPTV et tuners TV. Je peux entièrement personnaliser la façon dont toutes les chaînes s'afficheront pour tous mes clients et c'est tellement mieux que d'utiliser plusieurs applications (et parfois louches) développées par chaque fournisseur IPTV. Si une chaîne est en panne, je peux dire à TVH de la supprimer automatiquement ou de la remapper vers un autre fournisseur. Si l'EPG ne fonctionne pas, je peux dire à TVH d'aller chercher à partir d'une autre source. Si un client ne prend pas en charge un type particulier de codec, je peux créer un profil qui utilise le codec qui fonctionne avec lui. Et toutes ces modifications sont automatiquement appliquées à tous les clients, sans qu'il soit nécessaire de les modifier un par un, car ils obtiennent tous des données de mon serveur TVH au lieu de sources externes. (C'est le serveur TVH qui devrait toujours le faire.)

InstallationLien permanent

Pour installer un serveur TVH, veuillez suivre les instructions sur le site officiel . Je vous suggère fortement d'installer à partir du référentiel pour faciliter la mise à jour avec une simple apt updatecommande. Assurez-vous également que vous exécutez la dernière version de celui-ci par la suite.

Configuration de baseLien permanent

Après avoir installé TVH, dirigez-vous vers l'interface Web sur http://localhost:9981 . (Si vous n'exécutez pas un environnement de bureau sur la même machine, accédez-y à partir d'une autre machine sur le même réseau et remplacez localhost par l'adresse IP de la machine exécutant le serveur TVH. De plus, il va sans dire que la machine hébergeant le TVH serveur doit avoir une adresse IP fixe sur le réseau local car tous les clients pointeront vers elle.)

Si vous avez fourni des informations d'identification d'administrateur pour TVH lors de l'installation, il vous sera demandé de vous identifier maintenant.

TVH lancera l'assistant la première fois que vous accéderez à l'interface Web, mais vous pouvez simplement l'ignorer (appuyez sur Annuler).

Notez qu'il existe plusieurs onglets dans l'interface utilisateur Web, mais de nombreuses options ne s'afficheront pas si le "Niveau d'affichage" est défini sur Basique, alors changeons la valeur par défaut en Expert :

# Go to Configuration > General > Base > Server > Set "User interface level" to Expert and hit Save

Maintenant, configurons les profils Stream pour qu'ils redémarrent en cas d'erreur :

# Go to Configuration > Stream > Stream profiles > htsp > Check "restart on error" hit Save

(Vous pouvez répéter cette étape pour tous les profils que vous allez utiliser. J'utilise généralement htsp pour les clients et passe pour l'enregistrement automatique.)

Pendant que nous y sommes, allons-y et personnalisons également les paramètres d'enregistrement. Tout dépend vraiment de vos propres préférences, mais c'est ce que j'utilise qui est différent de la configuration par défaut :

# Go to Configuration > Recording > DVR Profiles > Default profile
# DVR file retention: 3 days
# Pre-recording padding: 5 mins
# Post-recording padding: 5 mins
# Recording system path: /path/to/my/NAS/media/iptv/recording
# Maintain free storage space in MiB: 5000
# File permissions: 0777
# Filename character set: UTF-8
# Skip commercials: Unchecked
# Format string: $c/$t - $c - %F - %R$n.$x
# Directory permissions: 0777
# Make subdirectories per channel: Checked
# Include date in filename: Checked
# Include time in filename: Checked
# Remove all unsafe characters from filename: Checked
# Hit Save

Nous en avons terminé avec la configuration de base ! Avant de passer à la section suivante, notez qu'au bas de l'interface Web, il y a une barre appelée Tvheadend log et sur le côté opposé, il y a un bouton. Cliquez dessus pour ouvrir le journal. Ceci est très utile pour vérifier s'il y a une erreur pendant que vous apportez des modifications au serveur. Gardez-le ouvert pendant que vous modifiez les paramètres et si vous voyez une erreur, il y a probablement quelque chose de mal configuré que vous devriez corriger avant de continuer.

Créer un réseau automatique IPTVLien permanent

Nous allons maintenant créer un réseau IPTV en utilisant le fichier youtube.m3u que nous avons créé avec youtube4tvh. Ouvrez l'interface utilisateur Web de TVH et procédez comme suit :

# Go to Configuration > DVB Inputs > Networks > Add
# Type: IPTV automatic network

Cela redirigera vers les paramètres IPTV. Modifiez les éléments suivants :

# Network name: youtube
# URL: file:///opt/youtube4tvh/youtube4tvh/youtube.m3u
# Create bouquet: Checked
# Channel numbers start from: 1
# Accept zero value for TSID: Checked
# Provider network name: youtube
# Ignore provider's channel numbers: Checked
# Character set: UTF-8
# Scan after creation: Unchecked
# Content character set: UTF-8
# Service ID: 1
# Hit Create

Avant de continuer, c'est le bon moment pour vérifier si streamlink et le script d'assistance fonctionnent. Nous allons forcer la lecture de quelques mux (chaînes de votre liste de lecture youtube.m3u) pour nous assurer que tout va bien avant de les mapper sur des chaînes de télévision réelles. (Vous aurez besoin d'un lecteur pour cette étape ; si vous n'en avez pas, ignorez-le ou installez VLC).

# Go to Configuration > DVB Inputs > Muxes > Choose a random one and Hit the Play button

Le flux sélectionné devrait apparaître dans quelques secondes. Si ce n'est pas le cas, il y a probablement un problème avec Streamlink ou le lecteur ou les deux, auquel cas vous devriez vous arrêter et essayer de le résoudre avant de continuer.

Le mappage sert aux canauxLien permanent

Il existe deux manières de mapper les services aux canaux. La méthode standard consiste à accéder à l'onglet Services et à choisir Map Selected > Map all services. Cela devrait très bien fonctionner si vos multiplexeurs ne changent jamais. Cependant, s'ils le font (comme dans notre cas), ils ne seront pas automatiquement remappés sur leur canal, et vous devrez refaire ce processus de mappage manuellement, plusieurs fois. Nous ne voulons pas faire ça. Heureusement, il existe une deuxième façon de mapper les services aux canaux qui le fait automatiquement, même si vos multiplexeurs changent, et c'est via Bouquets .

Rappelez-vous que lorsque nous avons créé le réseau IPTV youtube, nous avons sélectionné "Créer un bouquet". À cause de cela, il y a maintenant une nouvelle entrée dans Configuration > Chaîne/EPG > Bouquets > « youtube ». Alors, allons-y et modifions-le un peu:

# Go to Configuration > Channel / EPG > Bouquets > Edit the "youtube" bouquet
# Enabled: Checked
# Auto-map to channels: Checked
# Channel mapping options: Select all
# Create tags: Create provider name tags, Create network name tags
# Hit Save

Attendez quelques secondes et allez dans l'onglet "Chaînes" et vous devriez voir toutes vos chaînes automatiquement mappées à leurs services. Si vous apportez des modifications à la liste de lecture youtube.m3u, le bouquet devrait automatiquement détecter ces modifications à partir de maintenant.

Données EPGLien permanent

Certaines des chaînes d'information 24h/24 et 7j/7 sur Youtube (par exemple, France 24, DW) suivent en fait le même guide électronique des programmes (EPG) que leur diffusion par câble/satellite. Donc, si vous le souhaitez, vous pouvez ajouter des données EPG à leur flux en direct Youtube. Il existe un programme fantastique appelé WebGrab + Plus qui peut le faire pour vous gratuitement , mais il y a une courbe d'apprentissage et comment transmettre les données à TVH (netcat ou curl). Je prévois d'écrire un guide à ce sujet dans un avenir proche, car je travaille également sur un analyseur pour le dossier site.pack. Mais si vous n'avez pas envie de plonger là-dedans, vous pouvez toujours payer un fournisseur EPG et l'ajouter manuellement à vos clients (mauvais) ou essayer de comprendre comment transmettre les données EPG au serveur TVH (bon).

Créer et modifier des utilisateursLien permanent

Les clients peuvent accéder à TVH en utilisant les mêmes informations d'identification que celles que vous avez utilisées pour configurer le serveur TVH (accès administrateur). En règle générale, cependant, ce n'est pas une bonne pratique. De plus, si vous avez plusieurs clients, il est bon de savoir à quoi chacun essaie d'accéder sur votre serveur TVH. Alors, allons-y et créons un utilisateur "client":

# Go to Configuration > Users > Access Entries > Add
# Streaming: Select all
# Video recorder: Basic, HTSP, View All
# Hit Create

Ajoutons maintenant un mot de passe pour cela :

# Go to Configuration > Users > Passwords > Add
# Enabled: Checked
# Username: client
# Password: password
# Hit Create

C'est ça! Vous pouvez répéter ce processus autant de fois que nécessaire et jouer avec les autorisations, en fonction de votre cas d'utilisation.

Période de récupération et cronjobs youtube4tvhLien permanent

Si vous avez une liste de lecture youtube m3u avec des chaînes susceptibles de changer plusieurs fois au cours de la même journée, c'est une bonne idée de créer une liste de lecture distincte pour ces chaînes. Ensuite, lorsque vous créez un cronjob youtube4tvh pour la nouvelle liste de lecture m3u, faites-le fonctionner plus fréquemment (par exemple, toutes les 5 minutes seraient */5 * * * *) et dans le serveur TVH, ajoutez un nouveau réseau automatique IPTV pour la nouvelle liste de lecture m3u et dans ses paramètres, modifiez la « période de réextraction » pour qu'elle corresponde à l'intervalle de mise à jour de la tâche cron (5) ; appuyez sur enregistrer, puis redémarrez le serveur TVH pour appliquer les nouveaux paramètres. Si vous l'avez bien fait, le serveur TVH vérifiera maintenant la liste de lecture m3u à un intervalle égal à la période de récupération et mettra à jour tout mux nouveau/modifié dessus, qui sera automatiquement mappé à une chaîne de son bouquet.

TVH clientLien permanent

Il existe plusieurs façons de regarder les chaînes sur votre serveur TVH, y compris directement depuis l'interface Web elle-même (onglet EPG > Regarder la TV). Celui que j'utilise est l'addon client Kodi + TVH car mes clients Kodi accèdent également à mon serveur Plex.

Vous pouvez installer Kodi sur pratiquement n'importe quel ordinateur monocarte, tel que Raspberry Pi et Odroid , et la distribution Linux. Il existe des centaines de guides montrant comment installer Kodi, donc je ne le ferai pas. Au lieu de cela, je parlerai de l' addon client TVH pour cela.

Install a TVH client addon for KodiLien permanent

Ouvrez Kodi et essayez d'installer via le repo officiel :

# Go to Add-ons > Install from repo > PVR clients
# Look for Tvheadend HTSP Client and install it

Maintenant, selon la distribution, vous ne verrez pas l'option "clients PVR". Dans ce cas, vous devez installer manuellement le client TVH. Sur Debian, par exemple, vous pouvez l'installer comme ceci :

# Open a terminal
sudo apt update
sudo apt install kodi-pvr-hts

(Une autre option consiste à télécharger un .zip de l'addon, mais veuillez d'abord faire vos recherches. Ne téléchargez et n'installez pas d'addons à partir de dépôts aléatoires.) Si vous n'avez vu aucune erreur, cela signifie que le client PVR est maintenant disponible sur Kodi , alors ouvrez-le (redémarrez-le, s'il était déjà ouvert), puis procédez comme suit (en modifiant les valeurs pour les valeurs appropriées pour votre serveur TVH et les informations d'identification du client) :

# Go to Add-ons > My add-ons > PVR clients > Tvheadend HTSP Client > Configure
# > Connection Settings
# IP address: The IP address of the machine hosting your TVH server
# HTTP port: 9981
# HTSP port: 9982
# Username: client
# Password: password
# > Streaming settings
# Profile to use: htsp
# (If your connection is pretty good, you might want to try enabling predictive tuning
# but I've had mixed results with it.)
# Hit OK
# Restart Kodi

Si vous voulez jouer, vous pouvez créer un profil vidéo uniquement pour ce client, puis définir le profil pour l'utiliser. Il peut s'agir d'un profil qui transcode vers un codec AV particulier qui correspond le mieux au matériel client, par exemple. N'oubliez pas que chaque fois que vous modifiez l'addon, vous devez redémarrer Kodi pour que les modifications prennent effet.

Testez le client Kodi :

# Go to TV > Channels > Play random one

Si tout fonctionne comme il se doit, vous devriez maintenant pouvoir regarder le flux depuis votre client Kodi. Jouez avec et essayez d'enregistrer quelque chose aussi. Il est maintenant temps d'affiner votre serveur TVH pour mieux servir vos clients.

Vous pouvez apporter d'autres modifications côté client dans le menu des paramètres PVR et TV en direct de Kodi , telles que le mappage des chaînes à des numéros spécifiques, le comportement des chaînes changeantes, etc.

ConclusionLien permanent

Félicitations pour avoir atteint la fin de ce guide. Comme je l'ai déjà dit, l'un de mes futurs projets consiste à travailler sur un analyseur pour les données Webgrab + Plus EPG, puis à rédiger un guide sur la façon de l'implémenter en utilisant la configuration actuelle.

Si vous avez trouvé cela utile ou si vous avez des suggestions sur la façon d'améliorer ce guide, veuillez laisser un commentaire et j'essaierai de vous répondre dès que possible.

Translate »