← All tools Glanceable podcast View docs

Turn YouTube videos and web articles into podcast episodes you can glance at, with pictures as chapter artwork, in your own private podcast feed. Videos keep their audio; articles are read aloud, like a read-it-later service you listen to. Video episodes are based on Alex Chan’s glancecast (original tool).

How it works

This is a Claude Code skill that runs on your Mac. You give Claude a link; it runs a few small scripts and tells you when the episode is in your feed.

Videosyt-dlp downloads the video, ffmpeg takes the audio and a frame every few seconds (or one per slide), and Claude writes show notes from the transcript.
ArticlesThe text and images are extracted, Claude fixes how names and captions will sound, and Kokoro reads it aloud. Each image appears with a soft chime and its caption, in a second voice.
PublishThe MP3, with its pictures as chapter artwork, is uploaded to your Cloudflare R2 bucket and added to a feed at a secret URL.

Claude Code only. It won’t work as a Chat skill on claude.ai: it needs YouTube access from your own network (YouTube blocks most cloud servers), your secret store, ffmpeg and local speech generation. Chapter images show up in podcast apps that display chapter artwork, such as Overcast and Pocket Casts; elsewhere you just get the audio.

1Install the prerequisites

You need Claude Code and Homebrew. Then:

brew install ffmpeg uv deno

uv runs the scripts and installs their Python dependencies automatically. deno is needed by yt-dlp for YouTube. The first article you make downloads the Kokoro voice model (about 350 MB). Articles with maths are rendered with Google Chrome, if it’s installed. If you keep secrets in 1Password, also brew install 1password-cli and turn on Settings → Developer → Integrate with 1Password CLI in the 1Password app.

2Install the skill

Download it into your personal skills folder:

3Create a Cloudflare R2 bucket

R2 stores the episodes and the feed. It doesn’t charge for downloads, and the free tier covers 10 GB, which is roughly 200 hour-long episodes.

  1. In the Cloudflare dashboard → R2, create a bucket, e.g. glanceable-podcast.
  2. In the bucket’s Settings → Public access, enable the r2.dev subdomain (or connect a custom domain). Note the public URL, e.g. https://pub-…r2.dev. Listing is off, so nobody can browse the bucket; files are only reachable by their exact (random) paths.
  3. Under R2 → Manage API tokens, create a token with Object Read & Write permission, restricted to this bucket only. Keep the page open; you need the Access Key ID and Secret Access Key in the next step.
  4. Note your Account ID (shown on the R2 overview page).

4Store the keys

Keep the two R2 keys in a secret store on your Mac. Either way, they never end up in a file, your shell history, or a chat with Claude.

Run each command in Terminal. It asks for the value.

security add-generic-password -s glanceable-podcast -a r2_access_key_id -w
security add-generic-password -s glanceable-podcast -a r2_secret_access_key -w

To replace a key later, add -U before -s. You can see the entries in the Keychain Access app by searching for glanceable-podcast.

5Create your feed

Fill this in to build the setup command. None of these values are secret, and they stay in your browser.

This saves the settings to ~/.config/glanceable-podcast/config.json, creates a random secret token for the feed’s address (saved in your secret store) and publishes an empty feed. Re-run it any time to change the title or artwork. Then check everything is in place:

6Subscribe

Copy the feed URL to your clipboard. It isn’t printed, so it doesn’t end up in your terminal scrollback.

Then paste it into your podcast app. In Overcast: + → Add URL. In Apple Podcasts on the Mac: File → Follow a Show by URL.

The URL is the only thing protecting the feed, so treat it like a password. If it leaks, ask Claude to rotate my glanceable podcast feed; the old URL stops working and you re-subscribe with the new one.

Use it

In Claude Code, just ask:

Make this a glanceable podcast episode: https://www.youtube.com/watch?v=…

Add this talk to my glanceable podcast feed, one picture per slide, and skip the sponsor bits: …

Read this later as a podcast: https://example.substack.com/p/…

What’s in my glanceable podcast feed? Remove the one about …

For a video, Claude chooses frames every few seconds, or one per slide change for talks, writes show notes and chapter timestamps from the transcript, and publishes. An hour-long video takes a couple of minutes and makes a file of about 30–50 MB.

For an article, Claude checks the extracted text, adds pronunciations for names, makes captions read naturally, and writes show notes. A 20-minute article takes about 2 minutes to speak and makes a file of about 12 MB. For paywalled posts, save the page from your browser while signed in and give Claude the .html file.

Without Claude

The scripts work on their own too. Add --help to any of them for its options:

Where your secrets are