2020/07/17

mid3v2を使ったmp3ファイルのタグ情報の編集

eyeD3と同様に、linuxでシェルのコマンドラインからmid3v2を使って、mp3ファイルのタグ情報を編集できます。

インストール方法は次のとおりです。
$ sudo apt update
$ sudo apt install python-mutagen

引数には、単一のmp3ファイルの他、複数のmp3ファイルも指定できます。

タグ情報を表示させる場合は、次のとおりです。
$ mid3v2 [mp3ファイル]

例えば次のようになります。
$ mid3v2 Music/YUKI\ concert\ tour\ “Blink\ Blink”\ 2017.07.09\ 大阪城ホール/01\ -\ Bili\!\ Bili\!\ -LIVE-.mp3|grep -v "x00"   # 画像データらしき大きいデータ除外のためgrep -vとしています
IDv2 tag info for Music/YUKI concert tour “Blink Blink” 2017.07.09 大阪城ホール/01 - Bili! Bili! -LIVE-.mp3
APIC=cover front,  (image/jpeg, 39941 bytes)
COMM==eng=Amazon.com Song ID: 293537637
TALB=201801 YUKI concert tour “Blink Blink” 2017.07.09 大阪城ホール
TCOM=百田留衣
TCON=JPop
TIT2=Bili! Bili! -LIVE-
TPE1=YUKI
TPE2=YUKI
TPE3=
TPOS=01/01
TRCK=01/28
TYER=2018

典型的な使い方は次のとおりです。
$ mid3v2 -t ”[曲のタイトル]” [mp3ファイル]   # 曲のタイトルの変更
$ mid3v2 -a ”[アーティスト名]” [mp3ファイル]   # アーティスト名の変更
$ mid3v2 -A ”[アルバム名]” [mp3ファイル]   # アルバム名の変更
$ mid3v2 -g ”JPop” [mp3ファイル]   # ジャンルをJPopにする
$ mid3v2 --TIT2=”[曲のタイトル]” [mp3ファイル]   # 曲のタイトルの変更
$ mid3v2 --TPE1=”[アーティスト名]” [mp3ファイル]   # アーティスト名の変更
$ mid3v2 --TALB=”[アルバム名]” [mp3ファイル]   # アルバム名の変更
$ mid3v2 --TCON=”JPop” [mp3ファイル]   # ジャンルをJPopにする
$ mid3v2 --delete-frames="TPE2" [mp3ファイル]   # アルバムアーティストタグを削除
$ mid3v2 --delete-frames="APIC" [mp3ファイル]   # カバーアートを削除

カバーアートの追加は次のようにします。
mid3v2ではできないという情報が他のサイトに挙げられていますが、現在はできます。
$ mid3v2 --picture="[カバーアート画像ファイル]" [mp3ファイル]   # カバーアートの追加
または
$ mid3v2 --picture="[カバーアート画像ファイル]:[DESCRIPTION]:[IMAGE-TYPE]:[MINE-TYPE]" [mp3ファイル]   # カバーアートの追加

例を挙げます。
$ mid3v2 --picture="cover.jpg" test.mp3   # カバーアートの追加
または
$ mid3v2 --picture="cover.jpg::3:image/jpeg" test.mp3   # カバーアートの追加

[DESCRIPTION]は任意に指定する情報になります(通常は空だと思います)。
[IMAGE-TYPE]はman等のドキュメントで説明されていないと思いますが、mutagenのサイトのAPICの情報によると3がCover (front)に対応するようです。
3のCover (front)以外を知りたい方は、man metaflacなどを参考にしてください。

詳しくはman mid3v2mutagenのサイトを見てください。

mid3v2はTIT2、TPE1、TALBのようなフレーム名に慣れれば使いやすいと思いますが、慣れていないためあまり使っていません。

しかし、eyeD3、easytagもある中で、唯一mid3v2のみでできることが、フレームごとにエンコーディングを表示させることです。
$ mid3v2 --list-raw Music/YUKI\ concert\ tour\ “Blink\ Blink”\ 2017.07.09\ 大阪城ホール/01\ -\ Bili\!\ Bili\!\ -LIVE-.mp3|grep -v "x00"   # 画像データらしき大きいデータ除外のためgrep -vとしています
Raw IDv2 tag info for Music/YUKI concert tour “Blink Blink” 2017.07.09 大阪城ホール/01 - Bili! Bili! -LIVE-.mp3
TPOS(encoding=<Encoding.LATIN1: 0>, text=[u'01/01'])
TYER(encoding=<Encoding.LATIN1: 0>, text=[u'2018'])
TIT2(encoding=<Encoding.LATIN1: 0>, text=[u'Bili! Bili! -LIVE-'])
COMM(encoding=<Encoding.LATIN1: 0>, lang='eng', desc=u'', text=[u'Amazon.com Song ID: 293537637'])
TPE3(encoding=<Encoding.UTF16: 1>, text=[u''])
TPE2(encoding=<Encoding.LATIN1: 0>, text=[u'YUKI'])
TPE1(encoding=<Encoding.LATIN1: 0>, text=[u'YUKI'])
TALB(encoding=<Encoding.UTF16: 1>, text=[u'201801 YUKI concert tour \u201cBlink Blink\u201d 2017.07.09 \u5927\u962a\u57ce\u30db\u30fc\u30eb'])
TRCK(encoding=<Encoding.LATIN1: 0>, text=[u'01/28'])
TCON(encoding=<Encoding.LATIN1: 0>, text=[u'(146)'])
TCOM(encoding=<Encoding.UTF16: 1>, text=[u'\u767e\u7530\u7559\u8863'])

更に詳しい情報は、mutagenのサイトのTextFrameの情報を見てください。

<環境>
・chromebookのLinux(ベータ版)環境
Chromebook 311 / C721-N14N / Acer
Chrome OS バージョン: 83.0.4103.119(Official Build) (64 ビット)
chromebookのLinux(ベータ版)環境 / Debian 9: 9.12 (Stretch)
mid3v2 バージョン: 1.3
mutagen バージョン: 1.36
・crouton環境
Chromebook 11 / C740-F34N / Acer
Chrome OS バージョン: 83.0.4103.112(Official Build) (64 ビット)
crouton環境 / Ubuntu 18.04.4 LTS
mid3v2 バージョン: 1.3
mutagen バージョン: 1.38

MP3 ファイルのタグについての解説 (id3v1, id3v2, MPEG フレームヘッダ, XING ヘッダ) (このサイト様の「ID3v2 フレームでの文字列表現」を参考にしました)

0 件のコメント:

コメントを投稿