id3ライブラリを触ってみたよ

node.jsで初めていじることになったライブラリ。mp3のid3情報を取得できるライブラリなのです。
環境:MacOS 10.6.5 / node.js 0.3.3 / npm 0.2.13-3 / nave

id3のインストール

npmを使ってインストール。

$ nave use latest
$ npm install id3

書いてみる

適当な場所に適当なmp3ファイルを置いて、以下のコードを書く。

// id3-test.js
var fs = require('fs'),
  id3 = require('id3');

// mp3ファイルを非同期で読み込む
fs.readFile('/Users/sasaplus1/Music/EVE.mp3', function(err, data) {
  if (err) throw err;

  // インスタンスの生成
  var mp3 = new id3(data);

  // id3のバージョンを表示
  console.log('id3 : ' + mp3.version);

  // id3の解析
  mp3.parse();

  // 各フィールドの表示
  console.log('title   : ' + mp3.get('title'));
  console.log('artist  : ' + mp3.get('artist'));
  console.log('album   : ' + mp3.get('album'));
  console.log('year    : ' + mp3.get('year'));
  console.log('comment : ' + mp3.get('comment'));
  console.log('track   : ' + mp3.get('track'));
  console.log('genre   : ' + mp3.get('genre'));
  console.log('picture : ' + mp3.get('picture'));
  console.log('lyrics  : ' + mp3.get('lyrics'));
});

実行してみる

$ node id3-test.js | nkf
id3 : id3v2
title   : EVE
artist  : Serani Poji
album   : �I�`�����J��
year    : 2004
comment : null
track   : null
genre   : ���w��
picture : null
lyrics  : null

nkfを使っても日本語が何故か化ける。UTF-16のはずなんだけど……


対応するid3は

  • id3v1
  • id3v2
  • id2v2_frames
  • id4

みたい。下の2つは何なのか知らない……
ソースコードを見た感じでは読み込みだけで書き込みはできないみたい?


ブラウザ上でmp3を流すときにid3を表示したりとかできていいかも。というかこのライブラリはそれが目的なんだろうけど。