Как добавить теги, такие как Author, Title и Thumbnail, в аудиофайл .m4a, используя node.js? - PullRequest
0 голосов
/ 13 октября 2018

Использование Node.js для загрузки файлов, содержащих музыку, в формате .m4a.

Проблема: не удается найти способ добавить теги и обложку (миниатюру) в файлы .m4a.

Я сделал это перед использованием другой программы: достигнуто с помощью MediaHuman youtube -> загрузчик mp3 (даже если он загружается как m4a, мой нужный формат) https://ufile.io/yzyzt

(PSI открыт для использования другого языка, до тех пор, пока язык может быть связан с узлом, но это определенно очень предпочтительно, если это можно сделать исключительно в файле node.js)

Любые подсказки по этому вопросу очень приветствуются.

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Я наконец решил свою проблему с помощью ffmpeg с использованием узла!

https://www.ffmpeg.org/ https://www.npmjs.com/package/ffmpeg

Проблема заключалась в том, что \ node_modules \ ffmpeg \ lib \ video.js решил пропустить дублирующиеся команды, поэтому мои запросы, состоящие из нескольких одинаковых команд, никогда не читались должным образом ffmpeg.Однако, с помощью быстрого мода к файлу video.js, я смог заставить его работать!Я успешно написал оба тега и миниатюру на моем .m4a

0 голосов
/ 14 октября 2018

Один из способов сделать это - использовать 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, как упомянул Брэд в своем комментарии.Мне было бы интересно ваше мнение, если вы попробуете.

...