Python Skript-mp3-Datenbank, mit einem PHP-Frontend
Frage
So, hier ist der Deal. Ich versuche, einen schnellen Python-Skript zu schreiben, das die grundlegenden ID3-Tags von einem MP3 liest (Künstler, Album, Songname, Genre, etc.). Der Python-Skript verwendet höchstwahrscheinlich die Mutagen-Bibliothek (es sei denn, Sie einen besseren kennen). Ich bin mir nicht sicher, wie rekursiv durch ein Verzeichnis zu scannen jeden mp3-Tags zu erhalten, und dann eine Datenbank füllen. Auch soweit die Datenbank Ende, ich will es so fest wie möglich machen, so dass ich mich gefragt, ob jemand irgendwelche Ideen hatte, wie ich die Datenbank selbst entwerfen sollte. Soll ich nur einen großen Tisch, soll ich bestimmte Beziehungen verwenden, etc. Ich bin nicht sehr gut in relationalen Datenbanken, damit ich jede Hilfe schätzen würde. Oh, das läuft auf einer Linux-Box.
Lösung
Um das Extrahieren von ID3-Tags in Python zu beginnen, gibt es ein Modul für die.
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']
Weitere Informationen über ID3-Modul.
Wenn Sie ein Verzeichnis für MP3-Dateien rekursiv suchen, die sich im internen os
Modul kann das tun:
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']
In Bezug auf die Datenbank erstellen, Sie müssen nicht das Rad neu zu erfinden (Speicher von Musikdaten ist ein gemeinsames Datenbank-Problem) - eine Google-Suche werden Ihnen helfen. Hier ist ein Beispiel .