Voila un script shell pour enregistrer sur PC une des 17 premières chaines d'orange TV .
après configuration de Orange Tv pour votre distribution et installation de vlc
voici le script:
- Code: Tout sélectionner
#! /bin/bash
#Script shell (interactif/avec arguments) pour l'enregistrement des chaines Orange TV .
#ce script permet de choisir une des 17 première chaine + en HD(TF1,France2,M6,Arte),
#Laoeur me.anouar at gmail.com
#version 0.1 le 11-10-2009
#require vlc
#pour fedora (requière rpm-fusion) sudo yum install vlc
#pour ubuntu sudo apt-get vlc
function Usage(){
echo >&2 OrangeTvRecorder: version 0.1 le 11-10-2009 developped by Laoeur
echo >&2 Usage:
echo >&2 " "$0 [-h -l] -c chaine -t \"h:m\" -o \"fichier\"
echo >&2 " "-h : imprime cette aide et sort
echo >&2 " "-l : imprime la liste des chaines et sort
echo >&2 " "-c : numero de la chaine \[1-$maxnum\]
echo >&2 " "-t : temps d\'enregistrement \( h:m avec h=Nombre d\'heures et m=Nombre de min\)
echo >&2 " "-o : fichier d\'enregistrement
echo >&2 Ou en interactif
echo >&2 " "$0
echo
exit 1
}
OutDir=$HOME
maxnum=21
typeset -i Tvnumb
#test et creation du dossier .orangeTv pour les
if [ ! -d $HOME/.OrangeTv/ ]
then
mkdir -p $HOME/.OrangeTv/
fi
TvListname[1]="TF1"
TvListIP[1]="rtp://@232.0.1.17:8200"
TvListname[2]="France2"
TvListIP[2]="rtp://@232.0.1.1:8200"
TvListname[3]="France3"
TvListIP[3]="rtp://@232.0.1.2:8200"
TvListname[4]="Canal+"
TvListIP[4]="rtp://@232.0.5.1:8200"
TvListname[5]="France 5"
TvListIP[5]="rtp://@232.0.1.4:8200"
TvListname[6]="M6"
TvListIP[6]="rtp://@232.0.1.10:8200"
TvListname[7]="Arte"
TvListIP[7]="rtp://@232.0.1.5:8200"
TvListname[8]="Direct8"
TvListIP[8]="rtp://@232.0.1.19:8200"
TvListname[9]="W9"
TvListIP[9]="rtp://@232.0.1.43:8200"
TvListname[10]="TMC"
TvListIP[10]="rtp://@232.0.1.7:8200"
TvListname[11]="NT11"
TvListIP[11]="rtp://@232.0.1.20:8200"
TvListname[12]="NRJ12"
TvListIP[12]="rtp://@232.0.1.8:8200"
TvListname[13]="LCP/PS"
TvListIP[13]="rtp://@232.0.1.21:8200"
TvListname[14]="France4 "
TvListIP[14]="rtp://@232.0.1.9:8200"
TvListname[15]="BFM-Tv"
TvListIP[15]="rtp://@232.0.1.22:8200"
TvListname[16]="i-Tele"
TvListIP[16]="rtp://@232.0.5.2:8200"
TvListname[17]="Virgin17"
TvListIP[17]="rtp://@232.0.1.11:8200"
TvListname[18]="TF1-HD"
TvListIP[18]="rtp://@232.0.1.205:8200"
TvListname[19]="France2-HD"
TvListIP[19]="rtp://@232.0.1.207:8200"
TvListname[20]="M6-HD"
TvListIP[20]="rtp://@232.0.1.201:8200"
TvListname[21]="Arte-HD"
TvListIP[21]="rtp://@232.0.1.202:8200"
clear
if [ $# -eq "0" ]
then
noarg=0;
count=1
for i in "${TvListname[@]}"
do
echo $count":" $i
count=$(($count + 1))
done
echo
echo Choisir le numero de la chaine a enregistrer:
while read Tvnumb
do
if [ "$Tvnumb" -eq "0" ]; then
echo Choisir un numero entre [1-$maxnum]: [ENTRER pour valider, Ctrl+C pour annuler]
else
if [ $Tvnumb -lt $maxnum ]
then
break;
else
echo Choisir un numero entre [1-$maxnum]: [ENTRER pour valider, Ctrl+C pour annuler]
fi
fi
done
now=`date '+%d-%m-%y_%H-%M'`
fileoutput="$OutDir/${TvListname[$Tvnumb]}-$now.ts"
echo "Choisir le fichier de sortie [$fileoutput]:"
read filen
if [ "X"$filen != "X" ]
then
fileoutput="$filen"
if [ -f $fileoutput ]
then
echo le fichier de sortie existe il sera remplacer [Ctrl+C pour annuler]!
read X
fi
fi
echo Entrer le temps d\'enregistrement [h:m]
read timec
timec=`echo $timec | awk 'BEGIN { FS = ":" } ; { sec=$1*3600+$2*60; print sec }'`
echo Enregistrement de la chaine "${TvListname[$Tvnumb]}" vers $fileoutput pendant $timec"s"
echo "Appuiez sur [Enter] pour valider ou Q pour annuler"
read comm
if ( [ "X"$comm == "XQ" ] || [ "X"$comm == "Xq" ] )
then
echo Enregistrement annule!
exit
fi
else
noarg=1;
hflag="false"
listtv="false"
while [ $# -gt 0 ]
do
case "$1" in
-h) hflag="true" ; shift;;
-l) listtv="true"; shift;;
-d) daterec="$2"; shift;;
-t) timec="$2"; shift;;
-o) fileoutput="$2"; shift;;
-c) Tvnumb="$2"; shift;;
--) shift; break;;
-*) Usage;;
*) break;; # terminate while loop
esac
shift
done
if [ $listtv == "true" ]
then
echo >&2 OrangeTvRecorder: version 0.1 le 11-10-2009 developped by Laoeur
echo Liste des chaines:
count=1
for i in "${TvListname[@]}"
do
echo " "$count":" $i
count=$(($count + 1))
done
exit 1
fi
if ( [ "X"$fileoutput == "X" ] || [ "X"$Tvnumb == "X" ] || [ "X"$timec == "X" ] || [ $hflag == "true" ] )
then
Usage;
fi
timec=`echo $timec | awk 'BEGIN { FS = ":" } ; { sec=$1*3600+$2*60; print sec }'`
if [ "X"$daterec != "X" ]
then
echo Oups!! pas encore implementer!
exit -1
else
echo Enregistrement de "${TvListname[$Tvnumb]}" vers $fileoutput pendant $timec"s"
fi
fi
cvlc --run-time $timec --file-caching=0 --play-and-exit --deinterlace-mode=mean ${TvListIP[$Tvnumb]} --video-filter deinterlace --sout file/ts:$fileoutput > /dev/null 2>&1 &
pid=$!
echo Afin d\'arreter le processus avant la fin de l\'enregistrement \"kill -9 $pid\"
if [ $noarg -eq "0" ]
then
echo Voulez vous regarder l\'enregistrement? [O/n] \(n\'est pas conseille pour les vieilles becannes\)
read comm
if ( [ "X"$comm == "XO" ] || [ "X"$comm == "Xo" ] )
then
sleep 3
vlc $fileoutput > /dev/null 2>&1 &
fi
fi
enregistrez le sous OrangeTvRecorder.sh et executez:
sh OrangeTvRecorder.sh -h
voici la sortie:
- Code: Tout sélectionner
OrangeTvRecorder: version 0.1 le 11-10-2009 developped by Laoeur
Usage:
OrangeTvRecorder.sh [-h -l] -c chaine -t "h:m" -o "fichier"
-h : imprime cette aide et sort
-l : imprime la liste des chaines et sort
-c : numero de la chaine [1-21]
-t : temps d'enregistrement ( h:m avec h=Nombre d'heures et m=Nombre de min)
-o : fichier d'enregistrement
Ou en interactif
OrangeTvRecorder.sh
Ps: utilisable avec cron pour la programmation quotidienne
mise a jour: option --file-caching=0 regle un probleme de vitesse pour les Chaines HD