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を表示したりとかできていいかも。というかこのライブラリはそれが目的なんだろうけど。