Files
serman-rss-wrapper-mixcloud/CRON_README.md

4.6 KiB

SERMAN RSS Feed Generator - Cron-Version

Automatischer RSS-Feed-Generator für Podcast-Apps, optimiert für Cron-Jobs.

🚀 Schnellstart für Cron-Jobs

1. Automatisches Setup

./cron_setup.sh

Das Setup-Script:

  • Testet die Python-Umgebung
  • Erstellt Wrapper-Scripts für Cron
  • Bietet automatische Cron-Installation
  • Konfiguriert Log-Rotation

2. Manueller Aufruf (ohne Cron)

# Standard-Ausführung
python main.py

# Mit benutzerdefinierten Parametern
python main.py --audio-dir "/pfad/zu/mp3s" --output "mein_podcast.xml"

# Stille Ausführung (für Cron)
python main.py --quiet

Cron-Konfiguration

Häufige Cron-Intervalle

# Alle 15 Minuten
*/15 * * * * /pfad/zum/script/run_rss_generator.sh >/dev/null 2>&1

# Jede Stunde (empfohlen)
0 * * * * /pfad/zum/script/run_rss_generator.sh >/dev/null 2>&1

# Alle 6 Stunden
0 */6 * * * /pfad/zum/script/run_rss_generator.sh >/dev/null 2>&1

# Täglich um 6:00 Uhr
0 6 * * * /pfad/zum/script/run_rss_generator.sh >/dev/null 2>&1

Cron-Installation

  1. Crontab öffnen:

    crontab -e
    
  2. Zeile hinzufügen (z.B. stündlich):

    0 * * * * /Users/manuel/dev/serman/rss-feeder/run_rss_generator.sh >/dev/null 2>&1
    
  3. Speichern und beenden (meist Ctrl+X, dann Y, dann Enter)

📋 Logging und Monitoring

Log-Datei anzeigen

# Aktuelle Logs anzeigen
tail -f rss_generator.log

# Letzte 50 Zeilen
tail -n 50 rss_generator.log

# Log-Datei komplett anzeigen
cat rss_generator.log

Log-Rotation

Das System rotiert die Logs automatisch (behält nur die letzten 100 Zeilen).

🛠️ Kommandozeilen-Parameter

python main.py [OPTIONEN]

Optionen:
  -a, --audio-dir PATH     Verzeichnis mit MP3-Dateien
                          (Standard: ../httpdocs/_audio)
  
  -o, --output DATEI       Ausgabedatei für RSS-Feed
                          (Standard: serman_podcast.xml)
  
  -u, --base-url URL       Basis-URL für Audio-Dateien
                          (Standard: https://www.serman.club)
  
  -t, --title TITEL        Titel des Podcasts
                          (Standard: "SERMAN - Organic House Podcast")
  
  --author AUTOR           Autor des Podcasts
                          (Standard: "SERMAN")
  
  -q, --quiet              Unterdrückt Ausgaben (für Cron-Jobs)
  
  -h, --help               Zeigt diese Hilfe an

📁 Verzeichnisstruktur

rss-feeder/
├── main.py                    # Haupt-Script (ohne Server)
├── local_podcast_generator.py # Generator-Klasse
├── cron_setup.sh             # Automatisches Cron-Setup
├── run_rss_generator.sh      # Cron-Wrapper (wird erstellt)
├── rotate_logs.sh            # Log-Rotation (wird erstellt)
├── rss_generator.log         # Log-Datei (wird erstellt)
├── serman_podcast.xml        # Generierter RSS-Feed
└── _audio/                   # MP3-Dateien
    ├── track1.mp3
    ├── track2.mp3
    └── cover_track1.jpg      # Automatisch extrahierte Cover

🔧 Troubleshooting

Cron-Job läuft nicht

  1. Pfade prüfen:

    which python3
    # Oder
    which uv
    
  2. Script manuell testen:

    ./run_rss_generator.sh
    
  3. Log-Datei prüfen:

    tail -f rss_generator.log
    

Keine MP3-Dateien gefunden

  • Prüfe ob das Audio-Verzeichnis existiert
  • Prüfe Dateiberechtigungen
  • Verwende absolute Pfade in der Cron-Konfiguration

Dependencies fehlen

# Mit UV (empfohlen)
uv sync

# Oder mit pip
pip install -r requirements.txt

🎵 Audio-Format-Unterstützung

  • Unterstützt: MP3-Dateien (.mp3)
  • Cover-Art: Automatische Extraktion aus ID3-Tags
  • Metadaten: Titel, Künstler, Album, Dauer aus ID3-Tags

🌐 Webserver-Integration

Der RSS-Feed kann direkt auf einen Webserver kopiert werden:

# Manuelle Kopie
cp serman_podcast.xml /var/www/html/

# Automatisch im Wrapper-Script (wenn httpdocs existiert)
# Der Feed wird automatisch nach ../httpdocs/ kopiert

📱 Podcast-App-Kompatibilität

Optimiert für:

  • Apple Podcasts
  • Spotify
  • Google Podcasts
  • Overcast
  • Pocket Casts
  • Alle RSS-2.0-kompatiblen Apps

🔄 Aktualisierungsverhalten

  • Neue MP3-Dateien: Werden automatisch erkannt und hinzugefügt
  • Metadaten-Änderungen: Werden bei der nächsten Ausführung übernommen
  • Cover-Art: Wird einmalig extrahiert und wiederverwendet
  • Sortierung: Neueste Dateien erscheinen zuerst (nach Änderungsdatum)

💡 Tipp: Für die beste Performance empfiehlt sich eine stündliche Aktualisierung via Cron-Job.