Giter Club home page Giter Club logo

podcast-feed-parser's People

Contributors

dependabot[bot] avatar jbierfeldt avatar jcs224 avatar joshr4 avatar mitchdowney avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

podcast-feed-parser's Issues

Add Support for Time Splits

I'd like to use this parser to parse value time split tags. It looks like this feature is not yet supported by the parser. I would like to attempt to add support for the <podcast:valueTimeSplit> tag.

Add support for the <podcast:alternateEnclosure> tag

Podcasting 2.0 is a collective of app developers making new podcast app features possible by extending the RSS spec. One of the goals of the podverse/podcast-feed-parser repo is to support all of the Podcasting 2.0 namespaces.

For this issue, add support for the podcast:alternateEnclosure tag to the podcast-feed-parser > index.js file.

Link to the alternateEnclosure spec

Please feel free to join our Discord and chat with us in the #dev channel if you'd like to work on this.

Feeds with namespaces

This package works great for a great range of feeds. However I'm having trouble with feeds that use the xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd" in their nodes. Is there a config option I've missed that will allow this?

A feed with Namespace is not valid according to this parser when I pass it through podcastFeedParser.getPodcastFromFeed(rawFeed, options);

The raw feed is below (the actual values are dummy values)
Options are below that

To Reproduce

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd">
	<channel>
		<title>Podcast 1</title>
		<description>Description...</description>
		<link>https://www.website.com/podcast</link>
		<copyright>(c) 2023 - .</copyright>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<docs>http://phobos.apple.com/static/iTunesRSS.html</docs>
		<language>de-ch</language>
		<lastBuildDate>Fri, 22 Sep 2023 10:25:41 +0200</lastBuildDate>
		<pubDate>Fri, 22 Sep 2023 10:25:41 +0200</pubDate>
		<managingEditor>[email protected]</managingEditor>
		<webMaster>[email protected]</webMaster>
		<generator>Webmaster's capable fingers</generator>
		<image>
			<url>https://website.ch/stream/srp/fit-statt-fett/r1-podcast-3000x3000.jpg</url>
			<title>Podcast 1.</title>
			<link>http://www.website.ch/</link>
			<description>Podcast</description>
			<width>200</width>
			<height>200</height>
		</image>
		<ttl>15</ttl>
		<itunes:owner>
			<itunes:name>Podcast 1.</itunes:name>
			<itunes:email>[email protected]</itunes:email>
		</itunes:owner>
		<itunes:category text="Sports"/>
		<itunes:author>Podcast 1 .</itunes:author>
		<itunes:explicit>No</itunes:explicit>
		<itunes:keywords>experten, experte, fett, fit, medizin, recht, multimedia, erotik, eros, gesundheit, arbeit, arbeitsrecht, heimwerker, kino, gastronomie, wirtschaft, bildung, literatur</itunes:keywords>
		<itunes:subtitle>Podcast 1.</itunes:subtitle>
		<itunes:summary>Summary.</itunes:summary>
		<itunes:image href="https://2021.radio1.ch/stream/srp/fit-statt-fett/r1-podcast-3000x3000.jpg"/>
		<item>
			<title>Training</title>
			<link>https://www.website.ch/podcast</link>
			<description></description>
			<author>[email protected] (1634)</author>
			<category>Sports</category>
			<pubDate>Fri, 22 Sep 2023 10:20:38 +0200</pubDate>
			<guid>{PODCAST-1}</guid>
			<enclosure url="valid_link_to.mp3" length="3259873" type="audio/mpeg"/>
			<itunes:duration xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd">03:19</itunes:duration>
			<itunes:keywords xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd">Keyword1,Keyword2</itunes:keywords>
			<itunes:category xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd" text="Sports"/>
			<itunes:author xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd">1634</itunes:author>
			<itunes:subtitle xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd">Subtitle</itunes:subtitle>
			<itunes:summary xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd"></itunes:summary>
		</item>

	</channel>
</rss>
    const options: PodcastFeedParserOptions = {
        fields: {
            meta: ["default", "ttl", "keywords"],
            episodes: ["default", "keywords"]
        },
        // an error
        required: {
            meta: [],
            episodes: []
        },
        uncleaned: {
            meta: [],
            episodes: []
        }
    };

Expected behavior
I would have thought there was a way to process these podcasts with the namespace.

Environment (please complete the following information):

  • Macbook
  • Node Version: 14
  • I'm actually using an older version but I've tried with the latest and it's the same

Thanks for your help and the package.

How do I set a userAgent header?

I read through the docs: https://www.npmjs.com/package/@podverse/podcast-feed-parser - but don't see how to set the userAgent my app will use when making HTTP calls to podcast feed URLs.

Some podcast hosting platforms validate requests based on userAgents and it's generally a best-practice to provide a good userAgent:

Can you help provide an example on how to set it?

Create a sample RSS feed that contains valid data for every possible podcast RSS feed namespace

It would be extremely valuable for development and testing purposes if we had a sample podcast RSS feed that contains valid data for every possible podcast RSS feed namespace.

The feed should contain:

  • A channel (podcast) level tag.
  • Multiple item (episode) level tags. (At least 2, and possibly more if there is a good reason for it, but otherwise keep the number of episodes to a minimum.)
  • Valid examples of the most commonly used namespaces for channel and item.
  • If there are links to content (like mp3s) the content has to be available in the public domain.
  • Include examples for all of the closed Podcasting 2.0 namespaces. Documentation
  • Some of the Podcasting 2.0 namespaces may require other standardized files. For example, the podcast:chapters namespace provides a link to an external JSON file that has its own standards. Ideally we will have sample files for these some day as well, but those sample files are not required for this issue.
  • Since this is for dev purposes the content in the feed should be neutral, either lorem ipsum style, or just not political or controversial.

In a separate issue we can add a process for running a localhost server so you can access the RSS via network requests locally.

There's a lot of different ways that this could be accomplished, so please let us know if you have any questions about what direction to go in.

Please feel free to join our Discord and chat with us in the #dev channel if you'd like to work on this.

Add support for the <podcast:guid> tag

Podcasting 2.0 is a collective of app developers making new podcast app features possible by extending the RSS spec. One of the goals of the podverse/podcast-feed-parser repo is to support all of the Podcasting 2.0 namespaces.

For this issue, add support for the podcast:guid tag to the podcast-feed-parser > index.js file.

Link to the guid spec

Please feel free to join our Discord and chat with us in the #dev channel if you'd like to work on this.

Add support for the <podcast:license> tag

Podcasting 2.0 is a collective of app developers making new podcast app features possible by extending the RSS spec. One of the goals of the podverse/podcast-feed-parser repo is to support all of the Podcasting 2.0 namespaces.

For this issue, add support for the podcast:license tag to the podcast-feed-parser > index.js file.

Link to the license spec

Please feel free to join our Discord and chat with us in the #dev channel if you'd like to work on this.

Add support for the <podcast:person> tag

Podcasting 2.0 is a collective of app developers making new podcast app features possible by extending the RSS spec. One of the goals of the podverse/podcast-feed-parser repo is to support all of the Podcasting 2.0 namespaces.

For this issue, add support for the podcast:person tag to the podcast-feed-parser > index.js file.

Link to the person spec

Please feel free to join our Discord and chat with us in the #dev channel if you'd like to work on this.

Add support for the <podcast:trailer> tag

Podcasting 2.0 is a collective of app developers making new podcast app features possible by extending the RSS spec. One of the goals of the podverse/podcast-feed-parser repo is to support all of the Podcasting 2.0 namespaces.

For this issue, add support for the podcast:trailer tag to the podcast-feed-parser > index.js file.

Link to the trailer spec

Please feel free to join our Discord and chat with us in the #dev channel if you'd like to work on this.

README screenshot and badge shows pre-forked version

Describe the bug
The npm version badge and screenshot in the README shows information for what one gets from npm install podcast-feed-parser, not npm install @podverse/podcast-feed-parser.

Expected behavior
Change the badge and screenshot to be the forked version.

Screenshots

Screenshot 2023-09-26 at 09 48 23

Additional context
I was using the upstream repository (i.e. podcast-feed-parser) and essentially found this repo looking for a fix to #14 -- my guess is this fork is a continuation of the upstream work? It'd perhaps be nice to explain that itself somewhere, or if it's already written out obviously ignore (and let me know if so!)

Add support for the <podcast:episode> tag

Podcasting 2.0 is a collective of app developers making new podcast app features possible by extending the RSS spec. One of the goals of the podverse/podcast-feed-parser repo is to support all of the Podcasting 2.0 namespaces.

For this issue, add support for the podcast:episode tag to the podcast-feed-parser > index.js file.

Link to the episode spec

Please feel free to join our Discord and chat with us in the #dev channel if you'd like to work on this.

Add support for the <podcast:location> tag

Podcasting 2.0 is a collective of app developers making new podcast app features possible by extending the RSS spec. One of the goals of the podverse/podcast-feed-parser repo is to support all of the Podcasting 2.0 namespaces.

For this issue, add support for the podcast:location tag to the podcast-feed-parser > index.js file.

NOTE: I started to add the podcast:location tag months ago, but the code is commented out in the file, and I don't know if it works. If you could uncomment, test, and update the code if needed we'd really appreciate it.

Link to the location spec

Please feel free to join our Discord and chat with us in the #dev channel if you'd like to work on this.

Add a server for making network requests for an RSS feed over localhost

It would be useful for development purposes to be able to run a server locally that lets us make network requests to localhost to access sample RSS feeds.

  • If a server library is needed, add it as a devDependency so it is not included in the released module version.
  • Include instructions for running the server locally and making network requests to it. Add these instructions within the CONTRIB.md file in the "Development workflow" section (or somewhere else you think is a better home for it).
  • If you need an RSS feed for dev testing, I recommend @johnchidgey's RSS feed for Causality.

Please feel free to join our Discord and chat with us in the #dev channel if you'd like to work on this.

Repository default branch (develop vs master)

Hey there!

I noticed that this repository's default branch is develop, but it also has a master branch, which is what is published on NPM. Is there a purpose for the develop branch, or would you be interested in changing the default to master and deleting develop?

Thanks!

Add support for the <podcast:season> tag

Podcasting 2.0 is a collective of app developers making new podcast app features possible by extending the RSS spec. One of the goals of the podverse/podcast-feed-parser repo is to support all of the Podcasting 2.0 namespaces.

For this issue, add support for the podcast:season tag to the podcast-feed-parser > index.js file.

Link to the season spec

Please feel free to join our Discord and chat with us in the #dev channel if you'd like to work on this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.