Bienvenidos a mi post El contenido del presente post es a su vez un recopilatorio de trabajos realizados, al final del mismo agregare las respectivas fuentes disponibles. Antes de empezar aclaro que estos scripts trabajan sobre BASH, interprete de ordenes basado en Unix. En este caso se trabaja con wget, mplayer y mpg123. Para aquellos que no estén muy empapados en el tema, wget es una herramienta libre que permite descargar contenido de la web, mplayer y mpg123 son reproductores con singulares características, de las cuales encontraran mayor información en la web. Básicamente podrían usarse en una terminal como: * Para escuchar canciones de una carpeta "mpg123 -C -Z *.mp3" ( toca todas las canciones de una carpeta, de manera aleatorea y con los controles respectivos de mpg123, para mayor información digitar en terminal "man mpg123" (ogg123 puede usarse de manera similar) * Escuchar una emisora "mplayer http://stream01.noisefm.pl:8000" (Igual que para ver canales de video, toca tener la url) * Descargar de una pagina web " wget urldescarga" (no tengo una url de descarga de momento, pero de hecho con esto pueden descargar toda una secuencia de imágenes de una pagina, por ejemplo con el comando "wget -r -l1 -H -t1 -nd -N -np -A.jpg -erobots=off ", para mayor información consultar aca mismo en Taringa sobre este comando) Recordemos que para hacer scripts, utilizarlos y demas, debemos abrir nuestro editor de texto favorito, darle los permisos adecuados (puede ser simplemente con chmod 755) y para ejecutarlo se debe anteponer "./". Para mayor información aca mismo en Taringa se encuentran los tutoriales. El primer script, hago la aclaración, lo saque de aca mismo en Taringa en el siguiente post, otros también lo tienen: http://www.taringa.net/posts/linux/1009809/_Linux_-Algunos-_4_-scripts-de-bash.html El script es lo mismo, lo unico es que les explicare como agregarle emisoras, para hacerlo mas personalizado. En primer lugar tenemos el script, al cual de hecho no le he quitado el nombre del autor http://www.taringa.net/posts/linux/1009809/_Linux_-Algunos-_4_-scripts-de-bash.html ############################################################################### !/bin/bash # Modificada # llama a mplayer, segun la radio indicada # # Fixes en etapa de ejecucion por Arturo 'Buanzo' Busleiman # - 20070104 case "$1" in # # Radios # mb) # Music box de videos URII="mms://81.89.49.210/musicbox?MSWMExt=.asf" ;; mega) # Mega 98.3 Puro Rock Nacional URII='http://mega.telecomdatacenter.com.ar/mega' ;; 977) # .977 The 80s Channel URII="http://scfire-ntc-aa01.stream.aol.com:80/stream/1040" ;; tly) # CRIK FM - The Lynx is your link to the 60s, 70s, 80s, 90s and today! URII="http://91.121.6.109:8016" ;; Noise) # Rock Niezalzne URII="http://stream01.noisefm.pl:8000" ;; R98) # Rock 98.8 emisora yanki URII="http://188.165.37.109:9699" ;; 525) # 525 power tracks rock URII="http://fastcast4u.com:9256" ;; nr) # netrock 101 URII="http://netrock101.servebeer.com:8418" ;; classic) # Musica barroco URII="http://baroque.kizugawa.coop:8004" ;; unad) # Radio unad virtual URII="http://190.66.14.209:80/" ;; Rr1) # Rock Radio 1 URII="http://94.23.16.167:8000/" ;; jav) # Universidad Javeriana URII="mms://streaming.javeriana.edu.co/emisora?MSWMExt=.asf" ;; jazz) # Sky fm musica jazz URII="http://u14b.sky.fm:80/sky_smoothjazz_aacplus" ;; # # television # une) # Tellevision une URII="mms://streaming1.vcb.com.co/unemedellin" ;; tn24) # TN 24 Horas URII="mms://wmedia01.uigc.net/TN" ;; Rr1) # Rock Radio 1 URII="http://94.23.16.167:8000/" ;; jav) # Universidad Javeriana URII="mms://streaming.javeriana.edu.co/emisora?MSWMExt=.asf" ;; # # Webcams # tl) # Trafico luxenburgo URII="http://streaming.newmedia.lu/cita" ;; *) echo " Uso: radio.sh opci **Emisoras** Rr1 (Rock radio 1) Noise (Rock Noise.fm) R98 (Rock 98.9) 525 (525 power tracks rock) nr (netrock 101) mega ( Mega 98.3 Rock Argentino) 977 (Musica de los 80s) classic (Clasica Barroco)(En ocaciones se debe intentar mas de una vez) jav (Universidad Javeriana) unad (Universidad de la unad) jazz (Sky fm emisora de jazz) **Videoclips** mb (Music Box Videos) **Webcams** tl (Trafico en Luxenburgo) " exit 1 ;; esac mplayer -af lavcresample=44100 -cache 64 "$URII" ################################################################################ Con este script podremos escuchar emisoras de radio y algunas canales por streaming. Para cambiar la emisora, solo tendrán que agregar la constante, por ejemplo yo agregue "jazz) # Sky fm musica jazz" donde esta ejecuta la variable URII que contiene la url y que llama al programa en cuestión que nos permitirá oír la emisora, en este caso mplayer. De donde descargar la URL?? Pueden optar por la pagina de radio de winamp "http://www.shoutcast.com/", donde encontraran muchas emisoras disponibles, casi cualquier tipo. En esta pagina tendrán acceso a la pagina de la emisora en cuestión, por ejemplo: http://www.noisefm.pl/ De esta pagina lo que me sirve es el archivo de descarga de la emisora para winamp o cualquier reproductor mencionado el cual me de el acceso a la url, en muchos de los casos en un archivo con formato .m3u .pls. o etc... Como la siguiente imagen Ahora lo unico es cojer el archivo .m3u y abrirlo con su editor de texto favorito, en mi caso emacs. Les arrojara lo siguiente: #EXTM3U #EXTINF:-1,Serwer G³owny NOISEfm.pl - Niezale¿ne Radio Rock ! (96kbps 44 kHz) http://stream01.noisefm.pl:8000/ Por regla general, lo que va en almohadilla # no vale.. no cuenta. justamente nos arroja el dato que necesitamos: http://stream01.noisefm.pl:8000/ Este es el dato que necesitamos para agregarlo a la emisora, para mayor ejemplo se pueden guiar en la plantilla del código. En el segundo script me disculparan, pero no recuerdo la fuente, ya que los scripts que les traigo los tengo desde hace ya un tiempo. Para el siguiente se trabajara con wget. tenemos que: ############################################################################ #bin/bash #Si el usuario no pone lo que busca en la linea de comandos, se lo pedimos. if [ $1 ]; then TITULO="$@" else echo "Introduce el titulo de la cancion del artista:" read TITULO fi #Descargamos el PHP correspondiente al título. wget http://goear.com/search.php?q="$TITULO" #La línea 130 contiene todos los enlaces a goear... de risa pero bueno. head -130 search.php?q="$TITULO" | tail -1 > canciones.txt #Mediante ER, obtenemos una lista de canciones y una lista de enlaces. egrep -o 'listen/......./[^"]*' canciones.txt > enlaces.txt egrep -o '"Escuchar[^"]*' canciones.txt > titulos.txt #Mostramos al usuario los que ha encontrado en la primera página. Linea=1 cat titulos.txt | while read line; do { echo $Linea: ${line:9} let 'Linea += 1' } done #Si no encuentra nada, sale. CONDICION=`wc -l titulos.txt | awk '{print $1}'` if [ $CONDICION == 0 ]; then echo "No hay resultados. Prueba buscando otra cosa." rm search.php?q="$TITULO" canciones.txt enlaces.txt titulos.txt exit fi #Leemos qué canción quiere el usuario bajarse. echo "¿Cuál te quieres bajar? Indica el número: (0 para Cancelar)" read NUMERO #Cero para Cancelar if [ $NUMERO = 0 ]; then rm search.php?q="$TITULO" canciones.txt enlaces.txt titulos.txt echo "Hasta pronto." exit fi #Concatenamos http://www.goear.com con el contenido de aBajar.txt. #PD: Alguien sabe hacerlo de manera más sencilla? GOEAR=http://www.goear.com/ head -$NUMERO enlaces.txt | tail -1 > aBajar.txt for LISTEN in `cat aBajar.txt` do ENLACE=${GOEAR}${LISTEN} done echo $ENLACE #A partir de aquí el script no es mío, pero es muy sencillo de leer. fileid=`echo $ENLACE | cut -d '/' -f 5` xmlurl="http://www.goear.com/tracker758.php?f="$fileid infoline=`wget -qO- $xmlurl | grep ".mp3"` mp3url=`echo $infoline | cut -d '"' -f6` artist=`echo $infoline | cut -d '"' -f10` title=`echo $infoline | cut -d '"' -f12` cd /media/hd/Musica/Descarga wget $mp3url -O "$artist-$title.mp3" rm search.php?q="$TITULO" canciones.txt enlaces.txt titulos.txt aBajar.txt ############################################################################## Este script nos facilitara descargar de la pagina "http://www.goear.com/" la musca que queramos, algo asi como un grooveshark. Simplemente escribimos el scritp seguido de la canción que queramos descargar, aquella que en su momento se nos ocurra. Un ejemplo "./goear.sh Manowar" y nos arrojara una serie de resultados correspondientes a la búsqueda. Escojamos y listo.. comienza a descargar como solo wget lo sabe hacer. OJO, en la linea "cd /media/hd/Musica/Descarga" casi al final, es el directorio de descarga donde yo guardo todo... ustedes lo pueden cambiar a su gusto para que descargue en el directorio que ustedes deseen. El ultimo script que doy a exponer, nos facilita escoger una canción de mucha que tengamos con mpg123. a continuación: ############################################################################## #!/bin/bash if [ ! -e mp3list.txt ]; then echo "Listing all mp3 on your / " find / -name *.mp3 > mp3list.txt fi echo -n > tpl.tmp i=1 while true; do l=`echo $1, | cut -d"," -f$i` let i=i+1 if [[ -z "$l" ]]; then break fi `cat mp3list.txt | grep -i $l >> tpl.tmp` done sed = tpl.tmp | sed 'N;s/n/t/;s//.*///g;s/.mp3//' | more # number lines and strip of directories and extensions. line=1; max=`wc -l tpl.tmp | cut -s -d" " -f1` if [ ! "$max" -eq 0 ] && [ ! "$max" -eq 1 ] then echo -n "Enter song number [MAX $max]: "; read line elif [ "$max" -eq 0 ]; then exit 0 fi for i in `seq 1 10`; do l=`echo "$line 0" | cut -s -d" " -f$i` echo "Playin : $l"; if [ -z "$l" ] || [ "$l" -le 0 ]; then exit 0 #Exit here fi filename=`more +$l tpl.tmp | head -n 1` #echo "$filename" if [ "$l" -gt "$max" ]; then echo "Out of bounds $max " else echo "Playing $filename" mpg123 -Cv "$filename" fi done echo "OveR"; #doesnt reach ############################################################################## Que hace este script? Sencillo, la primera vez que es ejecutado escanea el equipo por música y crea un listado, para que cada vez que nosotros lo utilicemos, pueda acceder rápidamente a nuestra solicitud. A modo de ejemplo, yo llame a este script mpg123.sh. Lo ejecutamos así "./mpg123.sh Archenemy". Tengo los álbumes de Archenemy en x directorio, el scritp me trae todas las canciones del directorio y las enumera, de tal manera que me da a elegir que canciones escuchar de acuerdo a la enumeración. Solo debo ponerle 05, y me ejecutara la canción listada numero 05 en el orden expuesto. Si yo quiero escuchar determinado numero de canciones, solo hay que indicarlas dando un carácter de espacio, es decir, 01 02 03 21 22 23 ....... La fuente del ultimo código la encuentran en http://digitalpbk.blogspot.com/2008/05/bash-mp3-player-mpg123-sed-playlist.html Definitivamente este es uno de los motivos por los cuales me quedo con linux, y es que soy dueño de mi propia información y del manejo, no es sencillo, pero con consultar y estudiar un poco el tema se pueden hacer cosas incluso mejores que estas, adecuadas a nuestras necesidades reales. Cualquier comentario es motivación para trabajar mas a menudo en este tipo de exposiciones. Saludos.
Datos archivados del Taringa! original
1puntos
608visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos: