podverse / partytime

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Partytime Podcast Parser

NPM version

Podcast feed parser, originally extracted from podcast index - https://github.com/Podcastindex-org/aggregator/tree/master/partytime. It is up to you, the consumer of this package, to fetch the feed which needs to be parsed. When fetching the feed YOU SHOULD INCLUDE A PROPER USER-AGENT. You can test by fetching and checking the description of https://podnews.net/rss.

This package will also identify new namespace elements and call out the "phases" implemented by the feed in a pc20support element.

Usage

npm install podcast-partytime

Typescript

import fetch from "node-fetch";
import pt from "podcast-partytime";

// Check CORS support
pt.checkFeedByUri("https://www.spreaker.com/show/3128218/episodes/feed").then(console.log);

fetch("http://mp3s.nashownotes.com/pc20rss.xml", {
   headers: {
    "user-agent": "partytime/example",
    }
})
  .then((resp) => resp.text())
  .then((xml) =>
    console.log(
      pt.checkFeedByObject({
        uri: "http://mp3s.nashownotes.com/pc20rss.xml",
        feedObject: pt.parseFeed(xml),
      })
    )
  );

// Parse Feed
fetch("http://mp3s.nashownotes.com/pc20rss.xml", {
   headers: {
    "user-agent": "partytime/example",
    }
})
  .then((resp) => resp.text())
  .then((xml) => console.log(pt.parseFeed(xml)));

Javascript

const fetch = require("node-fetch");
const pt = require("podcast-partytime");

// Check CORS support
pt.checkFeedByUri("https://www.spreaker.com/show/3128218/episodes/feed").then(console.log);

fetch("http://mp3s.nashownotes.com/pc20rss.xml")
  .then((resp) => resp.text())
  .then((xml) =>
    console.log(
      pt.checkFeedByObject({
        uri: "http://mp3s.nashownotes.com/pc20rss.xml",
        feedObject: pt.parseFeed(xml),
      })
    )
  );

// Parse Feed
fetch("http://mp3s.nashownotes.com/pc20rss.xml")
  .then((resp) => resp.text())
  .then((xml) => console.log(pt.parseFeed(xml)));

Resources

Sample Feeds

The sample feeds below were chosen for their varied nature. Including things like non-traditional titles, different publishers, and season usage.

Development

Update dependencies (person enum and valid license list) via yarn deps or npm run deps.

About


Languages

Language:TypeScript 99.1%Language:Shell 0.6%Language:Handlebars 0.1%Language:Dockerfile 0.1%Language:JavaScript 0.0%