Por ahora, estoy manteniendo las cosas realmente sencillas. En el futuro, planeo a�adir listas de reproducci�n, dar peso a las canciones, colocar material en bases de datos PostgreSQL, y cuentas, etc.
Soy muy perezoso. Tanto, que ni me molest� en mirar demasiado los varios organizadores de mpeg basados en web para tus canciones favoritas. Simplemente quer�a algo para escupir las 200 canciones en un orden al azar para que simulase una estaci�n de radio. Primero ten�a que ripear las canciones y despu�s escribir un sencillo gui�n en Python para dividir la lista de reproducci�n.
cd /var/www/html mkdir audioAhora copie todos sus mp3, rm, wav y otros ficheros de audio en el directorio "/var/www/html/audio". NOTA: no use su sevidor web para nadie m�s que usted mismo. S�lo usted puede escuchar esas canciones, o puede meterse en problemas de derechos de copia. Contacte con un abogado para los temas legales.
Para arrancar su servidor web, habitualemente puede hacer esto: "service httpd start". Si eso no funciona, mire en la documentaci�n que ven�a con su distribuci�n Linux para averiguar c�mo comenzar y parar el servicio web. Usualemente el servidor web por defecto en la mayor�a de los sistemas Linux ser� Apache.
cd /usr/local/src lynx --source http://twtelecom.dl.sourceforge.net/sourceforge/lame/lame-3.93.1.tar.gz > lame-3.93.1.tar.gz tar -zxvf lame-3.93.1.tar.gz cd lame-3.93.1 ./configure --prefix=/usr/local/lame make install ln -s /usr/local/lame/bin/lame /usr/bin/lame
#!/usr/bin/python
# Aseg�rese de que la l�nea de arriba es la primera l�nea de este archivo.
### Derecho de copia bajo la GPL
## importamos los m�dulos de Python que necesitamos
import os, re, time, random
## Damos valores a algunas variables. Puede cambiar estas variables para sus necesidades.
Home = "/var/www/html/audio"
Url_Base = "http://127.0.0.1/audio"
Song_Max = 200
List_Type = "mpegurl"
## NO CAMBIE NADA DE ABAJO A NO SER QUE SEA USTED UN EXPERTO EN PYTHON.
File_Match = re.compile('[{mp3}{rm}{wav}{ogg}{mpeg}]$')
Home_Re = re.compile('^' + Home)
List_Types = {'smil':'application/smil', 'mpegurl':'audio/x-mpegurl'}
#---------------------------------------
## Esta funci�n recorrer� todos los archivos que coincidan y obtendr� sus rutas absolutas.
## Es un m�todo recursivo.
def Dir_Contents(Item=""):
Final_List = []
if Item == '': return ('')
elif os.path.isdir(Item):
List = os.listdir(Item)
for Item2 in List:
Item3 = Item + "/" + Item2
Temp_List = Dir_Contents(Item=Item3)
for Item4 in Temp_List: Final_List.append(Item4)
elif os.path.isfile(Item):
if File_Match.search(Item): return([Item])
else: return([])
return (Final_List)
#--------------------------
List = Dir_Contents(Home)
List_Copy = List
## Aleatoriza cu�ntas veces llamamos a random.
Secs = int(time.strftime('%S')) * int(time.strftime('%H')) * int(time.strftime('%M'))
for i in range(0,Secs): random.random()
## Obtiene aleatoriamente un archivo cada vez hasta que no quede ningunio.
New_List = []
while (len(List_Copy) > 0):
Position = random.randint(0,len(List_Copy) - 1)
New_List.append(List_Copy[Position])
del List_Copy[Position]
## Rehace las url de la lista.
Urls = []
for Item in New_List:
## Para cada miembo en la lista, saca el prefijo del directorio Home, y le pre-coloca la url.
Url = Url_Base + Home_Re.sub('', Item)
Urls.append(Url)
## Si superamos el n�mero de canciones que queremos escuchar,
## lo acabamos. Puntos de bonus si puede imaginar cu�ntas canciones
## hay en esta matriz cuando Song_Max = 200.
if len(New_List) > Song_Max: New_List = New_List[0:Song_Max]
## Si el idiota que edit� este archivo tiene un tipo de lista no v�lido...
if not List_Types.has_key(List_Type): List_Type = 'mpegurl'
Content_Type = List_Types[List_Type]
### Ahora imprimimos el contenido.
print "Content-Type: " + Content_Type + "\n\n"
if List_Type == 'mpegurl':
for Url in Urls: print Url
elif List_Type == 'smil':
print "\n<smil>\n <body>\n"
for Item in Urls: print " <audio src='" + Url+ "'/>"
print " </body>\n</smil>\n"
else:
for Url in Urls: print Url
#------------------------------------------------------------------------
# Open Radio versi�n 1.0
# Copyright 2003, Mark Nielsen
# Todos los derechos reservados.
# Este aviso de Copyright se copi� y modific� a partir del aviso de Copyright de Perl.
# Este programa es software libre; usted puede redistribuirlo y/o modificarlo bajo los t�rminos
# de, bien:
# a)la Licencia P�blica General GNU seg�n est� publicada por la Fundaci�n del Software Libre;
bien en la versi�n 1, o (es su opci�n) cualquier versi�n posterior, o
# b)la "Licencia Art�stica" que viene con este Kit.
# Este programa se distribuye en la esperanza de que sea �til, pero SIN NINGUNA GARANT�A; incluso sin la
# garant�a impl�cita de COMERCIABILIDAD o AJUSTE PARA UN PROP�SITO PARTICULAR. Vea la
# Licencia P�blica General GNU o la Licencia Art�stica para m�s detalles.
# Deber�a haber recibido una copia de la Licencia Art�sitca con este kit, en el archivo llamado "Artistic".
# Si no es as�, estar� contento de proporcionarle una. Puede mirar en http://www.perl.com para la Licencia Art�stica