Skip to main content

CLI tool to transcribe podcasts and YouTube videos into clean markdown with speaker diarization and timestamps

Project description

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

Project details


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.

Supported by

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