Один из способов сделать это - использовать node-taglib2 , аддон Node.js C ++, основанный на taglib и доступный в репозитории npm.
Этот модуль выполняет тривиальное редактирование метаданных mpeg:
const fs = require('fs');
const taglib = require('taglib2');
let props = {
artist: 'Howlin\' Wolf',
title: 'Evil is goin\' on',
pictures: [
{
"mimetype": 'image/jpeg',
"picture": fs.readFileSync('./thumbnail.jpg')
}
]
}
taglib.writeTagsSync('./file.m4a', props);
Теперь мы можем проверить, что метаданные были обновлены:
let tags = taglib.readTagsSync('./file.m4a')
console.log(tags.artist, '-', tags.title) // Howlin' Wolf - Evil is goin' on
console.log(tags.pictures) // [ { mimetype: 'image/jpeg', picture: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff db 00 43 00 03 02 02 03 02 02 03 03 03 03 04 03 03 04 05 08 05 05 04 04 05 0a 07 07 06 ... > } ]
Но, конечно, есть другие варианты сделать то же самое, и я уверен, что вы также можете использоватьffmpeg, как упомянул Брэд в своем комментарии.Мне было бы интересно ваше мнение, если вы попробуете.