情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsでid3-parserを使用してmp3ファイルのメタデータを取得する

mp3ファイルのメタデータを取得するには下のようなモジュールを利用する方法があります。

  • id3-parser
  • id3js

この記事ではid3-parserモジュールを利用する方法を取り上げます。

id3Parser.parse関数を使用します。

var id3-parser = require('id3-parser');

var promise = id3Parser.parse(buf);

第1引数にmp3ファイルのバッファを指定します。

返り値としてmp3ファイルのメタデータを返すプロミスが得られます。

サンプルコード1

3つ目のコマンドライン引数として与えられたmp3ファイルのメタデータを取得し、標準出力に出力します。

id3-parser.js

var id3Parser = require('id3-parser');
var fs = require('fs');

if (process.argv.length < 3) {
    console.error('lack argument.');
    process.exit(1);
}

fs.readFile(process.argv[2], function (err, data) {
    if (err) {
        console.error(err);
    }
    else {
        id3Parser.parse(data).then(function(metadata) {
            console.log(metadata);
        });
    }
});

使用パッケージ

  • id3-parser
    npm install id3-parserでインストールします。

実行結果

現在のフォルダにはsample.mp3という名称のmp3ファイルが存在しています。

C:\work\node>dir sample.mp3
 Volume in drive C is TI31035600A
 Volume Serial Number is 1CBD-3C48

 Directory of C:\work\node

2017/06/25  13:58        10,940,408 sample.mp3
               1 File(s)     10,940,408 bytes
               0 Dir(s)  12,275,019,776 bytes free

このテキストファイルを3つ目のコマンドライン引数に指定してコードを実行すると正しくメタデータの内容が出力されます。

C:\work\node>node id3-parser.js sample.mp3
{ version:
   { v1: { major: 1, minor: 1 },
     v2: { major: 2, flags: [Object], minor: 3, revision: 0 } },
  album: 'キラリズム',
  artist: '柊かえ(CV.立花芽恵夢)、本城香澄(CV.岩橋由佳)',
  genre: 'Anime',
  title: 'ク・ルリラビー',
  track: '7/9',
  year: '2017',
  image:
   { type: 'cover-front',
     mime: 'image/jpeg',
     imageType: null,
     description: null,
     data: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 00 01 01 2c 01 2c 00 00 ff fe 00 1f 4c 45 41 44 20 54 65 63 68 6e 6f 6c 6f 67 69 65 73 20 49 6e 63 2e 20 56 31 2e ... > } }

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js