Question for @dave and possibly the hive mind.
I want to build some "popular" podcast lists. I am thinking an overall one, one per category etc.
I can either do it with Podfriend data (which is not very massive), or I could scrape some place (probably Apple), or I could hopefully use the index.
Dave do we, or could we have an endpoint for this? (maybe based on the same logic you use for searching) I basically want to hand the API a category and get the most visited podcasts in return?
@martin @dave there’s popular as in, has had the most listens. But in the future should/ could you also be able to search and see the most ‘valuable’, as in which podcasts have resulted in the most Sats being transferred whilst played to the indexed payment address? And then, of course, most valuable in a given genre / category?
@adam @dave Oh, I agree 100% that "popular" is subjective, but right now I am showing nothing, and that's a bad user experience, so beggars can't be choosers and I would like to show at least something, especially for completely new users.
"Most popular" seems to be the easiest thing to get a hold of. Then later on, I want to make it better by having "Similar podcasts", "Other users that like the same kinds of podcasts you listen to, also listen to these" etc.
However I also know that only ~8% of people leave ratings and reviews, and it's a bit of a chicken and the egg situation for Podfriend, when I would like to present some valuable (not perfect) content right now.
I think basically in this case almost anything, which can then be improved, is better than nothing.
@martin Please definitely let me know when Podfriend adds ratings and reviews, and I'd love to talk about supporting them on MyPodcastReviews.com!
About popularity, you could simply track how many new subscriptions podcasts are getting in your app. That's similar to what Apple does.
I do plan to use the subscription count in my app of course, but right now it has a very low amount of users (I assume... I don't really do much tracking - Hopefully I will know a bit more once I enable user accounts and saving things like subscriptions on the server), so it's a bit of a chicken and the egg situation.
@martin Feel free to reach out if you want to bounce some small ideas around on ratings and reviews.
@theDanielJLewis Right now I plan to move ahead with a very simple system (attached a screenshot).
But I do have plans! I don't know if I mentioned this but I actually work for an online review platform in my day job. :D
@martin looks good
@martin @theDanielJLewis @adam @dave On reviews/ratings - Tanner Campbell wrote a thing the other week about how ratings are toxic magnets for bad behaviour. I'd agree with that - nothing good comes out of rating a podcast with one star. Further, Daniel Misener did some research showing that 87% of ratings are 5 stars.
I'd *love* a simple thumbs-up button. That's all you need. No stars. Just a thumbs-up.
I will most likely go for the thumbs up (as well as a written review).
Furthermore I plan to introduce curated lists of Podcasts, and I think that's potentially a much better way of "promoting" podcasts you like (but of course requires a different level of engagement).
For example, instead of "popular," it could be "trending," based on recent activity: like new subscriptions, new episodes, repeat listens, etc.
Some places, such as Castbox, simply use the Apple Podcasts charts.
You could also look to Podchaser's information for a more agnostic "popularity" metric.
@martin Currently, the way I'm weighting the search results is by watching for specific requests. So, when someone requests "podcast/byfeedid" or "podcasts/byitunesid" i counts as a hit. It's crude, but it works since 90% of podcasts are never actually requested. I could hand you back something according to that?
@dave Yeah, that's how I imagined the search worked, and honestly as you say it's fine for the vast majority of cases. (Google is actually using stats like that too. They weigh the click-through rate on search results in, when they decide what to show).
I am not looking for 100% perfect or scientifically accurate data, I am basically just looking to use it as "These True Crime/Cooking/Sports podcasts are popular" to do a bit of onboarding and for people to get inspired. :)
@dave So basically, if you can return anything meaningful for categories (and maybe a "Trending within the latest 24 hours could be a thing in the future?) that would be podfect!
@martin Sure, I can give you that. I think what we're looking for most of the time isn't "how many people" like a podcast. But, rather, does "anyone at all" like a podcast. That seems to get you most of the way there.
Let me work on that. Would you want to start with a "podcasts/bypopularity" endpoint that encompasses all categories, and then get more specific? That would get you something to start with.
@dave That would be a super great start!
@dave The only thing, would be that "bypopularity" might be too controversial (based on Adam's philosophical question about popularity) so maybe "bytraffic" or something like that, would be better. Then we leave the greater discussion about what popularity is out of it.
@martin Hmm. "podcasts/trending"? And the algo underneath it could evolve as needed?
@dave I personally think that's super good.
We can even in the future have parameters to it
Where x could be:
- value (to sort by how much funding the podcasts are getting)
- search (how many people find it through search)
- subscriptions (how many people subscribe to it, if the index in the future wants a callback for that kind of information etc.)
Not saying all of those are good ideas, but it does have future potential to explore.
@martin Yeah, I like that. It's very transparent, which is what most algo's aren't. You're just saying "give me the ranking based on X".
@dave I agree. We could even in the future do a scale based on let's say 40% value
or whatever percentage (and whatever other parameters that could be used), that is then used if X is not provided.
@martin Wow, that's very cool. I never thought about a mixed ranking like that. It kind of makes my brain hurt. But, in a good way.
@dave @martin it’d be a great way to highlight the shows that really had something about them. But the more it could ensure that, for example, the hits were not just repeated requests from the same IP address(es), or that the value was favouring many people making smaller transactions rather than being skewed by one large payer (to self!) it’d screen out people pumping their own shows for the rankings and really favour the good ones with a real audience.
@dave It's funny that a Chinese podcast is #6 - I see a lot of traffic to Podfriend from China to a lot of Chinese podcasts. I also had several support requests about religious podcasts in Hebrew.
- I have absolutely NO idea how Podfriend found it's way into those niches.
@martin lol. Always good to have a niche. Even when you don't know how it happened.
@dave Ahem, got sidetracked there. It looks great.
My immediate feedback:
1) "Author" would be great in the result (I think most people show the author right under the title in lists)
2) A language filter would be great
3) And of course the category filter
Otherwise it looks really great!
I really look forward to implementing it, And would have done it within the next 15 minutes if I hadn't dug myself into a deep hole with some new code I have to finish before I can release a new version!
@dave Also, that's really the benefit of file-based languages like PHP. You can just surgically go in and edit one file and upload it to the server for stuff like that.
In React everything requires building, so file A depends on file B working etc.
(okay, yes I realize that I could work on branches, but as a single developer I don't want to introduce that kind of pain in my development workflow)
The language and category filters are already in there:
@dave I'm not saying that was fast, but on a scale of not fast to fast, that was fast.
I love working on projects with people that have a can-do attitude! (Did I mention that I work in a place where this kind of thing would have taken several weeks?)
@martin Lol. Start to feature in 45 minutes.
Yeah, PHP is great for this type of stuff. Copy file, paste file, tweak it, upload it, done.
@martin Oh, and then commit to git because you know... that's importan. I'd never forget to do that. 😉
@dave my last git commit of Podfriend is like 5 days ago. I like living on the edge. :D
@martin At least it's not just me then. I have dozens of huge commits that just say something like "stuff I did", because I forgot to do it for a week.
@dave Oh yeah, basically all my commits are either like
"New layout for episodes. And some bug fixes... And subtitles... Oh and improvements to the player. Also changed to the new podcastcover server. And lots of stuff I can't remember."
"Lots of stuff"
@dave By the way, speaking of Git, I saw that you forked the rssBuilder to the podcastindex, which is 100% great - but I am unsure how the workflow works - do you get notified if I make changes to my repository? Should I delete mine or just keep it? (I guess I kinda like having it on my profile for people to see what projects I've made).
@martin No, no. Don't delete it. I'll just do a pull from you if you change it upstream.
@martin BTW, the params are based on "recent/feeds" so those docs will tell you how to structure the call:
@dave So it also supports the "Since" parameter? That could be interesting!
"Trending this month", "Trending the last 24 hours" etc.
@martin Yes, that's right. It's a bit of a cheat atm, since it's keying on publish_date but ranking on the "popularity" scoring which is built less frequently. I should have it rebuilding ranking quicker though, after I finish the aggregator work.
Intended for all stake holders of podcasting who are interested in improving the eco system