Skip to content

zeima08/Dvr-Playlist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

📺 DVR-Zeima

Script Bash interactif pour enregistrer des flux IPTV (.m3u) via streamlink, avec interface semi-graphique (whiptail), filtrage par nom/groupe, et relance automatique en cas de coupure.


Prérequis

Outil Rôle Installation
bash Interpréteur du script Inclus sur Linux/macOS
streamlink Capture du flux vidéo pip install streamlink
whiptail Interface semi-graphique en terminal sudo apt install whiptail

Installation

git clone <URL_DU_DEPOT>
cd <NOM_DU_DEPOT>
chmod +x record_jp.sh

Éditez ensuite le tableau CHANNELS dans dvr-zeima.sh pour y insérer vos chaînes au format :

"Nom de la chaîne|Groupe|URL_du_flux"

Exemple :

declare -a CHANNELS=(
  "NHK World|Info|https://exemple.com/nhk.m3u8"
  "TV Asahi|Généraliste|https://exemple.com/asahi.m3u8"
)

Utilisation

Mode interactif (menu graphique)

./dvr-zeima.sh

Un menu whiptail s'affiche avec la liste de toutes les chaînes. Vous pouvez :

  • Défiler avec les flèches du clavier
  • Filtrer par nom ou groupe via l'option Rechercher
  • Réinitialiser le filtre avec l'option Réinitialiser
  • Sélectionner une chaîne pour lancer l'enregistrement

Mode direct (argument en ligne de commande)

./dvr-zeima.sh "Nom de la chaîne"

Si le nom correspond exactement à une entrée du tableau CHANNELS (insensible à la casse), l'enregistrement démarre immédiatement, sans passer par le menu.

Si le nom n'est pas trouvé, le menu interactif s'ouvre.


Fonctionnement de l'enregistrement

  • Les fichiers sont sauvegardés dans le dossier ./enregistrements/ (créé automatiquement).
  • Le nom du fichier suit le format : NomChaîne_AAAAMMJJ_HHMMSS.ts
  • En cas de coupure du flux, le script tente automatiquement de reprendre l'enregistrement.
  • Si les tentatives échouent pendant 10 minutes (MAX_RETRY_DURATION=600), le script s'arrête.
  • Appuyez sur Ctrl+C pour arrêter manuellement l'enregistrement.

Configuration

Les variables suivantes se trouvent en haut du script :

Variable Valeur par défaut Description
OUTPUT_DIR ./enregistrements Dossier de destination des enregistrements
MAX_RETRY_DURATION 600 (secondes) Durée maximale de tentatives de reconnexion

Structure du projet

.
├── dvr-zeima.sh       # Script principal
├── enregistrements/   # Dossier créé automatiquement à l'enregistrement
└── README.md

Exemple de session

╔══════════════════════════════════════════════════╗
║              Enregistrement en cours             ║
╚══════════════════════════════════════════════════╝
  Chaîne  : NHK World
  Groupe  : Info
  URL     : https://exemple.com/nhk.m3u8
  Dossier : ./enregistrements
  Ctrl+C pour arrêter.

[14:32:01] Lancement → ./enregistrements/NHKWorld_20260410_143201.ts
[14:45:10] Arrêt (code: 1)
[14:45:10] Nouvelle tentative → ./enregistrements/NHKWorld_20260410_144510.ts

Remarques

  • Le script utilise le profil best de streamlink pour sélectionner la meilleure qualité disponible.
  • Les options --stream-segment-attempts 10, --retry-streams 5 et --retry-open 5 rendent l'enregistrement robuste face aux instabilités réseau.
  • Les fichiers produits sont au format .ts (MPEG Transport Stream), lisibles avec VLC, mpv, ffmpeg, etc.

About

Script pour enregistrer son streaming. (Playlist non inclus)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages