Skip to main content

CLI tool for downloading and transcribing podcasts.

Project description

PodGrab

A command-line tool for downloading podcast episodes and generating transcriptions using OpenAI's Whisper model.

Features

  • 🔍 Search podcasts using the iTunes Search API
  • ⬇️ Download individual podcast episodes
  • 🎯 Interactive episode selection for ambiguous matches
  • 📝 Transcribe audio files using OpenAI's Whisper model
  • 📊 Progress bar for downloads
  • 📋 Support for different Whisper model sizes (tiny to large)
  • 🔄 Non-interactive mode for automation

Installation

From PyPI (Recommended)

pip install podgrab

From Source (For Development)

  1. Make sure you have Python 3.11 or later installed
  2. Install Poetry if you haven't already:
    pip install poetry
    
  3. Clone this repository and install dependencies:
    git clone https://github.com/username/podgrab.git
    cd podgrab
    poetry install
    

Usage

Downloading Podcasts

Basic usage to download a podcast episode:

podgrab download "Podcast Name" "Episode Title"

Options:

  • --output/-o: Specify output directory (default: current directory)
  • --non-interactive: Run without interactive prompts
  • --verbose/-v: Enable verbose output
  • --quiet/-q: Suppress non-error messages

Example:

podgrab download "The Daily" "Today's Episode" -o ~/Downloads

Transcribing Audio

Transcribe a downloaded podcast episode:

podgrab transcribe path/to/audio/file.mp3

Options:

  • --model/-m: Specify Whisper model size (tiny, base, small, medium, large)
  • --output/-o: Save transcription to file (default: print to console)

Example:

podgrab transcribe podcast.mp3 -m medium -o transcript.txt

Requirements

  • Python 3.11+
  • Required Python packages (automatically installed):
    • typer
    • requests
    • feedparser
    • rich
    • tqdm
    • openai-whisper
    • torch
    • torchvision
    • torchaudio

Development

  1. Set up the development environment:

    poetry install
    
  2. Run tests:

    poetry run pytest
    

Contributing

  1. Fork the repository
  2. Create a new branch for your feature
  3. Make your changes
  4. Add or update tests as needed
  5. Submit a pull request

License

This project is licensed under the MIT License.

Acknowledgments

  • Uses the OpenAI Whisper model for transcription
  • Built with Typer for the CLI interface
  • Uses the iTunes Search API for podcast discovery

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

podgrab-0.1.3.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

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

podgrab-0.1.3-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file podgrab-0.1.3.tar.gz.

File metadata

  • Download URL: podgrab-0.1.3.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Darwin/24.0.0

File hashes

Hashes for podgrab-0.1.3.tar.gz
Algorithm Hash digest
SHA256 879ec0c337a8d27cad932fad3007f200f2b1f0d965fe0ab748b377e9fa995def
MD5 63534e5fdf06dce3088c39074c0c6e76
BLAKE2b-256 c9f0c708aa65b8f31c21d09e475187d101b31a2b1011f260e63ad69e52ab692e

See more details on using hashes here.

File details

Details for the file podgrab-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: podgrab-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Darwin/24.0.0

File hashes

Hashes for podgrab-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1a5ec7dba61ceecd7a61e27e983d0d05cc8fe02d63bcabc7c7ffc16de12d4e3c
MD5 304004dfd4d5fbf3e7bc0d4a5388407e
BLAKE2b-256 92e0f1147989d07da9c90c550dffabcba521f7b9adce60a1a11bf3dec6e1688a

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