[[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