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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

podscript-0.2.0.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

podscript-0.2.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file podscript-0.2.0.tar.gz.

File metadata

  • Download URL: podscript-0.2.0.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for podscript-0.2.0.tar.gz
Algorithm Hash digest
SHA256 43202f41e9ce275a9817b12726fc9a4f071573a7ba61f4019e3fdd0e4ed88b04
MD5 b97ee2d233a8aaa094b288a941f64733
BLAKE2b-256 f6b940f9e28ffdf79cc0ffd8c787d46c1673c66752210d9722f3ed93533709e1

See more details on using hashes here.

File details

Details for the file podscript-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: podscript-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for podscript-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4573e05d1b1d3b77aeac74af6909e9dd63280265a89cf8e82327bfa9c9492e2b
MD5 3333690884ebb153e55c91bef9bd9ccb
BLAKE2b-256 700a71cd788b50952561b238f2aec2f4dcb957b413e499195b264556957274ba

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page