Tag Archives: jsonfeed

Apple podcast spec changes

At WWDC last week, Apple introduced changes to their RSS feed extension for podcasts. Before reviewing the session, I was worried that Apple would be moving to Apple News Format instead of RSS. That would’ve been a major setback for the open web, since Apple News Format is such an app-specific, closed format, controlled by a single company. Luckily the actual changes Apple introduced are pretty minor and shouldn’t upset the status quo much.

There are 2 sets of changes: support for supplementary episode types, like bonus content; and metadata for show seasons, likely influenced by popular shows like Serial, where people new to podcasts might be confused about where to start listening. There are a few new tags for these types of shows under the itunes RSS namespace.

Episode type is the simplest change. It looks like
<itunes:episodeType>full</itunes:episodeType>
and can have values “full, “trailer”, or “bonus”.

For seasons, the episode number and season number can be split into separate elements. It’s compatible with the traditional RSS title, so there’s little downside except extra clutter in your RSS feed. Here’s an example:

<channel>
  <itunes:type>serial</itunes:type> <!-- or "episodic" -->
  ...

  <item>
    <title>S01 Episode 01: The First Episode</title>
    <itunes:title>The First Episode</itunes:title>
    <itunes:episode>1</itunes:episode>
    <itunes:season>1</itunes:season>
    ...
  </item>

</channel>

Jason Snell’s first reaction to these changes was positive:

I’m excited by these changes because, yes, some of my podcasts are seasonal and are best consumed from the first episode onward. I’ll be adjusting my own podcast feeds to take advantage of Apple’s extensions as soon as it makes sense to do so.

Ben Thompson covers the extensions briefly and then focuses his weekly article on analytics and podcast advertising:

The new extensions are a nice addition, and a way in which Apple can enhance the user experience to the benefit of everyone. As you might expect, though, I’m particularly interested in the news about analytics. Problem solved, right? Or is it problem caused?

After reading Ben’s take, I don’t think these changes are significant enough to have much effect right away. That should be a relief to all of us who love podcasts and don’t want a shake-up.

When designing JSON Feed, we resisted adding everything that Apple Podcasts needs to the official spec. Now that more podcast tools have adopted JSON Feed, I expect there to be a discussion among developers about the best path forward for podcast-specific extensions in JSON Feed. That discussion should now include support for show seasons, too.

Me and Brent on The Talk Show

Brent Simmons and I were guests on The Talk Show this week. We talk about JSON Feed, Userland Frontier, Micro.blog, and much more.

Brent also announced Evergreen for the first time on the show. Evergreen is a new open source feed reader for the Mac. I’m really looking forward to where this app could go.

One quick correction as I’m re-listening to the episode. For some reason I said that I became interested in Frontier when it pivoted to be open source software. I meant free, not open source. I worked with Frontier in the mid-90s, around the 4.0 release that Brent mentioned, and as I blogged about back in 2004 when Frontier’s kernel was actually open-sourced.

It was fun to revisit this era of Mac scripting on The Talk Show, and I hope that when we look back on the origin of JSON Feed we have similar good memories. There were a bunch of people who made the format what it is, participating in debates about field names and scope. It all contributes to the traction that JSON Feed is getting now.

JSON Feed for podcasts

JSON Feed includes an attachments array, which is similar to the enclosure element in RSS that enabled podcasting. We love podcasting and included an example podcast feed in the JSON Feed specification. However, because the Apple podcast directory and its RSS namespace are so central to many podcasting tools, it wasn’t clear how quickly podcast apps would adopt JSON Feed.

The answer is: pretty quickly. This week we’ve seen announcements from Breaker, Cast, and Fireside. Actually not just announcements, but working implementations to parse or generate JSON.

I’ve also pushed up a change to the WordPress plugin on GitHub to add support for attachments. After some more testing, I’ll update it in the WordPress directory.

Update: FeedPress also just announced support for JSON Feed. This is another important one for bloggers and podcasters. It effectively gives a JSON version to everyone using FeedPress, even if the FeedPress customer’s site is still backed by an XML feed.

Dave Winer on title-less posts

Dave Winer posted today about NetNewsWire needing better support for title-less feed items:

These items have no titles for artistic reasons. The author did not put them there. You, as a software developer, are not entitled to add them (haha that’s a pun).

I agree with Dave on this. Titles are clearly optional in the RSS 2.0 spec. The fix for the “Untitled” text that some feed readers use isn’t for authors to add titles where they aren’t needed, it’s for the UI in feed readers to improve so that they gracefully handle title-less posts.

(And this is not to pick on NetNewsWire. I’ve seen other apps and feed syncing services with the same assumption about titles.)

When I wrote about defining a microblog post, blank or missing titles was one of the fundamental points. If we want to have blogging software that’s as easy to use as a modern social network, titles can’t be required.

I’m hopeful that as feed readers adopt JSON Feed, developers will dust off their older code for feeds and make improvements for title-less RSS items as well. This is why we highlighted microblogging as a use case in the JSON Feed spec.

First week of JSON Feed

I’ve been impressed with how quickly people have adopted JSON Feed. There are a bunch of feeds in the wild now, as well as code and templates for popular languages and web frameworks. The next step is support in feed readers, including brand new feed readers, which is already happening.

Feedbin and NewsBlur both added support for JSON Feed. I like how Feedbin’s Ben Ubois puts it:

One of the criticisms I’ve seen of JSON Feed is that there’s no incentive for feed readers to support JSON Feed. This is not true. One of the largest-by-volume support questions I get is along the lines of “Why does this random feed not work?” And, 95% of the time, it’s because the feed is broken in some subtle way. JSON Feed will help alleviate these problems, because it’s easier to get right.

Micro.blog can also read from JSON feeds. I’ll be switching over all the hosted sites to prefer JSON. I’m doing that slowly to make sure there aren’t any issues with duplicate posts. (There shouldn’t be, but it’s something to watch out for with self-hosted sites if your post IDs change.)

The WordPress plugin is almost in the WordPress directory. I’ll link to it as soon as it’s live, because it will make installing the WordPress plugin much easier.

Interview at The Brooks Review

I talked with Ben Brooks over Slack this week about Micro.blog and JSON Feed. From the chat:

Micro.blog and JSON Feed share a common goal, which is to encourage more blogging on the open web, and new tools that can make blogging easier. I feel like we’ve gotten off course a little since the early days of blogging, with so many people now putting all of their writing into closed, centralized platforms like Twitter or Facebook. I think we can make it easier to own your own content, have your own domain name, and maybe learn from the UI in modern social networks too.

Slack makes for a really interesting interview format. Some of the spontaneity of a podcast, but with live editing and an automatic transcript. Similar to what Talkshow.im was trying to do before they shut down.

Podcasts about JSON Feed

We just posted episode 283 of Core Intuition, with thoughts on last week’s JSON Feed announcement and more. From the show notes:

Daniel and Manton discuss the new JSON Feed format and initial public reaction to it. They talk about Panic’s source code being stolen, and Daniel celebrates/laments his new MacBook Pro.

Brent Simmons was also interviewed on Collin Donnell’s new podcast, The Run Loop. Brent talks about some of his previous apps like NetNewsWire and Glassboard. Then they cover what JSON Feed is and where it could go.

JSON Feed

Really excited to announce JSON Feed today with Brent Simmons. It’s great to see all the feedback and links to new feeds. Special thanks to everyone who contributed to the spec, debating field names and requirements over the last few months.

The premise was simple: the time is right for a JSON-based approach to feeds. We hope that JSON Feed is straightforward enough to be implemented quickly, and capable enough to push the next decade of blogging software forward. We love RSS too and tried to learn from its success.

Micro.blog already supports JSON Feed nearly everywhere. There are feeds for hosted microblogs and your timeline, and the Micro.blog custom JSON API itself is actually just JSON Feed with Micro.blog-specific extensions.

I’m looking forward to seeing what everyone does with this. If you’ve shared any code or templates for JSON Feed, or if you’re working on apps to support it, let us know.