如何使用 nodejs / express 从 rss 提要(当前返回 302 错误)中获取 mp3 url

How to get mp3 urls from an rss feed (that are currently returning a 302 error) using nodejs / express

提问人:mheavers 提问时间:8/16/2023 更新时间:8/16/2023 访问量:39

问:

我正在使用开放播客索引 API 来搜索播客剧集,并返回它们的 mp3 网址。然后,我尝试使用nodejs来获取该mp3。https.get

一些播客可以工作 - 例如由 RSS.com 主持的播客。但是扩音器 url 返回 302 状态代码 - 已移动。如何解决此问题,并获取最终的 mp3 网址?

这是我的代码:

https
  .get(url, (response) => {
    console.log("status", response.statusCode);
    if (response.statusCode === 200) {
      const chunks = [];

      response.on("data", (chunk) => {
        chunks.push(chunk);
      });

      response.on("end", () => {
        console.log("end");
        const chunkedBuffer = Buffer.concat(chunks);
        const fileID = uuidv4();
        const fileName = `${fileID}.mp3`;

        fs.writeFileSync(fileName, chunkedBuffer);
        const filePath = path.join(__dirname, `../${fileName}`);
        return resolve(filePath);
      });
    } else {
      //reject with the error message
      return reject("Error retrieving MP3 file");
    }
  })
  .on("error", (error) => {
    console.error("Error retrieving MP3 file:", error);
    return reject("Error retrieving MP3 file");
  });

如果我在浏览器中访问这些 mp3 网址,它可以工作并播放音频,例如:

https://chrt.fm/track/GB329B/traffic.megaphone.fm/DTT8182114297.mp3?updated=1691427726

重定向至

https://dcs.megaphone.fm/DTT8182114297.mp3?key=089e905b80101adcb7a7ee157bc41d20&request_event_id=0a256e87-ad4b-45b3-b5b0-2ae7f8b89013

Node.js Express RSS http-status-code-302 播客

评论


答: 暂无答案