Newsgroup: it.comp.os.linux.iniziare
Titolo: Script per Web Radio

Ciao a tutti, 
un’amica che vive all’estero e che utilizza Ubuntu Mate 16.04, mi ha 
chiesto se l’aiuto ad ascoltare una radio italiana, con internet. Fin qui 
nessun problema ad inserire una playlist.m3u in Rhythmbox.
 
Ma cercando in internet ho trovato anche degli script, che mi hanno molto 
incuriosito e catturato la mia attenzione, al fine di avere il “Piano B”, 
qualora rhythmbox non dovesse funzionare, dopo aggiornamenti vari.
 
A parte il comando: mplayer <URL-Web-Radio> ho trovato uno script 
funzionante, basato su ffplay, nel quale è possibili inserire a 
piacimento un elenco di radio e poi da terminale effettuare la scelta 
desiderata. 
 
Lo stesso script può anche pescare da un file esterno l’elenco delle 
stazioni, ma non riesco a farlo funzionare 
 
https://www.ubuntu-user.com/Magazine/Archive/2014/20/Playing-streams-off-
 
the-web-with-FFplay
 
Questo invece è stato costruito per ascoltare le varie radio BBC, si basa 
su mplayer, ma anche questo script non mi funziona.
 
http://www.ejectamenta.com/online-apps/mplayer_bbc_radio_script.html
 
 
Infine, in un forum tedesco di ubuntu, lo script in fondo alla pagina 
web, pesca da un file esterno in csv le stazioni radio, ma anche questo 
non sono capace di farlo funzionare.
 
https://forum.ubuntuusers.de/topic/bash-tuner-webradio-hoeren-ueber-die-
 
shell/2/
 
Qualcuno di voi ha esperienza in merito?
Grazie in anticipo per la vostra disponibilità.
Nemo

Nemo <interpocu...@LeScarpeoccupato.it.invalid> scrisse:

questi script non servono a un tubo se le liste non vengono
costantemente aggiornate, poichè le emittenti hanno il vizio chi più
chi meno spesso di cambiare url.
Installa Guayadeque e vivi felice, oppure ascolta dal portale
tunein.com
 
 
-- 
 
 

 Installa Guayadeque e vivi felice, oppure ascolta dal portale 
tunein.com
 
 
 
Ciao, ti ringrazio per la tua risposta.
Avevo intuito che i gestori di Radio e TV ogni tanto cambiano il loro URL, 
l'avevo già messo in conto.
 
Guayadeque è simile ad altri player, come Clementine, Lollipop, Banshee, 
tanto vale tenere Rhythmbox che è di default e serve per ascoltare 
solamente una stazione radio.
 
tunein.com
 lo terrei come ultima risorsa, perchè l'utente normale non 
riesce a leggere cosa viene inserito all'interno del codice HTML e 
potrebbero esserci dei javaScript non utili o benefici.
 
Grazie comunque per la tua risposta, buon fine settimana, 
Nemo

 Guayadeque è simile ad altri player, come Clementine, Lollipop, Banshee,
 
si ma a differenza degli altri incorpora già il database di tunein che
ti permette di cercare le radio per genere paese o regione e da menu
contestuale inviare l'url all'occorrenza ad altre applicazioni
 
-- 
 
 

 chiesto se l’aiuto ad ascoltare una radio italiana, con internet. 
 
 
Scusa la domanda scema, ma se la radio che vuole ascoltare è solo una, 
questa radio non ha il player sul proprio sito internet?
 
Ciao, Mario


Grazie per l'info!
Rispondo a tutti e due nel post di MBulu


Si esiste, ma preferisco usare o far usare un software opensource o uno 
script bash, che una pagina web di cui non sono capace di leggere il 
contenuto dei javascript, ospitati su server, di cui non so come vengono 
mantenuti.
 
Per me, la priorità è la sicurezza e l'opensorce.
 
Comunque, se vi può interessare, lo script qui sotto funziona, basta 
solamente non digitare spazi vuoti nella sintassi dopo la parentesi 
quadra di chiusura. Eempio:
STATION["Rai IsoRadio"]="
http://icestreaming.rai.it/6.mp3
"
 
Ciao, 
Nemo
 
 
# ======================================
#!/bin/bash
 
# 
https://www.ubuntu-user.com/Magazine/Archive/2014/20/Playing-streams-
 
off-the-web-with-FFplay
 
declare -A STATION
STATION["Radio Capital"]="
http://Radiocapital-lh.akamaihd.net/i/
 
RadioCapital_Live_1@196312/master.m3u8"
STATION["Radio Birikina"]="
http://ice02.fluidstream.net/birikina.mp3
"
STATION["Radio Adige"]="
http://onair18.xdevel.com:8128/;stream/1
"
STATION["Radio Verona"]="
http://wma02.fluidstream.net:9980/
"
STATION["RMC1 Radio Monte Carlo"]="
http://edge.Radiomontecarlo.net/
 
RMC.mp3"
STATION["RMC2 Radio Monte Carlo"]="
http://edge.Radiomontecarlo.net/
 
MC2.mp3"
STATION["Rai IsoRadio"]="
http://icestreaming.rai.it/6.mp3
"
STATION["Rai Radio 1"]="
http://icestreaming.rai.it/1.mp3
"
STATION["Rai Radio 2"]="
http://icestreaming.rai.it/2.mp3
"
STATION["Rai Radio 3"]="
http://icestreaming.rai.it/3.mp3
"
STATION["Rai Radio 4 Light"]="
http://icestreaming.rai.it/4.mp3
"
STATION["Rai Radio 5 Classica"]="
http://icestreaming.rai.it/5.mp3
"
STATION["Rai Radio 6 Teca"]="
http://icestreaming.rai.it/6.mp3
"
STATION["Rai Radio 7 Live"]="
http://icestreaming.rai.it/7.mp3
"
STATION["Rai Radio 8 Opera"]="
http://icestreaming.rai.it/8.mp3
"
STATION["Rai Radio 8 Opera"]="
http://icestreaming.rai.it/8.mp3
"
 
clear
echo "SELECT RADIO STATION:"
 
select ENTRY in "${!STATION[@]}"; do
  TITLE="${ENTRY}"
  URL=${STATION[${ENTRY}]}
  ffplay -x 300 -y 100 -window_title "${TITLE}" ${URL} &>/dev/null
done
# ======================================

 Grazie in anticipo per la vostra disponibilità.
 
 
Se ti interessa, a suo tempo ne ho scritto uno che fa proprio quello che 
chiedi, ovviamente devi stare dietro agli url che cambiano nel tempo, ed 
aggiornarli (ho appena provato il programma dopo un bel po' di tempo e 
tanti degli url non vanno  più ).
 
Richiede mplayer installato ed il pacchetto python-tk. Sulla mia debian 
attuale la parte di controllo del volume che utilizzava amixer non 
funziona più .
 
te lo incollo qua sotto (poi probabilmente dovrai re-indentarlo )
 
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Tkinter import *
import tkFont
import sys
import os
import signal
VERSIONE = '1.0'
 
#FORMATO DI OGNI ELEMENTO DELLA LISTA STAZIONI
#'NOME' : nome da associare al canale
#'-playlist' :(opzionale) se si vuole fare il play ad url non 
direttamente connessi allo streaming (vedi RaiEdu, gli m3u etc)
#'INDIRIZZO' : url da dove fare il play
#'-really-quiet' : (opzionale) se non si vuole l'output di mplayer
#'opzioni generiche':(opzionali) ogni altra opzione di mplayer che si 
preferisce dare (es: -fs per il full screen, etc)
 
#NOTA BENE: l'ultimo elemento di questa lista non vuole la virgola in 
fondo
stazioni = [
['GoldenRadio 80\'s ','http://83.170.89.19:8526'],
['Ill FM','-playlist','
http://radio.illfm.net:8000/stream.m3u'
],
['Multicult.fm','-playlist' ,'
http://www.multicult.fm/fileadmin/stream/
 
multicult.FM.m3u'],
['Radio Berlin','
http://www.radioberlin.de/livemp3'
],
['Radio23 ch1','-playlist' ,'
http://stream1.radio23.cz/1ch128.m3u'
],
['Radio23 ch2','-playlist' ,'
http://stream1.radio23.cz/2ch128.m3u'
],
['Radio23 ch3','-playlist' ,'
http://stream1.radio23.cz/3ch128.m3u'
],
['Radio23 ch4','-playlist' ,'
http://stream1.radio23.cz/4ch128.m3u'
],
['Radio23 ch5','-playlist' ,'
http://stream1.radio23.cz/5ch128.m3u'
],
['RFI English','
http://stream.rfi.fr/2588/rfi_en_anglais/rfianglais.mp3'
],
['RFI','
http://stream.rfi.fr/rfimonde/all/rfimonde-64k.mp3'
],
['Shirley & Espinoza','
http://206.190.136.212:4462/Live'
],
['NSB Radio','
http://live.nsbradio.co.uk:8904/'
],
['
dubstep.fm
','-playlist','
http://www.dubstep.fm/listen.pls'
],
['Rinse FM','
http://typhoon.exequo.org:8000/rinseradio'
],
['BreakPirates','
http://bpstream.hostco.de:3000/'
],
['SKY \'70' ,'
http://pub10am.radiotunes.com:80/radiotunes_hit70s'
],
['SKY Oldies' ,'
http://pub10am.radiotunes.com:80/radiotunes_oldies'
],
['SKY Classic Rap','-playlist','
http://listen.sky.fm/public3/
 
classicrap.pls'],
['Intergalactic Elektro','-playlist','http://
radio.intergalacticfm.com/1.m3u'
],
['Intergalactic Italo','-playlist','http://
radio.intergalacticfm.com/2.m3u'
],
['Intergalactic House','-playlist','http://
radio.intergalacticfm.com/3.m3u'
],
['Intergalactic Exotica','-playlist','http://
radio.intergalacticfm.com/4.m3u'
],
['Intergalactic Ambient','-playlist','http://
radio.intergalacticfm.com/5.m3u'
],
['Intergalactic Experimental','-playlist','http://
radio.intergalacticfm.com/6.m3u'
],
['SUB.fm','
http://www.sub.fm/listen.pls'
],
['Venice Classic','
http://109.123.116.202:8020
'] 
]
mplayer='/usr/bin/mplayer'
amixer='/usr/bin/amixer'
class App:
	def __init__(self, master):
		self.master = master
		self.master.title("Sintonizzatore Radio")
		self.currentradio = 0				
		self.inplay       = 0
		self.changed      = 0
		self.pid          = 0
		self.currentvol   = 0
		self.oldradio     = 0
		self.bottoni      = []
		self.labels       = []
		self.line         = ''
 
		# Frame principale
		frame = Frame(master)
		frame.pack(side=LEFT)
		frame1 = Frame(frame)
		frame1.pack(side=LEFT)
		helvbld = tkFont.Font(family="Helvetica",size=10, 
weight=tkFont.BOLD )		
		helvita = tkFont.Font(family="Helvetica",size=10, 
weight=tkFont.BOLD,slant=tkFont.ITALIC)		
 
 
		self.label = Label
(frame1,font=helvbld,justify=CENTER,text='\n<<STAZIONI>>\n',fg='red')
		self.label.pack(side=TOP)
 
		#Le stazioni radio
		self.v = IntVar()
		for i in range(0, len(stazioni)):
			self.bottoni.append(Radiobutton(frame1, 
text=stazioni[i][0], variable=self.v, value=i, command=self.changeradio))
			self.bottoni[i].pack(anchor=W)
		framecmd = Frame(frame1)
		framecmd.pack(side=TOP)
 
		#Play Stop QUIT
		self.play = Button(framecmd, text="Play ", fg="black", 
command=self.play)
		self.play.pack(side=LEFT)
 
		self.stop = Button(framecmd, text="Stop ", fg="black", 
command=self.stop)
		self.stop.pack(side=LEFT)
 
		self.quit = Button(frame1, text="QUIT", fg="red", 
command=self.esci)
		self.quit.pack(side=BOTTOM)
 
		# Il testo che l'ho fatto io!
		self.label = Label
(frame1,font=helvita,justify=CENTER,text='made by',fg='blue')
		self.label.pack(side=TOP)
		self.label = Label
(frame1,font=helvbld,justify=CENTER,text='A. Consigli',fg='blue')
		self.label.pack(side=BOTTOM)
 
		self.master.after(1000, self.inivars)
		self.poll()
		# Il testo
		frame2 = Frame(frame)
		frame2.pack(side=RIGHT)
 
		#Controlli Volume
		self.down = Button(frame2, text="Vol- ", fg="black", 
command=self.voldown)
		self.down.pack(side=BOTTOM)
 
		for i in range(0, 10):
			self.labels.append(Label(frame2, height=1, 
width=1, bg='black'))
			self.labels[i].pack(side=BOTTOM)
 
		self.adjvol('0+')
		self.up = Button(frame2, text="Vol+ ", fg="black", 
command=self.volup)
		self.up.pack(side=BOTTOM)
 
	#Funzione che aggiusta il volume
	def adjvol(self,nextvol):
		return
		f=os.popen('amixer set PCM %s|grep "Front Left:" |cut -d 
"[" -f2' %(nextvol),'r')
		percvol = int(f.readline().split('%')[0])
		f.close()
		if percvol == 0:
			self.currentvol = 0
		else:	
			self.currentvol = (percvol/10)+1
		print self.currentvol
		for i in range(0, 10):
			if i>=self.currentvol:
				self.labels[i].configure(bg='black')
			else:
				self.labels[i].configure(bg='red')
 
 
	def volup(self):
		self.adjvol('5+')
 
	def voldown(self):		
		self.adjvol('5-')
 
	def inivars(self):
		self.v.set(0)
		pass
	#Cambio radio
	def changeradio(self):
		if self.oldradio != self.v.get(): #Radio Cambiata!
			self.changed=1
			self.oldradio = self.v.get()
		pass
	#Quit
	def esci(self):
		self.killchild()
		self.master.quit()
 
	def play(self):
		if self.inplay==0:
			self.changed=1
			self.play.configure(fg='#359135')
		else:
			self.changed=0
		self.inplay=1
 
	def stop(self):
 
		if self.inplay==1:
			self.play.configure(fg='black')
			self.changed=1
		else	:
			self.changed=0
		self.inplay=0
	#Uccide la radio attiva
	def killchild(self):
		if self.pid :
			try:
				os.kill(self.pid,signal.SIGINT)
				dead = os.waitpid(0,os.WNOHANG)
				if dead[0] == self.pid:
					return
			except:
				pass		
 
	def poll(self):	
			self.master.after(1000, self.poll)
			if self.changed == 1:
				self.killchild()
				if self.inplay == 1:#PLAY!
					#figlio e mando mplayer
					self.pid = os.fork()
 
					if not self.pid: # FIGLIO
#						import subprocess
#						p = subprocess.Popen
([mplayer,], shell=True, bufsize=bufsize,stdin=PIPE, stdout=PIPE, 
close_fds=True)
#						(child_stdin, 
child_stdout) = (p.stdin, p.stdout)
						os.execv(mplayer,[mplayer]
+stazioni[self.v.get()][1:])
						sys.exit(0)
					else: #PADRE
						pass
				else: # STOP!
					self.killchild()
 
			self.changed=0
 
root = Tk()
app = App(root)
root.mainloop()

 
[...]
 
Certo che mi interessa, ho già fatto una prova e non mi funziona, ma non 
importa, quando ho un pò più di tempo ci lavorerò sopra.
Intanto grazie per il tuo script.
Un cordiale saluto,
Nemo
 

 Intanto grazie per il tuo script.
 
 
Prego

 tanti degli url non vanno  più ).
 
Leggendo questa discussione ho visto che c'è uno script
chiamato pyradio: 
 
http://www.coderholic.com/pyradio/
 
https://github.com/coderholic/pyradio/tree/master
 
 
Io l'ho installato così:
 
pip install pyradio
 
Anche questo richiede almeno uno tra mpv, mplayer o vlc.
Per cui se uno aggiorna ad esempio ffmpeg e poi mplayer
non va più perchè era compilato contro la vecchia versione,
allora non andrà neanche pyradio.
 
Ci sono anche video di come funziona:
https://www.google.de/search?q=PyRadio
 
 
L'unico inconveniente è quello che dicevi tu: cioè la
lista dei links alle varie radio è da tenere manutenuta
manualmente, perchè questi indirizzi possono cambiare
nel tempo.
A questo proposito sorge spontanea la domanda: ma non eiste
qualche sito in cui sia raccolta in un file scaricabile la
lista degli indirizzi di collegemento agli stream di un tot
di radio? File che viene regolarmente tenuto aggiornato?

 di radio? File che viene regolarmente tenuto aggiornato?
 
Non lo so. Forse però qualcuno fra quelli a cui piace ascoltare la radio
apprezzerà questa mappa:
 
http://radio.garden/live/
 
 
 
 
 

 
Allora... 
1) ho installato python-tk da terminale;
2) ho copiato lo script nella home con i permessi di esecuzione;
3) sempre da terminale ho lanciato lo script con il comando:
 
./radio-redwiz.sh
 
 
  File "./radio-redwiz.sh", line 4 SyntaxError: Non-ASCII character '\xc3' 
in file ./radio-redwiz.sh on line 4, but no encoding declared; see http://
python.org/dev/peps/pep-0263/
 for details
 
 
Tieni presente che nello script dopo 
#!/usr/bin/env python
 
ho inserito come commento le tue indicazioni:
# ====================================
# Richiede mplayer installato ed il pacchetto python-tk. 
# Sulla mia debian attuale la parte di controllo del volume che 
utilizzava amixer non funziona più .
# ===================================
 
Per cui la linea 4 non saprei qual è.
 
Intanto se hai tempo e voglia, ti ringrazio per la tua disponibilità, 
anche se finisco di risponderti con il post di Joe.
Ciao,
Nemo

 
python.org/dev/peps/pep-0263/
 for details
 
 
 
Mi sa che ci sono problemi di copia incolla, prendilo da qui:
 
http://test.qualeimpresa.com/radio.py.gz
 

 tenuto aggiornato?
 
 
Grazie mille per la tua ricerca, non avevo preso in considerazione di 
vedere i video su you-tube. Bella idea.
 
Io non avrei problemi a provare pyradio, ma il computer interessato si 
trova all'estero e l'amica non è pratica di terminale e installazioni 
varie.... Comunque mi salvo anche questo tutorial!!!
 
Per questo mi piaceva molto l'idea di avere gli URL delle web-radio in un 
file.csv separato a parte. In questo modo lo script, contiene il 
collegamento al file esterno e non si tocca. 
Solamente il file stazioni.csv verrebbe aggiornato unatantum, come 
specificato in questi tutorial:
https://www.ubuntu-user.com/Magazine/Archive/2014/20/Playing-streams-off-
 
the-web-with-FFplay
https://forum.ubuntuusers.de/topic/bash-tuner-webradio-hoeren-ueber-die-
 
shell/2/
 
 
Io per rer reperire, gli url, ho trovato questo sito:
http://www.listenlive.eu/italy.html
 
 
Bello, il sito che ha condiviso Tony Borlini, ma il web per è l'ultima 
spiaggia.
 
Grazie a tutti per la Vostra curiosità, disponibilità e aiuto.
Un cordiale saluto,
Nemo

 
http://test.qualeimpresa.com/radio.py.gz
 
 
Funziona!!!!
Questa sera, aggiorno i canali radio.
Grazie 100000000 per il tuo script!
Un cordiale saluto,
Nemo


Prego!
Mi ricordo che ogni tanto mplayer si incartava, quindi la cosa da fare 
era premere Stop e dopo di nuovo Play (sì, ci sarebbe da fare la parte 
che se ne rende conto e lo fa ripartire in automatico, ma non ne avevo 
voglia ed il programma è nato per esere usato solo da me :) )
 
 
Ciao


ALtra cosa, sul mio desktop ho ancora l'icona per farlo partire in 
automatico, il comando che uso è questo, in modo da aver anche una shell 
con l'output di mplayer:
 
xterm -e "/home/redwiz/bin/radio.py"

 xterm -e "/home/redwiz/bin/radio.py"
 
 
Grazie mille per i tuoi commenti.
Mi sono costruito un file pyradio-README.md con tutte le tue note 
scritte, così la prossima volta che farò una nuova installazione, una 
procedura di post-installazione, per la web-radio di RedWiz :-)
 
Grazie a Tutti per il tempo che avete dedicato a questa curiosità/sfida.
Un cordiale saluto, 
Nemo

 
http://www.listenlive.eu/italy.html
 
 
Siccome ho smanettato un po' con quella pagina per
creare automaticamente il file CSV da passare allo
script pyradio, metto qua sotto lo script bash che
mi pare funzionante.
 
============
#!/bin/bash
 
URL=
http://www.listenlive.eu/italy.html
 
OUT=listenlive-italy.csv
TMP_PAGE=page.tmp
TMP_PAGE2=page2.tmp
 
[ -e $OUT ] && rm $OUT
wget -q -O $TMP_PAGE $URL
sed -i -n '/<tr>/,/<\/tr>/p' $TMP_PAGE
sed -i 1,5d $TMP_PAGE
sed -i '/^<td><img/d' $TMP_PAGE
tr -d '\n' <$TMP_PAGE |sed 's/\/tr>/\/tr>\n/g' > $TMP_PAGE2
while read riga;do
        echo "$riga" | sed -n
	's/.*<b>\(.*\)<\/b>.*href=\"\(.*\.\(pls\|m3u\)\).*/\1,\2/p' >> $OUT
done < $TMP_PAGE2
rm $TMP_PAGE $TMP_PAGE2
========================
 
In pratica si scarica la pagina html che hai riportato
prima, la rimaneggia un attimo e ne estrae il nome della
stazione e relativo url dello streaming scrivendoli appunto
in formato CSV:
 
nome,stream-url
 
Formato che pyradio è in grado di gestire. Il file poi
lo si dà in pasto allo script così:
 
pyradio --stations listenlive-italy.csv
 
Questo ultimo comando, volendo lo potresti anche
aggiungere in coda allo script bash riportato sopra,
così lanci solo lo script bash e parte automaticamente
anche pyradio.
Poi qualcosa si potrebbe modificare, tipo il file di
output si potrebbe piazzare in /tmp o in una sua dir
apposita tipo sotto /var/cache/listenliveit così non
si sporca la dir corrente.
 
A quel punto si può creare come dicevate sopra un
launcher sul desktop che faccia partire direttamente
lo script in una finestra xterm o similare... così col
doppio click si fa accende la radio e si ha la lista
delle stazioni aggiornata...
 
Probabilmente bash non è lo strumento più semplice
per fare il parsing della pagina html, però per questo
piccolo compito ci può anche stare.
Credo che il python sarebbe stato meglio, ma non lo
conosco purtroppo.
 
Salutoni!  :)


Bello!! Mi piace l'idea del file.csv separato.
Ho provato a salvare i due file nella home (script+file.csv), ma non mi 
funziona. Forse nel copiare lo script, qualche riga è andata a capo.
Non riesco a capire bene cosa c'entra la pagina in html.
 
Mi faresti, per favore, una piccola procedura a steps? Esempio:
 
1) salvare lo script nella home,
2) salvare il file.csv nella home,
3) ....
 
Intanto, grazie mille per la tua disponibilità!
Ciao,
Nemo
 
 
 

 3) ....
 
Apri il link al mio messaggio precedente che ti anche linkato sopra
via "google-groups visualizza originale".
Seleziona lo script bash: inizia con "#!/bin/bash.. in pratica seleziona
e copia il testo incluso tra le due righe fatte di "uguali", cioè sta roba
"===========" (ovviamente escluse quelle righe separatrici che servivano
solo per evidenziare lo script nel messaggio.
 
A questo punto apri il tuo editor di testo preferito, io uno vim ad
esempio, nel tuo caso non so... insomma editor di testo semplice
tipo notepad di windows oppure gedit o kate o nano o emacs o altro.
E in un file nuovo incolli il contenuto che avevi precedentemente
copiato.
Verifica che le righe vadano a capo come nel mio messaggio.
Salva il file di testo col nome che prefarisci, e salvalo dove
preferisci... io l'avevo chiamato listenliveit.sh, ma puoi chiamarlo
anche pippo.sh...
 
Ora devi dargli i permessi di esecuzione... eventualmente prima spostati
nella directory in cui lo avevi salvato esempio ~/radio-test
 
cd radio-test
chmod +x pippo.sh
 
A questo punto lo lanci.
 
./pippo.sh
 
poi dai un'occhiata ai files nella dir corrente con un "ls" e
vedrai che ti avrà creato il file CSV che lui chiama:
 
listenlive-italy.csv
 
Puoi aprirlo per vedere com'è fatto:
 
less listenlive-italy.csv
 
poi "q" per chiudere "less" e tornare alla shell.
 
A questo punto se hai installato pyradio puoi lanciarlo
dandogli in pasto il file csv di cui sopra:
 
pyradio --stations listenlive-italy.csv
 
E la radio dovrebbe partire: avrai davanti la lista delle stazioni,
con le frecci e su e giù selezioni quella che vuoi e poi dai invio
e la radio parte.
Spero ti sia comprensibile la procedura, non so quanto tu sia
"ferrato", ma se sai usare i comandi principali della shell (ls cd
less) e un editor di testo dovrebbe bastare...

 Per me, la priorità è la sicurezza e l'opensorce.
 
Io da anni uso clementine per i vari streaming delle radio che ascolto
di solito:
https://www.clementine-player.org/
 
 
Esiste sia per linux che per windows (lo uso anche in ufficio), basta
memorizzare la prima volta la url dello streaming e poi si può cambiare
stazione con i tasti multimediali della tastiera. Per esempio
questo è lo straming di radio rock roma:
http://94.23.66.114:8050/
 
 
Ciao!
-- 
Tilt
 

 campo. Che poi sarebbe banalmente il formato "CSV".
OK, fin qui ci sono.


 Ciao!
 
Grazie per l'info. E' la prima volta che mi avvicino alla realtà dello 
streaming ed è bello imparare cose nuove.
 
Ciao, 
Nemo

.
./estrattore-url.sh: 
riga 16: s/.*<b>\(.*\)<\/b>.*href=\"\(.*\.\(pls\|m3u\)\).*/\1,\2/p: 
File o directory non esistente


Hai ragione! Sì colpa del mio copia incolla e del fatto che vim
mi ha spezzato la riga del comando "sed". Ti riposto lo script di
seguito:
 
 
 
#!/bin/bash
 
URL=
http://www.listenlive.eu/italy.html
 
OUT=listenlive-italy.csv
TMP_PAGE=page.tmp
TMP_PAGE2=page2.tmp
 
[ -e $OUT ] && rm $OUT
wget -q -O $TMP_PAGE $URL
sed -i -n '/<tr>/,/<\/tr>/p' $TMP_PAGE
sed -i 1,5d $TMP_PAGE
sed -i '/^<td><img/d' $TMP_PAGE
tr -d '\n' <$TMP_PAGE |sed 's/\/tr>/\/tr>\n/g' > $TMP_PAGE2
while read riga;do
        echo "$riga" | sed -n 's/.*<b>\(.*\)<\/b>.*href=\"\(.*\.\(pls\|m3u\)\).*/\1,\2/p' >> $OUT
done < $TMP_PAGE2
rm $TMP_PAGE $TMP_PAGE2
 
 
 
Ok, sono esattamente 17 righe.
Eventualmente se hai dubbi lo copi da questo stesso messaggio da
google-groups con visualizzazione "raw" cioè "visualizza originale"
ma non dovrebbe essere necessario, non so poi dipende da come leggi
questi gruppi, con che software e se ha impostato dei tagli delle
righe più lunghe di un tot... Insomma sono cose da "abc", va bene
che siamo su icoli ma non mi sembra il caso di spingermi oltre! :D
 
Per l'indentazione non c'è problema: in bash non è rilevante, al
contrario di python ad esempio in cui invece dev'essere rispettata
altrimenti lo script non funge proprio.  ;)
L'indentazione delle righe negli script bash è solo "estetica" nel
senso che serve per la leggibilità, ma puoi indentare come vuoi che
tanto funziona sempre.
 
Vedi un po' se a sto giro l'output generato è decente e utilizzabile...
Ciao

 Ciao
 
Ho già fatto una prova con un'altra pagina web ed ho estrapolato gli Url 
delle radio in Germania. 
http://www.listenlive.eu/germany.html
 
 
Non ho installato pyradio, perchè il computer interessato si trova 
all'estero, ma la funzione di questo script è portentoso.
 
E' questo che apprezzo dell'informatica, le *Utilities* cioè quelle 
applicazioni che rendono più semplici le cose quotidiane della vita.
 
Inoltre, hai stimolato la mia curiosità e mi hai dato degli input da 
soddisfare/approfondire in bash:
tr, less, ecc. Inoltre, ho scoperto che Pluma, semplice editor di testi, 
può gestire un'infinità di linguaggi di programmazione.
 
*GRAZIE* mille per il tuo aiuto e naturalmente anche a tutti coloro che 
hanno dedicato un pò del loro tempo a questo thred.
 
Un cordiale saluto, anche da chi lavora e vive all'estero. 
In questo modo, ascoltando una radio italiana, si ha un piccolo legame 
con il proprio paese di origine.
Nemo

 all'estero, ma la funzione di questo script è portentoso.
 
Bè ora, non esageriamo!  :D
fa solo il parse del codice html di una pagina web...
tra l'altro scritta in modo molto molto semplice.
Non nego che lo script pur semplice fa il suo sporco
lavoro e rende comoda una operazione altrimenti noiosa,
cioè cercare e copia incollare le stazioni radio.
Tra i vantaggi di uno script come questo, in generale
hai la possibilità di adattare l'output al formato
compatibile col "radio-player" che a valle dovrà poi
prendere in consegna la lista stazioni.
Nell'esempio visto, l'output è stato generato nella forma
 
nome-stazione, url-streaming-stazione
 
dal comando "sed", in particolare nella seconda parte del
comando:
 
---> --->   /\1,\2/
 
È stato necessario scegliere questa forma perchè pyradio
richiede proprio che gli si dia in input un file con le
stazioni formattato così.
 
Volendo si potevano estrarre nome e url di ogni stazione,
piazzarli in una variabile e creare un file tipo playlist
più complesso, in formato .m3u oppure .pls.
Questo renderebbe compatibile il file delle stazioni anche
con altri players tipo vlc o mpv o mplayer o altri ancora,
pyradio sebbene non perfetto risulta molto semplice da usare,
come avrai visto nel video: hai la tua finestra, con la lista
stazioni, ne selezioni una spostandoti su e giù cone le frecce
e premi invio per farla suonare.