-
Notifications
You must be signed in to change notification settings - Fork 116
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: <podcast:channel> (a group of podcasts) #240
Comments
You beat me to this Tom. This is absolutely a good idea. |
Isn't this what the recommendation tag is supposed to support? |
A channel is not a recommendation, but a collection of related podcasts. A podcast could belong at most to only one channel. The should be grouped together under a name as well. |
a thought on naming …
a bunch of channels would e. g. be an any better wording or thoughts on that maybe? |
What about @tomrossi7 Do you want to write up what a tag structure would look like that you can see implementing? If you don’t have time I can take a crack at it and submit here for comments. |
"bundle" could be another word to use. But I'm still having trouble understanding what's different about this compared to recommendations/related. |
I’m thinking the difference between these are our shows, ie the same network or producer vs these are things we recommend, which could be anyone’s shows? This is not to say that we can’t have it under one tag and have a field to identify things that are ‘Internal’ vs ‘external’ if that matters. From an app perspective, I think the difference becomes how it might be shown. It’d be nice to have the option to showcase our Network shows together (similar to the channel idea or a brand page), and our recommendations to be more of a blog roll type list maybe. |
@theDanielJLewis |
I am struggling with this too. Is this meant to be a RSS way of showing podcasts that are all part of a podcast network? Or would you use it as an episode level where one might be doing a cross promo? Are there any good existing examples of where this might be used? Is it per podcast or per episode? or both? |
I like this idea. Whether is a Having some control over the labeling and order can help differentiate these things, too. There could be standard tags, like For example, my own show would obviously list my other shows (unless I didn't want a show connected in this context), but I could also list Podcasters' Roundtable, of which I'm an official cohost but it's not my own show. Then on the item level, the recommendations/related could be to other relevant episodes or entire shows as well. For example, if I do an episode about writing, I could link to a couple other "writing for podcasters" kinds of episodes, as well as entire shows all about writing. |
EDIT: Updated with a newer proposal below. cc: @tomrossi7 @KieranMcKeefery @eteubert @cio-blubrry @PofMagicfingers @dan |
In a perfect world each podcast would have a guid. Then we could use this guid as reference instead of a URL, which may change. But the feed URL seems like a close second choice because the podcaster has a high interest in keeping that stable or at least redirecting to the current URL. I do like the draft. Simple enough and provides enough data for the usual display of such lists. |
Agreed on the UUID thing. We’re brainstorming possible solutions to that here. It’s a tough one. Would having a thumbnail url attribute included next to the feed url attribute in podcast:relatedFeed be wise? To give apps what they need for a nice UI presentation? |
At this part of the user journey, I would most likely just look up the podcasts through the API, so at least for my purposes a thumbnail url is not necessary here.
|
Its not that big of a deal, but I do like I like the idea of a podcast having the option of belonging to one and only one channel or network. I don't know how we could enforce integrity, but we can at least make it part of the spec and allow aggregators the ability to invalidate feeds. Just my 2 cents! |
As far as I understood then "Channels" in the new Apple Podcasts is curated content. This would more be a way for podcasters themselves to say "I want to be associated with these other podcasts" right? (and possibly have those podcasts do the same thing) If that's the case, then I do like podcast:network better for that use case. |
I'm really good either way on the naming. If it comes down to it, "channel" is probably a better word than "network", since large podcast networks may want to sub-categorize their shows into channels. We could do this instead: <podcast:channel><podcast:channel
title="[title of this channel(string)]"
description="[a short description of the channel(string)]"
>
[one or more <podcast:channelMember> elements]
</podcast:channel> Parent: <rss><channel>
<podcast:channelMember><podcast:channelMember
url="[feed url of a related podcast(string)]"
image="[url of a thumbnail image for this podcast(string)]"
private="[true|false]"
/>
[Title of Podcast(string)]
</podcast:channelMember> Parent: <podcast:channel> The node value of this element is the title of the podcast being referenced. It is required and cannot be blank.
Examples<podcast:channel title="Daniel J. Lewis">
<podcast:channelMember url="https://theaudacitytopodcast.com/sitefeed/">The Audacity to Podcast</podcast:channelMember>
<podcast:channelMember url="https://podcastersroundtable.libsyn.com/rss">Podcaster's Roundtable</podcast:channelMember>
<podcast:channelMember url="https://anchor.fm/s/a42af4/podcast/rss">Inside the Podcasting Business</podcast:channelMember>
<podcast:channel> <podcast:channel title="Nothing But Dan" description="All the Dan Benjamin you could ever want in one place.">
<podcast:channelMember url="https://feeds.5by5.tv/b2w" image="http://icebox.5by5.tv/images/broadcasts/19/cover.jpg">Back to Work</podcast:channelMember>
<podcast:channelMember url="http://feeds.5by5.tv/roadwork" image="http://icebox.5by5.tv/images/broadcasts/89/cover.jpg">Road Work</podcast:channelMember>
<podcast:channelMember url="https://feeds.fireside.fm/podcastmethod/rss" image="https://assets.fireside.fm/file/fireside-images/podcasts/images/6/63cb6a26-1daa-48af-98a7-285e89e0f62b/cover.jpg?v=2">Podcast Method</podcast:channelMember>
<podcast:channel> cc: @staceygoers |
@daveajones I wonder if we need to duplicate any of those attributes since they can be found within the RSS feed itself. It could be as simple as below. Maybe we could have an image for the channel since that wouldn't be in any of the feeds?
|
Not quite. That was my initial misunderstanding, too. But now, it's more about how a creator can create their own channels with their own shows, but a show can be in only one channel at a time. For example, ESPN could bundle all their soccer podcasts in a channel, all their baseball podcasts in another channel, etc. I apologize that I'm starting to get a little lost with some of the details. But what I see "related" as being is a podcaster-curated "you might also like" list, similar to what's in Apple Podcasts now. But with enough flexibility in the tag, the groupings could be based on whatever I want: whether my own other podcasts, podcasts that are similar to mine, or shows I recommend often that fit the interests of my audience. I'm not so sure |
If we make Would that work? I like the channel image. I'll add it. |
I like the idea of having the thumbnail enclosed here, it would make it simpler from the app side if the app decide to show it. In general I like the feeds to be as self contained as possible, without depending on external APIs (of course, observing that we don't want to have a gigantic feed...). |
This is a dangerous path because we are duplicating content in anticipation of how it may be used. In other words, we think the aggregator will want the title and artwork of the channel member, so we fatten up the RSS feed with information. I would rather err on the side of anticipating less and letting the aggregator decide what they want to load. The ultimate source of truth should be the channel member's RSS feed. Not a biggie since we can make it optional, but just my 2 cents on a general "what we should and should not include in the RSS feed?". |
Yeah I agree with you. If we include titles, thumbnail url, and even members, we'll have many times either broken links or out-of-date informations. Actually, maybe it's better to move the "channel" members into it's own "channel file", using something like OPML. The RSS feeds only reference this file, and the channel data would be inside this always up-to-date file. The tag could be : And the clients and aggregator would check the URL to get the up-to-date podcasts links and channel infos. |
I love OPML and have written tons of software that uses it, but I'm not sure it's the right tool for this job. It can be much more "clumsy" than RSS. I would lean toward JSON since we've already established a standard with that on the chapters side. If we're going to introduce another external file I would keep it consistent. I can see the wisdom in an external file. It makes sense. It is, however, yet another external file to track and keep in sync. For example, what if a feed references an external channel file, but that feed itself isn't listed in the external file as being a channel member? It does become more complicated.
I agree. We can just let the aggregators/api's take care of assembling the meta-data. Let's leave it out. |
So, I guess before we refine this more, we need to make a decision about external channel file vs internal to the RSS. There are trade-offs, as always. What do we think on this? I can see wisdom in either direction. |
Here are my thoughts on it : Of course, linking should be done on both side to be confirmed : Other advantage of this method is that updating and adding feeds to catalogs become almost organic :
In the end I also think an external file is better because it's an ultimate source of truth. If we include the whole network list on each feeds, what do we do when the list isn't the same on each feed ? If the list isn't meant to be consistent between members of the channel, it's true it's more of a recommended feeds tags. |
To me, an external file seems like overkill since all we are listing are the channel members RSS feeds. Even for a large channel, you aren't talking about adding too many lines. If the feed were an object, the other channel members would be an array attribute of RSS feeds. Its definitely not an easy black-and-white and I could go either way! |
@PofMagicfingers @tomrossi7 @cio-blubrry @eteubert Any thoughts here? |
I was thinking about the relative protocol adresses : //mydomain.com/rss
IMHO, this is more a job for #179 :
Unfortunately, I see the issue, but can´t imagine a simple and efficient solution to this problem. The best I can think of would be to leave a trail. When you move a feed to another address, you specify which feed it does replace in one of its tags, and that feed should either redirect to the new one, or specify the new url with the tag. I think this was discussed on another issue here. But that doesn´t protect us from abuse, human errors, or multiple feeds claiming to be the new version of an offline feed. In fact even with decentralized systems, there is always a central authority of some kind to ensure you trust the right persons. I don´t know what we could do about it without over-engineering this. |
Maybe we're thinking too hard on this. Maybe the answer is "just drop the packet". Let me explain. When it came to packet switched networks, the big revelation was to just stop giving monumental effort to trying to deliver every single packet. If the router is too busy, just drop the packet and let the sender try again. Sometimes the answer to a complex decentralization problem is to just let the perceived problems manifest themselves. It might not be as bad as we think. Let's take @PofMagicfingers example:
Look at the system we have now. If that scenario played out there would be 3 feeds (one of them is "canonical") with absolutely no linkage between them except for the podcast title and maybe the author tag. Good luck even finding those duplicates. If we had a Now take fraud feeds. If someone really wants to impersonate a successful podcast, they would want to clone their Basically, what I'm saying is that perhaps letting the collisions happen is actually better than what we have now, which is all just human effort to find and interpret a haystack of feed urls and metadata. |
That's really smart. You're right, human errors should involve human handling. The standard should not handle all possible mistakes but only specify : if there is a configuration issue, an human should correct the issue. |
I started an official proposal thread for the GUID tag: #251 . We can continue that discussion over there. I'm pretty sure @saerdnaer , @agates and others will have some input. We can just use placeholders here for whatever value that ultimately takes, and that will let us push forward with an actual JSON channel spec. I'll start working on a framework for that today. |
Sure. If you want to propose the tags as an edit to your original posting up top I will write the JSON spec. |
Now that phase 3 is shipped, I'll turn focus to writing up a proper channel json spec. We need podcast:guid though. So, I'll formalize that first. |
Out of curiosity, what happened to <ppg:network id="worldserviceradio" name="BBC World Service"/> <acast:network id="102959f3-c3f2-58be-4119-38e6d4415a15" slug=""><![CDATA[Immediate Media Radio Times]]></acast:network> I'm not a fan of "channel" because that's already in use as the parent |
Prior art: Atom enables feeds which are aggregations of <item>
...
<source>
<id>http://example.org/</id>
<title>…</title>
<updated>...</updated>
<rights>…</rights>
<link rel="self" href="..."/>
...
</source>
</item> |
@Tombarr Good find on the network terminology. Thanks for that. We discussed the potential for GUID conflicts (maybe here, I’m not sure) and ultimately decided it was a benefit and not a problem since people intentionally cloning GUID’s would actually reveal them as collisions and make the spammers easy to identify and remove. That’s how I’m doing it now in the podcast index database. It’s one of the criteria for deduplicating. If I’m misunderstanding your meaning please let me know though. |
I think there are multiple uses we can consider and thus might want to have a more inclusive tag name. Yes, this could be used for an actual network/affiliation. It could also be used for related podcasts, recommended podcasts. So I keep thinking ally kinds of references to a different podcast should should use the same tag. It could be |
I'd vote for "network" since it implies a "group" of some kind, whereas "channel" sounds like just one thing. Also because "channel" is already the name for the top-level RSS feed item. Otherwise maybe "channels"? |
Podverse is close to adding support for podcast:medium for music, but before we do that, ideally this tag would be formalized. I was chatting with @agates about "how do we group music albums under a single artist, if each album or single is its own RSS feed?" and he said he envisioned the channel could support this use case. Since channels seem like basically a group of RSS feeds, I think this makes sense. What do we need to do to get this namespace over the finish line? |
I've been thinking about this since @agates linked to it on podcastindex.social The child feed would only include the tag: And the 'network'/parent feed would list the children: Perhaps the network feed could also have a new medium of 'collection'. When a podcast app sees the belongsTo tag it would lookup the parent feed and see whether this feed does belong to that feed. If the feed is not listed the tag is ignored. If the feed is found the title & image of the network feed could be shown next to the feed. Clicking on the network feed would list the children. I think the benefits of this approach are:
However this is implemented it needs more feedback, especially from hosts I would really like to see this to find new shows, but as mentioned above I think it could be used to link Artist's albums too. |
@thomasrynne I think that could work by just using OPML instead of a sort of "collection" oriented RSS feed, which would keep the implementation even simpler. I'll mull over the idea and see if I can think of any major drawbacks. |
FWIW, I like the idea of this but dislike the idea of calling it channel. Podcasters talk about their podcast network already so I think |
I would agree with you if it were meant for only podcasting, but I could make the same argument and call it something like |
I kinda like |
I had planned to create a dedicated page of podcasts based on the producer. The podcast:author tag is confusing and would be better labelled as podcast: producer. Then when you aggregate podcasts based on the producer e.g Wondery they would be on a dedicated page. I agree calling it would be confusing. But I do agree that import/export to this group via OPML would be a good idea. |
I like "group" or "family." We just need to ensure this wouldn't be confused with something like |
This discussion reminds me of the difference between normalisation and denormalisation in database design. Whichever way we design it, there is going to be some duplication of redundant data, but I think the goal should be to reduce the maintenance burden. If a new file is created to give a list of feeds by the same author (which in any podcast directory could have been queried anyway from the list of feeds that share the same author tag), it represents an additional maintenance burden, whether that be for the podcast creator or the podcast host who now needs to write additional software to handle the authoring of a new type of file. Examples of directories that show you a catalogue of works by the same author, without the additional maintenance of a separate catalogue file:
So I would be in favour of just querying based on the shared author key, either the existing |
Or the |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
One of Apple's features is the grouping of podcasts into a channel. I kind-of like this idea and wonder if we could incorporate a way to do this within the RSS feed. Perhaps, we provide a
podcastChannel
tag that uniquely identifies the channel? Or arelatedPodcasts
tag that points to a JSON of all the related RSS feeds?The text was updated successfully, but these errors were encountered: