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.
| 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 |
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"
)./dvr-zeima.shUn 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
./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.
- 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.
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 |
.
├── dvr-zeima.sh # Script principal
├── enregistrements/ # Dossier créé automatiquement à l'enregistrement
└── README.md
╔══════════════════════════════════════════════════╗
║ 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
- Le script utilise le profil
bestde streamlink pour sélectionner la meilleure qualité disponible. - Les options
--stream-segment-attempts 10,--retry-streams 5et--retry-open 5rendent 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.