podcastrr/README.md
2025-06-16 22:55:39 -07:00

91 lines
2.2 KiB
Markdown

# 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
1. Clone the repository:
```
git clone https://github.com/yourusername/podcastrr.git
cd podcastrr
```
2. Create and activate a virtual environment:
```
python -m venv .venv
# On Windows
.venv\Scripts\activate
# On macOS/Linux
source .venv/bin/activate
```
3. Install dependencies:
```
pip install -r requirements.txt
```
4. 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
```
5. Initialize the database:
```
python init_db.py
```
This will create the database and run all necessary migrations.
6. 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](MIGRATION_GUIDE.md) for more details.
## Usage
Run the application:
```
python main.py
```
Then open your browser and navigate to `http://localhost:5000`.
## Development
1. Install development dependencies:
```
pip install -r requirements-dev.txt
```
2. Run tests:
```
pytest
```
3. Format code:
```
black .
```