mp3のid3タグに悩まされる話 #id3v1の読み取り

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

こんにちわ。
 

1つの作業を完了しないと、次の作業に進むことが出来ない、下駄です。
 

現在、mp3ファイルをjavascriptで扱っているシステムを作っているんですが、
mp3ファイルには、id3タグという、曲名やアーティスト名などを格納している領域があり、
ファイル名ではなく、ちゃんと音楽データを管理する仕組みがあります。
 

このid3タグを取り出すには、ファイルのバイナリデータから取り出すしか方法がないため、
javascriptでは、普段あまり行わない操作に戸惑いながら、データ取得をしたという話です。

id3タグについて

id3のバージョンは、今現在以下の4つが存在します。
 

id3v1
id3v2.2
id3v2.3
id3v2.4

 

id3というのが、タグデータの名称だとすると、v1はバージョン1でv2がバージョン2ということのようですが、
v2.2,v2.3,v2.4は、バージョン2.2 , 2.3 , 2.4という事ではなく、
idv2のメジャーバージョン2 , 3 , 4という事なのだそうです。
 

この時点で全く意味不明な感じですが、
まあ、とりあえず、v1,v2,v3,v4という風に考えるのがいいそうです。
 

そして、これらのバージョンはv1とv2はそれぞれフォーマットが全く違っていて、
v2のそれぞれのメジャーバージョンも、ヘッダのデータフォーマットが一緒だけど、
内容はまるで違っているという曲者なのです。
 

詳しくは、下記にリンクをつけてる参考ページを見てもらえると説明されています。

id3v1の解析コード

とりあえず、まずは、idv3v1のデータを取得してみたいと思います。

 

無駄なデータも付与しているので、少し長めのコードになってしまいましたが、このライブラリをwebページのfileAPIと組み合わせると
id3v1のデータを取得できるようになっています。
 

使い方は、
 

 

inputタグのファイルをmp3ファイルである場合に、1つずつ送ることで、ファイル別にid3タグ情報を取得してくれます。
 

ただし、現在のソースでは、v1しか認識しないので、今後v2.2 v2.3 v2.4を追加していかなければいけませんね。
 

全部完成したら、githubにアップしますね・・・
まだまだ、果てしないゴールです・・・

参考

https://ja.wikipedia.org/wiki/ID3%E3%82%BF%E3%82%B0#ID3v2
 

https://www.mp3tag.de/en/index.html

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です