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:
152
README.md
152
README.md
@ -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.
|
||||
|
Reference in New Issue
Block a user