MP3のタグをコマンドラインから編集する

UNIX

持っているCDをMP3ファイルにしたりとかMP3ファイルを買ったりとか、音楽ファイルは増える一方だったりしますよね。増えてくると管理が面倒になってきたりもします。そうなるとタグ(ID3)できちんと管理したくなるのですが、GUIのアプリでマウスで作業するのは気が遠くなる作業です。こういった作業を含めコマンドラインで効率的にできるのがUNIX系OSの利点ですよね。

これが絶対お勧めというアプリがない

MP3を編集するためのコマンドラインのアプリは沢山あるのですが、これがお勧めというのがありません。私は二つのアプリを作業に応じて使っています。

mid3v2

二つのうち主に使っている方が mid3v2 です。Debian系であれば、以下のようにしてインストールできます。

# sudo apt-get install python-mutagen

mid3v2でできることは、manを見るか –helpを付けて実行して確認できます。

# mid3v2 --help
Usage: mid3v2 [OPTION] [FILE]...

Mutagen-based replacement for id3lib's id3v2.

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -v, --verbose         be verbose
  -q, --quiet           be quiet (the default)
  -e, --escape          enable interpretation of backslash escapes
  -f, --list-frames     Display all possible frames for ID3v2.3 / ID3v2.4
  --list-frames-v2.2    Display all possible frames for ID3v2.2
  -L, --list-genres     Lists all ID3v1 genres
  -l, --list            Lists the tag(s) on the open(s)
  --list-raw            Lists the tag(s) on the open(s) in Python format
  -d, --delete-v2       Deletes ID3v2 tags
  -s, --delete-v1       Deletes ID3v1 tags
  -D, --delete-all      Deletes ID3v1 and ID3v2 tags
  --delete-frames=FID1,FID2,...
                        Delete the given frames
  -C, --convert         Convert tags to ID3v2.4 (any editing will do this)
  -a "ARTIST", --artist="ARTIST"
                        Set the artist information
  -A "ALBUM", --album="ALBUM"
                        Set the album title information
  -t "SONG", --song="SONG"
                        Set the song title information
  -c "DESCRIPTION":"COMMENT":"LANGUAGE", --comment="DESCRIPTION":"COMMENT":"LANGUAGE"
                        Set the comment information
  -p "FILENAME":"DESCRIPTION":"IMAGE-TYPE":"MIME-TYPE", --picture="FILENAME":"DESCRIPTION":"IMAGE-TYPE":"MIME-TYPE"
                        Set the picture
  -g "GENRE", --genre="GENRE"
                        Set the genre or genre number
  -y YYYY[-MM-DD], --year=YYYY[-MM-DD], --date=YYYY[-MM-DD]
                        Set the year/date
  -T "num/num", --track="num/num"
                        Set the track number/(optional) total tracks
You can set the value for any ID3v2 frame by using '--' and then a frame ID.
For example:
        mid3v2 --TIT3 "Monkey!" file.mp3
would set the "Subtitle/Description" frame to "Monkey!".

Any editing operation will cause the ID3 tag to be upgraded to ID3v2.4.

このように大抵のことはできますが、カバー画像などの扱いができないのが難点です。

使い方としては、まずはタグの内容を以下のようにして確認します。

# mid3v2 *.mp3 | more

ファイル名の先頭に01 – Hello.mp3のようにトラック番号を付けていて、全部で10曲あるのであれば、

# for i in `seq -w 10` ; do mid3v2 -T $i/10 $i*.mp3 ; done

とかで、トラック番号を書くことができます。

eyeD3

eyeD3はDebian系であれば、以下のようにしてインストールできます。

# sudo apt-get install eyed3

何ができるのかはmanや–helpを付けて見ていただきたいのですが、オプションが色々あって便利そうなんですが、特殊なタグを削除したい場合とか、ジャンルをジャンル番号で設定したいときとかできないことが色々とあります。

ただカバー画像が扱える中では、使い勝手が良いですね。

# eyeD3 --remove-all-images *.mp3
# eyeD3 --add-image=Cover.jpg:FRONT_COVER *.mp3

ファイル名やディレクトリ構成について

ID3タグだけで整理できれば良いのですが、結局ファイル名もある程度規則をもってつけていないと、タグをサポートしていないサービスなどで困ることがあります。どのようにするかは決まった方法はないのですが、個人的なものを紹介します。

ファイル名のつけかた

ディスクが一枚物の場合、01 – Title Name.mp3のようにトラック番号を先頭に – で区切って曲名をファイル名にします。

ディスクが複数枚の場合は、01 – 01 – Title Name.mp3のように先頭にディスク番号、次にトラック番号のようにします。

こうすることでソートしたときの曲順が再生される曲順になるので便利です。区切りに – を使っていますが単にスペースでも良いですね。区切りを付け替えるときは、

# for i in *.mp3 ; do mv "$i" "${i/ - / }" ; done

のように簡単に書き換えられます。

ディレクトリ構成について

私はArtist/Album Nameのようにディレクトリを作っています。ただ年代で並べられないので、どれが新しいアルバムだかわからなくなります。リリース年度をディレクトリ名に含めるのも良いですね。私はディレクトリはすっきりさせたいのであえて入れていません。

まとめ

MP3ファイルのタグの編集は、GUIで行うと一つ一つ編集したり、一つ一つ選択したりとか面倒な作業になります。コマンドラインで行うことで効率的に作業できます。ただ完璧なアプリは今のところなくて、やりたいことで複数のアプリを使い分けることが必要です。

コメント

  1. gero より:

    mid3v2 の -p/–picture はカバー画像を扱うオプションでは?