L'altre dia l'
xtraeme em va dir que havia pujat a
pkgsrc un paquet que es diu
streamtuner.
Aquest programa es un clasificador d'streams d'audio per internet conectant a diverses bases de dades com Xiph o
shoutcast. Ficar un llistat de favoritos i demés... Tenia alguns fallos de Gtk2 pero per la resta força maco el programa.
El problema vé quan toca compilar amb pkgsrc desde GNU/Linux enlloc de NetBSD..Aixi que despres de barallarme he decidit sudar i fer-ho a mà, explicaré els pasos per si a algú més li interesa o li passa com a mi, que estic fart d'escoltar sempre la mateixa musica.
Entrem a
www.shoutcast.com i anem a la cerca d'alguns links que volguem escoltar que han de tenir una pinta com aquesta mès o menys:
console:
http://www.shoutcast.com/sbin/shoutcast-playlist.pls?rn=5362&file=filename.pls
He estat mirant i sembla que ignori el parametre "file", aixi que farem servir només l'identificador
rn.
Ara aixo li enxufem al curl per veure el playlist, ja que no sembla que el pugui obrir el client d'audio directament, necessita passar pel "navegador":
estrany
console:
$ curl http://www.shoutcast.com/sbin/shoutcast-playlist.pls?rn=5362
[playlist]
numberofentries=5
File1=http://64.236.34.67:80/stream/1016
Title1=(#1 - 19/18304) J A Z Z M U S I Q U E - Smooth & Stylish Downtempo from NETMUSIQUE.com
Length1=-1
File2=http://64.236.34.4:80/stream/1016
Title2=(#2 - 16/14958) J A Z Z M U S I Q U E - Smooth & Stylish Downtempo from NETMUSIQUE.com
Length2=-1
File3=http://64.236.34.97:80/stream/1016
Title3=(#3 - 28/20121) J A Z Z M U S I Q U E - Smooth & Stylish Downtempo from NETMUSIQUE.com
Length3=-1
File4=http://64.236.34.196:80/stream/1016
Title4=(#4 - 29/20177) J A Z Z M U S I Q U E - Smooth & Stylish Downtempo from NETMUSIQUE.com
Length4=-1
File5=http://205.188.234.4:8004
Title5=(#5 - 171/300) J A Z Z M U S I Q U E - Smooth & Stylish Downtempo from NETMUSIQUE.com
Length5=-1
Version=2
$
Bueno, aqui ja tenim una llista, agafem un link i el passem a l'mplayer i el pipejem amb el mesure per veure com va el download:
console:
$ mplayer -ao pcm:file=stream0.pcm http://64.236.34.67:80/stream/1016
En una consola paralela podem obrir el mesure per controlar el download, i veient a quina velocitat creix podem saber la qualitat d'audio:
console:
$ mesure -Mvf stream0.pcm
7 MB
Aixi podrem veure quants MB porta copiats i podrem pararlo quan volguem, de fet avanço una coseta del TODO del mesure que consisteix en callbacks a execucions de programes i la implementació de ETA i percetatge descarregat (que ja estan implementats al CVS). Fent una cosa aixi:
console:
$ mesure -f stream0.pcm -I "`ls -l stream0.pcm|awk '{print $5}'`" -S 700M
33%
Aquesta comanda ja la podem utilitzar en la versio de CVS del mesure, basicament el que fa es donar-nos el output de quant li falta per arribar a tenir 700M descarregats, i amb lo que comentava abans dels callbacks podrem fer execucions de programes quan
per exemple arribi al 100%.
En principi l'mplayer ja ens ho guarda en un format llegible pel cdrecord, ja que es menja les capēaleres dels fitxers .wav (aka pcm), pero si ens volem asegurar de no liarla amb el CD millor que ho convertim al format correcte: 44100 de rate estereo:
console:
$ sox -t raw -c 2 -r 44100 -w -s audiodump.wav track01.cdr
Finalment podem recopilar diferents tracks de <700M en un cdaudio aixi:
console:
cdrecord -v dev=/dev/cdrom -force -audio track01.cdr ../../track01.cdr
No us preocupeu si el tamany total de tots els fitxers .cdr supera el limit del CDROM, ja que amb -force i -fix sempre s'arregla tot
Fent el playlist
Es bastant util fer-nos un playlist amb diversos enllaços, aixo ho podem treure facilment aixi:
console:
$ curl -s http://www.shoutcast.com/sbin/shoutcast-playlist.pls?rn=5362 | grep http| cut -c 7- |head -n 1 >> ~/playlist.m3u
Sempre podem fer un petit script que ens faciliti la feina d'afegir urls noves al playlist en plan "add-to-playlist http://..." i que l'script executi la linea de sobre. (obviament

)
Making it Portable
Ara bé, sempre podem tenir el reproductor d'mp3 enxufat per les nits al servidor i que aquest ens esborri tot el contingut del mp3 i comenci a grabar un stream d'alguna radio directament a la qualitat que volguem per escoltar-ho el dia següent porai. Doncs la cosa seria aixi:
console:
$ mount /mnt/usb
$ rm -rf /mnt/usb/*
$ rm stream0
$ mkfifo stream0
$ mplayer -ao pcm:file=stream0 http://205.188.234.4:8004 & lame stream0 /mnt/usb/stream0.mp3
$ rm stream0
$ sync
$ umount /mnt/usb
Al omplir-se el pendrive-mp3 lame pararà d'encodejar i tancara el FIFO que hem creat abans i en conseqüencia l'mplayer també pararà.
Espero que sigui util per a algú encara que sigui una xorrada de tutorial

Apa nanit!
[add comment] [view comments] (7)