Füge Cron-Version des SERMAN RSS Feed Generators hinzu, einschließlich automatischem Setup, Logging und Quiet-Mode-Unterstützung. Entferne das Setup-Script und aktualisiere die README.md für bessere Benutzeranleitung.
This commit is contained in:
229
README.md
229
README.md
@ -1,113 +1,188 @@
|
||||
# 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 das `_audio/` Verzeichnis nach MP3-Dateien
|
||||
- 📱 Erstellt Podcast-kompatible RSS-Feeds
|
||||
- 🏷️ Liest ID3-Tags automatisch aus MP3-Dateien
|
||||
- 🌐 Integrierter HTTP-Server zum Hosten der Dateien
|
||||
- ⚡ Einfache Bedienung über Kommandozeile
|
||||
- 🎵 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
|
||||
|
||||
1. Abhängigkeiten installieren:
|
||||
```bash
|
||||
# Dependencies installieren
|
||||
uv sync
|
||||
|
||||
# MP3-Dateien in das _audio/ Verzeichnis legen
|
||||
mkdir -p _audio
|
||||
# Kopiere deine MP3-Dateien nach _audio/
|
||||
```
|
||||
|
||||
2. MP3-Dateien in das `_audio/` Verzeichnis legen
|
||||
|
||||
## Verwendung
|
||||
|
||||
### Einfache Nutzung
|
||||
## 🛠️ Parameter
|
||||
|
||||
```bash
|
||||
uv run python main.py
|
||||
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
|
||||
```
|
||||
|
||||
### Mit HTTP-Server
|
||||
## ⏰ 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
|
||||
uv run python main.py --serve
|
||||
# Crontab bearbeiten
|
||||
crontab -e
|
||||
|
||||
# Beispiel: Stündliche Aktualisierung
|
||||
0 * * * * /pfad/zum/script/run_rss_generator.sh >/dev/null 2>&1
|
||||
```
|
||||
|
||||
### Erweiterte Optionen
|
||||
**Weitere Cron-Beispiele:**
|
||||
- `*/15 * * * *` - Alle 15 Minuten
|
||||
- `0 */6 * * *` - Alle 6 Stunden
|
||||
- `0 6 * * *` - Täglich um 6:00 Uhr
|
||||
|
||||
```bash
|
||||
uv run python main.py --audio-dir _audio --output my_podcast.xml --base-url https://meinserver.de --serve --port 8080
|
||||
```
|
||||
|
||||
## Parameter
|
||||
|
||||
- `--audio-dir`: Verzeichnis mit MP3-Dateien (Standard: `_audio`)
|
||||
- `--output`: Name der RSS-Feed-Datei (Standard: `serman_podcast.xml`)
|
||||
- `--base-url`: Basis-URL für Audio-Links (Standard: `http://localhost:8000`)
|
||||
- `--serve`: Startet automatisch einen HTTP-Server
|
||||
- `--port`: Port für den HTTP-Server (Standard: 8000)
|
||||
|
||||
## RSS-Feed URLs
|
||||
|
||||
Nach dem Start des Servers ist der Feed verfügbar unter:
|
||||
- **Lokal**: http://localhost:8000/serman_podcast.xml
|
||||
- **Mit eigener Basis-URL**: [DEINE_URL]/serman_podcast.xml
|
||||
|
||||
## Podcast-App Integration
|
||||
|
||||
1. RSS-Feed generieren und Server starten
|
||||
2. RSS-URL in Podcast-App hinzufügen
|
||||
3. Neue MP3-Dateien im `_audio/` Verzeichnis ablegen
|
||||
4. Feed neu generieren für Updates
|
||||
|
||||
## Dateiformat
|
||||
|
||||
Das Tool liest automatisch folgende ID3-Tags:
|
||||
- **TIT2**: Titel (Fallback: Dateiname)
|
||||
- **TPE1**: Künstler (Fallback: "SERMAN")
|
||||
- **TALB**: Album (optional)
|
||||
- **Dauer**: Automatisch erkannt
|
||||
|
||||
## Verzeichnisstruktur
|
||||
## 📁 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
|
||||
│ └── README.md
|
||||
├── main.py # Hauptprogramm
|
||||
├── local_podcast_generator.py # RSS-Generator
|
||||
├── serman_podcast.xml # Generierter RSS-Feed
|
||||
└── requirements.txt # Python-Abhängigkeiten
|
||||
│ └── cover_mix1.jpg # Auto-extrahierte Cover
|
||||
└── requirements.txt
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
Für produktive Nutzung:
|
||||
|
||||
1. **Server bereitstellen** (z.B. VPS, Cloud-Instance)
|
||||
2. **Dateien hochladen** und Dependencies installieren
|
||||
3. **Permanenten Webserver** konfigurieren (nginx, Apache)
|
||||
4. **RSS-Feed URL** an Hörer verteilen
|
||||
|
||||
## Automatisierung
|
||||
|
||||
Für automatische Updates bei neuen MP3-Dateien:
|
||||
## 🌐 Webserver-Integration
|
||||
|
||||
```bash
|
||||
# Beispiel-Script für cron job
|
||||
#!/bin/bash
|
||||
cd /pfad/zu/rss-feeder
|
||||
uv run python main.py --base-url https://meinserver.de/podcast
|
||||
# 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)
|
||||
|
||||
---
|
||||
|
||||
## Legacy: Mixcloud-Version
|
||||
|
||||
Die ursprünglichen Mixcloud-Skripte sind noch vorhanden:
|
||||
- `mixcloud_rss_pro.py` - Mixcloud RSS mit Audio-Extraktion
|
||||
- `mixcloud_rss.py` - Einfache Mixcloud RSS-Generierung
|
||||
|
||||
Siehe Git-Historie für die ursprüngliche Mixcloud-basierte README.
|
||||
**💡 Empfehlung:** Für Produktiveinsatz stündliche Cron-Jobs verwenden.
|
||||
|
Reference in New Issue
Block a user