Update dependencies and restructure project files

- Added mutagen, requests, and yt-dlp as dependencies in pyproject.toml and requirements.txt.
- Removed run_generator.py, start_server.py, and test_generator.py as they are no longer needed.
- Introduced setup.sh for initial setup instructions and directory creation.
- Updated uv.lock with new package versions and dependencies.
This commit is contained in:
2025-07-05 19:39:19 +02:00
parent 22c18a2f77
commit 36b62f7136
13 changed files with 627 additions and 928 deletions

152
README.md
View File

@ -1,117 +1,113 @@
# Mixcloud RSS Feed Generator
# SERMAN RSS Feed Generator - Lokale Version
Dieses Python-Script erstellt einen RSS-Feed aus deinen Mixcloud-Tracks, damit du sie über Podcast-Apps abonnieren und anhören kannst.
Ein Python-Tool zum Erstellen von RSS-Feeds aus lokalen MP3-Dateien für Podcast-Apps.
## 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
## Installation
1. Abhängigkeiten installieren:
```bash
uv sync
```
```bash
uv pip install -r requirements.txt
```
2. MP3-Dateien in das `_audio/` Verzeichnis legen
## Verwendung
### RSS-Feed mit echten Audio-URLs erstellen (empfohlen)
### Einfache Nutzung
```bash
uv run python mixcloud_rss_pro.py serman_dj
uv run python main.py
```
Das erstellt eine `mixcloud_feed.xml` Datei mit **echten Audio-Streams**, die in Podcast-Apps abspielbar sind.
### Original-Version (nur Mixcloud-Links)
### Mit HTTP-Server
```bash
python mixcloud_rss.py serman_dj
uv run python main.py --serve
```
### Erweiterte Optionen
```bash
# Feed mit 100 Tracks erstellen (mit Audio-URLs)
uv run python mixcloud_rss_pro.py serman_dj --limit 100
# Feed in spezifische Datei speichern
uv run python mixcloud_rss_pro.py serman_dj --output mein_feed.xml
# Schnellmodus ohne Audio-Extraktion
uv run python mixcloud_rss_pro.py serman_dj --no-audio
# HTTP-Server starten für den Feed
uv run python mixcloud_rss_pro.py serman_dj --serve
# Server-Wrapper verwenden (automatische Updates)
python start_server.py
uv run python main.py --audio-dir _audio --output my_podcast.xml --base-url https://meinserver.de --serve --port 8080
```
### RSS-Feed in Podcast-App hinzufügen
## Parameter
1. **Mit HTTP-Server (empfohlen):**
- Starte den Server: `python mixcloud_rss.py serman_dj --serve`
- Füge diese URL in deiner Podcast-App hinzu: `http://localhost:8000/mixcloud_feed.xml`
- `--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)
2. **Feed-Datei hosten:**
- Lade die generierte XML-Datei auf einen Webserver hoch
- Verwende die öffentliche URL in deiner Podcast-App
## RSS-Feed URLs
## Funktionen
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
- ✅ **Echte Audio-URLs**: Extrahiert direkte Audio-Streams für Podcast-Apps
- ✅ Holt automatisch deine neuesten Mixcloud-Tracks
- ✅ Erstellt RSS-Feed im Podcast-Format
- ✅ Unterstützt iTunes-Tags für bessere Kompatibilität
- ✅ Inkludiert Track-Metadaten (Titel, Beschreibung, Dauer, Tags)
- ✅ Eingebauter HTTP-Server zum Testen
- ✅ Konfigurierbare Anzahl von Tracks
- ✅ Parallele Audio-URL-Extraktion für bessere Performance
## Podcast-App Integration
## Audio-Streaming
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
🎉 **Problem gelöst!** Das neue `mixcloud_rss_pro.py` Script extrahiert echte Audio-URLs, die in Podcast-Apps abspielbar sind:
## Dateiformat
- ✅ Direkte `.m4a` Audio-Streams
- ✅ Korrekte Content-Types für Podcast-Apps
- ✅ Funktioniert mit Apple Podcasts, Spotify, etc.
Das Tool liest automatisch folgende ID3-Tags:
- **TIT2**: Titel (Fallback: Dateiname)
- **TPE1**: Künstler (Fallback: "SERMAN")
- **TALB**: Album (optional)
- **Dauer**: Automatisch erkannt
## Bekannte Einschränkungen
~~**Audio-Streaming:** Mixcloud erlaubt kein direktes Audio-Streaming ohne Autorisierung.~~
**✅ Gelöst:** Mit `yt-dlp` werden jetzt echte Audio-URLs extrahiert!
## Troubleshooting
### "Keine Cloudcasts gefunden"
- Überprüfe den Benutzernamen
- Stelle sicher, dass das Profil öffentlich ist
### RSS-Feed wird nicht in Podcast-App erkannt
- Überprüfe, ob der HTTP-Server läuft
- Teste die URL im Browser: `http://localhost:8000/mixcloud_feed.xml`
- Verwende die Pro-Version: `uv run python mixcloud_rss_pro.py serman_dj`
### Audio wird nicht abgespielt
- ✅ **Gelöst:** Verwende `mixcloud_rss_pro.py` für echte Audio-URLs
- Die Pro-Version extrahiert direkte Audio-Streams
- Dauert länger, aber funktioniert in allen Podcast-Apps
## Beispiel-Ausgabe
## Verzeichnisstruktur
```text
Erstelle RSS-Feed für Mixcloud-User: serman_dj
RSS-Feed erfolgreich erstellt: mixcloud_feed.xml
Anzahl der Episoden: 50
rss-feeder/
├── _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
```
## 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
Du kannst das Script regelmäßig ausführen lassen, um den Feed aktuell zu halten:
Für automatische Updates bei neuen MP3-Dateien:
```bash
# Crontab-Eintrag für tägliche Updates um 6:00 Uhr
0 6 * * * cd /pfad/zu/rss-feeder && python mixcloud_rss.py serman_dj
# Beispiel-Script für cron job
#!/bin/bash
cd /pfad/zu/rss-feeder
uv run python main.py --base-url https://meinserver.de/podcast
```
---
## 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.