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.

War es hilfreich?

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']

Referenz.

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 .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top