Files

189 lines
4.3 KiB
Markdown

# SERMAN RSS Feed Generator - Lokale Version
Ein Python-Tool zum Erstellen von RSS-Feeds aus lokalen MP3-Dateien für Podcast-Apps.
**Optimiert für Cron-Jobs und automatische Aktualisierungen.**
## 🚀 Schnellstart
### Für Cron-Jobs (empfohlen)
```bash
# Automatisches Setup
./cron_setup.sh
# Oder manuell
uv run python main.py --quiet
```
### Für manuelle Nutzung
```bash
# Einfache Generierung
uv run python main.py
# Mit eigenen Parametern
uv run python main.py --audio-dir /pfad/zu/mp3s --title "Mein Podcast"
```
## Features
- 🎵 Scannt automatisch nach MP3-Dateien
- 📱 Erstellt Podcast-kompatible RSS-Feeds (Apple Podcasts, Spotify, etc.)
- 🏷️ Liest ID3-Tags und Cover-Art aus MP3-Dateien
-**Optimiert für Cron-Jobs** (quiet-Mode, keine Server-Abhängigkeiten)
- 🔄 Automatische Cover-Extraktion und -Optimierung
- 📊 Vollständige iTunes-Podcast-Kompatibilität
## Installation
```bash
# Dependencies installieren
uv sync
# MP3-Dateien in das _audio/ Verzeichnis legen
mkdir -p _audio
# Kopiere deine MP3-Dateien nach _audio/
```
## 🛠️ Parameter
```bash
uv run python main.py [OPTIONEN]
Optionen:
-a, --audio-dir PATH MP3-Verzeichnis (Standard: _audio)
-o, --output DATEI RSS-Datei (Standard: serman_podcast.xml)
-u, --base-url URL Basis-URL (Standard: https://www.serman.club)
-t, --title TITEL Podcast-Titel
--author AUTOR Podcast-Autor (Standard: SERMAN)
-q, --quiet Stille Ausgabe (für Cron-Jobs)
-h, --help Hilfe anzeigen
```
## ⏰ Cron-Job Setup
### Automatisches Setup
```bash
./cron_setup.sh
```
Das Setup erstellt:
- ✅ Cron-Wrapper-Script (`run_rss_generator.sh`)
- ✅ Log-Rotation (`rotate_logs.sh`)
- ✅ Automatische Cron-Installation (optional)
### Manuelle Cron-Konfiguration
```bash
# Crontab bearbeiten
crontab -e
# Beispiel: Stündliche Aktualisierung
0 * * * * /pfad/zum/script/run_rss_generator.sh >/dev/null 2>&1
```
**Weitere Cron-Beispiele:**
- `*/15 * * * *` - Alle 15 Minuten
- `0 */6 * * *` - Alle 6 Stunden
- `0 6 * * *` - Täglich um 6:00 Uhr
## 📁 Verzeichnisstruktur
```text
rss-feeder/
├── main.py # Haupt-Script (Cron-optimiert)
├── local_podcast_generator.py # RSS-Generator-Klasse
├── cron_setup.sh # Automatisches Cron-Setup
├── run_rss_generator.sh # Cron-Wrapper (auto-generiert)
├── rss_generator.log # Log-Datei (auto-generiert)
├── serman_podcast.xml # RSS-Feed (auto-generiert)
├── _audio/ # MP3-Dateien hier ablegen
│ ├── mix1.mp3
│ ├── mix2.mp3
│ └── cover_mix1.jpg # Auto-extrahierte Cover
└── requirements.txt
```
## 🌐 Webserver-Integration
```bash
# RSS-Feed zu Webserver kopieren
cp serman_podcast.xml /var/www/html/
# Mit nginx/Apache bereitstellen
# URL: https://deinserver.de/serman_podcast.xml
```
## 📱 Podcast-App-Kompatibilität
Getestet mit:
- ✅ Apple Podcasts
- ✅ Spotify
- ✅ Google Podcasts
- ✅ Overcast
- ✅ Pocket Casts
- ✅ Alle RSS-2.0-Apps
## 🎵 Audio-Features
- **Format**: MP3-Dateien (.mp3)
- **Metadaten**: Automatische ID3-Tag-Erkennung
- **Cover-Art**: Automatische Extraktion und Optimierung für Apple Podcasts
- **Sortierung**: Neueste Dateien zuerst (nach Änderungsdatum)
## 📋 Logging und Monitoring
```bash
# Live-Log anzeigen
tail -f rss_generator.log
# Letzte Einträge
tail -n 50 rss_generator.log
# Cron-Job Status prüfen
crontab -l
```
## 🔧 Troubleshooting
### Script läuft nicht
```bash
# Dependencies prüfen
uv sync
# Manual testen
uv run python main.py
# Pfade prüfen
which uv
which python3
```
### Cron-Job läuft nicht
```bash
# Wrapper-Script testen
./run_rss_generator.sh
# Log prüfen
tail -f rss_generator.log
# Crontab prüfen
crontab -l
```
## 📚 Dokumentation
- **[CRON_README.md](CRON_README.md)** - Detaillierte Cron-Anleitung
- **[demo.sh](demo.sh)** - Funktions-Demo ausführen
## 🔄 Migration von Server-Version
Wenn du die alte Server-Version verwendet hast:
1. **Stoppe den alten Server**
2. **Installiere Cron-Version:** `./cron_setup.sh`
3. **Teste:** `uv run python main.py --quiet`
4. **RSS-URL bleibt gleich** (nur Generation ändert sich)
---
**💡 Empfehlung:** Für Produktiveinsatz stündliche Cron-Jobs verwenden.