No description
.idea | ||
app | ||
migrations | ||
static/css | ||
templates | ||
.env.example | ||
.gitignore | ||
application.py | ||
init_db.py | ||
main.py | ||
MIGRATION_GUIDE.md | ||
README.md | ||
README_DATABASE_FIX.md | ||
README_DATABASE_FIX_V2.md | ||
README_FIX.md | ||
README_SOLUTION.md | ||
README_SOLUTION_DB_PATH.md | ||
requirements.txt | ||
run_migrations.py | ||
SOLUTION.md | ||
test_migration.py |
Podcastrr
A podcast management application similar to Sonarr but for podcasts, built with Python and Flask.
Features
- Search for Podcasts: Find podcasts from various sources
- Track Podcasts: Monitor your favorite podcasts for new episodes
- Download Management: Automatically download new episodes and manage storage
- Complete Podcast Archive: Download all episodes of a podcast with one click
- Custom Naming: Configure how downloaded files are named
- Tag/Label System: Organize podcasts into groups with tags
- Direct RSS Feed: Add podcasts using direct RSS feed URLs
- OPML Import/Export: Easily import and export podcast subscriptions
- Existing Episode Detection: Prevent re-downloading files if already present
- Web Interface: Manage everything through an intuitive web interface
Requirements
- Python 3.8+
- Dependencies listed in
requirements.txt
Installation
-
Clone the repository:
git clone https://github.com/yourusername/podcastrr.git cd podcastrr
-
Create and activate a virtual environment:
python -m venv .venv # On Windows .venv\Scripts\activate # On macOS/Linux source .venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Create a
.env
file in the root directory with the following variables:FLASK_ENV=development SECRET_KEY=your_secret_key DATABASE_URI=sqlite:///podcastrr.db DOWNLOAD_PATH=/path/to/downloads
-
Initialize the database:
python init_db.py
This will create the database and run all necessary migrations.
-
If you're updating an existing installation and encounter database errors:
python run_migrations.py
This will apply any pending migrations to your database. See the Migration Guide for more details.
Usage
Run the application:
python main.py
Then open your browser and navigate to http://localhost:5000
.
Development
-
Install development dependencies:
pip install -r requirements-dev.txt
-
Run tests:
pytest
-
Format code:
black .