Podgrab
Self-hosted podcast manager and downloader.
Overview
Podgrab is a self-hosted podcast management and downloading application developed by Akhil Rex that provides users with complete control over their podcast consumption experience. Built as a lightweight Go application with a clean web interface, Podgrab eliminates the need for third-party podcast services by allowing users to directly subscribe to RSS feeds, automatically download episodes, and organize their podcast library on their own infrastructure. The application supports OPML import/export for easy migration from existing podcast clients and provides automated episode checking at configurable intervals.
This Docker deployment configuration creates a standalone podcast management server that monitors RSS feeds, downloads new episodes automatically, and serves them through a web interface accessible on port 8080. Podgrab handles the entire podcast workflow from subscription management to file organization, storing downloaded episodes in a structured directory format organized by podcast name. The container includes persistent storage for both configuration data and the actual podcast files, ensuring your library remains intact across container restarts.
This setup is perfect for podcast enthusiasts who want to maintain their own podcast archive, families sharing podcast collections across multiple devices, or privacy-conscious users who prefer not to rely on commercial podcast platforms. Content creators and researchers will appreciate having offline access to episodes and the ability to maintain permanent archives of podcasts that might be removed from hosting platforms. The simple deployment makes it accessible to home lab enthusiasts while the reliable automation features suit users managing large podcast collections.
Key Features
- RSS feed subscription management with automatic episode discovery and metadata parsing
- Configurable episode checking frequency with CHECK_FREQUENCY environment variable (default 240 minutes)
- Web-based interface for podcast search, subscription, and library management without authentication barriers
- Automatic episode downloading with organized file structure using podcast names as directories
- OPML import and export functionality for migrating subscriptions from other podcast applications
- Episode metadata extraction including descriptions, publication dates, and artwork
- Built-in podcast search functionality to discover new shows without manual RSS URL entry
- Lightweight Go-based application with minimal resource requirements and fast startup times
Common Use Cases
- 1Personal podcast archiving for offline listening during travel or in areas with poor connectivity
- 2Family podcast servers providing centralized access to educational content and entertainment shows
- 3Content research and journalism workflows requiring permanent archives of podcast episodes
- 4Privacy-focused podcast consumption without tracking from commercial platforms
- 5Small team or organization podcast libraries for training materials and industry content
- 6Home lab media server integration alongside other self-hosted entertainment applications
- 7Backup solution for favorite podcasts that might be removed from hosting platforms
Prerequisites
- Docker and Docker Compose installed with at least 512MB available RAM for the container
- Port 8080 available for the web interface, or ability to modify the port mapping
- Sufficient storage space at /path/to/podcasts location for downloaded episodes (recommend 10GB minimum)
- Network connectivity for RSS feed checking and episode downloading from podcast hosts
- Basic understanding of podcast RSS feeds and OPML files for subscription management
- Web browser for accessing the Podgrab interface and managing subscriptions
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 podgrab: 3 image: akhilrex/podgrab:latest4 container_name: podgrab5 restart: unless-stopped6 ports: 7 - "8080:8080"8 environment: 9 CHECK_FREQUENCY: 24010 volumes: 11 - podgrab_config:/config12 - /path/to/podcasts:/assets1314volumes: 15 podgrab_config: .env Template
.env
1CHECK_FREQUENCY=240Usage Notes
- 1Docs: https://github.com/akhilrex/podgrab
- 2Access at http://localhost:8080 - no authentication by default
- 3Add podcasts via RSS feed URL or search by name
- 4CHECK_FREQUENCY sets how often to check for new episodes (minutes)
- 5Downloads stored at /assets, organize by podcast name
- 6OPML import/export for migrating from other podcast apps
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 podgrab:5 image: akhilrex/podgrab:latest6 container_name: podgrab7 restart: unless-stopped8 ports:9 - "8080:8080"10 environment:11 CHECK_FREQUENCY: 24012 volumes:13 - podgrab_config:/config14 - /path/to/podcasts:/assets1516volumes:17 podgrab_config:18EOF1920# 2. Create the .env file21cat > .env << 'EOF'22CHECK_FREQUENCY=24023EOF2425# 3. Start the services26docker compose up -d2728# 4. View logs29docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/podgrab/run | bashTroubleshooting
- Episodes not downloading automatically: Verify CHECK_FREQUENCY environment variable is set and check container logs for RSS feed parsing errors
- Web interface not accessible: Ensure port 8080 is not blocked by firewall and check if another service is using the port
- Downloaded files not persisting: Verify the /path/to/podcasts volume mount path exists and has proper write permissions
- RSS feeds failing to parse: Check if podcast URLs are valid and accessible, some feeds may require user-agent headers
- OPML import not working: Ensure OPML file format is valid and contains proper RSS feed URLs, not web page links
- Container startup failures: Check available disk space for Docker volumes and verify the akhilrex/podgrab image can be pulled
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download