如何使用node.js将诸如Author,Title和Thumbnail之类的标签添加到.m4a音频文件中?

时间:2018-10-13 17:37:24

标签: node.js metadata thumbnails id3 m4a

使用Node.js以.m4a格式下载包含音乐的文件。

问题:我找不到向.m4a文件添加标签和封面(缩略图)的方法。

在使用其他程序之前,我已经完成了此操作:由MediaHuman youtube-> mp3下载器(即使它以m4a(我想要的格式)下载)https://ufile.io/yzyzt

(P.S。我愿意使用另一种语言,只要该语言可以链接到节点,但是绝对可以完全在node.js中完成,这绝对是首选)

任何有关此主题的线索都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

一种实现方法是使用node-taglib2,它是一个基于taglib的Node.js C ++插件,可在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,正如Brad在他的评论中提到的那样。如果您愿意,我会对您的反馈意见感兴趣。

答案 1 :(得分:0)

我终于通过使用ffmpeg使用node解决了我的问题!

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

问题是\ node_modules \ ffmpeg \ lib \ video.js决定跳过重复的命令,因此ffm​​peg不会正确读取我的包含多个相同命令的请求。但是,通过对video.js文件的快速修改,我可以使其工作!我已经成功地将标签和缩略图写到了.m4a