# xStream Downloader Web-basierter Downloader für Streaming-Seiten. Aus xStream (Kodi Addon) extrahiert und als eigenständiger Python-Server lauffähig gemacht. ## Quick Start ```bash cd xstreamDownloader python3 app.py # → http://localhost:8765 ``` ## Features - **18 Streaming-Sites**: AnimeToast, AniWorld, BurningSeries, FilmPalast, HD Filme, KinoGer, KKiste, Megakino, NetzKino, SerienStream, Streamcloud, u.a. - **Web-Interface**: Sidebar mit Sites, Grid-Ansicht für Filme/Serien, Hoster-Auswahl, Download-Liste - **Download-Manager**: Parallele Downloads mit Fortschrittsanzeige - **Site-spezifische Cookies**: AniWorld, FHDFilme, HDFilme ## Architektur ``` xstreamDownloader/ ├── app.py # Flask-Server (API + Web-Interface, XBMC-konformer Wrapper) ├── web/index.html # Single-Page Frontend (Vanilla JS) ├── xstream/ │ ├── sites/ # Site-Plugins (eines pro Streaming-Seite) │ └── resources/lib/ # xStream Core (GUI, Player, Handler) ├── deps/ # Abhängigkeiten (resolveurl, requests, six, kodi_six, pyaes) ├── cookies/ # Session-Cookies für authentifizierte Sites └── downloads/ # Heruntergeladene Dateien ``` ## API Endpoints | Endpoint | Beschreibung | |----------|--------------| | `GET /api/sites` | Liste aller Sites | | `GET /api/sites//entries` | Einträge einer Site | | `GET /api/sites//search?q=...` | Suche auf einer Site | | `GET /api/sites//hosters?url=...` | Hoster für einen Eintrag | | `GET /api/resolve?url=...` | URL auflösen | | `POST /api/download?url=...&title=...` | Download starten | | `GET /api/downloads` | Download-Status | | `GET /api/downloads//file` | Download-Datei herunterladen | ## Tech Stack - **Backend**: Python 3, Flask, Multiprocessing - **Frontend**: Vanilla JS, CSS Grid - **Scraping**: xstream Core (aus Kodi Addon extrahiert) - **XBMC-Wrapper**: Mock-Module für xbmc/xbmcgui/xbmcplugin/xbmcvfs/xbmcaddon