xStream Downloader updates

- Streaming-Site Auflösung für vidara.to (m3u8 via API)
- HTML-Erkennung für Streaming-Seiten
- Dateiname beim Speichern ohne Prefix
- Speichern-Button deaktiviert nach Klick
- Farbiger Fortschrittsbalken (grün/gelb/rot)
- Status-Text statt ungenauer Prozentanzeige
- Auto-Refresh Timeout bei View-Wechsel abgebrochen
- HLS Download mit korrekten Headern (Referer, User-Agent)
- Diverse Bugfixes und Verbesserungen
This commit is contained in:
2026-07-07 20:21:10 +02:00
parent 631559f134
commit 52e39ca751
7 changed files with 15054 additions and 2253 deletions
+13 -9
View File
@@ -1,6 +1,6 @@
# xStream Downloader Projektstatus
Stand: 6.7.2026, 22:25
Stand: 7.7.2026, 16:56
## Ziel
Web-Wrapper für das xstream Kodi-Addon, mit dem man Filme suchen, finden
@@ -15,7 +15,7 @@ und herunterladen kann direkt im Browser, ohne Kodi.
```
xstreamDownloader/
├── app.py ← AKTIVER Wrapper-App (XBMC-konform, ~800 Zeilen)
├── app.py ← AKTIVER Wrapper-App (XBMC-konform, ~1150 Zeilen)
├── web/index.html ← Frontend (Sidebar, Search, Grid, Downloads)
├── xstream/sites/ ← 18 Site-Plugins
├── xstream/resources/lib/ ← xstream Core
@@ -31,7 +31,7 @@ xstreamDownloader/
## Was funktioniert
1. **Flask-Server startet** auf http://localhost:8765
1. **Flask-Server startet** auf http://localhost:8770
2. **18 Sites** werden erkannt und geladen
3. **XBMC-Mock-Module** für xbmc, xbmcgui, xbmcplugin, xbmcvfs, xbmcaddon
4. **Subprozess-Worker** mit eigenem sys.argv[1] = '1' (handle)
@@ -49,7 +49,10 @@ xstreamDownloader/
- /api/resolve?url=...
- /api/download?url=...&title=...
- /api/downloads[/ID][/file]
11. **Download-Manager** mit Fortschritt 0-100%
11. **Download-Manager** mit Fortschritt 0-100%, Cancel, Delete
12. **HLS/m3u8 Download** via ffmpeg
13. **HTML-Erkennung** verhindert 16KB HTML-Files als "fertige Downloads"
14. **Streaming-Site Auflösung** vidara.to etc. via API (filecode → m3u8)
## Navigation (Menü → Inhalte)
@@ -76,26 +79,27 @@ Beim Klick auf einen Menüpunkt:
| 11 | Such-API-Mismatch | Frontend: `/search?q=` statt `/entries?search=` | 6.7.2026 |
| 12 | Hoster-API-Mismatch | `?url=` statt `?entryUrl=` | 6.7.2026 |
| 13 | Download-Flow falsch | Resolve → Download → Poll statt `/resolve?download=true` | 6.7.2026 |
| 14 | Port 8769 belegt | Geändert auf Port 8770 | 6.7.2026 |
| 15 | Download 16KB HTML statt Video (VOE etc.) | HTML-Erkennung in _run_direct() | 7.7.2026 |
| 16 | Streaming-Sites liefern HTML statt m3u8 | _resolve_streaming_api() für vidara.to etc. | 7.7.2026 |
## Verbleibende Aufgaben
- [ ] Browser-MCP Debugging (im Browser testen)
- [ ] Hoster-Flow E2E testen (Eintrag → Hosters → Download)
- [ ] Download E2E testen (Resolve → Download → File)
- [ ] Such-Qualität verbessern (manche Sites liefern Haupteinträge statt Suchergebnisse)
- [ ] fix_and_run.sh auf app.py umstellen (bereits erledigt)
- [ ] mini_app.py wurde am 6.7.2026 gelöscht
- [ ] Stream-Button in Suchergebnissen
## Starten
```bash
cd /home/matthiasberner/Schreibtisch/kodi/xstreamDownloader
python3 app.py
# → http://localhost:8765
# → http://localhost:8770
```
## Bekannte Probleme
- Port 8765 kann von Zombie-Prozessen belegt sein → mit `pkill -9 -f "python3 app.py"` beheben
- Port 8770 kann von Zombie-Prozessen belegt sein → mit `pkill -9 -f "python3 app.py"` beheben
- Manche Site-Suchfunktionen geben Haupteinträge statt Suchergebnisse zurück
- Manche Sites (z.B. serienstream A-Z) können 500er Timeout-Fehler werfen