Skip to main content

Podscript

Podcast → Transcript!

Transcribe any podcast episode or YouTube video from the command line. Generates clean markdown with speaker diarization and timestamps. Works with the ElevenLabs API or fully locally using Whisper - no API key required.

Podscript - Podcast to Transcript

Installation

# Local transcription (free, no API key needed)
pip install podscript[local]

# Or use ElevenLabs API
pip install podscript
podscript --setup  # paste your ElevenLabs API key

For local mode, just add --local to any command. For ElevenLabs, you'll need an API key.

For YouTube support, also install yt-dlp and ffmpeg.

Usage

# Transcribe a podcast from an Apple Podcasts link
podscript "https://podcasts.apple.com/us/podcast/huberman-lab/id1545953110?i=1000690"

# Transcribe a YouTube video
podscript "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

# Use an RSS feed directly
podscript https://feeds.simplecast.com/JGE3yC0V

# Browse episodes first
podscript https://feeds.simplecast.com/JGE3yC0V --list

# Search for a specific episode
podscript https://feeds.simplecast.com/JGE3yC0V --search "AI"

# Pick episode #3 from the list
podscript https://feeds.simplecast.com/JGE3yC0V --episode 3

# Custom output filename
podscript https://feeds.simplecast.com/JGE3yC0V --latest --output transcript.md

Without any flags, the default behavior is to transcribe the most recent episode.

Output

Generates a markdown file with speaker labels and timestamps:

# The Economics of Carbon Removal

**Podcast:** a16z Podcast
**Date:** 2/10/2026
**Duration:** 1:04:23

---

## Speaker 1
[0:00] Welcome back to the show. Today we're talking about...

## Speaker 2
[0:15] Thanks for having me. So the key challenge with carbon removal is...

## Speaker 1
[2:41] That's fascinating. How does the economics actually work at scale?

Local Transcription

You can transcribe entirely offline using a local Whisper model — no API key required:

pip install podscript[local]

This installs faster-whisper, pyannote.audio, and torch.

Usage

# Basic local transcription (uses "base" model, no speaker diarization)
podscript "https://www.youtube.com/watch?v=..." --local

# Use a larger model for better accuracy
podscript "https://www.youtube.com/watch?v=..." --local --model medium

# Enable speaker diarization with a HuggingFace token
podscript "https://feeds.example.com/rss" --local --hf-token hf_xxxxx

# Or set the token as an environment variable once
export HF_TOKEN=hf_xxxxx
podscript "https://feeds.example.com/rss" --local

Model Sizes

Model Speed Quality VRAM
tiny Fastest Lower ~1 GB
base Fast Good (default) ~1 GB
small Moderate Better ~2 GB
medium Slower Great ~5 GB
large-v2 Slowest Best ~10 GB
large-v3 Slowest Best ~10 GB

CPU mode uses int8 quantization automatically. GPU (CUDA) uses float16.

Speaker Diarization

Speaker diarization (identifying who said what) requires a free HuggingFace token:

  1. Create an account at huggingface.co
  2. Accept the terms for pyannote/speaker-diarization-3.1
  3. Create a token at huggingface.co/settings/tokens
  4. Pass it via --hf-token or set HF_TOKEN in your environment

Without a token, all speech is attributed to "Speaker 1" — still useful for single-speaker content.

License

MIT

Metadata

Release files for podscript 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for podscript 0.2.0
File Size Uploaded
podscript-0.2.0.tar.gz 13.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for podscript 0.2.0
File Interpreter ABI Platform
podscript-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 26.9 kB

Release files / podscript-0.2.0.tar.gz

Download URL podscript-0.2.0.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
43202f41e9ce275a9817b12726fc9a4f071573a7ba61f4019e3fdd0e4ed88b04
BLAKE2b-256 checksum
How to use checksums
f6b940f9e28ffdf79cc0ffd8c787d46c1673c66752210d9722f3ed93533709e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.6

Release files / podscript-0.2.0-py3-none-any.whl

Download URL podscript-0.2.0-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4573e05d1b1d3b77aeac74af6909e9dd63280265a89cf8e82327bfa9c9492e2b
BLAKE2b-256 checksum
How to use checksums
700a71cd788b50952561b238f2aec2f4dcb957b413e499195b264556957274ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.6

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page