Python script de banco de dados mp3, com um front-end php
Pergunta
Então, aqui está o negócio. Eu estou tentando escrever um script python rápida que lê as tags ID3 básicos de um mp3 (artista, álbum, songname, gênero, etc). O script python usará provavelmente a biblioteca mutagênico (a menos que você souber de um melhor). Não tenho certeza como digitalizar recursivamente através de um diretório para obter etiquetas de cada mp3, e em seguida, preencher um banco de dados. Além disso, até o final de banco de dados, eu quero torná-lo tão sólida quanto possível, então eu queria saber se alguém tinha alguma idéia de como eu deve projetar o banco de dados em si. Devo usar apenas um grande mesa, que eu deveria usar certas relações, etc. Eu não sou muito bom em bancos de dados relacionais, então eu gostaria de receber qualquer ajuda. Oh, isso está sendo executado em uma máquina Linux.
Solução
Para começar com extrair tags ID3 em Python, há um módulo para isso.
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']
Mais informações sobre o módulo de ID3.
Se você deseja pesquisar recursivamente um diretório para arquivos de mp3, o built-in módulo os
pode fazer isso:
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']
Em termos de criação de banco de dados, você não precisa reinventar a roda (dados de música de armazenamento é um problema de banco de dados comum) - uma pesquisa no Google vai ajudá-lo. Aqui está um exemplo .