Benvenuti su LinuxHelp.IT
  Argomenti  
  Downloads  
  Encyclopedia  
  Top 10  
  Archivio News  
  Feedback  
  Raccomandaci  
  Reviews  
  Link Utili  
  Segnalaci una News  
Google Web LH  
Filtra per Argomento:
NewsTicker
Finalmente anche LH ha il suo newsticker!
Se vi interessano le news di LH cliccate

QUI

Ricerca



Siti Amici
javajournal.it

Kensan.it

ZioBudda.net Italian Linux Portal

Condividi, Comunica...Crea






LINUXHELP.IT
Articoli Totali:3680

Total Hits:11776525
Hits di oggi:481
Hits di ieri:1,726

Gradimento del Sito

N° di Voti:7619
Voto Medio: 3.784/5
Commenti:
La News più...
letta:119905 Letture
votata:264 Voti
discussa:142 Opinioni


 :. rai.tv senza silverlight
 
 
LINUXHELP
Utente mascherato segnala "recentemente rai.tv è passata a silverlight. esiste il plugin moonlight della novell per questo, ma è un mangiarisorse, e necessita di altri codec proprietari. ecco uno script per vedere gli stream rai con il vostro player video preferito.

Recentemente la rai ha rifatto il suo sito in modo da usare il player Microsoft Silverlight per la visualizzazione dei filmati.
Per vedere i filmati gli utenti linux devono quindi installare il plugin Moonlight, sviluppato da Novell, e sucessivamente installare i codec necessari
Tutto questo è semplice e guidato, ma Moonlight sembra essere un mangiarisorse non da poco, inoltre non tutti vogliono installare i codec proprietari necessari al funzionamento di Moonlight.

Come fare senza moonlight allora?
In realtà Moonlight è solo un interfaccia, gli stream audio/video restano nel 'classico' formato mms:// , flv o wmv.
ecco quindi un semplice script che si scarica la lista degli stream disponibili direttamente da rai.tv, permette di cercare il canale desiderato, e apre il vostro player preferito su quel canale.

Il suo uso è molto semplice:
copiate su un file qualsiasi il codice riportato qui sotto, salvatelo con il nome che più vi piace, aprite un terminale e:
cd /dove/avete/salvato/lo/script chmod 644 nome_del_vostro_script ora per cercare qualche canale vi basta dare, sempre da terminale
./script nome_canale_o_show_cercato
se invece volete la lista di tutti i canali disponibili, date:
./script tutti
vi verrà mostrato un semplice menu, da cui basta selezionare il vostro programma.

 

Se volete cambiare il player video usato, basta che apriate lo script con un qualsiasi editor di testo, e modifichiate la linea:
player="mplayer" #nome del player video.
sostituendo a "mplayer" il nome del vostro player preferito.



ecco il codice:

 

#!/bin/bash
# Usate, modificate, riscrivete questo script come vi pare.
# se vi succede qualcosa di brutto a causa di questo script,
# io non c'ero, e se c'ero dormivo, ergo: sono cavoli vostri. chiaro?

## CONFIGURAZIONE UTENTE
tries=5            #tentativi di scaricare ogni file
timeout=10        #tempo massimo di attesa risposta per lo scaricamento (secondi)
player="mplayer"    #nome del player video.


############ PROGRAMMA REALE ################
############ NON MODIFICARE! ################
if [ -z "`which wget 2>/dev/null`" ]; then
    echo "wget non trovato!"
    exit 1
elif [ -z "`which sed 2>/dev/null`" ]; then
    echo "sed non trovato!"
    exit 1
elif [ -z "`which grep 2>/dev/null`" ]; then
    echo "grep non trovato!"
    exit 1
elif [ -z "`which awk`" ]; then
    echo "awk non trovato!"
    exit 1
elif [ -z "`which tail`" ]; then
    echo "tail non trovato!"
    exit 1
elif [ -z "`which dialog`" ]; then
    echo "dialog non trovato!"
    exit 1
elif [ -z "`which $player`" ]; then
    echo ""$player" non trovato!"
    exit 1
fi

help () {
    echo "Script per la visualizzazione dei canali presenti su rai.tv"
    echo "senza il plugin Silverlight di Microsoft"
    echo "Scrivetemi pure per dettagli"
    echo -e "nUso:t$0 chiave_ricercatcerca canale nella lista"
    echo -e "t$0 tuttittlista completa dei canali"
    echo -e "nlo script non porta con se garanzie di qualsiasi tipo"
    echo "quindi se diventa senziente e tiene in ostaggio la vostra famiglia,"
    echo "o vi da qualsiasi altro problema, non sono problemi miei."
}
update () {
    echo "scarico la lista dei canali...."
    rm ${0}.xml &>/dev/null
    wget -O ${0}.xml --tries=$tries www.rai.tv/dl/RaiTV/videoWall/PublishingBlock-5566288c-3d21-48dc-b3e2-af7fbe3b2af8.xml &>/dev/null
    if [ ! -s ${0}.xml ]; then
        echo "Download fallito! controlla la connessione internet e rilancia il programma"
        exit 1
    fi
    grep -B 1 '' ${0}.xml|sed /--/d | sed s/^ *// > ${0}.canali
    rm ${0}.xml
    sed -i s/';/'/ ${0}.canali
    sed -i 's/ù;/ù/' ${0}.canali
    sed -i 's/è;/è/' ${0}.canali
    sed -i 's/é;/é/' ${0}.canali

    COUNTER=0
    while read line ; do
        array[${COUNTER}]=$line
        let COUNTER++
    done < ${0}.canali
    rm ${0}.canali
    COUNTER2=0
    let "NUM=$COUNTER/2"
    echo -e "Parsing della lista ($NUM stream)..."
    while [ $COUNTER2 -le $COUNTER ]; do
        let "NUM= $COUNTER2 % 20"    #facciamo vedere qualcosa a schermo...
        if [ $NUM -eq 0 ]; then
            let "NUM=$COUNTER2/2"    #ogni 10 stream diciamo a quanti siamo...
            echo -n $NUM
        else
            let "NUM= $COUNTER2 % 2"    #facciamo vedere qualcosa a schermo...
            if [ $NUM -eq 0 ]; then
                echo -n "."
            fi
        fi
        line=${array[${COUNTER2}]}
        let COUNTER2++
        if [ -z "`echo $line|grep ''`" ]; then
            echo -en $line|awk -F '"' '{print $2}' >> ${0}.canali                    #metti il nome dello stream in cache
        else
            echo -en $line|awk -F '' '{print $2}'|awk -F '' '{print $1}' >> ${0}.canali    #metti l'indirizzo dello stream in cache
            echo "==" >> ${0}.canali
        fi                                                #può anche essere un link all'indirizzo
    done
    unset array
    echo ""
}

play () {
    if [ -n "`echo $STREAM|grep 'mms://'`" ]; then
        #ok, siamo stati fortunati....
        $player "$STREAM"
    else
        #uff... tiriamo fuori lo stream da incasinamenti vari....
        rm ${0}.tmp &>/dev/null
        wget --spider --tries=$tries --timeout=$timeout "$STREAM"  1> /dev/null 2> ${0}.tmp    #a volte il link è un file flv.
        if [ -n "`tail -n 2 ${0}.tmp|grep 'flv'`" ]; then                    #che sembra essere solo un video.
            rm ${0}.tmp
            $player "$STREAM"                                #che mplayer riproduce tranquillamente.
        else
            wget -O ${0}.tmp --tries=$tries --timeout=$timeout "$STREAM" &>/dev/null
            if [ -z "`grep HREF ${0}.tmp`" ]&&[ -z "`grep 'http://' ${0}.tmp`" ]&&[ -z "`grep 'mms://' ${0}.tmp`" ]; then
                #mi è capitato che alcuni link portino nel vuoto
                echo "(muove la mano)--Tu *NON* vuoi vedere questo canale"
            else
                if [ -n "`grep 'mms://' ${0}.tmp`" ]; then
                    STREAM="`grep 'mms://' ${0}.tmp|awk -F '"' '{print $4}'`"
                elif [ -n "`grep wmv ${0}.tmp`" ]; then
                    STREAM="`grep wmv ${0}.tmp |awk -F '"' '{print $2}'`"
                else
                    STREAM="`grep 'http://' ${0}.tmp`"
                    if [ -n "`echo $STREAM|grep '"'`" ]; then
                        STREAM="`echo $STREAM|awk -F '"' '{print $2}'`"
                    fi
                    rm ${0}.tmp &>/dev/null
                    wget --spider --tries=$tries --timeout=$timeout "$STREAM" 1>/dev/null 2>${0}.tmp
                    if [ -z "`tail -n 2 ${0}.tmp|grep 'flv'`" ]; then    #se NON è un flv...
                        wget -O ${0}.tmp --tries=$tries --timeout=$timeout "$STREAM" &>/dev/null
                        if [ -n "`grep 'mms://' ${0}.tmp`" ]; then
                            STREAM="`grep 'mms://' ${0}.tmp  |awk -F '"' '{print $2}'`"
                        elif [ -n "`grep '.flv' ${0}.tmp`" ]; then
                            STREAM="`cat ${0}.tmp`"
                        else
                            STREAM="`grep '.wmv' ${0}.tmp |awk -F '"' '{print $2}'`"
                        fi
                    fi
                fi
                rm ${0}.tmp
                $player "$STREAM"
            fi
        fi
    fi
}



if [ -z "$1" ]||[ "$1" == "-h" ]||[ "$1" == "--h" ]||[ "$1" == "-help" ]||[ "$1" == "--help" ]; then
    help
    exit 0
fi
update
COUNTER=1
#costruiamo la lista delle variabili per il dialog.
#è una lista di elementi, del tipo
#nome1 desciz1 nome2 desc2 ......
rm ${0}.list &>/dev/null
if [ "$1" == "tutti" ]; then
    grep -v '==' ${0}.canali|sed s/^/"/|sed s/$/"/ > ${0}.list
else
    grep -A 1 -i "$1" ${0}.canali | grep -v -- -- |
    while read line ; do
        case "$COUNTER" in
            0 )
                COUNTER=1 #serve solo per 'saltare un turno'
                ;;
            1 )
                if [ -z "`echo $line|grep '://'`" ]; then    # se non è un url
                    echo "$line" >> ${0}.list        #"# <--ripristino la colorazione per vim...
                    COUNTER=2
                else
                    #abbiamo greppato l'indirizzo... non ce ne facciamo niente...
                    COUNTER=0
                fi
                ;;
            2 )
                echo "$line" >> ${0}.list            #"# <--ripristino la colorazione per vim...
                COUNTER=1
                ;;
        esac
    done
fi
rm ${0}.reply &>/dev/null
dialog --title "Stream disponibili" --menu "scegli lo stream da aprire" 20 70 12 --file ${0}.list 2> ${0}.reply
REPLY="`cat ${0}.reply`"
rm ${0}.reply
clear
if [ "$REPLY" == "" ]; then
    echo "Nessuno stream trovato per questa ricerca"
    exit 0
fi
STREAM="`grep -A 1 "$REPLY" ${0}.list|tail -n 1|awk -F '"' '{print $2}'`"
rm ${0}.list
play
#################FINE CODICE##########################
"
Postato il 16-02-2009 di Silicio


 
Links Correlati
· Inoltre LINUXHELP
· News by Silicio


Articolo più letto relativo a LINUXHELP:
VMware gratis, per contrastare Microsoft e Xen


Valutazione Articolo
Punteggio Medio: 5
Voti: 1


Dai un voto a questo articolo:

Eccellente
Ottimo
Buono
Sufficiente
Insufficiente


Opzioni

 Pagina Stampabile Pagina Stampabile


"rai.tv senza silverlight" | Login/Crea Account | 0 commenti
I commenti sono di proprietà dell'inserzionista. Noi non siamo responsabili per il loro contenuto.

Commenti NON Abilitati per gli Anonimi, registrati



PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.