【发布时间】:2018-12-13 21:00:06
【问题描述】:
我想根据用户发送的数据来设置一个 mp3 文件的作者。
到目前为止,我设法获取了用户发送的数据(无论如何几乎没有漏洞利用),但我无法更改文件的作者。正如this answer 所建议的那样,我尝试使用node-id3 包和ffmetadata 包,但这些都不起作用。
node-id3 方法
这是我为 node-id3 方法编写的部分代码,虽然readTags 中显示的标签确实是我在update 方法中添加的标签,但它并没有改变作者当我在我的电脑(使用 iTunes)或我的安卓手机(使用三星音乐)上阅读该文件时,这意味着这种方法不起作用。
const NodeID3 = require('node-id3')
//getting the filename and fileAuthor, as well as creating the file on the server
let tags = {
title: filename,
composer: fileAuthor,
artist: fileAuthor,
remixArtist: fileAuthor,
conductor: fileAuthor,
originalArtist: fileAuthor,
}
let success = NodeID3.update(tags, toBeDownloadedFilePath)
console.log(success)
let readTags = NodeID3.read(toBeDownloadedFilePath)
console.log(readTags)
ffmetadata 方法
这是用 ffmetadata 方法编写的相同部分:
const ffmetadata = require("ffmetadata");
//getting the filename and fileAuthor, as well as creating the file on the server
let tags = {
artist: fileAuthor,
}
ffmetadata.write(toBeDownloadedFilePath, tags, function(err) {
if (err) console.error("Error writing metadata", err);
else console.log("Data written");
});
使用这种方法,我得到了错误:
[mp3 @ 0x7f90f8000000] mp3 格式仅检测到低分 1,可能误检测! [mp3 @ 0x7f90f8000000] 无法读取帧大小:无法搜索到 1026。 music1.mp3:无效参数
(music1.mp3 是我的文件名),我的 mp3 文件被我测试过的所有音频阅读器完全识别。
非常感谢您的帮助。
【问题讨论】: