[[diary/Kojima]]

・eyed3 の使い方

すぐに忘れてしまうのでメモ。

- 新しくタグを打つ

 import eyed3
 from eyed3 import id3
  
 mp3file = '<filename>'
 new_tag = eyed3.id3.Tag()
 new_tag.file_info = eyed3.id3.FileInfo(mp3file)
 new_tag.title = u'タイトルの文字列'
 new_tag.artist = u'演奏者'
 new_tag.release_date = u'date_str'
 
 new_tag.comments.set(u'複数行のコメントも可')
 new_tag.lyrics.set(u'詩を入れるならこういう形')
 
 new_tag.save()

コメントは DESC と LANG を指定することで複数入れることも可能。その場合は

 new_tag.comments.set(u'最初のコメント', u'例1', 'ja')
 new_tag.comments.set(u'2つめのコメント', u'例2', 'ja')

みたいな形になる。DESC/LANGが異なればコメントは区別されるが、
jukやamarokは複数のコメントを読めないようなので、DESC/LANG を指定したコメントは表示できない。

lyrics もコメント同じように指定できるけど、juk/amarok では表示しなかった。

- 既存のタグを更新する

 import eyed3
  
 mp3file = '<filename>'
 track = eyed3.load(mp3file)
 tag = track.tag
 tag.title = u'タイトルの文字列'
 tag.artist = u'演奏者'
 tag.release_date = u'date_str'
 
 tag.save()

id3タグが全く存在しないファイルの場合はエラーになるので、eyed3.id3.Tag() で初期化する必要がある。
eyeD3以外のアプリでid3タグを打った場合は、id3v2のバージョンで動作が変りそう。

- 使えるタグ

 print dir(tag)
 ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', 
 '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_chapters', 
 '_comments', '_convertFrames', '_getAlbum', '_getArtist', '_getBpm', '_getDate', '_getEncodingDate', '_getGenre', '_getOrigReleaseDate', 
 '_getPublisher', '_getRecordingDate', '_getReleaseDate', '_getTaggingDate', '_getTitle', '_getTrackNum', '_getUrlFrame', 
 '_getV23OrignalReleaseDate', '_getV23RecordingDate', '_images', '_loadV1Tag', '_loadV2Tag', '_lyrics', '_objects', '_popularities', 
 '_privates', '_render', '_saveV1Tag', '_saveV2Tag', '_setAlbum', '_setArtist', '_setBpm', '_setDate', '_setEncodingDate', '_setGenre', 
 '_setNum', '_setOrigReleaseDate', '_setPublisher', '_setRecordingDate', '_setReleaseDate', '_setTaggingDate', '_setTitle', '_setTrackNum', 
 '_setUrlFrame', '_splitNum', '_tocs', '_unique_file_ids', '_user_texts', '_user_urls', 
 'album', 'artist', 'artist_url', 'audio_file_url', 'audio_source_url', 'best_release_date', 'bpm', 'cd_id', 'chapters', 'clear', 
 'comments', 'commercial_url', 'copyright_url', 'disc_num', 'encoding_date', 'extended_header', 'file_info', 'frame_set', 'genre', 
 'getTextFrame', 'header', 'images', 'internet_radio_url', 'isV1', 'isV2', 'lyrics', 'objects', 'original_release_date', 'parse', 
 'payment_url', 'play_count', 'popularities', 'privates', 'publisher', 'publisher_url', 'recording_date', 'release_date', 'remove', 
 'save', 'setTextFrame', 'table_of_contents', 'tagging_date', 'terms_of_use', 'title', 'track_num', 'unique_file_ids', 'user_text_frames', 
 'user_url_frames', 'version']

このうち、"album" 以下が外部から操作できるはずだけど、albumやartistのように単純な文字列だけの部分もあれば、
comments や lyrics のように複数の文字列を入れることが可能な部分もあるので、必要に応じて調べること。

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS