script lista canali in perl

Forum principale per problemi di compilazione, installazione, configurazione etc.

Moderatori: ragno, tapino, alez, zulu, davidea

italoc
Messaggi: 77
Iscritto il: 21 set 2010, 10:53

script lista canali in perl

Messaggio da italoc »

sarebbe possibile avere lo script in perl di cui si parla in questa pagina?
http://www.vdr-italia.org/channels/

mi torna molto utile per tenere aggiornate le liste canali ed al limite posso sempre provare a migliorarlo.

Grazie
lukkino
Messaggi: 1086
Iscritto il: 20 gen 2007, 09:49

Re: script lista canali in perl

Messaggio da lukkino »

Beh non è solo uno script perl.

Prima si scarica il file settings di vhannibal che serve per un confronto...
Poi si fa la scansione completa dei canali con uno script apposito, tramite la versione 1.7.15 che mantiene compatibilità sia con i VDR precedenti che quelli successivi...
Poi si lancia un programma che ho creato che mi legge da uno qualsiasi dei transponder di sky la lista dei canali con relativa numerazione.
Ed infine si lancia lo script che crea le liste.

Ciao :)
VDRBOX: GA-K8NS, AMD Sempron 2600+, Hauppauge Nexus 2.1, LFS
davidea
Messaggi: 1279
Iscritto il: 16 ago 2009, 13:32
Località: Palermo
Contatta:

Re: script lista canali in perl

Messaggio da davidea »

lukkino ha scritto: Poi si lancia un programma che ho creato che mi legge da uno qualsiasi dei transponder di sky la lista dei canali con relativa numerazione.

Ciao :)
la lista e' corredata di frequenze o e' solo un' elenco con i nomi?
italoc
Messaggi: 77
Iscritto il: 21 set 2010, 10:53

Re: script lista canali in perl

Messaggio da italoc »

Bel casino, cmq sarei interessato a migliorare la cosa, come fai ad ottere un file con tutti i canali sky e numerazione? Si posson avere/vedere questi programmini?
papernik
Messaggi: 123
Iscritto il: 13 giu 2007, 19:41

Re: script lista canali in perl

Messaggio da papernik »

Una bella automazione del tutto, risolverebbe una grossa pecca di VDR :) .

Auguri a tutti e in particolare a Lukk .

Ciaoo
italoc
Messaggi: 77
Iscritto il: 21 set 2010, 10:53

Re: script lista canali in perl

Messaggio da italoc »

papernik ha scritto:Una bella automazione del tutto, risolverebbe una grossa pecca di VDR :) .
il mio obbiettivo è quello infatti...
lukkino
Messaggi: 1086
Iscritto il: 20 gen 2007, 09:49

Re: script lista canali in perl

Messaggio da lukkino »

Intanto posto il programmino che scarica l'elenco dei canali di Sky che arriva ai decoder del canguro. In sostanza è LCN dei decoder Sky

Scaricate il programma da qui:
http://lukkinosat.altervista.org/get_channels_sky.c

E compilate con:

Codice: Seleziona tutto

g++ get_channels_sky.c -o get_channels_sky
Andate su un qualsiasi canale di sky, visibile o non visibile, non importa.
Lanciate il programma:

Codice: Seleziona tutto

./get_channels_sky
Dopo 30-40 secondi vi trovate un file chiamato channels.sky

Aprendo il file notate che ci sono vari campi separati dal carattere "|"

Spiegazione dei campi:
1 = numerazione canale sky, valori validi: da 100 a 999
2 = valori validi: 0 canale presente solo nei decoder non HD, 2 canale presente solo nei decoder HD, 65535 canale presente sia nei decoder normali che nei decoder HD
3 = tipo di servizio, valori validi: 1 tv, 2 radio, 25 hd
4 = tid del canale
5 = nid del canale
6 = sid del canale
7 = frequenza transponder
8 = posizione satellite
9 = flag est/ovest satellite, valori validi: 0 per ovest, 1 per est
10 = polarizazzione del transponder
11 = roll_off
12 = sistema di modulazione: QAM, QPSK, ecc..
13 = tipo di modulazione: DVB-S o DVB-S2
14 = symbol rate
15 = fec
16 = nome del canale
17 = provider del canale

Comunque io di norma prendo in considerazione solo i campi da 1 a 6 e abbinando questi valori con il file di una scansione completa, ricavo le liste...

Per il momento buon studio :D

Ciao ciao
VDRBOX: GA-K8NS, AMD Sempron 2600+, Hauppauge Nexus 2.1, LFS
italoc
Messaggi: 77
Iscritto il: 21 set 2010, 10:53

Re: script lista canali in perl

Messaggio da italoc »

per ora grazie mille...
knap
Messaggi: 16
Iscritto il: 15 gen 2008, 19:47

Re: script lista canali in perl

Messaggio da knap »

Ho effettuato una modifica al codice .... rendendolo piu' simile al codice utilizzato per il channels.conf ....

Quindi pensavo di chiedervi aiuto per modificare il codice nel risultato restituito
per essere uguale hai paramentri utilizzati da channels.conf ....
Visto la bonta del tuo codice .... Per creare di suo gia il channels.conf ....

Pensavo anche se era possibile inserire i parametri mancanti ... Tipo PID Audio/Video e altri dati in Scansione per Avere Output Identico a channels.conf


Dati Originali Contenuti in channels.sky Utilizzando -> get_channels_sky.c <- Originale

116|65535|1|11300|64511|4033|10775|130|1|0|0|0|1|29900|4|Fox Crime +1|SkyItalia


Dati Originali Contenuti in channels.sky Utilizzando -> get_channels_sky.c <- Modificato

:@116
Fox Crime +1;SkyItalia:10775:0 4:130:29900:919,93B,9CD:4033:64511:11300:0


Lista Canali -> channels.conf

:@116
Fox Crime +1;SkyItalia:10775:HC56M2S0:S13.0E:29900:2508=2:2509=ita@4,2510=und@4:3003:919,93B,9CD:4033:64511:11300:0


Codice Modificato:

Codice: Seleziona tutto

    fprintf( fd,   
      ":@%i\n %s;%s:%i:%i %i:%i:%i:919,93B,9CD:%i:%i:%i:0\n",
      service->sky_number,      
      service_name,
      service_provider_name,
      frequency,
      polarization,      
      fec_inner,
      orbital_position,      
      symbol_rate,
//     service->stream_type,
//     service->service_type,
//      west_east_flag,
//      roll_off,
//      modulation_system,
//      modulation_type,
      service->service_id,      
      service->original_network_id,
      service->transport_stream_id
    );
  }
  fclose( fd );

Come si vede in questo punto sono scritti gli stessi dati ma in modo diverso
-->> 10775:0 4:130 << Equivalente di >> 10775:HC56M2S0:S13.0E

Frequency »» 10775: Polariz. »0 Fec »4 : orbital » 130
Polarization »» 0 Horizontal -- 1 Vertical
Fec_inner »»4 »» C56M2S0 »» 5/6
Orbital_position »» 130 »» S13.0E

Risultano Mancanti nella scansione:
PID Video »» 2508
PID Audio »» 2509 (ita) ,2510
PID Pcr »» 2508
PID Teletext »» 3003

Aspetto un vostro riscontro per proseguire con il vostro aiuto nella modifica del codice per rendere utilizzabile il risultato in channels.conf direttamente senza eseguire ulteriori passaggi.[/b][/size]
italoc
Messaggi: 77
Iscritto il: 21 set 2010, 10:53

Re: script lista canali in perl

Messaggio da italoc »

Io invece sto puntantando ad un altra soluzione...

l'idea finale è la seguente:

uno script/plugin per vdr (sifbox e qui devo sentire unixer) dove nel menu avrà una voce AGGIORNA CANALI SKY

lo script farà partire il programmino di lukkino con LCN di sky e successivamente lancio lo sciprt (ancora in beta) riportato qui sotto

in pratica lo script legge riga per riga il file channels.sky (in questa beta legge solo i canali NON HD) e cerca nel file channels.conf (generato con w_scan o con wirblescan da vdr) la riga dove è presente la stessa frequanza, tid, nid, sid, symbol rate (quindi è lo stesso canale) e lo appendo in un file temporaneo, il risultato è una lista dei canali SKY (non HD) ordinata essattamente come nel file channels.sky, a questo punto basta uno stop di VDR switchare la vecchia lista con la nuova e poi START VDR e ci troviamo la lista canali aggiornata

se poi settiamo VDR in modalità AGGIORNA NUOVI TRANSPONDER, i nuovi canali vengono accodati in fondo al file in automatico, quindi se rilanciamo lo script avremmo in pochi minuti una lista canali ordinata ed aggiornata.

Che ne dite? si accettano consigli e suggerimenti

Codice: Seleziona tutto

#! /bin/bash           

getchannels () {
	
	echo "$1 $2 $3 $4 $5 $6"
	# leggo in file canali di VDR/w_scan riga per riga
	while read line           
	do           	
		IFS=':' read -a array <<< "$line"
	  	if [ ${#array[@]} == 13 ]; then
	  		# se il file ha la stessa frequanza, tid, nid, sid, symbol rate allora è lo stsso canele e lo copio dal file channles.conf 
			if [ ${array[1]} == $4 ] && [ ${array[4]} == $5 ] && [ ${array[9]} == $3 ] && [ ${array[10]} == $2 ] && [ ${array[11]} == $1 ] ; then
				# creo i gruppi di canali
				option="${1}" 
				case ${6} in 
				   101) echo ":@101 TV NAZIONALI" >> channlestest.conf
				      ;; 
				   108) echo ":@108 SKY - INTRATTENIMENTO" >> channlestest.conf
				      ;; 
				   200) echo ":@200 SKY - SPORT" >> channlestest.conf
				      ;;
				   250) echo ":@250 SKY - CALCIO" >> channlestest.conf
				      ;;
				   301) echo ":@301 SKY - CINEMA" >> channlestest.conf
				      ;;
				   351) echo ":@351 SKY - PRIMAFILA" >> channlestest.conf
				      ;;
				   401) echo ":@401 SKY - DOCUMENTARI" >> channlestest.conf
				      ;;
				   500) echo ":@500 SKY - NEWS" >> channlestest.conf
				      ;;
				   601) echo ":@601 SKY - BAMBINI" >> channlestest.conf
				      ;;
				   700) echo ":@700 SKY - RADIO" >> channlestest.conf
				      ;;
				   770) echo ":@770 SKY - MUSICA" >> channlestest.conf
				      ;;
				   804) echo ":@804 SKY - ALTRE TV" >> channlestest.conf
				      ;;
				   *) echo ":@$6" >> channlestest.conf
				      ;;                         
				esac 				
				echo "$line" >> channlestest.conf
				break
			fi	
		fi;	
	      
	done < channels.conf 
	
}

# leggo il file LCN di sky riga per riga
while read line           
do           	
	IFS='|' read -a array <<< "$line"
  
	if [ ${array[12]} == 1 ] && [ ${array[0]} -lt 65535 ] ; then
		# se il canale non HD cerco i suoi datti in channels conf
		getchannels ${array[3]} ${array[4]} ${array[5]} ${array[6]} ${array[13]} ${array[0]}
	fi	

      
done < channels.sky  
knap
Messaggi: 16
Iscritto il: 15 gen 2008, 19:47

Re: script lista canali in perl

Messaggio da knap »

Italoc :ok:
Come idea finale direi che e' la stessa o molto Simile ....
l'idea finale è la seguente:

uno script/plugin per vdr (sifbox e qui devo sentire unixer) dove nel menu avrà una voce AGGIORNA CANALI SKY
In Pratica vedo che il tuo script legge i seguenti Parametri :
Frequanza, Tid, Nid, Sid, Symbol rate
Mancano pero' altri 2 Valori essenziali che vengono cambiati e che si devono aggiungere:
Polarizzazione e Fec
Modificare o Rimuovere i Canali che Cambiano Nome Mantenendo sempre lo stesso Tid Sid Nid
Cambio Nome Canale
Ho eseguito dei Test è posso garantirti che sono indispensabili per sintonizzare il canale.

La mia idea e quella di integrare la sezione:
- Pid Video/Audio
- Pid Teletext
- Output Corretto in -> Polarizzazione - Fec - Frequanza - Posizione Orbitale
al sorgente get_channels_sky.c

Con questo hai già channels.conf aggiornato con i canali sky ....

Quindi il Sorgente "get_channels_sky.c" crea l'eseguibile e tramite un pulsante in VDR
Puo' Effettuare -> AGGIORNA CANALI SKY

Tutto qui ... dimmi se ti piace anche la mia idea e se puoi modificare il codice per renderlo piu compatibile nel output.
italoc
Messaggi: 77
Iscritto il: 21 set 2010, 10:53

Re: script lista canali in perl

Messaggio da italoc »

@knap

La tua idea è buona, anzi sarebbe l'ideale, ma non so se dal programmino di lukkino riesci ad avere i PID che mancano, l'avevo pensata pure io, ma non vedendo i PID ho cambiato strada... Direi che a sto punto se lukkino riesce ad aggiungere i PID al suo programma bene, altrimenti non è una strada praticabile


Inviato dal mio iPad con Tapatalk HD
knap
Messaggi: 16
Iscritto il: 15 gen 2008, 19:47

Re: script lista canali in perl

Messaggio da knap »

Si Sono Perfettamente D' accordo con Te ....

Volevo chiederti di inserire nel tuo Script gli altri 3 parametri mancanti in modo che si Effettui un ... Aggiornamento dei dati del channels.conf in uso con i dati contenuti nel file di testo channels.sky ...

In Modo da sostituire i parametri diversi riga per riga e di riconoscere il cambio nome canale quando Tid Nid Sid sono invariati ....

Questo riesci a farlo con il tuo script ? .....


----------------- solo per lettura o discussione attiva -------------------

Serve Conoscere il Sorgente e anche i riferimenti presi dalla sintonizzazione di VDR o Altro Player DVB su canale sky sintonizzato o non sintonizzato ....

In Pratica get_channels_sky.c riesce a leggere i dati inviati dal provider sky e di creare il log dei dati inviati ...

Effettivamente i dati ignoti sono molti e neanche io riesco a capire come aggiungere i Pid Mancanti nel codice ...

Ho dato un Occhiata hai sorgenti contenuti in W_SCAN .....

In Pratica si Ottengono i valori di output compatibili con VDR 2.x.x Tramite i sorgenti compilati ...

C'e' tutto il codice per ottenere Pid e Parametri in Output identico a quello utilizzato in vdr 2.x.x ...

Ho eseguito dei test senza risultati decenti .....
italoc
Messaggi: 77
Iscritto il: 21 set 2010, 10:53

Re: script lista canali in perl

Messaggio da italoc »

@knap

Certo, lo script riesce a fare quello che chiedi, ma mi chiedo quale sia il senso, il cambio Nome lo fa vdr in automatico, a cosa ti serve aggiornare i canali per aggiornare il nome?



Inviato dal mio iPad con Tapatalk HD
knap
Messaggi: 16
Iscritto il: 15 gen 2008, 19:47

Re: script lista canali in perl

Messaggio da knap »

Non sapevo che vdr cambiasse in auto il nome oppure io non ho configurato bene vdr per aggiornare il nome canali e anche i Pid Video/audio ....

Comunque il senso di cio che ti chiedevo e' questo:

Prelevare i Dati in channels.sky della scansione effettuata ....
116|65535|1|11300|64511|4033|10775|130|1|0|0|0|1|29900|4|Fox Crime +1|SkyItalia
Aggiornare i dati in channels.conf ...
:@116
Fox Crime +1;SkyItalia:10775:HC56M2S0:S13.0E:29900:2508=2:2509=ita@4,2510=und@4:3003:919,93B,9CD:4033:64511:11300:0
In questo modo si hanno i dati aggiornati dopo l'esecuzione del sorgente get_channels_sky.c ed il tuo script ...

Visto e' considerato che il nome Canale e Pid Video/Audio vengono aggiornati in auto siamo in una situazione migliore rispetto prima ... finche non si puo' migliorare ulteriormente ....

Tutto qui ...
Rispondi