Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages