# 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/<id>/entries` | Einträge einer Site |
| `GET /api/sites/<id>/search?q=...` | Suche auf einer Site |
| `GET /api/sites/<id>/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/<id>/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
