Visit Google's Takeout site to download your youtube subscriptions.
- Note: This depends on GNU
dateto output the correct date format. I don't use BSD utils, so YMMV. You might want to update the date line to a hard coded value (e.g.Mon, 02 Mar 2026 14:37:58 -0600, though I don't think it matters.)
chmod +x convert.sh
./convert.sh
The output should look something like this:
<?xml version="1.0" encoding="utf-8"?>
<opml version="2.0">
<head>
<title>Youtube Subscriptions</title>
<dateCreated>Mon, 02 Mar 2026 14:47:09 -0600</dateCreated>
<!-- If you're using BSD date utils you might want to use the following -->
<!-- Mon, 02 Mar 2026 14:37:58 -0600 -->
</head>
<body>
<outline title="Youtube" text="Youtube">
<outline title="sample" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=fakechannel-id" type="rss"/>
</outline>
</body>
</opml>
I've setup gPodder to download my Youtube videos. This takes forever.
Once its finished, you can unsubscribe from all the channels at once using the sqlite cli:
UPDATE podcast
SET pause_subscription = 1
WHERE ( pause_subscription = 0 AND section = 'Youtube' );
Verify:
SELECT title, pause_subscription FROM podcast where ( pause_subscription = 1 AND section = 'Youtube' );