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)
- Make sure you have Python 3.11 or later installed
- Install Poetry if you haven't already:
pip install poetry
- 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
-
Set up the development environment:
poetry install -
Run tests:
poetry run pytest
Contributing
- Fork the repository
- Create a new branch for your feature
- Make your changes
- Add or update tests as needed
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c3eec0bde49b7a051cbaa4e5f89c541f29538769b8181a8d0abd449715525f2
|
|
| MD5 |
e540192ecba44028761030195ddb521f
|
|
| BLAKE2b-256 |
2f0aed5de2ca70e460024c9006e1d06fcff0ae9272c7f05aef98ceefb6b9373b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8493991512f3ee511640eb69b43cf65de3c022009c1e0664b56a2ab55ba7b67e
|
|
| MD5 |
e2feb0865edcbfc5fb7259762a91eec8
|
|
| BLAKE2b-256 |
da43074b4405594783872912fabd608ab71f63d051501cd7c52a2cc6e6fed89b
|