manton / JSONFeed

The JSONFeed.org website
Creative Commons Zero v1.0 Universal
942 stars 56 forks source link

Podcasting Feeds #144

Open dshanske opened 4 years ago

dshanske commented 4 years ago

@manton commented that one of his goals for JSONFeed now that 1.1 is out was to revisit how to iterate on podcast feeds using JSONFeed. https://jsonfeed.org/podcasting

Opened this issue to document prior art(specifically Media RSS and iTunes vendor extensions) and to brainstorm what information may be needed.

dshanske commented 4 years ago

Media RSS Specification: https://www.rssboard.org/media-rss

dshanske commented 4 years ago

iTunes XML Namespace - https://help.apple.com/itc/podcasts_connect/#/itcb54353390

bcomnes commented 4 years ago

I implemented an _itunes extension for JSONFeed that lets you generate a compatible Apple Podcast RSS feed from said JSONFeed:

https://github.com/bcomnes/jsonfeed-to-rss

Been in production on https://gumcast.com since last year.

Next up, looking to support JSONFeed 1.1 and Google Play podcast extensions.

dshanske commented 4 years ago

@bcomnes Isn't it better to explore official additions?

bcomnes commented 4 years ago

That reply was neither in support or against adding additional official fields. Open to that, or an official/standardized format extension that serves a similar purpose.

Just reviewed the _cast which also looks like a nice, non-vendor specific set of additional fields all podcast should support, not already found in JSONFeed.

manton commented 4 years ago

Thanks y'all! @bcomnes, what do you think about using the vendor-neutral field name _podcast instead of _itunes as suggested here? It feels like this is a good time to move away from the "iTunes" name even if it's inspired by Apple's RSS extensions.

bcomnes commented 4 years ago

I think that or the existing _cast extension is a great idea for a vendor neutral podcast extension containing common podcast fields not found in vanilla jf, and would ideally contain enough data to map or expand into a vendor specific extension (mostly), or simply be leveraged during a conversion process when converting to vendor tailored rss.

As of now these vendor specific extensions really only serve as an api for conversion, although they do map 1:1 to the xml extension they convert to.

There are a number of very specific vendor fields that probably should remain just in their own namespace. I think the worst outcome would be one giant union of vendor options in a single extension.

Maybe a rule of thumb for fields in this converged podcast extension is: new fields not found from vanilla jf and utilized in at least two vendor extensions or in a native jf podcast app subscription.

I'm currently looking into doing a google play podcast extension next.

If _cast is already supported in more niche podcatcher apps for subscriptions (I think... hooray!), and provides enough data to cover the requirements of these vendor specific extensions, then I would be willing to converge onto that.