Posted at

PHPでMP3ファイルのID3タグを操作する


はじめに

MP3ファイルを再生したり管理したりするアプリを製作した際ID3タグの

扱いで色々試したのでメモ


ID3タグとは

iTunesなど一度は目にしたことがある目にする「曲名」、「アーティスト」、「アルバム」などの音源ファイルに紐付けられたデータのことである。これは通常、iTunesなどの再生用アプリのほか、様々なフリーソフトを活用して編集することができる。

以下ID3タグWikiより引用

ID3タグはMP3ファイルに元々組み込まれていた仕様ではなく、1996年に公開された「Studio3」というソフトウェアに組み込まれたのが始まりである。以後、様々なバージョンの規格が作られた。

ID3を追加したり、書き換えたりするソフトウェアはいくつか存在する。代表的な物はWinamp、SuperTagEditorシリーズ、mp3infp、Mp3tag等。

参考:ID3タグWikiPedia


PHPでID3タグを取り扱う方法その1

PHPでID3タグを扱う方法としてPECL拡張モジュールをインストールする方法がある。

一度設定してしまえばID3関数として呼び出しが可能なため、利用できる環境であれば

お勧めの方法。

参考:PHPリファレンス ID3インストール

よく使う関数

・id3_get_tag — ID3 タグに含まれるすべての情報を取得する

例1 id3_get_tag() の例

<?php

$tag = id3_get_tag( "path/to/sample.mp3" );
print_r($tag);
?>

上の例の出力は、 たとえば以下のようになる。

Array

(
[title] => DN-38416
[artist] => Re:\Legion
[album] => Reflections
[year] => 2019
[genre] => 21
)

・id3_set_tag — ID3 タグに格納されている情報を更新する

例)

<?php

$data = array(
"title" => "Re:Start",
"artist" => "Re:\Legion",
"comment" => "rock is dead..."
);
$result = id3_set_tag( "path/to/sample.mp3", $data, ID3_V1_0 );
if ($result === true) {
echo "タグが正常に更新されました\n";
}
?>


PHPでID3タグを取り扱う方法その2

また、単にID3タグを取得したいだけであれば、

単独の機能のみダウンロードして利用する方法もある。

例)getID3()

また、composerを使うなら、id3で検索すると様々なパッケージがヒットするので、

評価が高いものを試してみても楽しいかと!

Packagistでのサーチ