Skip to content

A generic podcast feed parser, tailored for Podrain but generic enough to be used anywhere. Works in the browser and Node.

Notifications You must be signed in to change notification settings

podrain/better-podcast-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Better Podcast Parser

A fully-featured podcast parser. Built for Podrain but can be used in Node or the browser.

Repo

https://github.com/podrain/better-podcast-parser

Features

There are a couple of features that help this library stand out:

  • Fetch a feed by URL, or just parse XML string directly
  • Supports paged feeds as per RFC 5005

Installation

## NPM
npm install --save better-podcast-parser

# Yarn
yarn add better-podcast-parser

Usage

The functions used return Promises. You can fetch a feed by URL or parse an XML string directly.

Options

getAllPages

Whether to recursively fetch all pages in a paginated feed. Defaults to false.

proxyURL

If you are pulling a feed from a web browser, you will likely need a proxy server to avoid CORS when fetching feeds. Not likely needed for server-side fetching with Node. Of course, the proxy URL will be prepended to the feed URL. Defaults to an empty string.

import feedParser from 'better-podcast-parser'

// Options
let options = {
    getAllPages: true, 
    proxyURL: 'https://cors-anywhere.herokuapp.com/'
}

// Parsing a feed at a given URL
feedParser.parseURL('https://changelog.com/gotime/feed', options).then(jsonResult => {
    // jsonResult is the JSON payload
})

// Parsing a feed from an XML string
feedParser.parseFeed(xmlString, options).then(jsonResult => {
     // jsonResult is the JSON payload
})

Todo

  • Add some kind of error checking if a feed string or URL is bad

About

A generic podcast feed parser, tailored for Podrain but generic enough to be used anywhere. Works in the browser and Node.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published