Я пытаюсь настроить наш файл подкаста. js, чтобы мы могли динамически вставить объявление или промо перед тем, как подкаст будет доставлен конечному пользователю.
Я надеялся сделать следующее, однако я заметил, что я не могу сохранить mp3, так как он «потоковый».
Просто интересно, есть ли лучший способ сделать это?
const express = require('express');
var icecast = require('icecast-stack'),
request = require('request');
const router = new express.Router();
router.get('/', (req, res) => {
res.set({
"Content-Type": "audio/mpeg",
'Transfer-Encoding': 'chunked'
});
var clients = [];
var remote = "https://storage.googleapis.com/ad-system/testfolder/OUTOFAREA.mp3";
var streama = request.get(remote);
streama.on("connect", function() {
console.error("Podcast Stream connected!");
//console.error(stream.headers);
});
streama.on("end", function() {
console.error("Podcast Stream END");
// setTimeout(function(){ test = true; console.error('yep yep yep')},29000);
//console.error(stream.headers);
// test = true;
});
// Fired after the HTTP response headers have been received.
streama.on('response', function(res) {
// console.error("AdStichr Stream response!");
console.error(res.headers);
});
// When a chunk of data is received on the stream, push it to all connected clients
streama.on("data", function (chunk) {
// console.log(clients.length);
if (clients.length > 0){
for (client in clients){
clients[client].write(chunk);
};
}
});
clients.push(res);
});
module.exports = router;