سؤال

لذلك، إليك الصفقة. أحاول كتابة برنامج نصي ثعبان سريع يقرأ علامات ID3 الأساسية من MP3 (الفنان، الألبوم، اسم الأغاني، النوع، إلخ). سيستخدم البرنامج النصي Python على الأرجح مكتبة Mutagen (إلا إذا كنت تعرف من أفضل). لست متأكدا من كيفية البحث بشكل متكرر من خلال دليل للحصول على علامات كل علامات MP3، ثم املأ قاعدة بيانات. أيضا، بقدر نهاية قاعدة البيانات، أريد أن أجعلها صلبة قدر الإمكان، لذلك كنت أتساءل ما إذا كان لدى أي شخص أي أفكار حول كيفية تصميم قاعدة البيانات نفسها. يجب أن أستخدم فقط طاولة واحدة كبيرة، هل يجب علي استخدام علاقات معينة، وما إلى ذلك. أنا لست جيدا في قواعد البيانات العلائقية حتى أقدر أي مساعدة. أوه، هذا يعمل على صندوق Linux.

هل كانت مفيدة؟

المحلول

للبدء في استخراج علامات ID3 في بيثون، هناك وحدة نمطية لذلك.

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

مزيد من المعلومات حول وحدة ID3.

إذا كنت ترغب في البحث بشكل متكرر في دليل ملفات MP3، فإن المدمج os الوحدة يمكن أن تفعل ذلك:

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

مرجع.

من حيث إنشاء قاعدة البيانات، لا تحتاج إلى إعادة اختراع العجلة (تخزين بيانات الموسيقى هي مشكلة قاعدة بيانات شائعة) - سيساعدك بحث Google في الخروج. هنا مثال واحد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top