Since my last post about https://piratefeeds.net/ I've added a lot of cool new feeds to the site. I've gotta hand it to
, they really came through with the donations. We now have a bunch of high demand feeds: Chapo, TrueAnon, Trashfuture, Trillbilly, and a dozen more!
I'm still hoping for new feed donations though, the more the merrier. In particular I'd love to have feeds for:
- ~~Citations Needed~~
- ~~Lions Led By Donkeys~~
- ~~Radio War Nerd~~
- ~~This Machine Kills~~
- Glue Factory
- ~~Bungacast~~
- The Worst Of All Possible Worlds
- ~~Boonta Vista~~
- Bad Hasbara
- ~~Blank Check~~
- ~~Bad Faith~~
- Ten Thousand Posts
- The Antifada
- Your Kickstarter Sucks
- Varn Vlog
- This Is Revolution
- Diet Soap
- We're Not So Different
- Cosmonaut Magazine
- If Books Could Kill
Also, once again, duplicate feeds are still more than welcome as backups.
The people will be eternally grateful to donors for their service!
NOTE: some users apparently can't resolve the domain. Best guess is some ISPs/DNS servers are blocking the site as part of anti-piracy filters. If that's your case try setting your DNS server to a big one like Cloudflare's 1.1.1.1 or Google's 8.8.8.8. Alternatively using a VPN seems to fix it.
NOTE: some of the feeds have been reverted to the free versions. Seems like Patreon detected something was wrong with them. I've paused fetching the feeds for now, while I figure out how to stop them being detected in the future. In the meantime https://jumble.top/ is back online.
nerd stuff
Latest version of the feed fetching script:
import json
import random
import sys
import xml.etree.ElementTree as ElementTree
import requests
if __name__ == "__main__":
# Feeds file expected JSON format:
# [
# {
# "name": "...",
# "inactive": false, # optional, if true the feed won't be fetched assuming the cached version won't change
# "description": "...", # optional, if missing the original one will be kept
# "urls": [
# {
# "source": "...",
# "url": "..."
# }, ...
# ]
# }, ...
# ]
feeds_file = sys.argv[1]
output_dir = sys.argv[2]
print("\n#### Fetching feeds...")
with open(feeds_file, newline='') as file:
feeds = json.load(file)
print("Loaded feeds file")
for feed in feeds:
# Do not fetch inactive feeds, kept as archives
if 'inactive' in feed and feed['inactive'] is True:
print(f"## Skipping inactive feed {feed['name']}")
else:
print(f"## Processing {feed['name']}...")
sources = list(enumerate(feed['sources']))
# Shuffle the URLs so we don't always pick the first one
if len(sources) > 1:
random.shuffle(sources)
response = None
headers = {'User-Agent': 'AntennaPod/3.7.0'}
# Try fetching the feed with each of the available URLs
for i, source in sources:
print(f"Attempting to fetch {feed['name']} from source #{i}...")
url = source['url']
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
print(f"Fetched {feed['name']}")
break
else:
print(
f"ERROR: {feed['name']} URL #{i} returned error: {response.status_code} {response.content}")
except Exception as e:
print(f"ERROR: network error while fetching {feed['name']} with URL #{i}: ", e)
if response is None or response.status_code != 200:
print(f"ERROR: failed to fetch {feed['name']}! No URLS worked")
continue
try:
root = ElementTree.fromstring(response.content)
# Replace the description since it often contains PII
if 'description' in feed:
root[0].find('description').text = feed['description']
ElementTree.ElementTree(root).write(f"{output_dir}/{feed['name']}.xml")
print(f"Processed and saved {feed['name']}")
except Exception as e:
print(f"ERROR: failed to process feed {feed['name']}:", e)
Podking was the first user here to compile a list of pirated premium feeds, he got called out for including some right-wing podcasts/podcasts hosted by transphobes, doubled down that it was fine, and got banned. Happened 3 years ago.
Podking didn't just share the feed but also hosted the files. Still does on SLSK. And has different and larger library. Could be better if people just realize that they don't have to listen to a podcast if they don't like it. Never been simpler. Maybe OP could reach to them and try to host supportingcast's podcast on their server.
Just checked Podking's Soulseek, I don't see any of the pods I've had donated from SupportingCast. Either way Soulseek doesn't work as a hosting platform for RSS feed media, Podking would have to set up a webserver of some kind which I'm guessing they don't want to do.
They had American prestige when they were on supporting cast until "donor" feed expired and automatically switched to free with embedded ads in French. lol. Maybe you could contact them see what is going on. Maybe you put it on soulseek, those suporticgcast pods? Anyway thank for your good work.