RSS Libre@vous

Dernière mise à jour
le 14/01/2016 à 15h43
Les contenus de ce site sont publiés sous la licence CC by-sa, sauf mention contraire.
licence_CC-by-sa
Copyright © 2019 Libre @ vous. Tous droits réservés.
Joomla! est un logiciel libre sous licence GNU/GPL.
29
Avr
2009
Enregistrer les chaînes TV de Free avec un script sous GNU/Linux Imprimer
Je vais vous proposer ici un script shell que j'ai mis au point et qui permet d'enregistrer les chaînes de la Freebox sur votre PC. Cela peut servir à ceux qui n'ont pas la chance d'avoir la dernière Freebox V5 avec le petit boitier séparé et son disque dur intégré. Vous pourrez enregistrer les chaînes TV de Free directement sur le disque dur de votre PC. Avec la taille des disques durs actuels cela peut faire une sacrée capacité d'enregistrement !

Remarque préliminaire


Depuis Décembre 2009, il y a apparemment un problème avec les chaînes TV de Free sur le multi-poste. Pour une version corrigée de mon script d'enregistrement, voir sur ce billet.

Solution graphique


J'avais trouvé un petit logiciel nommé MyFreeTV, multi-plate forme, disponible sous GNU/Linux Ubuntu dans le dépôt http://www.tvfreeplayer.com/~linux/falcon. J'ai utilisé ce logiciel pendant un petit moment, mais j'ai eu quelques soucis : à chaque mise à jour de mon système il fallait le réinstaller... En plus il est en Java et je le trouvais plutôt lent.

... et avec un script maison


Donc j'ai décidé de me lancer dans ma solution maison, qui fonctionne sans utiliser d'interface graphique, Il s'agit d'un script shell qui prend simplement en paramètre le nom de la chaîne et qui enregistre son flux sur le disque dur. Mon script s'appelle recordFreeChannel.sh, mais vous pouvez changer le nom et l'appeler comme bon vous semble !

#!/bin/sh
RECORDPATH="/home/ptigrouick/Videos/enregistrements_TV" # mettez ici le dossier d'enregistrement
FILENAME=$(date +"%Y-%m-%d-%H-%M-%S")"_$1"

# récupérer l'adresse du "vrai" serveur contenant la liste des chaînes
serveur=$(dog http://mafreebox.freebox.fr/freeboxtv/playlist.m3u | grep Location | cut --delimiter=" " -f 2)

# puis utiliser ce serveur pour récupérer l'adresse du flux d'une chaîne à partir de son nom
flux=$(dog $serveur | grep -A 1 -e "${1} $" | grep rtsp)

# enregistrer une chaîne Free directement avec VLC :
screen -S "${FILENAME}" -d -m vlc -vvv "$flux" --sout '#standard{access=file,mux=ps,dst="'"$RECORDPATH"'/'"$FILENAME"'.mpg"}' -Idummy

Je pense que les commentaires dans le script parlent d'eux-mêmes Sourire

Pour faire fonctionner ce script vous devez préalablement installer les paquets suivants : dog, screen et vlc (rien que du libre, rien que du bon). Dans le script, modifiez la valeur de la variable RECORDPATH en mettant le chemin dans lequel vous souhaitez enregistrer les fichiers mpg produits. N'oubliez pas de rendre votre script exécutable avec
chmod u+x recordFreeChannel.sh

Pour lancer l'enregistrement d'une chaîne, il suffit de connaître son nom et de l'utiliser en paramètre du script. Par exemple :
./recordFreeChannel.sh "France 4"

Attention de bien mettre des apostrophes ou des guillemets autour du nom de la chaîne si il contient un espace ! Le nom du fichier mpg sauvegardé sera composé de la date et l'heure à la seconde près, suivies du nom de la chaîne enregistrée.

La commande d'enregistrement de vlc est lancé dans le multiplexeur de terminal screen. Vous pouvez donc fermer le shell avec lequel vous avez lancé le script sans que l'enregistrement s'arrête. Si vous souhaitez afficher les messages lancés par vlc pendant l'enregistrement, tapez screen -r. Pour plus d'infos à propos de screen lire cette documentation ou celle-ci.

Arrêter l'enregistrement


On va y aller bourrin les amis. Un petit killall vlc et le tour est joué. Ça c'est du sauvage ! J'en profite pour signaler que vous n'êtes pas obligé d'arrêter l'enregistrement pour le regarder. Vous pouvez très bien ouvrir le fichier en lecture avec vlc pendant qu'il s'enregistre.

Pas de programmation d'enregistrements ?


C'est vrai que MyFreeTV propose cette option. On peut programmer un enregistrement à l'avance pour qu'il se lance à une heure et un jour donné. Bon il faut évidemment que le PC soit allumé à ce moment là pour que ça marche (c'est pas Garcimore non plus...)

Mais il y a une solution avec mon script ! Il faut utiliser cron, le planificateur de tâches de GNU/Linux. Il suffit d'y indiquer la commande que vous auriez lancé à la main. Pour plus d'infos sur cron, voir cette page.

N'hésitez pas à me dire ce que vous en pensez. Toutes les remarques sont les bienvenues, qu'elles soient positives ou pas Complice
 

Ajouter un Commentaire

Tout les contenus de ce site sont publiés selon les termes de la licence Creative Commons by sa. En ajoutant votre commentaire, vous acceptez implicitement sa mise à disposition selon les termes de cette licence.


Code de sécurité
Rafraîchir