Используя Express и ytdl-core (пакет NPM для загрузки видео с YouTube), я смог загрузить mp3-версию видео с YouTube для радио, такого как веб-приложение, которое я делаю. Единственная проблема заключается в том, что когда я пытаюсь скачать mp3 с помощью safari, он начинает загружать файл .dms или .download, а не mp3. Возвращает не тип контента при загрузке с помощью curl.
const ytdl = require("ytdl-core");
const app = express();
const fs = require("fs");
app.use(cors());
app.listen(4000, () => {
console.log("Server IS ON !!! At port 4000");
});
app.get("/radio/download", (req, res) => {
var URL = req.query.URL;
console.log("A download request was received!");
ytdl(URL, {
filter: "audioonly"
}).pipe(res);
});
Я не уверен, как заставить сафари преобразовать это в действительный mp3-файл и обращаться с ним так.
Когда я перехожу по ссылке типа https://ia802508.us.archive.org/5/items/testmp3testfile/mpthreetest.mp3
(тестовый mp3-файл, размещенный в интернет-архиве), safari показывает хороший mp3-плеер: .
Этого не происходит ни с одним mp3, загруженным с помощью моего экспресс-приложения.
Как я могу прикрепить правильные заголовки или что нужно Safari для правильной обработки моих mp3-файлов?