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 のように複数の文字列を入れることが可能な部分もあるので、必要に応じて調べること。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:42