Invidious allows streaming YouTube videos as audio, and can present channels as RSS feeds, meaning AntennaPod could manage them as podcasts, as observed by @ByteHamster in this GitHub comment.
Adding an Invidious channel through RSS already works 90%, but the missing 10% is the most important, i.e. audio streaming: AntennaPod simply displays an “item does not contain a media file” message, I assume because the Invidious feed has no <enclosure>
tag pointing AP towards an audio file.
On the Invidious repo there’s a very recent ticket asking for podcast compatible feeds, and this comment has relevant information concerning obstacles on their side.
One of them is that the audio is provided as a DASH stream, while most podcatchers expect a file that can be streamed the plain ole HTTP way.
This might not be a show stopper, though, as AntennaPod relies on ExoPlayer, which in turn supports DASH streaming through the additional module exoplayer-dash
.
Audio streaming from Invidious has already been done, e.g. the FOSS music player Holoplay mentioned in the AP ticket linked above. Listening to a podcast video in Holoplay is feasible, but very unwieldy as the app does not have the notion of what a channel is.
Assuming for a minute there are no problems with DASH streaming and AntennaPod, then, and trying to think forward:
-
The user should be presented with an option to mark an RSS feed as Invidious, as the XML file does not contain that information explicitly, although some instances could be automatically recognized, having “invidious” as part of the URL.
-
Once AntennaPod is made aware of that, it needs to stop looking for an
enclosure
in that feed, and go fetch the video link from the<link>
tag instead, then append the parameters&raw=1&listen=true
so to have the instance return a link to the DASH stream that AP can play. -
Because of the no-downloading-from-the-tube policy mentioned by ByteHamster, it might be a good idea for AntennaPod to hide the Download controls for Invidious feeds.
I tried to cover all bases and avoid wasting everybody’s time, but inevitably I will have missed something.
So tell me: what do you think?