Pregunta

Por lo tanto, este es el trato. Estoy intentando escribir un script en Python rápida que lee las etiquetas ID3 básicos de un mp3 (artista, álbum, songName, género, etc.). La secuencia de comandos Python utilizará más probable es que la biblioteca mutágeno (a menos que sepa de uno mejor). No estoy seguro de cómo escanear de forma recursiva a través de un directorio para obtener las etiquetas de cada uno de mp3, y luego llenar una base de datos. Además, hasta el extremo de base de datos, quiero que sea lo más sólido posible, así que me preguntaba si alguien tenía alguna idea sobre cómo debería diseñar la base de datos en sí. ¿Debo usar una mesa grande, debería utilizar ciertas relaciones, etc. No soy muy bueno en las bases de datos relacionales por lo que agradecería cualquier ayuda. Oh, esto se ejecuta en una máquina Linux.

¿Fue útil?

Solución

Para comenzar con la extracción de las etiquetas ID3 en Python, hay un módulo para eso.

from ID3 import ID3

mp3_filepath = r'/music/song.mp3'
id3_data = ID3(mp3_filepath)
print 'Artist:', id3_data['ARTIST']
print 'Title:', id3_data['TITLE']

Más información sobre el módulo de ID3.

Si desea buscar de forma recursiva un directorio para los archivos mp3, el módulo os incorporado puede hacer lo siguiente:

import os

def mp3_files(root):
  # this is a generator that will return mp3 file paths within given dir
  for f in os.listdir(root):
      fullpath = os.path.join(root,f)
      if os.path.isdir(fullpath) and not os.path.islink(fullpath):
          for x in mp3_files(fullpath):  # recurse into subdir
              yield x
      else:
          if fullpath[len(fullpath)-3:] == 'mp3':
            yield fullpath

for p in mp3_files(root_dir):
  id3_data = ID3(p)
  print 'Artist:', id3_data['ARTIST']
  print 'Title:', id3_data['TITLE']

de referencia.

En cuanto a la creación de la base de datos, no es necesario reinventar la rueda (el almacenamiento de datos de música es un problema de base de datos común) - una búsqueda en Google le ayudará a cabo. He aquí un ejemplo .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top