Regarder et enregistrer la télévision neuf pour ordinateur depus Vlc.
Petit script trouvé sur ubuntu il y a moulte temps, qui m'est trés utile.
Tout d'abord (Selon votre distribution) :
| Code : |
sudo apt-get install curl zenity vlc
sudo yum install curl zenity vlc
sudo emerge curl zenity vlc
|
Créons les répertoires utiles au script :
| Code : |
mkdir Tv_LeNeuf
cd Tv_LeNeuf
mkdir script
mkdir enregistrements
mkdir icone
|
Le script de visionnement :
| Code : |
cd script
nano TvLeNeuf1.sh
|
Copier dans nano ceci :
| Code : |
#!/bin/bash
function choix ()
{
case $EMISSION in
"France 2") CHAINE=france_2 ;;
"France 3") CHAINE=france_3 ;;
"France 4") CHAINE=france_4 ;;
"France 5") CHAINE=france_5 ;;
"France o") CHAINE=france_o ;;
"Arte") CHAINE=arte;;
"NT1") CHAINE=nt1 ;;
"Direct 8") CHAINE=direct_8 ;;
"NRJ 12") CHAINE=nrj12 ;;
"TV 5") CHAINE=tv5_monde ;;
"JET") CHAINE=jet ;;
"BFM Tv") CHAINE=bfm_tv ;;
"NRJ Hits") CHAINE=nrj_hits ;;
"La chaine parlementaire") CHAINE=lcp ;;
"Liberty TV") CHAINE=liberty_tv ;;
"Euronews") CHAINE=euronews ;;
"Aljazeera") CHAINE=aljazeera ;;
"TFou") CHAINE=tfou ;;
"Beur TV") CHAINE=beur_tv ;;
"Video Click") CHAINE=video_click ;;
"KTO") CHAINE=kto ;;
" ENREGISTREMENT" ) bash $HOME/Tv_LeNeuf/script/TvLeNeuf1_rec.sh ;;
esac
}
curl http://televisionsurpc.neuf.fr/televisionsurpc.m3u > $HOME/Tv_LeNeuf/script/televisionsurpc.m3u
until [ "$REP" = "1" ]
do
EMISSION=`zenity --window-icon "$HOME/Tv_LeNeuf/icone/tv.png" --title "LeNeuf TV" --text "Double-Clic pour choisir\nAnnuler pour éteindre" --height=500 --width=200 --list --column " $EMISSION" " ENREGISTREMENT" "" "France 2" "France 3" "France 4" "France 5" "France o" "Arte" "NT1" "Direct 8" "NRJ 12" "TV 5" "JET" "BFM Tv" "NRJ Hits" "La chaine parlementaire" "Liberty TV" "Euronews" "Aljazeera" "TFou" "Beur TV" "Video Click" "KTO"`
REP=$?
choix
FLUX=$(curl `cat $HOME/Tv_LeNeuf/script/televisionsurpc.m3u | grep $CHAINE` | grep REF | cut -d "\"" -f 2 | tail -1)
killall wxvlc
if [ "$REP" = "1" ]; then
exit
fi
wxvlc $FLUX &
done
exit
|
Et pour finir le script d'enregistrement
| Code : |
nano TvLeNeuf1_rec.sh
|
Copier dans nano ceci :
| Code : |
#!/bin/bash
function choix ()
{
case $EMISSION in
"France 2") CHAINE=france_2 ;;
"France 3") CHAINE=france_3 ;;
"France 4") CHAINE=france_4 ;;
"France 5") CHAINE=france_5 ;;
"France o") CHAINE=france_o ;;
"Arte") CHAINE=arte;;
"NT1") CHAINE=nt1 ;;
"Direct 8") CHAINE=direct_8 ;;
"NRJ 12") CHAINE=nrj12 ;;
"TV 5") CHAINE=tv5_monde ;;
"JET") CHAINE=jet ;;
"BFM Tv") CHAINE=bfm_tv ;;
"NRJ Hits") CHAINE=nrj_hits ;;
"La chaine parlementaire") CHAINE=lcp ;;
"Liberty TV") CHAINE=liberty_tv ;;
"Euronews") CHAINE=euronews ;;
"Aljazeera") CHAINE=aljazeera ;;
"TFou") CHAINE=tfou ;;
"Beur TV") CHAINE=beur_tv ;;
"Video Click") CHAINE=video_click ;;
"KTO") CHAINE=kto ;;
esac
}
#Vérifie le résultat de zenity si il n'y a pas plusieurs chaines sélectionnées. Pas fiable...! J'ai pas encore trouvé comment faire !
function test_chaines ()
{
case $LIST in
"REC immédiat|Lecture différée") zenity --error --title="$title" --text="$TEXT" ; exit ;;
"REC immédiat") zenity --error --title="$title" --text="$TEXT" ; exit ;;
"Lecture différée") zenity --error --title="$title" --text="$TEXT" ; exit ;;
"") zenity --error --title="$title" --text="$TEXT" ; exit ;;
"REC immédiat|Lecture différée|"*"|"*"") zenity --error --title="$title" --text="Vous avez selectionné 2 chaines" ; exit ;;
#"REC immédiat|"*"|"*"") zenity --error --title="$title" --text="Vous avez selectionné 2 chaines" ; exit ;;
#"Lecture différée|"*"|"*"") zenity --error --title="$title" --text="Vous avez selectionné 2 chaines" ; exit ;;
esac
}
#Enregistrement différé, utilisation 'vlc --extraintf http' pour pouvoir éteindre proprement vlc
function rec_diff_vlc ()
{
DATE=`date +"%x_%X"`
sleep $DEBUT_MN
killall wxvlc
vlc --extraintf http $FLUX --demux=dump :demuxdump-file="$HOME/Tv_LeNeuf/enregistrements/REC-"$CHAINE"-$DATE.avi" &
PID=$!
lect_diffe &
sleep $FIN_MN
wget "http://localhost:8080/requests/status.xml?command=pl_stop" -O /dev/null
sleep 5
kill $PID
kill $PID1 #PID1= pid de la lecture différé
exit
}
function test_retour ()
{
if [ "$1" != "0" ]; then
zenity --error --title="$title" --text="Vous devez faire un choix avant de valider"
exit
fi
}
function test_vide ()
{
if [ "$1" == "" ]; then
zenity --error --title="$title" --text="Vous devez entrer une réponse"
exit
fi
}
#Sert uniquement à écrire dans une boite de dialogue
function lect_diff_cont ()
{
if [ $LECT = "1" ]; then
echo Lecture en différée
fi
}
#Lecture différé, sleep 5 et lis le fichier en cours d'enregistrement
function lect_diffe ()
{
if [ $LECT = "1" ]; then
sleep 5
wxvlc "$HOME/Tv_LeNeuf/enregistrements/REC-"$CHAINE"-$DATE.avi" &
PID1=$!
fi
}
curl http://televisionsurpc.neuf.fr/televisionsurpc.m3u > $HOME/Tv_LeNeuf/script/televisionsurpc.m3u
TITRE="Enregistrement"
TEXT="Vous devez choisir une chaine."
title="erreur"
LIST=`zenity --title "$TITRE" --window-icon "$HOME/Tv_LeNeuf/icone/tv.png" --text " Chaines et Options" --height=500 --width=200 --list --checklist --column "" --column "$EMISSION" TRUE "REC immédiat" TRUE "Lecture différée" FALSE "" FALSE "France 2" FALSE "France 3" FALSE "France 4" FALSE "France 5" FALSE "France o" FALSE "Arte" FALSE "NT1" FALSE "Direct 8" FALSE "NRJ 12" FALSE "TV 5" FALSE "JET" FALSE "BFM Tv" FALSE "NRJ Hits" FALSE "La chaine parlementaire" FALSE "Liberty TV" FALSE "Euronews" FALSE "Aljazeera" FALSE "TFou" FALSE "Beur TV" FALSE "Video Click" FALSE "KTO"`
test_chaines
#Récupère nom de la chaine
EMISSION=`echo $LIST | awk -F"|" '{print $NF}'`
choix
# grep -c compte le nombre de 'Lecture Différé' en sortie de zenity
LECT=`echo $LIST | grep -c 'Lecture'`
# grep -c compte le nombre de 'REC immédiat" en sortie de zenity
REC=`echo $LIST | grep -c 'REC'`
#Récupère l'adresse du flux voulu
FLUX=$(curl `cat $HOME/Tv_LeNeuf/script/televisionsurpc.m3u | grep $CHAINE` | grep REF | cut -d "\"" -f 2 | tail -1)
#Si 'REC immédiat' est sélectionné
if [ $REC = "1" ]; then
DATE=`date +"%x_%X"`
killall wxvlc
wxvlc $FLUX --demux=dump :demuxdump-file="$HOME/Tv_LeNeuf/enregistrements/REC-"$CHAINE"-$DATE.avi" &
PID=$!
#Lancement de lecture différé
lect_diffe &
#zenity --info en attente, clic pour arrêter l'enregistrement
zenity --info --window-icon "$HOME/Tv_LeNeuf/icone/rec.png" --title "$TITRE" --text "Arrêter l'$TITRE $EMISSION ?"
kill $PID #Tuer vlc enregistrement
sleep 5
kill $PID1 #PID1=pid du vlc en lecture différé
exit
else
#L'enregistrement commencera dans n minutes
DEBUT=`zenity --window-icon "$HOME/Tv_LeNeuf/icone/tv.png" --title="Départ REC" --height=100 --width=200 --entry --text="Début dans x minutes ?"`
test_retour $?
test_vide $DEBUT
#L'enregistrement durera n minutes
FIN=`zenity --window-icon "$HOME/Tv_LeNeuf/icone/tv.png" --title="Durée REC" --height=100 --width=200 --entry --text="Durée: x minutes ?"`
test_retour $?
test_vide $FIN
#Converti les secondes en minutes
DEBUT_MN=$(($DEBUT*60))
FIN_MN=$(($FIN*60))
#Calcul le temps du shutdown
ETEIND=$(($DEBUT+$FIN+2))
#Controle de la saisie
zenity --question --window-icon "$HOME/Tv_LeNeuf/icone/tv.png" --title "$TITRE" --text="L'$TITRE de $EMISSION \ncommencera dans $DEBUT mn, durera $FIN mn \n`lect_diff_cont`"
#Si clic sur annuler
if [ $? == 1 ]; then
exit
else
zenity --question --window-icon "$HOME/Tv_LeNeuf/icone/tv.png" --title "$TITRE" --text="Voulez vous éteindre l'ordinateur à la fin de l'$TITRE ?"
#Si extinction ordi sélectionné
if [ $? == 0 ]; then
gksudo "shutdown -h +$ETEIND" &
rec_diff_vlc
else
rec_diff_vlc
fi
fi
fi
exit
|
Voilou, vous n'avez plus qu'a faire un jolie lien dans votre menu.
PS : j'étais censé voir a quoi ressembler les balises code, mais je me suis emporté ^^