Ask HN: Why is it so hard to download podcasts?
I know it's not the most popular option for consuming podcasts, but I much prefer to download full seasons of podcasts when on wifi to listen to later. Why do some podcast sites makes it so difficult to simply download? There are always 100 options linking to Apple, Stitcher, Spotify, etc, and only sometimes is there a link to download the podcast. Even then, the podcast will typically autoplay in a new window, and you have to click again to right-click -> save as. Alternatively, you sometimes have to go to the RSS feed and manually pluck out the actual sound files.
Ideally, I would like to be able to just download every episode of a podcast all in one go since disk space is not an issue. Is there any possible automated way to do this from an RSS feed?
As an aside, is there an actual reason podcasters would prefer you use a third-party service to download their shows? The ads are embedded in the sound file, so you're not avoiding ad exposure. Is it mainly just for tracking metrics and the higher probability that you will consume more shows once "subscribing"?
19 comments
[ 2.8 ms ] story [ 87.2 ms ] threadApple Podcasts also seems to natively support some paywalled/subscription podcasts from publications I am subscribed to. Personally I think podcast listening is juuuust different enough from general mp3/music listening that it’s invaluable to have a dedicated app. Especially if you’re like me and listen to like 4-5 hours a day of podcast content.
A lot of this question is really just motivated by trying to understand the reasoning for not having a simple download option on (many) podcast websites.
https://www.pushkin.fm/podcasts/hot-money/episode-1-murder-b...
I am given the option to either listen to the embedded podcast on the site (with no easy way to right-click/save as the actual mp3. Or I can get directed to one of the following:
Apple podcasts Spotify Stitcher (I don't think this even exists anymore?) IHeart RSS
So if I'm attempting to get the podcast using a browser, my options are to:
1) Click the RSS feed, search the feed for the episode, find the direct sound file link, and download it that way
2) View the page source and search the source for the link to the MP3 (this is possible here, but sometimes it is obscured depending on the site).
Just adding a simple "download" link among these which directly downloads the mp3 file without addition clicks would be great here imo.
Advertising.
Many podcast hosts provide dynamic ad insertion functionality. Unlike baked-in ads, podcast creators mark the locations of where ads can be inserted and, when requested by a user, the host generates a new MP3 on-the-fly using the user's tracking data (geolocation, demographics, etc.) that is then downloaded to their device.
This allows old podcasts to continue to generate ad revenue by dynamically inserting ads from currently-running ad campaigns.
https://advertise.acast.com/news-and-insights/the-benefits-o...
I wonder if this ad insertion happens for downloading directly from RSS feeds as well. Typically, there is a link in the RSS feed directly to an .mp3 file, and I don't know if it would be possible to set the RSS link to a URL which would custom "build" a new mp3 for each download with dynamic ads injected. Is it just the case that some podcasts do not have "public" RSS feeds? I don't know if i've come across any...
To answer your original question, I threw together a python script that takes an RSS feed and downloads all the podcasts in that feed.
https://gist.github.com/zachwlewis/7ad4182e21768dae98cabd17b...
Hope that helps!
castget¹ is a simple tool that does exactly what you want, just add a feed URL and it pulls all the episodes. It has a nice catchup mode so you can add feeds that you've listened to elsewhere without pulling all the old episodes too. hpodder² is another tool I've used in the past, but I can't remember why I switched.
Depending on how much you like cobbling together your own solution html-xml-utils³ makes it incredibly easy to script a solution. For example, "curl feed | hxselect -c -s '\n' 'enclosure::attr(url)'" would list just the URLs. feedparser⁴ is a battle tested solution for processing feeds if you'd prefer a proper parsing solution over a hacky shell script(it will correctly handle different formats without any extra work for example).
¹ https://castget.johndal.com/
² https://github.com/jgoerzen/hpodder/
³ https://www.w3.org/Tools/HTML-XML-utils/
⁴ https://github.com/kurtmckee/feedparser
I was looking at feedparser last night, and it definitely seems like the go-to for rolling my own as a learning exercise.
Cheers.
https://github.com/EricRa/python-scripts/tree/main/modules/p...
Appreciate everyone's suggestions and time!