Open mitchdowney opened 3 years ago
AntennaPod already prompts for a username and password when necessary. So I'm wondering if it's actually necessary (?)
No idea how that works, though. Something with standard http authentication?
@keunes you are right that we should also be able to receive a 401 Unauthorized response to handle this...however I have had trouble implementing this with the react-native-background-downloader and react-native-track-player we are using to download episodes and stream them...
While we should be able to handle a 401 Unauthorized error, I think it would be at least a slight UX improvement if we could know which episodes required a username and password before making the first request.
The goal of this namespace is to indicate to a podcast app that the episodes for an RSS feed are username and password protected.
There is one known example of a feed in Podcast Index that could use this namespace. Aeon Byte Inner Sanctum of Gnosis is a public RSS feed that is available in Podcast Index, but the media content can only be played if you provide a valid username and password.
In order for apps to properly handle this situation, we need to know in advance that the media content of the RSS feed is password protected. A simple boolean that tells us "content is username and password protected" would work for this RSS feed, so I propose a tag that can be set at the podcast/channel level. If set at the podcast/channel level, then apps can prompt users for a username and password, and then pass those credentials with every request to stream or download its episodes.
One thing I am not sure how we should handle is, what if a feed contains credentialsRequired content, and non-credentialsRequired content? If we know what content in the same feed is password protected or not, we could render a "Premium content" indicator in the UI, so the user knows which episodes/items can be played without a username and password. Perhaps can be set at the podcast/channel level, and false</podcast:credentialsRequired> can be set at the episode level for each episode that does not need username and password?
This proposal might overlap with #239, so if it's redundant please feel free to close this issue. My understanding is that 239 goes much deeper than a simple "basic authentication required" boolean, but if 239 can accomplish the same thing, maybe it is best to wait until 239 is formalized and close this proposal.