Degoogling cost me my YouTube feed, so I had to make my own

7777777phil1 pts0 comments

Self-Hosted YouTube RSS Subscriptions Feed, No API Key - philippdubach.comSkip to main contentphilippdubach<br>Quantitative finance, AI, and the economics underneath.

×Part of degoogling my life meant dropping the YouTube app. The only thing I actually used it for was the subscription feed: what the 10 to 15 channels I follow have posted, newest first. No comments, no recommendations, no Shorts. So I rebuilt that one screen and nothing else.<br>Just the feed, nothing else<br>It&rsquo;s one chronological list: the newest videos across every channel I follow, merged and sorted newest first. You add channels from the page by URL or @handle and they stick around.<br>Everything YouTube stacks on top of the subscription feed is something I ignore or actively avoid, so building only the screen I use was less work than configuring the app to leave me alone.<br>How it works without an API key<br>Every channel publishes a public RSS feed at feeds/videos.xml with its recent uploads as Atom XML, and the Worker reads that directly, parsed with fast-xml-parser. No quota, no Google project, no token to rotate.<br>People add channels by handle or vanity URL, and those change, so the Worker scrapes the channel page once to resolve whatever you typed to a stable channel ID, then uses that ID from then on. The input goes through an SSRF guard first, because &ldquo;fetch whatever URL the user pasted&rdquo; is how you turn your own Worker into someone&rsquo;s proxy into your network.<br>Related<br>Moving the blog stack to Europe (kind of)Filtering out YouTube Shorts<br>Shorts were the main thing I wanted gone, and one check doesn&rsquo;t catch them reliably. So there are two: a title heuristic for anything tagged #shorts, and a per-video redirect probe, since Shorts and full videos resolve through different URLs. A video has to clear both to show up.<br>Playback without the tracking<br>Click a thumbnail and the video plays inline through YouTube&rsquo;s nocookie IFrame player. The thumbnails are static images and the embed only loads on click, so no tracking cookies are set until you press play. It isn&rsquo;t perfect privacy, nocookie still writes a localStorage ID and sends your IP to Google once the player loads, but it&rsquo;s a long way better than the app. On iOS it autostarts muted with a &ldquo;Tap for sound&rdquo; overlay, because Apple blocks one-tap sound on the web and a muted-but-playing video is the least-bad workaround. Videos that block embedding get an &ldquo;open on YouTube&rdquo; fallback instead of a dead frame.<br>Picture-in-picture came for free<br>A side effect I didn&rsquo;t plan for. Because playback is a plain web video element and not the YouTube app, the system controls come with it. On iOS that means picture-in-picture and background audio for nothing: the floating window follows me across apps, and sound keeps going when the screen locks.

×Fast and hard to break<br>Feeds fetch in parallel with Promise.allSettled and per-channel timeouts, so one slow or dead channel resolves to nothing instead of hanging the page. The merged result is edge-cached with the Cache API for 15 minutes, and the channels you add live in Cloudflare KV. The page is server-rendered to an HTML string and deployed with wrangler.

№ 084·<br>2026-06-14<br>3 min·<br>Tech·<br>Updated 2026-06-15<br>Topics:self-hosted YouTube subscriptions feed<br>YouTube subscriptions RSS feed<br>watch YouTube without the app<br>YouTube RSS feed without API key<br>degoogle YouTube

Read next<br>Moving the blog stack to Europe (kind of)<br>May 24, 2026<br>· Tech<br>Karpathy's Software 3.0 Playbook<br>May 1, 2026<br>· AI<br>On-Device AI Models Will Be The New Reason to Upgrade Your Phone<br>Mar 25, 2026<br>· AI<br>More in Tech →<br>Enjoy this writing? Get new posts delivered monthly.<br>Email address

Sign UpNo tracking. Unsubscribe anytime.

© 2026 Philipp D. Dubach

youtube feed rsquo channel shorts video

Related Articles