Castopod is its own social network – episode 2 – Y. Doghri and B. Bellamy – AD AURES

Interview with the Castopod team

Walid : Welcome to this second episode dedicated to Castopod. I strongly advise you to listen to the first episode before listening to this one. I am very happy to meet Yassine Doghri and Benjamin Bellamy to continue the discussion.
Long discussion that will end after the end credits with a little technical extra. It’s a novelty that we wanted to test. There you have it, happy listening!

Logo Castopod

Castopod’s Sources of Income

Let’s go back a little bit to a topic that we touched on at the very beginning. I’d like to understand how you finance all the developments around Castopod? What are all the sources of income you have that allow you both to work on Castopod?

Benjamin : We don’t work at the same level on Castopod. Yassine said he is an architect and the main contributor. Personally, I now rarely intervene on the code. So it’s going to be more about governance, about funding. Today, we have several sources of income: we mentioned NLNet, which supported us at the beginning and still supports us today. In particular, we have a plug-in engine development project that is supported by NLNet.

NLnet foundation


We also have donors on Open Collective: we have an Open Collective page that is very, very little used because in fact we don’t put it forward very much, we talk about it very little. If you hadn’t asked me about funding, I probably would have forgotten to mention it. In any case, you can go to OpenCollective.com to make donations if you want to make a contribution but you don’t know how.
And then we have a SaaS hosting offer, which is ultra classic. We said earlier that we were inspired by WordPress, we were also inspired by WordPress. That is to say, we have castepod.org where you can download the solution and self-host, and castepod.com where in a few clicks and 30 seconds, you can have your own instance on your own domain name, which is installed and working. And you don’t have to worry about backups, updates, etc. We’ll take care of everything for you.
And then there are also the Ad Aures activities, which can be either consultancy activities, advertising activities, or service activities. We haven’t talked much about it, but we’re working quite a bit on automatic transcription, which allows us to do indexing. We have other projects that we may not talk about today because otherwise we’re going to do a 5-hour episode. And so, in fact, we have quite multiple sources of income today.

Logo Ad Aures

Castopod’s Pricing

Walid : There’s one thing that I find quite interesting, and that’s the pricing of your SaaS offers, because in fact, whatever the plan, we have the same features. And I think that’s great because the platform I was on, for example, was one less feature. Want to add a Mastodon button? You need the top plane, you want to have this stat? you need the higher plane, etc. And actually, it’s super frustrating, especially when you want to do a podcast, like me, and you don’t want to make a living out of it. I thought it was good for you to say a few words about it, because I thought it was really, at least for me, it’s great.

Benjamin : yes, that was a really strong choice that we made from the beginning. I didn’t want us to have three offers with three different levels of features. I didn’t want us to have a Castopod Community and a Castopod Enterprise. I didn’t want us to do fake open source. It’s really real open source and real free software. If you download the Castopod version on castopod.org, or if you pay for hosting on castopod.com, it’s the same software. What will change afterwards can be ancillary services, it can be, for example, a level of CDN, it can be a storage space but we try to make offers where everyone has the same features. We don’t want you to feel constrained or annoyed. And then you’re really going to pay for what it costs. That is to say, if you have a podcast with a one-hour episode per week, disk space is almost nothing. It’s really cheap. And so our basic offer, which is less than 10 euros per month including VAT, it will be enough. If you’re an associative radio station that has 24 hours of live broadcasts, podcasted, every day, it’s going to start to do and inevitably, at the end, it’s going to require disk space that has absolutely nothing to do with it, which will cost more. And obviously, there is no question of us charging less than what it costs in hosting fees and in particular in hard drive fees.

So our offers behind them are calibrated in relation to what a technical infrastructure costs, but not in relation to what we estimate you have in your pockets or in relation to features to frustrate you, to tell you no but if you want a little more you will have to pay a little more. That’s really the idea: so the offer is unlimited in number of podcasts, because for us whether I have a ten-episode podcast or ten one-episode podcasts it’s exactly the same thing: it doesn’t take up more space, it doesn’t cost more. So there’s no reason to charge you ten times more when you have the same amount of data, the same amount of time. Today, if you go on castopod.com, if you have a podcast, if you have 2, 4, 5, 10, 20, it’s going to cost you the same. So the idea is really to pay in relation to what it costs in the end. Which is a bit confusing because especially on the French market, which is a market that is still growing, which is quite different from the American market which is a little more stable: we have a lot of unlimited offers per podcast, that is to say you can put as many episodes as you want, of the duration you want. We don’t have that, because there’s a limit to storage space, because someone has to pay for storage space when they arrive. So we’re a little bit against the trend of French-speaking offers and a little more in line with what is done on the other side of the Atlantic, where the big hosts in the United States are more in a logic of saying that you will pay by the hour or by the minute. We’re not there yet, we don’t charge by the hour or by the minute, first of all because depending on the quality, it’s not the same at all and we don’t want to hurt someone who encodes their podcast with a high compression rate. Maybe it’s going to evolve, maybe we’re going to do things differently. In any case, the idea will always be the same, it’s not to pay in relation to a tax, in relation to what we think you have in your pockets or in relation to features, it’s in relation to what it costs. There can be no surprises actually.

Walid : I think it’s really interesting because it puts everyone on the same pedestal. The one who knows he’s going to make a life out of it and the one who knows he wants to do it on the side and who, like me, it costs him money to do this and it doesn’t make him any. That’s really good and for me the example is really statistics. I was so frustrated that I didn’t have stats that I had to pay more.

Benjamin : That’s something else again, which is to say that we believe that as a content creator, your data belongs to you, your audience belongs to you and certainly not to us and certainly not to anyone else. That’s why we encourage all our customers to come with their own domain name, because if tomorrow you want to leave and you have nothing to ask us for, you leave with your complete database. That is to say that you don’t just leave with your mp3 files and your metadata, you also leave with your user data, you can leave with the login, the password, with the listening data, the analytics and you can download castopod.org, download the platform, you self-host or go to another host that offers the Castopod solution. I think today there are about 5 of them in Europe. And you go back up your database and you’re iso-functional, but really iso-functional. You have all the features, you have your user accounts, you have the interactions with your users.
We’ve talked about ActivityPub, but so all the people who have liked, who have commented, you get 100% of your users’ comments and interactions, 100% of your analytics data, not just a CSV export where you get your data. Your data is yours. If you want them, they give them to you and you do what you want with them. The reversibility on Castopod, because it’s also an open source software, it’s really total.
It’s not a sales pitch, it’s a technical reality. Reversibility is total.

ActivityPub logo (source: wikipedia)
ActivityPub (source: wikipedia)

Castopod’s Governance

Walid : Next point, I would like to talk about the governance of the Castopod project.

So what I’d like to understand is how is the project organized? What tools do you use to develop the tool and to interact with your community? We’ll talk about the community right after, but first, what is the mode of governance? How do you operate?

Benjamin : Then I can answer. As with any open source project, we have a Git repository.
Finally, for many open source projects, at least, we have a Git repository. We have our own GitLab that we self-host and we have a mirror on GitHub for visibility, for stars. By the way, don’t hesitate to go to github.com to give us lots of stars! There you go. We welcome contributions at many levels, whether it’s tickets on GitLab for bugs or new features. We define priorities thanks to this, the tickets, that is to say that depending on what comes back, if we have specific requests for one feature or another, we will move it up in our priorities. Then we discuss among ourselves what we should do and what we need to do for the next few months, etc. That’s about it. Contributions help us to prioritize the…

Walid : You forgot the Discord channel.

Yassine : Yes, that’s right. We also have a Discord channel, and a Discord server for instant chat. I’m hanging around a lot to help users either install Castapod if there’s a little problem or if they want to give feedback to clarify some things about Castopod. And we have quite a few other users who help us manage that part as well. What you need to know is that Discord is used quite a bit among podcasters.

Benjamin : Personally, I’m not there much, I’m way too old for Discord and I’m not a big fan of the platform. But in fact we have to be where our users are, there is no secret and so the Discord channel is very very active.

The community of Castopod

Walid : We’ve just explained a little bit about how you interact with your community, what I’d like to know is what do you know about your community? Do you know most of where people come from? Do they self-host or do they take SaaS? Do you know a little bit about what features they prefer, etc. What do you actually know about your community?

Benjamin : What’s very interesting is that potentially, we might not know anything about our community. As we said, Castopod is open source, but there is no telemetry, there is no tracker. And we can install Castopod without telling us. And it happens very often.

We know that there are people who use Castopod that we don’t know and probably never will. In addition, you can have private podcasts with Castopod, you can have Castopod on an intranet.

Benjamin Bellamy


Finally, it’s true that we don’t know all our users. Now there are ways to find out. Of course, we want to know, because it makes us happy. It’s nice to know that people are using it because if no one is using it or if we don’t know that people are using it, there is a point where we might stop. And then, there are ways to find out: we’ve already talked about it, there’s Podcast Index that we’ve mentioned. And in Podcast Index, there’s a column that’s Generator, which says which platform generated the famous RSS feed.

Logo Podcast Index

And so today, we’re going to look into it and then we see that regularly there are new podcasts on Castopod, mostly in the United States, but there are some everywhere actually. There are some all over the world, first of all because Castopod is translated into about twenty languages, and we develop in English, we translate into French: so what the only two languages we produce, all the others are produced by the community. So from the moment Castopod is translated into a language, it’s because someone needed it, and there are really plenty of them, there’s Breton. Brittany is strong, we have a lot of contributions, including in the source code by the way, that come from Brittany. There’s Galician, there’s Serbian today. That’s a friend I worked with, who is very active, who was in charge of doing the Serbian translation. So today the Serbian translation is more accomplished than the French translation.
There’s Chinese too. We know, we have elements like we have in any open source project. We’re kind of looking at what’s coming out.

Very recently, we launched a platform called Castopod Index on index.castopod.org. It is in response to a request we had been making for a while. I must have seen a message on Mastodon that I never found, from someone who said “but I’m on Mastodon, it’s great. I’d like to follow Castopod’s podcasts on Mastodon, but where do I find them?” And so the idea was to say, we’re going to make, at least, the list of Mastodon nicknames, well ActivityPub, of all Castopod podcasts, and so that gave rise to this index.castopod.org site, which lists podcasts under Castopod that I’ll be able to follow from my account on the Fediverse, so in particular Mastodon. And I’ll be able to reshare, comment, like episodes. And by making this site, we learned things, we discovered
Things: We discovered podcasts that weren’t on our radar. We were very happy to discover some things, less happy about others. There are some that surprised us. At the same time, this is also the strength of open source software, which is that anyone can make it their own.

Today, we are very happy, we have a community that is quite loyal, that is quite active, that we would like to see grow, of course. We wish there were many more. In any case, today, we’re quite happy.

And so, there are podcasts that we host ourselves, there are self-hosted podcasts, there are podcasts that are hosted by third parties. There’s a little bit of everything. I’d be hard-pressed to give figures and stats, because today we haven’t studied in depth and once again there are things we can’t know. In any case, today it is mostly people who are self-hosted.

Benjamin Bellamy

What is Fediverse?

Walid : Very interesting, we’re going to get into it, because you started talking about Mastodon, on one of the parts that I really wanted to be on Castopod, it’s all the integration with the Fediverse. And the first question I’d like to ask you is how do you define Fediverse?

Benjamin : Fediverse, it may seem super complicated, in fact it’s super simple. The Fediverse is a set of social networks that are connected to each other. To take an analogy, it’s as if tomorrow on Twitter, you could see posts that come from Instagram, you could like them, you could reshare them, you could reply by staying on your Twitter account and that these shares, likes, comments were visible from Instagram. But you could also see posts that come from SoundCloud, that come from YouTube, that come from any social network, and that you could interact with people who are on another social network in a completely transparent way.
In fact, behind the Fediverse and ActivityPub, which is the emblematic protocol of the Fediverse, we hide the most important notion in our eyes, which is interoperability. That is to say, they are social networks that are interoperable with each other, that are connected to each other, and this is what makes it possible for you to move from one platform to another by being able to exchange, interact with people who are not on the same platform as you.

And you’re not a prisoner of a platform, which means that what’s in a Fediverse platform can get out of it and other things that are outside can go in. Concretely, here I took an analogy with social networks which have the particularity of being closed silos, so nothing goes in, nothing goes out. On the Fediverse, we will have several social networks, the best known, the one that has had the most success until today is Mastodon. Mastodon is a micro blogging platform, where messages are limited to 400 characters, but it’s not the only one, there are many others. For example, there is PixelFed, which is an Instagram like that allows you to share photos. And so if I share my photo on PixelFed, someone on Mastodon will be able to see it, will be able to subscribe to my account, will be able to like it, comment on it, share it. And I, from my PixelFed account on my PixelFed site, I’m going to see these interactions and I’m going to be able to respond to them. So in fact, the interaction is total: there’s PixelFed for photos, there’s PeerTube which was developed by Framasoft.

Walid : We talk about it at length in the episode with them, we spent an hour and a half talking, including the Fediverse integration part. Which finally, like you, dates back to the beginning of the creation of PeerTube.

Benjamin : Yes, it was even a prerequisite for us. From the beginning, we wanted to do a podcast about the Fediverse.

Walid : That brings me to the next question, I’ll cut you off here, what is Castopod’s place in the Fediverse?

Benjamin : Actually, for us, the Fediverse is really super important because once again we think that value is created by content creators, and that this value has two forms. It has the content and the audience.

And so, you have to be in total control of your content. And for that, an open source platform allows you to self-host and guarantee that my content is at home. In any case, I can retrieve all my content, do what I want with it, I remain in control of it, regardless of the host I choose, I remain in control of my content. And in terms of the audience, I need to be able to interact with my audience without an intermediary, whether that intermediary is technical or legal. That is to say, I do not have an intermediary who will technically be able to cut off the communication between my audience and me, and who is not an intermediary who is obliged to do so by law. Today, the problem with closed silos is that these platforms have all the technical power and since they are required by law to act and censor comments that would contravene the law, well they do so preventively and automatically because they are closed silos, they are huge. Sometimes there are platforms that have billions of users, so we can imagine that on a platform with billions of users, every post can’t be moderated by a human being, it’s not possible. Inevitably, these are algorithms, and inevitably they give rise to abuses.

The advantage of a decentralized, federated system, like the Fediverse, is that I can have several instances, that is to say that I don’t have a Mastodon server, it was said that there is Mastodon, PixelFed, Peertube, Funkwhale, Plume, Castopod, there are plenty…

Benjamin Bellamy


But that for each of these social networks, I have several instances that will have a geographical presence, that will perhaps have a theme, a language, and where I will be able to operate as a moderator as an administrator of this platform. So either I’m my own administrator because I’m self-hosting, and that’s a choice that many people make, or I go to Framapiaf, for example. You were talking about Framasoft, Framasoft has a Mastodon instance called Framapiaf, and if I’m going to register on this platform, I have to follow the terms and conditions of use that are submitted to me. But I’m not on Facebook, I’m not on Twitter. The number of users is much more limited. There is a change of scale that is extremely important because it is what means that on these networks, today, I do not have automatic moderation a priori. I don’t have an auto-strike because I did something that looks weird when in fact it wasn’t at all. So it’s much smaller, but because these networks are federated, they’re all connected to each other, just because they’re smaller doesn’t mean my audience is necessarily going to be smaller too. Because I still have access to a global audience, and it’s even bigger since it crosses social networks that have nothing to do with it.

Walid : Can you give me a concrete example between me, a podcaster, with my Castopod platform and interactions that can happen with people who are on other platforms, Mastodon or others for example. Do you have any examples, Yassine? You have concrete examples to share so that people actually don’t have to be obvious; you install Castopod, you look at the tab, you look at the Fediverse part and there “wait how does it work, where do I enter my account and everything?”.
To understand that, in fact, that your Castopod has its own native integration and that it has its own account, and what I’m going to be able to do with it, it’s not necessarily obvious. So how do you share this with a user who doesn’t know Castopod and who potentially doesn’t know the Fediverse very well? What could you give as an example?

Yassine : So initially we integrated Castopod into the Fediverse in order to have an implementation that was as transparent as possible. That is, the podcaster doesn’t have to know the Fediverse, know how it works, for it to have its episode that shows up on Mastodon and for it to have dialogues and interactions. So when a podcaster is going to create an episode and publish it, we offer them to write the whole thing, whether it’s on Mastodon or on another micro-blogging network on the Fediverse. And so, when his first episode is going to be published, he’s going to have all his followers who are going to get a notification with a post about Mastodon for example, the episode that can be played directly there with a built-in player and they’ll be able to either like or retweet or share directly from their Mastodon.
The podcast is really the actor, to be more technical, he is a Fediverse actor and therefore he can interact with other actors in the Fediverse whether it’s on Mastodon.

Walid : What draws the problem is that I have a WordPress with an ActivityPub integration, he has his own account. I have a Castopod with the ActivityPub integration, it has its account. I have a Peertube, it has its own account. I may have my own Mastodon account that has its own account. And in fact, you easily end up with 3, 4 accounts and it’s not necessarily very, very obvious. I’ve tried a lot of things to see how to do it and in the end, things are not that obvious in terms of strategy, what do you want to do behind it?

Benjamin : I totally disagree with what you just said.

Walid : Aah, it’s fun, go for it!

Benjamin : It’s not that things aren’t obvious, it’s that things aren’t usual. Today, you’re used to having a Twitter account, a Facebook account, a Tiktok account and you’re used to posting the same content on several different platforms. Here, the big difference is that your three accounts, so your ActivityPub account on WordPress, your ActivityPub account on Mastodon, your ActivityPub account on Castopod, they are all connected to each other and potentially a single user who would be on Mastodon for example can follow all three from the same place and he will see the content of these three platforms arrive in the same place. And that’s not usual, we’re not used to that. We’ve become accustomed to having content compartmentalized in silos and closed ecosystems.

And then, all of a sudden, everything is connected. So actually, it’s a matter of habit. That is, how do I want to communicate? What I think is that you don’t communicate in the same way on a podcast platform as you do on a micro-blogging platform as you do on a blog platform. And the contents are not the same. Except that we got into the habit of copying and pasting between platforms because these platforms were closed and didn’t communicate with each other. And today, on the Fediverse, this is no longer the case. So you just have to think a little bit about an editorial strategy and say, well, I want to do a podcast, it’s audio and it’s an hour long, and it’s going to go on Castopod. And then behind it, I have an article that’s going to be 200 lines long. That, clearly, is WordPress. And then, I’m going to tell you something that happened to me this weekend. That’s 250 characters. That’s Mastodon.

But actually, I’m going to have different contents. And if tomorrow you go to the Capitole du Libre, or to Pas Sage en Seine, and you take pictures, you’re going to put your photos on PixelFed. The nature of the contents, the form of the messages on the Fediverse, it is free. That is to say, it can be an image, it can be a text of less than 400 characters, it can be a text of more than 400 characters, it can be whatever we want, and it can be a video, but all of these platforms can, in one way or another, be able to visualize these messages. So they’re going to visualize it more or less well, that’s for sure, because the interface of each one means that they’re going to display more or less well a photo, a short text, a long text, a podcast, etc.
It’s really a way, an editorial strategy and actually, what you can do more, but you can’t do less. It’s on closed platforms that you’re forced to copy and paste. Now, you need to ask the question maybe a little differently.

Yassine : Sorry, maybe I have something to add. I’d like to clarify that ActivityPub is not the Fediverse and the Fediverse is not ActivityPub. As a result, we have to distinguish between the decentralized social network that is the Fediverse, and ActivityPub, which is one of the protocols that is used, the main one that is used, to be able to communicate between the different servers.
Today we are only at the beginning, ActivityPub dates back to 2018. Before, there were other protocols to do the same thing, but they were not necessarily suitable. ActivityPub is not necessarily adapted today, maybe there will be evolutions, it’s a bit of a cacophony anyway. There’s a lot going on, it’s all new. And so…

Benjamin : It’s not a cacophony, it’s an effervescence.

Yassine : And so, there is not necessarily governance. Everyone does things on their own.
And everyone follows up with each of their solutions, etc. So we’re finally coming together thanks to ActivityPub today. But we could imagine tomorrow that it’s a new protocol that allows us to integrate the same accounts, we might have a single account and that we can interact with it everywhere, I don’t know, we can, well, it’s that at the beginning, there are problems.

Benjamin : I think that, it’s true, the biggest problem with Fediverse, it’s not that technically it’s complicated, it’s not that we’re only at the beginning and that a lot of things can happen, it’s that functionally people have trouble understanding how it works. That when you tell someone you’re going to the Fediverse, you don’t really know where the entry point is.
Closed silos have the huge advantage that it’s simple, you’re taken by the hand. You’re a child, you don’t have any questions to ask yourself, you do this, you do that, you tick, you accept the terms and conditions of use and that’s it.
That’s not what Fediverse is about, you’re an adult, you can choose who you’re going to hang out with, what you’re allowed to say. The real problem is more about the content than the container, I want to say. After that, it’s true that it’s the beginning, well it’s the beginning, it’s been there for quite a few years but there are still a lot of things to do and discover. And then there are things that are not practical, for example the identity management on the Fediverse, I personally find that it is not great. So that’s also why we encourage podcasters to have their own domain name, because that way they are masters of their identity. If tomorrow I go to a Mastodon instance and then I decide to change it, I can move but my identity will also change on closed silos, obviously we don’t ask ourselves the question because if I leave, I disappear. So now, at least, I can continue to exist, but under a new identity. There are networks today like Nostr that allow you to change your access provider to the social network while maintaining your identity, this is done in a rather clever way. Okay, but you have to know. So, there’s a lot to do, but that’s what’s great. It’s that it can only get better today.

Castopod’s Challenges

Walid : We’re going to close the chapter on Fediverse, because we can talk about it for a long time. The last point before the conclusion is the future, and what I call challenges.
The future and challenges of Castopod.
Could you explain a little bit about what you’re working on, or what are the big things that’s coming up, or what you know you need to work on?

Benjamin : First of all, Castopod’s challenges are trivial, but Castopod is an open source platform, anyone can take it, appropriate it, modify it, we’ve already talked about it, but if no one takes it, if no one appropriates it, if no one modifies it, we will have lost. For us, the real challenge with Castopod is that it has a minimum of success, and that people make it their own, and that people install it and come to us. But in any case, if the product is not used, it is useless. Initially, we needed it for ourselves, but we would never have done it if it hadn’t been for this external demand and this need. And so, we’re super happy that people are using it and we’re super happy with the progress today, but we can’t let it stop. And for us, the challenge is that there are more and more people using the platform and that there are more and more interactions. And that, then, maybe not all of them, but that the features we use are used. Honestly, I’m super happy when you say that you use the people feature that allows you to say who the speakers are on the podcast, because, well, it appears in other apps. We have no illusions that features like this, which we have put into developing, to be used, we know that they will not all be used to the same degree. And for that, we need feedback from users, to know what you like, what you don’t like, what you want us to change. And then, if you want to do merge requests, go ahead. If you want to translate into new languages, go for it. For us, that’s really the challenge, it’s that people take ownership of it, use it, modify it, criticize it, encourage it.

We really need that because otherwise everything we do is useless. Then, on the things to come, we briefly talked about plugins. Today we are in the process of setting up a system of plugins because:

  1. We can’t develop everything and so there are features that we won’t be able to do because our time is limited and therefore we can’t do everything
  2. There are some things that we don’t necessarily want to do, we’re not going to hide it, and in particular there are publishers of services related to the podcast who have told us “hey, we’d like to interface, do this, do that”. We say “yes great but it’s not up to us to do it, it’s not up to us to promote one solution more than another”.
    And so we expect a lot from that because we think that there can’t be a living ecosystem if everyone can’t come and participate easily. We can’t say we’re promoting interoperability if we don’t promote it on our own platform. And the plugin architecture is one of them: one last time we invent nothing, it’s also what made the success of WordPress and then behind us we also expect a lot on monetization since we have a monetization solution on Castopod, more precisely at Ad Aures which is activatable on Castopod and on which we have quite a bit
    because we think it’s pretty cool.

Walid : Yassine, do you want to add things about future challenges or new features coming up and all that kind of stuff?

Yassine : Just a little thing to clarify, since we talked about Fediverse and the integration with Castopod, there are still some features today that are missing between Castopod and the Fediverse, namely hashtags, pinging a particular person in the Fediversees. And as a result, there is a bit of code refactoring to be done on the implementation side. It’s been a long time since I implemented it in 2021 and so I’ve learned a lot since then, I know that there is a little rework to be done to make everything work for the best. So that’s also planned in the next few months.

Castopod for a podcast user

Walid : In closing, I’d like to ask you three questions. The first is what would you say to a podcast listener to introduce Castopod?

Benjamin : In a few sentences. The first thing is nothing, since the podcast listener, he’s not on Castopod, he’s on his listening app. So, having said that, I’m still going to force myself to give a real answer.

A podcast listener who, for example, would have accessibility problems and who would like to be able to access a podcast with transcription and who would like to consume a podcast that does not offer a transcript because it is hosted on a platform that does not allow you to insert transcription, well in this case I would say to him, “ask your favorite podcaster to go to a platform that is compatible with podcast 2.0 and that in particular allows you to put transcription” and obviously I would tend to recommend Castopod but I’m not sure I’m completely objective about the choice, I must admit it. In any case, as an auditor, there is a real challenge in demanding platforms that are open, free and that provide real functionalities. Again, as a listener, I don’t see the point of going to an Apple Podcast where I have exactly the same features that I had in 2000, 2005, it dates back to 2005. So if I don’t have more features than that, I just have to change the creamery and ask my podcaster to say no but go look elsewhere.

Castopod for a Content Creator

Walid : yes, by the way, I changed creameries myself because the platform I was on explained to me that the Fediverse didn’t care. So there you have it.
The second question is “what would you say to a content creator who uses another podcast platform to showcase Castopod?”

Benjamin : So the first thing is, is the platform you use podcast 2.0? So it’s not just Castopod because it’s important to say, podcast 2.0 can’t work if Castopod is the only platform to offer these features. It’s a bit counterintuitive, but it’s in our interest that our competitors offer features as well as ours, at least in part. If you’re the only one offering transcription, listening platforms won’t have an interest in integrating it, and as a result, it won’t work. So it’s in our interest that as many platforms as possible offer the maximum number of podcast 2.0 features, and that our competitors offer things comparable to us, at least almost as nice. So for that, there is a site that exists, that references them all, which is called NewPodcastApps.com, in a single word, and which references all the listening and publishing platforms and podcast indexes that are compatible with podcast 2.0. So there’s a filter that’s quite big because there are a lot of features: you can choose those that are for hosting, those for listening, those that are open source, those that offer transcription, geolocation, in short, there’s everything. And so, we’re going to be able to search, if I’m a podcaster, which platform is best for me. And then you’ll see that most likely, it’s Castopod. But in any case, make up your mind.
What also brings me back to the previous question is that I could have said, as a listener, go to NewPodcastApps.com and then look for apps, listening apps and then if you’re looking for geolocation, speaker management, transcription, chaptering, you check and then you look at what is there as a listening app and it’s going to allow you to choose the one that suits you best. Is it on iOS, Android, Mac, PC, Linux or whatever. And it’s really a site to keep in bookmark. There’s everything and that’s what will make things evolve and make the podcast grow with all of us.

Castopod for a content creator who is just starting out

Walid : Last question, what would you say to a content creator who is starting out to present Castopod, like I did when I started for example?

Benjamin : Basically not very different from what we said before.

Once again, I’m going to repeat myself, but I say what will make your value is your data and your audience, well choose a platform that guarantees that no one will be able to take it away from you, no one, it seems really important to me, on a closed ecosystem or on a closed platform: if you are dereferenced well you have lost everyone. Your stars on Apple podcast, they can disappear, your likes on Castopod, they can’t disappear. No one, technically, can remove them. That’s not possible. They’re on your platform, it’s your social network. What is important is that Castopod has its own social network. It’s not the only one, all the platforms of the Fediverse, this is the case. Castopod has its own social network that is connected to others, so you’re not limited to that. So we can’t censor you. You can self-censor, for x or y reason, but we can’t censor you. It’s technically not possible. And I think it’s fundamental to understand that because there are so many creators who have been struck on closed platforms and who have been… So either you can just be demonetized, well there are different sizes of stick, or you disappear completely, but it’s someone who made the decision for you.

It’s not you who took your risk to measure, who said no, but I’m keeping it, I’m taking the risk. On these platforms, Castopod is part of it, well it’s you who decides, and it’s you who assumes your risk, and it’s you who decides, do I keep it, do I delete it. You’re still responsible, according to the law, that’s valid on all platforms, but it’s you who makes the decision, no one else.

Conclusion

Walid : Ok, that’s a good last word, I’m going to do a little op-ed myself, for once. I migrated to Castopod in December and I’m very happy about it because I’ve already gained all the integration with Fédiverse, which is very nice, especially when you do a podcast that talks about free software and open standards and the audience is largely there. I found it really interesting. I didn’t lose much to be completely honest. There’s some stuff that was maybe a little bit better on some of the
other platforms. I’m thinking typically of chapter editing, for example, as we’ve already talked about.
There are some things that can be improved a little bit and everything, but I haven’t lost any functionality. So that’s really, really cool. I’ve switched to an open source platform that I find more interesting.
I’m not going to hide it, what’s very cool for me is that you’re French and we can talk and you can explain to me a little bit about your philosophy, what you want to do etc. I think it’s interesting when you’re a content creator to be able to understand what the people who make this platform want to do. And what they want to go towards, what they don’t want to do, etc. It’s really nice.
I’m very happy to have migrated to the Castopod. I really wanted to do this episode with you because I wanted you to be able to share a little bit of the discussions we had off-air at the different shows. Thank you, thank you for making this platform as a user, as a content creator, it’s really very nice.

See you soon, dear listeners. That’s the longest episode, I think, we’ve ever done! And then if you’re interested, we’re going to pass on a bonus, we’re going to test something that’s Benjamin’s idea: talk about other subjects, a little more technical, etc.

So thank you both, thank you Yassine, thank you Benjamin for your time.

Yassine : Thank you.
Benjamin : Thank you and thank you for being here because if you weren’t here, it wasn’t going to happen.

[Générique de fin]

The ActivityPub Integration

Walid : A little bonus, a little extra that is linked to conversations I had with Benjamin or with Yassine about our different meetings.
I’d like to talk a little bit about the ActivityPub integration and I’d like to know a little bit about how it went technically. Were you familiar with ActivityPub when you decided to implement it? Yassine, what can you tell us about it?

Yassine : Well, it’s not easy, at least it wasn’t easy when I started implementing. I didn’t know anything about the Activity Pub, it was in 2021, I think. So, I had to learn everything. Knowing that the resources, in terms of dev, concerning the Fediverse are not numerous. I had relied on a few articles from Mastodon, how they had done it and especially the aspect of ActivityPub which is long, a lot of texts, not many images, not easy to understand a priori and suddenly it’s several back and forth. At some point I had to start writing code, I had installed a Mastodon server, I had asked Benjamin to have one to do direct tests with it.

So it’s back and forth between code, tests, with what we had for the dev, reading and re-reading the aspect of ActivityPub until we understood, sometimes not understood and came back to it to understand. So it took a few months anyway. What was complicated was the fact that there were no resources, no real tools to test the implementations, at least today that’s what is missing. I think there were some initiatives for, FediDB I think at the time who wanted to make a kind of mock server to be able to test locally but they pivoted to something else.

The adoption of ActivityPub + Castopod Index

So, if there’s one thing to know about ActivtyPub it’s that it’s not easy to implement. Today, as Mastodon is the reference in terms of Fediverse – it is the software that is most used today in Fediverse – we tend to test with a Mastodon implementation and there are advantages and disadvantages. And then, after those months of implementation, we released a first Alpha 42 version, I remember at that time in April 2021. And then with user feedback, we can fix bugs left and right. It’s really implemented in a practical way and not so much making diagrams before etc.

Walid : How long did it take you to get a stable version with the ActivityPub integration? Castopod Complete is the first version of Castopod. I mean the feature, so you think of it as really stable and mature, the ActivityPub feature.

Benjamin : from the Alpha 42.
Yassine: Yes, and then there were still a few small bugs left and right, but we fixed them as we went along, and the most complicated thing was to release the 42 because we had to understand how it all worked.

Walid : Was the adoption of this part of ActivityPub fast? Did it become a popular feature right away or not?

Benjamin : That’s hard to measure, we see it a little bit today with index.castapod.org, just by looking at how many subscribers each Castapod podcast has.
Well, honestly, I thought it would be more. We’ve got Nick who’s over a thousand. I think it’s one of the biggest, if not the biggest.

Walid : Yes, Nick from The Linux Experiment channel, which I actually interviewed.

The Linux Experiment - Patreon

Benjamin : 100,000 subscribers on YouTube, so it’s something to put into perspective, but it’s already not bad. This was also one of the objectives of the Castopod index, it was to try to facilitate interactions towards the Fediverse by grouping all the Castopod podcasts in one place and to allow you to find and follow them because otherwise it’s not necessarily intuitive and obvious. So we hope that it will continue to grow, and that there will be more and more of it, and that it will be used more and more.

Evolutions of ActivityPub for the podcast

Walid : On the Fediverse part, yes, we already talked about it in the episode, so I don’t necessarily need to go back on it more.
I had indeed spotted the hashtag problem, that it would be cool to have hashtags.

Benjamin : On the Fediverse, maybe I can introduce a subject, I don’t know if you’re either interested, at least I’m not the one who will talk about it. Today, what Castopod publishes, we basically modeled ourselves on what Mastodon expects because that’s where the users are. But what will have to be done one day is for Castopod to publish its own posts with its own format and for there to be podcast players, real podcast listening apps, which rather than subscribing to an RSS feed subscribe to an ActivityPub feed. The thing is that today we feel that the pump is not primed enough to make it worth getting into it. But that’s one of the things that is… In fact, there are people who are waiting, I think we will do this, but there are too few of them today for them to…

Yassine : We can do that today and have an adapter already for Mastodon so they can play podcast episodes. It’s just that I had defined a spec at the time
It was in 2022 I think, or the end of 2021 I don’t know.

PodcastActivityStream in the idea is to extend ActivityPub and include podcasts and podcast episodes.
I think in the rework that I was talking about in the main episode, maybe I’ll integrate that directly and see with Mastodon how to make a Merge Request or something at Mastodon.

Yassine Doghri

Youngest child : it’s an aspect that is ultra technical and that is ultra important because in the long run, so it’s the idea we had at the beginning, which was very naïve, but which for me is still valid: it’s that, in the long term, the podcast must remain decentralized, but not necessarily on RSS. And that I think ActivityPub might be an alternative to RSS. Because with ActivityPub, there are a lot more features.
RSS is very limited, and with ActivityPub, you can do many, many more things. And so we said “we’re going to do both”. And then, maybe one day, ActivityPub, JSON-LD, all of that, will supplant RSS for podcasting and there will be podcast listening apps that will end up talking only about ActivityPub. It’s science fiction today, very clearly. In any case, we’re still on that path to create a PodcastActivityStream for which Yassine wrote the spec.
So the spec is public, it exists today, it’s just implemented by no one including us. We don’t implement it.

Yassine : If we implement it, but not as it should be. It’s just a small detail but I had a discussion with someone, we were talking about it by email and he explained to me that it was possible today and that we could just make a fairly fast adapter, well easy on Mastodon to be able to play episodes actually.

Walid : There’s also a whole aspect of potentially convincing other hosts, other streaming platforms to do the same in the end, so that it really makes sense.

Benjamin : Yes, of course. But it’s a bit of a demonstration by example. The whole problem of Podcast 2.0 is demonstration by example. That’s the specialty, let there be one or two who do it, let us solve the chicken-and-egg problem and then the others follow because they say “Oh yes, but in fact it works, people use it, my competitor does it, I have to do it too.” This is proof by example and by success.

Open Podcast Prefix Project (OP3)

Walid : I’d like to talk about another topic that’s super important to me because I use it and I think it’s really, really cool, it’s OP3, op3.dev. I would love to hear about it. For me, it translates on my podcast as “I can give public statistics to my community”, so I think that’s very, very cool. So I’d like us to say a few words about it so that you can introduce what OP3 is, how do you work with the people who do OP3? How did you integrate that? And what’s in it for podcasters and for people who listen to podcasts?

Logo OP3 (Open Podcast Prefix Project)
OP3 (source github)

Benjamin : OP3 stands for Open Podcast Prefix Project, so literally the Open Podcast Prefix Project. So what is it? It is an audience measurement tool that works by prefixes. What for? Because, in fact, the URLs of MP3 files are prefixed by the audience measurement server. And so it allows you to measure a number of downloads for each of the episodes. There are plenty of systems like that, they’ve been around for a long time. The most well-known, at one time I think there was Chartable, which was the best known, which was therefore a kind of Google Analytics of the podcast, which was bought by Spotify. So as a result, it cools a lot of people, rightly, because it allows Spotify to have a lot of information about competitors. And so, Castopod has its own prefix system and its own analytics system. That is to say, with Castopod, we have built-in audience measurements that are therefore found in the podcaster’s database. And OP3 has a double particularity, which is that it is, well, even triple, it’s open source, it’s open data and it’s free. Most podcast prefix systems claim to be free in the sense that it’s free to set up. I’ll be able to consult some data for free and then if I want to be able to consult all my data, i.e. for example audience measurements that are more than a month old, I’ll have to pay. It’s ultra classic, but basically it’s free. But if you want to have access to your data that you entrusted to me, you’re going to have to pay. I’m not a fan of this type of business model personally. I don’t think that’s very cool. After all, why not, you’ve been warned.
OP3 is really different because I’m going to be able to see all of my data, but more importantly, everyone is going to be able to see all of my data. That’s why it’s open data, it’s that it’s not possible, it’s not possible, it’s deliberate, it’s not a defect or a bug or something that has a feature that isn’t there yet. It is not possible on OP3 to have private data.

I can’t use this platform to check my audience stats and no one else can see them, which is the case all the time normally. And so, everyone can find out how much of an episode had a given audience on a given day, from which browser, etc. The challenge of OP3 is to have a platform that is truly open and that can provide information to an entire ecosystem. The fact that it’s free is also very important because there are audience measurement platforms that give data that is at least partial, public, and for example rankings and things like that. But if it’s paid, we already know that all the people who are in the ranking have paid. And that it’s not because I’m not there that I don’t have an audience, it’s just because I didn’t pay. So the fact that it’s free, it also guarantees a certain transparency. And then, in my opinion, at least a certain quality of information.
So today OP3 is still small because it’s a project that is very recent, there are more than a thousand podcasts today, the growth is quite linear. The idea is that there should be as many podcasts as possible so that we can start to get information about the audiences, etc. So from a technical point of view, it’s not very complicated to integrate. In the case of Castopod, we integrated it a while ago. And for the podcaster, it’s just a checkbox actually. It’s a button to activate: do I want to be on OP3 or not? I choose. By default, this is not enabled. I have to make the choice to activate it. And if I activate it, well, actually, I’ll have stats in two places, I’ll have them on Castopod and on OP3. And on OP3, everyone will be able to consult them. This also means that OP3 plays the role of a trusted third party. It is not a third-party certifier, especially even though the measurement methods comply with the IAB v2 standard. This doesn’t mean that the platform is IAB v2 certified, if only because it’s quite expensive, but in any case it allows me to make comparisons and get a lot of information.
And for the record, that’s what we use to make the top 50 on index.castopod.org, that is to say that we look for audience measurement information, OP3, for these podcasts. So since the Castopod index, as its name suggests, only concerns podcasts hosted on Castopod, there is nothing else, but we could make a ranking with podcasts other than those hosted by Castopod, as long as they are used OP3.

Walid : Finally when I tick the box to say I want the integration with OP3, I don’t have a link on my podcast site, something that points me to the stats, I’m not sure.

Yassine : That’s something we just added. So, it will be for the next release.

Walid : Great! because I was like, ‘Okay, through Castopod Index, I can go and see, find the stats of the podcasters’. So I thought that was very cool.

Benjamin : Actually, the URL is not secret. It is completely public.

What OP3 uses is the GUID, since you have to know that a podcast can change host, it can move, it can change its name, its RSS feed can change its URL, and suddenly there’s a silly thing that we didn’t have before podcast 2.0, it was a unique identifier per podcast, which allows us to say “well there you go, here I have two RSS feeds, but in fact it’s the same”, because I changed hosts, because sometimes I can also have a duplicate, because I can have two domain names that point to the same server and suddenly potentially I will have two URLs that point to the same physical file.
And so Podcast 2.0, among the features, added this: the GUID which is a unique identifier per podcast that allows you to know that now in fact it’s twice the same and OP3 uses that.
So basically, we just have to go to op3.dev/p/guid and we access the data like that. What also allows me to clarify one thing is that OP3 will look for the podcast info in the PodcastIndex database. Since when OP3 measures an episode, it will count when downloading an mp3 file, but it only has the url of the mp3 file, we don’t provide it with any other information about the name of the podcast etc. And so in order to be able to display the title of the episode or information like that, it actually links through PodcastIndex, which means, and it’s important to know this and we probably don’t say it enough, that a podcast that isn’t referenced from a PodcastIndex can’t use OP3. And that happens.
And in fact, John Spurlock, who is the developer, the person who maintains OP3, contacted us saying “but I don’t understand, we have podcasts that are hosted by Castopod, that use OP3, but we don’t know what to do with them because they are not referenced on PodcastIndex. Why?” Because Castopod doesn’t force podcasts to be listed on PodcastIndex.

Audience measurement in the podcast

Walid : And you couldn’t put a box to tick off like that?

Benjamin : So we can do a lot of things, it’s just that we didn’t. And then the only person who complained so far was John Spurlock who said “but how come I have podcasts that come to see me and that I can’t actually find? I don’t even know the title, the name, I don’t have any info on it.”

So for those who are interested in all these issues of audience measurement, because audience measurement in podcasts is not simple, it’s complicated. We’re talking about audience measurement, but in fact we should talk about download measurement because that’s a point that’s really great in podcasting, is that I can listen to a podcast that is already cookie-free, we already mentioned it earlier, but I can listen to a podcast without creating an account. That is, I can download Antennapod, I don’t get asked, I go to F-Droid, download Antennapod and subscribe to a podcast. I subscribe to a podcast, but at no point did I give any information about myself.

I didn’t give an email address, I didn’t create an account, I didn’t give a username, I didn’t give a password, absolutely nothing. No one knows who I am. And that’s what I also find incredible today in the internet of 2024, is that there’s still an ecosystem where I can subscribe to content, listen to it every day, every week and no one knows who I am. And I didn’t create an account.

Benjamin Bellamy

The downside is that when I want to measure an audience, it’s much less easy because differentiating between two downloads and knowing if it’s the same person or not, it’s almost… So for sure it’s impossible, then I can have ideas and then above all what matters is to be able to compare compared to the previous month: “I have 30% more or less downloads”, but… So it’s not a big deal in the end.

For all these issues, there is a very nice article that will be published in the magazine podcast number 3. I say it’s a very nice article because I’m the one who wrote it and also gives an interview with John Spurlock, the developer of OP3, who did me the honor of answering all the questions I had about his platform. For all those who are interested, I encourage you to go and read Podcast Magazine issue 3.

Walid : Thank you for listening to this little extra, we had a few more things to discuss.
Don’t hesitate to tell me if you liked it, let us make these little extras a little more technical. If that’s the case, we can try it on other episodes. I would like to thank Yassine and Benjamin for taking part in the game and spending more than 2 hours and 20 minutes recording with me.

Keep following them, there are a lot of conferences around Castopod, there are a lot of things, talk about it around you. See you soon and thank you for listening to these episodes to the end.

This episode was recorded on January 23, 2024.

To go further around Castopod

License

This podcast is published under the double license Art Libre 1.3 or later – CC BY-SA 2.0 or later.

Leave a Comment