Closed2
wavファイルにメタデータを書き込む
目的
wavファイルでメタデータを自由に登録できるかを調査する。
やりたいこと
wavファイルに「録音日時:2023/4/13」的な情報を複数登録して、
単体のwavファイルから複数の情報を取得したい。
調査
music-metadataライブラリでメタデータをさわれそうな雰囲気だったが、読み取り専用のよう。
ffmpegを使用すればよいというのも見かけたが、
ffmpegはバグが多いらしいので別の方法を見つけたい。
wavefileライブラリを試す。
結論
wavefileの「Add RIFF tags to files」の機能でwavファイルのインスタンスにタグを編集することができた。
以下のコードで実装可能。
情報を付与した新規wavファイルを作成した後、元のwavファイルは削除する。
const WaveFile = require("wavefile").WaveFile;
const fs = require("fs");
const FILE_NAME = "demo";
(async () => {
try {
// wavファイルの読み取り
const wav = new WaveFile(await fs.readFileSync(`./${FILE_NAME}.wav`));
// wavファイルのインスタンスのICMT(コメント)タグに書き込み
wav.setTag("ICMT", "This is a test.");
// 新規wavファイルを作成
await fs.writeFileSync(`./${FILE_NAME}_meta.wav`, wav.toBuffer());
console.log("コメント取得", wav.getTag("ICMT"));
fs.unlinkSync(`./${FILE_NAME}.wav`);
} catch (err) {
console.log(err.toString());
}
})();
コメントタグに複数の情報を記述し、wavファイル取得と同じタイミングでここを読み取る
このスクラップは2023/04/12にクローズされました