5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonを利用したMP3メタデータ編集のやり方

Posted at

Pythonのmutagenライブラリを利用したMP3音楽メタデータの編集方法について紹介します。

下記サイトのフリーBGMをMP3のサンプルデータとして利用しています。
なんでしょう? @ フリーBGM DOVA-SYNDROME

実行環境

下記pipコマンドにより音楽メタデータを操作するためのライブラリmutagenをインストール
pip install mutagen

python 3.8.10 で実行可能なことを確認

基本的なメタデータ一覧取得

mutagenライブラリのEasyID3を利用することで、基本的なメタデータを取得できる。
より詳細なメタデータ編集(コメント、アルバムアート等)をする場合は、ID3を利用する。
※ ID3はEasyID3と比較して、データ編集方法が煩雑

from mutagen.easyid3 import EasyID3

mp3_file_path = "なんでしょう?.mp3"

tags = EasyID3(mp3_file_path)

# 辞書型で格納されたメタデータ表示
for key, value in tags.items():
    print(key,":", value[0])
メタデータ出力結果
composer : KK
encodedby : iTunes 12.3.2.35
title : なんでしょう?
artist : KK
composersort : KK
artistsort : KK
titlesort : なんでしょう?
date : 2013

曲名(title)、アーティスト(artist)、作曲者(composer)等のメタデータ取得結果が確認できる。
※ 利用可能なメタデータ一覧はEasyID3.valid_keys.keys()で取得可能

メタデータ更新・追加・削除

メタデータタグを更新・追加・削除後に、save()することでファイルが更新される。

from mutagen.easyid3 import EasyID3

mp3_file_path = "なんでしょう?.mp3"

# メタデータ更新・追加・削除
tags = EasyID3(mp3_file_path)
tags["artist"] = "update_artist"
tags["album"] = "add_album"
tags["date"] = ""
tags.save()

# 更新・追加・削除結果の確認
tags = EasyID3(mp3_file_path)
for key, value in tags.items():
    print(key,":", value[0])
メタデータ更新・追加・削除結果
album : add_album
composer : KK
encodedby : iTunes 12.3.2.35
title : なんでしょう?
artist : update_artist
composersort : KK
artistsort : KK
titlesort : なんでしょう?

元データからの下記のメタデータ更新・追加・削除が確認できる。

  • artist = update_artist に更新
  • album = add_album が追加
  • date = 2013 が削除

参考

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?