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.2.tar.gz (5.8 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.2-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for podgrab-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8c3eec0bde49b7a051cbaa4e5f89c541f29538769b8181a8d0abd449715525f2
MD5 e540192ecba44028761030195ddb521f
BLAKE2b-256 2f0aed5de2ca70e460024c9006e1d06fcff0ae9272c7f05aef98ceefb6b9373b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for podgrab-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8493991512f3ee511640eb69b43cf65de3c022009c1e0664b56a2ab55ba7b67e
MD5 e2feb0865edcbfc5fb7259762a91eec8
BLAKE2b-256 da43074b4405594783872912fabd608ab71f63d051501cd7c52a2cc6e6fed89b

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