Я хотел бы указать автора mp3-файла на основе данных, отправленных пользователем.
До сих пор мне удавалось получить данные, отправленные пользователем (в любом случае, вряд ли это эксплойт), но мне не удалось сменить автора файла.Я пытался использовать оба пакета node-id3 и ffmetadata , как это предложено этим ответом , но ничего из этого не сработало.
Подход узла-id3
Вот часть кода, которую я написал для подхода узла-id3, и пока теги, показанные в readTags
, действительно являются теми, которые я добавил вметод update
, он не меняет автора файла, когда я читаю его на моем компьютере (с itunes) или на моем телефоне Android (с музыкой samsung), что означает, что этот подход не работает.
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-файл отлично распознается всемиАудио-ридер, с которым я его тестировал.
Большое спасибо за помощь.