---
title: "How I turn my linkblog into a personalized podcast"
description: "Saved articles become a personal AI podcast through research agents, outside reading and ElevenLabs v4. Explore the workflow and listen to the finished episode."
date: 2026-10-02
author: "Philipp D. Dubach"
categories:
  - "AI"
  - "Tech"
keywords:
  - "personal AI podcast"
  - "turn articles into podcasts"
  - "ElevenLabs podcast"
  - "AI podcast workflow"
  - "iOS Shortcut save links"
  - "reading list to podcast"
  - "saved articles to audio"
  - "research agents"
  - "ElevenLabs v4"
  - "text to speech"
  - "podcast script"
  - "synthetic narration"
  - "outside reading"
  - "source verification"
  - "iOS share sheet"
  - "Cloudflare Workers"
  - "Cloudflare D1"
  - "MP3 podcast"
  - "podcast chapters"
  - "audio transcription"
type: "Project"
canonical_url: "https://philippdubach.com/posts/saved-links-to-personal-podcast/"
source_url: "https://philippdubach.com/posts/saved-links-to-personal-podcast/index.md"
---

# How I turn my linkblog into a personalized podcast

*Philipp D. Dubach · Published October 2, 2026*


## Key Takeaways

- 127 saved links supplied the first research pass, which produced nine topic clusters and a separate list of unexpected reading.
- One question and two anchor readings became a 26-minute episode, narrated with ElevenLabs v4.
- An iOS Shortcut saves links through a Cloudflare Worker to D1; the public page makes the list accessible from any device.


---


![iPhone mockup playing Beyond the Proxy, a personal AI podcast made from saved reading, with its black and orange cover.](https://static.philippdubach.com/cdn-cgi/image/width=1600,quality=85,format=auto/reading-radar-podcast-cover.png)

[link.philippdubach.com](https://link.philippdubach.com/) is where I keep articles worth returning to and papers I haven't had time to read. I can open the list from anywhere or send it to friends and colleagues so we have something to discuss.

An iOS Shortcut in the share sheet sends the URL and a short description to a Cloudflare Worker. It stores them in D1 and serves a plain page with the newest links first. Saving a URL again moves it back to the top.

![An iOS Shortcut asks for a short description before saving an article from Safari to my public reading list.](https://static.philippdubach.com/cdn-cgi/image/width=1600,quality=85,format=auto/reading-radar-save-shortcut.png)

## Read across the links

I choose a date range and let sub-agents divide up the reading. Each pulls out the arguments from its sources. They group the results by theme and flag anything they could only partly read.

Other agents look for related reading and connections I might miss, so the podcast reaches beyond what I've already saved. The September run covered 127 links in nine topic groups and added 14 related recommendations, plus ten less obvious ones.

The agents then build an episode around one question and two main readings. The script works through the argument and its strongest objection. They check the claims and revise sentences that sound awkward when spoken.

*Related: [RSS Swipr: Find Blogs Like You Find Your Dates](https://philippdubach.com/posts/rss-swipr-find-blogs-like-you-find-your-dates/)*

## Generate the audio with ElevenLabs

[ElevenLabs v4](https://elevenlabs.io/v4) reads the script in short sections using the Christopher voice. The workflow joins the takes, adds pauses and the opening theme, then adjusts the loudness and exports an MP3 with chapters. It transcribes the audio to compare it with the script. Before release, the sources still need a final check and the episode needs a full listen.

The voice surprised me. In places, I find it hard to tell it apart from a human narrator, and I'd happily listen to a whole episode made just for me.

The first run used September's reading. I can use a week's links, or any other period, when I want another episode.

## Listen to the first episode

*Beyond the Proxy: If AI Proves It, Who Understands It?* asks what a valid proof still needs before people can understand and use it.

<section class="podcast-player" data-podcast-player data-show="Beyond the Proxy" data-artwork="https://static.philippdubach.com/audio/beyond-the-proxy/cover.png" aria-label="Beyond the Proxy, episode 1: If AI Proves It, Who Understands It?">
  <div class="podcast-player__heading">
    <img class="podcast-player__cover" src="https://static.philippdubach.com/cdn-cgi/image/width=240,quality=85,format=auto/audio/beyond-the-proxy/cover.png" width="120" height="120" alt="Beyond the Proxy podcast cover" loading="lazy">
    <div><p class="podcast-player__series">Beyond the Proxy · Episode 01</p><h3 class="podcast-player__title">If AI Proves It, Who Understands It?</h3></div>
  </div>
  <audio controls preload="none" aria-label="Beyond the Proxy, episode 1: If AI Proves It, Who Understands It?" src="https://static.philippdubach.com/audio/beyond-the-proxy/episode-01-if-ai-proves-it.mp3"></audio>
  <div class="podcast-player__controls" hidden>
    <button class="podcast-player__play" type="button" aria-label="Play episode">
      <svg class="podcast-player__play-icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M8 5v14l11-7z"/></svg>
      <svg class="podcast-player__pause-icon" viewBox="0 0 24 24" aria-hidden="true" hidden><path d="M6 5h4v14H6zm8 0h4v14h-4z"/></svg>
    </button>
    <div class="podcast-player__timeline">
      <input type="range" min="0" max="1601" value="0" step="1" aria-label="Seek in episode" aria-valuetext="0:00" disabled>
      <div class="podcast-player__times"><span data-elapsed>0:00</span><span data-duration>26:41</span></div>
    </div>
    <button class="podcast-player__speed" type="button" aria-label="Playback speed: 1 times">1×</button>
  </div>
  <p class="podcast-player__status" role="status" hidden></p>
</section>
<script defer src="/js/podcast-player.min.379bb1cdb57ca7601748d220f8a97600106354253b2c79582e767595ccb8ea5e.js" integrity="sha256-N5uxzbV8p2AXSNIg&#43;Kl2ABBjVCU7LHlYLnZ1lcy46l4="></script>



---

## Frequently Asked Questions


### How can I turn my reading list into a personal AI podcast?

Research agents read a chosen set of links, group the themes, and look for related and unexpected sources. They develop one question into a script, which ElevenLabs narrates in short sections. The audio is assembled and checked against the script.


### How do I save links with an iOS Shortcut?

An iOS Shortcut sends a URL and short description to a Cloudflare Worker. D1 stores the entry, and a public page lists the saved links by date.


### Which ElevenLabs voice narrates this podcast?

The podcast uses the Christopher voice with ElevenLabs v4. The episode discloses synthetic narration, and the production workflow includes pronunciation and listening checks.



---

Canonical: https://philippdubach.com/posts/saved-links-to-personal-podcast/
This file is the canonical machine-readable variant of https://philippdubach.com/posts/saved-links-to-personal-podcast/. Author: Philipp D. Dubach (https://philippdubach.com/).
