見出し画像

ターミナルでflacファイルのメタデータを編集

CDから音楽を取り込んだときに違うアルバムに別れてしまうことや、アルバム名やアーティスト名が違うことがよくあります。気にしないことにしてしばらく放置していたのだけれども、そろそろちゃんとすることにしました。

とりあえず ”音楽ファイル 情報 編集” とかでググると色々出てくるのだけれど、どれがいいのかよく分からない。それに、WindowsやMacで使えるものしか無い(普段はUbuntuを使ってる)。

音楽ファイルって所詮ファイルなんだからvimとかで編集できないの?
そもそもアルバム名やアーティスト名ってどこに保存してるの?

色々調べていると`metaflac`なるコマンドを見つけました。
しかもFLACの公式ツールらしい。

使い方

1. flacファイルの情報を見る。
現在設定されているアルバム名やアーティスト名を確認できます。
(実行例は私の好きなアーティストのこゑださんの音楽ファイルで行っています。)

$ metaflac --list --block-type=VORBIS_COMMENT 00-01-おとなのことば.flac             04/30 03:13:29 
METADATA block #1
 type: 4 (VORBIS_COMMENT)
 is last: false
 length: 180
 vendor string: Lavf57.71.100
 comments: 8
   comment[0]: ALBUM=I'scream
   comment[1]: ALBUMARTIST=こゑだ
   comment[2]: ARTIST=こゑだ
   comment[3]: DATE=2019
   comment[4]: GENRE=POP
   comment[5]: DISCNUMBER=1/1
   comment[6]: TITLE=おとなのことば
   comment[7]: TRACKNUMBER=01/13

また、

metaflac --export-tags-to=export_tags.txt 00-01-おとなのことば.flac

を実行することで、メタデータをファイルに書き出せます。

2. メタデータを書き込む。

タグと値をセットでflacファイルに追加することができます。例えば、以下のようにすると”TITLE”タグに”おとなのことば”を追加できます。

$ metaflac --set-tag="TITLE=おとなのことば"

ただし、タグを編集するのではなく追加なので、何回も実行すると”TITLE”タグが実行した分だけ増えます。

では、どうすれはいいか。

メタデータの書き込みには他にも方法があります。

$ metaflac --remove-all-tags --import-tags-from={import_file} 00-01-おとなのことば.flac

このようにすると、import_fileに書いてあるタグを一括で追加してくれます。`--remove-all-tags`はすでに登録してあるタグをすべて消してくれます。

なので、使い方としては

$ metaflac --export-tags-to=export_tags.txt 00-01-おとなのことば.flac
$ vim export_tags.txt
$ metaflac --remove-all-tags --import-tags-from=export_tags.txt 00-01-おとなのことば.flac

のように、一旦ファイルにメタデータを書き出して編集し、それを書き込むようにするのがいいかと思います。

私はアルバム単位で一括して処理を行えるようにshellやらMakefileやらを作りました。

flacファイルも所詮ファイルなので、余計なアプリ入れずにターミナルでコマンドとvimを使って編集しましょう。
他の形式の音楽ファイルでも同じように編集可能ですが、メタデータの形式が違うので、それぞれにあった方法で設定しましょう。


余談

ちなみにflacファイルの構成は以下のようになっている。

画像1

参考:FLAC-ドキュメント


もしよろしければ、サポートよろしくお願いします。サポートは自身の勉強や開発環境を整えるために使わせていただきます。