DEV Community

Cover image for Things I Can't Build: Podcasting on ActivityPub

Things I Can't Build: Podcasting on ActivityPub

Evan on November 25, 2018

EDIT: 2019 --> 🎉 I'm reviving this project. My work on Quirk is hitting a much more stable point which lets me come back to this. Feel free to r...
Collapse
 
rhymes profile image
rhymes

Hi Evan, I like the framework of your idea and the principles it stands on but I have to play the devil's advocate here and try to poke holes.

Given that the premise of a decentralized network has next to no appeal to the common person (it's an implementation detail, a big one but still...), where you lose me a little bit is in what's not present in the post. The three main selling aspects of podcasts on Spotify (regardless of the very real danger of creating yet another wall garden) are search, analytics and the already existing user base.

The user base factor might be mitigated by the counter offer of a free and borderless community far from the whims of a single corporation known by underpaying the content creators. This part is huge and a well crafted message will sway some, especially due to the fact that Facebook, YouTube and Spotify have essentially the same business model and various degrees of shady tactics when it comes to content.

What I'm not so sure about (here comes the poking) are the other two key features and how they would be implemented on top of activity pub / mastodon: search/discoverability and analytics.

Can you shed some light on these two features? Thank you

Collapse
 
flaque profile image
Evan

a decentralized network has next to no appeal to the common person

I think it does have appeal to podcasters though since it gives them control over their business.

The user base factor might be mitigated by the counter offer of a free and borderless community far from the whims of a single corporation known by underpaying the content creators.

The cool thing about ActivityPub is you don't need a new user base. As long as Mastodon can convince people to sign up, there's an existing network. Plus, people go where the podcasters are. If you can convince the podcasters to go to ActivityPub, you can convince the listeners.

What I'm not so sure about (here comes the poking) are the other two key features and how they would be implemented on top of activity pub / mastodon: search/discoverability and analytics.

Let's start with the first one: Search. For sanity's sake, let's call our ActivityPub podcasting "Pubcast."

With ActivityPub, anyone can spin up a new instance of Pubcast. That means we'd probably see two types of instances.

The first one would be owned by the person who makes the podcast. In the same way that I might want a private email server. So we might see a show like:

planet-money@npr.org

The second would be a "hub" much in the same way something like gmail is. Anyone can make an account, though they may pay the server owner for the hosting costs.

So soft skills engineering might put something on the hub named pubber.audio:

softskills@pubber.audio

So this begs the question: how do we facilitate search? Answer: aggregators. This is how podcasting apps do it nowadays. There's a couple "main" lists that someone can throw their RSS feed on, namly Apple podcasts. Then the rest of the podcasting apps either build their own lists or listen to an existing one.

This actually can allow for much more interesting search since it means server owners could be curators as well hosters.

Next topic: analytics

ActivityPub lets you send messages to and from the client. It also lets you build a spec on top of it. That means we can create a "Pubcast" spec that predefines sending analytics back.

Here's how it might work:

  1. Client is following the podcast: "awesome@foobar.com"
  2. Client starts listening to the podcast. Client then sends an "ListenStarted" activity to the podcast's Inbox.
  3. Client stops listening to podcast. Client then sends a "ListenStopped" activity to the podcast's inbox.

Note that these are nonstandard Activities in the ActivityPub spec; which we'd probably do as to not accidentally introduce weird behaviors when interopping in other services.

Collapse
 
rhymes profile image
rhymes

I think it does have appeal to podcasters though since it gives them control over their business.

Sorry, I meant the users. I don't think people care about how the technology works behind the scenes

Regarding search and analytics: I got how search works. Not unlike any other aggregator, basically a hub with a list of all the cool podcasts that can be listed, searched, fed to third party apps and so on.

I'm still unsure how analytics would work. Yeah you can have an event source type of thing where the single podcaster knows which one of their own streams is the most popular one but what about analytics for the end user?

Let's put it this way: if it's decentralized, how can I answer the question: I listened to 10 different podcasts about crime, 5 about tech, 2 about self help, 1 about gardening.

A big selling point of Spotify are playlists derived by the user's tastes. A derivation of analytics if you will.

If, by being decentralized (this is the part I'm not sure I understood), I can't collect aggregated analytics among separate hubs or providers, I can't use analytics to give value to the user, right?

It's basically email plus a search engine, right?

I'm not saying this is necessarily wrong (it's not) but it might be hard to move users away if they are used to auto generated suggestions coming from analytics.

Collapse
 
phlash profile image
Phil Ashby

Going to dig this one up from the past as AP and Dev.to has had some attention (from me at least) following the Twitter exodus of the last few weeks. I know we are considering podcasting here, but I think the discussion probably applies to a wider social media context, my random thoughts follow:

So, centralization..

  • why?
    • convenience for both creators and consumers of content
    • rapid development of new features for both
    • discoverability due to volume of both in 'one place'
    • discoverability due to algorithms
  • bad
    • you are the product (marketing databases, privacy risks)
    • algorithm typically opaque and manipulable (cf: Facebook and voting scandals)
    • all eggs in one basket (cf: Twitter getting bought by Elon)

Decentralization via standard protocols will struggle due to:

  • the consensus required to change the protocol (cf: RSS dying out as it has not changed to support new features)
  • discoverability by not having all the data in one place for an algorithm (or two) to operate on (as @rhymes notes hereabouts)
  • the concept of 'one place' for people to go.

In my opinion these are addressable:

  • protocol change via the model used in W3C that permits evolution and promotes extensible design, and is a respected authority that developers rely on
  • discoverability
    • algorithms don't have to run centrally, particularly those that operate on what you do locally (creator or consumer focused), neither do they need to 'see everything' (this is typically only required for generating that marketing database!), often metadata is enough to pick out new listening ideas or summarise activity around your content, and metadata is exactly what AP deals in. This creates an open market for algorithms that can operate independently on the AP metadata, providing a choice of local processing, trusting a small developer or a larger org, without being locked in.
  • all 'in one place'
    • federation provides the equivalent of this, but some education may be required before people 'get it'. They have to trust whomever is providing their 'instance' and associated policies/filters. Humans have a tendancy to congregate, what seems to go wrong is thinking that the whole planet can co-exist in one space, that often results in chaos. What's needed IMO is a more localized approach, based on interests (tags perhaps), trust and mobility (you can run your own if you really want, you can group together with like-minded people, you can take your trust elsewhere), this is what ActivityPub supports.

I can envision the public 'buying in' to a small number of client applications (much like email?), behind which AP does the work to connect them to a number of content providers, discover new content through either local or aggregate algorithm providers, and evolve new features for both consumers and providers.

Collapse
 
gaffen profile image
Gaffen

As an avid proponent of RSS, Podcasts and decentralisation, I think this is something quite important to be talking about.

This is something I would legitimately be interested in donating my time to if the right solution was found.

With regard to audio and the ActivityPub protocol, Have you heard of FunkWhale? It's essentially an ActivityPud Spotify clone. There's an open issue to support Podcasting:

dev.funkwhale.audio/funkwhale/funk...

It also looks like Funk Whale supports the Subsonic API. I've never heard of this before, but there are apparently a few clients out there already that can consume it:
subsonic.org/pages/api.jsp

It definitely appears that RSS is dying, there needs to be an alternative ready; the answer can't be to hand over these fantastic tools to centralisation imo.

Unfortunately I think this is the biggest barrier to entry; people like to have one place to go for their needs. If you can pay a neat monthly fee (or nothing) and get everything you want in one place, competition is already fighting an uphill battle.

I don't know how you fight this, though I think the sell needs to be something along the lines of emphasising that you're not consuming what a computer algorithm thinks you're going to be interested in, but rather you are being your own content filter. If you can make it apparent that these big monetised systems are limiting the scope of what you're exposed to/able to see then I think you might be able to get some people to pay attention. I think some people will understand that the internet has changed... That it's become harder to find something truly interesting. If you can show people that centralisation is powering this race to the middle they might start trying new things.

Just a few thoughts really - interested to know your take.

Collapse
 
chenge profile image
chenge

Sounds great, I'd like to know more about AP of W3C and Activity Stream data format in JSON.

Decentralized should be a player in the Net.