2009-04-21 4 views
2

だから、ここにある。私は、mp3(アーティスト、アルバム、曲名、ジャンルなど)から基本的なid3タグを読み取るクイックPythonスクリプトを作成しようとしています。 Pythonスクリプトはmutagenライブラリを使用します(あなたが良いものを知らない限り)。私は再帰的に各mp3のタグを取得するためにディレクトリをスキャンし、データベースを埋める方法についてよく分かりません。また、データベースの終わりまで、可能な限り固めたいので、データベース自体をどのように設計すべきかについて誰かが考えているのかどうか疑問に思っていました。 1つの大きなテーブルを使うべきかどうか、ある種の関係などを使うべきかどうか、リレーショナルデータベースはあまりよくありませんので、助けていただければ幸いです。ああ、これはLinuxの箱で動いている。phpのフロントエンドを持つPythonスクリプトmp3データベース

答えて

4

ID3タグをPythonで抽出するには、そのためのモジュールが必要です。

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

More info on ID3 module.

あなたはビルトインosモジュール、再帰的にmp3ファイルのディレクトリを検索したい場合はそれを行うことができます作成​​の面では

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

Reference.

データベース、あなたは車輪を再構築する必要はありません(音楽データを保存することは共通のデータベース問題です) - Googleあなたが手伝ってくれるでしょう。 Here's one example

+0

私はGoogleのデータベース設計、感謝、再帰的なmp3検索の任意のアイデアを考えたことはありませんか? – Specto

関連する問題