Installare tutto il necessario (arch)
yaourt -S ffmpeg curl rtmpdump w3m zenity yad medit
Installare tutto il necessario (debian)
1. aggiungere la repository
sudo apt-add-repository ppa:webupd8team/y-ppa-manager
2.aggiornare i contenuti di tutte le repository (passaggio obbligato)
sudo apt-get update
3. installare il programma
sudo apt-get install ffmpeg curl rtmpdump w3m zenity yad medit
nel caso la repository desse errore nella fase di aggiornamento eliminarla con il comando
sudo apt-add-repository -r ppa:webupd8team/y-ppa-manager
dopo aver installato il necessario
1.creare un nuovo file chiamato raitv nella cartella /usr/bin scrivendo nel terminale
sudo medit /usr/bin/raitv
2.incollare all'interno le seguenti struzioni (copiare tutto fino alla scritta done)
#!/bin/bash
## Rai-Mobile
# Copyleft 2012 gajm/lihin
# Released under WTFPL v2.0
## Set Player
player="ffplay -autoexit"
# Relinker iPhone/iPad
live_chan='Rai1@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=1182259
Rai2@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=308718
Rai3@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=308709
Rai4@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=746966
Rai5@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=395276
Raimovie@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=747002
Raipremium@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=746992
Raigulp@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=746953
Raiyoyo@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=746899
Raistoria@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=746990
Raiscuola@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=747011
Rainews@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=489110
Raisport1@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=358025
Raisport2@http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=358071'
live_list=`echo "$live_chan" | cut -d'@' -f1`
rep_list='RaiUno
RaiDue
RaiTre
RaiCinque'
rep_date=`for i in {1..7}; do date -d "$i day ago" +%Y-%m-%d" "%A; done`
aspect_ratio='originale
4:3
16:9'
function raimobile(){
yad --width=200 --form --title="Rai-Mobile" --text="Scegli cosa vuoi vedere:" --item-separator="\n" --field="Rai Live:CB" "$live_list" --field="RaiReplay:CB" "$rep_list" --field="Data:CB" "$rep_date" --field="Aspect:CB" "$aspect_ratio" --field "Televideo - Programmi":BTN "chromium-browser -e http://www.televideo.rai.it/televideo/pub/solotesto.jsp?pagina=501" --button="gtk-cancel:1" --button="_Diretta:100" --button="_Replay:200" > /tmp/raimob-param
case $? in
100) railive ;;
200) raireplay ;;
*) exit ;;
esac
}
function railive(){
live_chan_ch=`cut -d'|' -f1 /tmp/raimob-param`
relinker=`echo "$live_chan" | grep "$live_chan_ch" | cut -d'@' -f2`
stream_rel=`curl -I "$relinker" | grep 'Location: ' | awk '{print $2}'`
if [ "$stream_rel" == "" ]; then
yad --title="Error" --window-icon="dialog-error" --image="dialog-error" --text="ERRORE:\nStream non disponibile " --button="gtk-ok:0"
continue
fi
qual_level=`curl "$stream_rel" | grep -v \# | sed 's/\r//'`
qual_ch=`echo "$qual_level" | yad --list --height=250 --width=500 --title "Raalcuni elementii-Mobile - Diretta $live_chan_ch" --text="Seleziona lo stream da usare:" --column="Streams"`
if [[ $? -ne 0 || "$qual_ch" == "" ]]; then continue; fi
if [ X"$(echo "$qual_ch" | grep 'http://')" == "X" ]; then
## TODO Caratteristica del formato (format=m3u8-aapl)?
stream_base_url=`echo "$stream_rel" | awk -F"[Mm]anifest" '{print $1}'`
## Stiamo usando yad... bisogna eliminare "|" alla fine di "$qual_ch".
stream="$stream_base_url${qual_ch%?}"
else
stream="${qual_ch%?}"
fi
aspect=`cut -d'|' -f4 /tmp/raimob-param`
if [ "$aspect" == "originale" ]; then
$player -window_title "Diretta - $live_chan_ch" "$stream"
else
$player -window_title "Diretta - $live_chan_ch" -vf setdar="$aspect" "$stream"
fi
}
function raireplay(){
rep_chan_ch=`cut -d'|' -f2 /tmp/raimob-param`
rep_date_ch=`cut -d'|' -f3 /tmp/raimob-param | cut -d' ' -f1`
wget -q http://www.rai.tv/dl/portale/html/palinsesti/replaytv/static/"$rep_chan_ch"_"${rep_date_ch//-/_}".html -O /tmp/rairep-idx
grep -B1 '"t":' /tmp/rairep-idx | awk 'NR%3!=0 && NR%3!=2' | cut -d'"' -f2 > /tmp/rairep-tmp-hour
grep '"t":' /tmp/rairep-idx | cut -d'"' -f4 > /tmp/rairep-tmp-title
grep '"i":' /tmp/rairep-idx | cut -d'"' -f4 | awk '{print "id"$0}' > /tmp/rairep-tmp-idx_num
grep '"urlTablet":' /tmp/rairep-idx | cut -d'"' -f4 > /tmp/rairep-tmp-ipad
grep '"urlSmartPhone":' /tmp/rairep-idx | cut -d'"' -f4 > /tmp/rairep-tmp-iphone
grep '"h264":' /tmp/rairep-idx | cut -d'"' -f4 > /tmp/rairep-tmp-android
paste -d'|' /tmp/rairep-tmp-hour /tmp/rairep-tmp-title /tmp/rairep-tmp-idx_num /tmp/rairep-tmp-iphone /tmp/rairep-tmp-ipad /tmp/rairep-tmp-android > /tmp/rairep-param
rm /tmp/rairep-tmp-*
prog_ch=`grep -v '|||' /tmp/rairep-param | awk -F'|' '{print $1" - "$2" - "$3}' | yad --list --height=500 --width=450 --title "Replay - $rep_chan_ch - $rep_date_ch" --text="Seleziona il programma:" --column="Programmi"`
if [[ $? -ne 0 || "$prog_ch" == "" ]]; then continue; fi
prog_id="${prog_ch##*id}"
## Non può sbagliare il grep dell'id, l'output è tipo "12345|"
prog_param=`grep "id$prog_id" /tmp/rairep-param`
rm /tmp/rairep-* && touch /tmp/rairep-stream
## Stream HLS akami "http://rai-i.akamaihd.net/[...].10.00_,600,800,1200,1500,.mp4.csmil/master.m3u8"
iph_adap_stream=`echo "$prog_param" | awk -F'|' '{print $4}'`
if [ X"$iph_adap_stream" != "X" ]; then
iph_res=`echo "$iph_adap_stream" | grep -o ',[^,]*' | grep -v m3u8 | cut -d',' -f2`
echo "$iph_res" | while read line; do
iph_stream=`echo "$iph_adap_stream" | sed "s/\(,\)..*\(,\)/\1$line\2/"`
echo "iPhone-$line|$iph_stream" > /tmp/rairep-stream
done
fi
ipa_adap_stream=`echo "$prog_param" | awk -F'|' '{print $5}'`
if [ X"$ipa_adap_stream" != "X" ]; then
ipa_res=`echo "$ipa_adap_stream" | grep -o ',[^,]*' | grep -v m3u8 | cut -d',' -f2`
echo "$ipa_res" | while read line; do
ipa_stream=`echo "$ipa_adap_stream" | sed "s/\(,\)..*\(,\)/\1$line\2/"`
echo "iPad-$line|$ipa_stream" >> /tmp/rairep-stream
done
fi
## Stream .mp4 non adattivo
and_relinker=`echo "$prog_param" | awk -F'|' '{print $6}'`
and_stream=`curl -I "$and_relinker" | grep 'Location: ' | awk '{print $2}' | sed 's/\r//'`
if [ X"$and_stream" != "X" ]; then
echo "Android-h264|$and_stream" >> /tmp/rairep-stream
fi
stream_ch=`cat /tmp/rairep-stream | yad --list --height=300 --width=500 --title "Replay - ${prog_ch%- id*}- $rep_date_ch" --text="Seleziona lo stream da usare:" --column="Streams"`
if [[ $? -ne 0 || "$stream_ch" == "" ]]; then continue; fi
stream=`echo "$stream_ch" | awk -F'|' '{print $2}'`
aspect=`cut -d'|' -f4 /tmp/raimob-param`
if [ "$aspect" == "originale" ]; then
$player -window_title "Replay - ${prog_ch%- id*}- $rep_date_ch" "$stream"
else
$player -window_title "Replay - ${prog_ch%- id*}- $rep_date_ch" -vf setdar="$aspect" "$stream"
fi
rm /tmp/rairep-*
}
while [ $? -eq 0 ]; do
raimobile
done
cliccare tasto salva di medit
4. rendere il file eseguibile
sudo chmod +x /usr/bin/raitv
5. creare file RaiTv.desktop
sudo medit /usr/share/applications/RaiTv.desktop
6. scrivere od incollare al suo interno
[Desktop Entry]
Version=1.0
Terminal=false
Icon=tvtime
Type=Application
Categories=Qt;AudioVideo;Video;Player;
Exec=raitv
Name=RaiTv
7. Salvare
cliccare tasto salva di medit
8. Rendere il file creato eseguibile con il seguente comando da terminale
sudo chmod +x /usr/share/applications/RaiTv.desktop
Ora eseguirlo digitando
raitv
nel terminale
o
spostando il file RaiTv.desktop dalle applicazioni sulla dock Plank!
N.B. Questa guida costituisce un promemoria e deriva da informazioni varie prese in rete.