# 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.