自分の好きな曲、いつも聴いている曲をブログとかで紹介したいなーなんてとき、どうしましょうか。 曲名だけなら、フォルダを全選択してコピーすればいいかもしれません。
しかし、もし、さらにアーティスト名も書きたいなーという場合はどうしましょうか。
ここまで来るとプログラミングですが、フォルダーの特定のアーティストのみのタイトルを取得したい、なんて場合はどうしましょうか。
そんなとき役に立つのが、ffmpegの"ffprobe"です。
メタデータの種類を知りたい
そもそも、メタデータの種類が知りたい、という場合は、ffprobeコマンドです。
BPMってどう書くんやろ…みたいな場合。
ffprobe "0002 - Broken 8cmix.mp3"
Metadata:
encoder : LAME 32bits version 3.99.5 (http://lame.sf.net)
title : Broken 8cmix
artist : iroha(sasaki)
album : Sound Voltex Soundtrack
track : 2
album_artist : Various Artists
disc : 1/3
TBPM : 150
TLEN : 107205
mp3のメタデータをCSVとして出力
format_tags=オプションを任意のメタデータに書き換えることで、出力を変えます。
for f in *; do
echo "\
$(ffprobe -loglevel error -show_entries format_tags=track -of default=noprint_wrappers=1:nokey=1 "$f"),\
$(ffprobe -loglevel error -show_entries format_tags=title -of default=noprint_wrappers=1:nokey=1 "$f"),\
$(ffprobe -loglevel error -show_entries format_tags=artist -of default=noprint_wrappers=1:nokey=1 "$f")\
"
done
mp3のメタデータをCSVとして出力(ダブルクォーテーションあり)
for f in *; do
echo "\
\"$(ffprobe -loglevel error -show_entries format_tags=track -of default=noprint_wrappers=1:nokey=1 "$f")\",\
\"$(ffprobe -loglevel error -show_entries format_tags=title -of default=noprint_wrappers=1:nokey=1 "$f")\",\
\"$(ffprobe -loglevel error -show_entries format_tags=artist -of default=noprint_wrappers=1:nokey=1 "$f")\"\
"
done
他の機能
- 曲数を知りたい
| wc -lで出力の行数を数えることで、曲数を数えることができます。
- mp3info
ちなみに、mp3infoという選択肢もありますが、
mp3infoは不具合が多いですので非推奨です。
$ mp3info -p %t "0002 - Broken 8cmix.mp3"
%a
$ mp3info -p %t "0008 - smoooochã»âã» KN mix.mp3"
smooooch??? KN mix
文字化けしてたり、なんかよくわからない変換されてたり。だめですね。