# Castarr **Live-TV auf dem Fernseher, eingerichtet in einer Minute — alles läuft übers Handy.** Castarr ist eine App für Google TV / Android TV. Auf dem Fernseher muss nie etwas getippt werden: Zum Einrichten scannt man einmal einen QR-Code mit dem Handy, meldet sich dort an — fertig. Danach zappt man mit der normalen TV-Fernbedienung oder steuert alles bequem vom Handy aus. | Senderliste | Player | | --- | --- | | ![Senderliste](docs/screenshots/senderliste.png) | ![Player](docs/screenshots/player.png) | | Nummerntasten | Einrichtung | | --- | --- | | ![Nummerntasten](docs/screenshots/nummerntasten.png) | ![Willkommens-Bildschirm](docs/screenshots/willkommen.png) | ## Was die App kann - **Senderliste mit Logos und Programm** — was gerade läuft, wie lange noch, was danach kommt. Gruppen und Favoriten links, Sender rechts. - **Zappen wie früher** — Nummerntasten auf der Fernbedienung schalten direkt um (mit großer Anzeige, welcher Sender gleich kommt), hoch/runter blättert durch die Sender. - **Aufgeräumter Player** — OK-Taste zeigt Sendung, Zeiten und Fortschritt, dazu Pause/Stopp-Buttons und Tonspur-Wahl, wenn der Sender mehrere hat. Blendet sich von selbst wieder aus. - **Handy als Fernbedienung** — QR-Code in den Einstellungen scannen, schon hat man Senderliste, Suche, Lautstärke und Favoriten im Handy-Browser. Keine App-Installation nötig. - **Favoriten** — OK auf einem Sender gedrückt halten, Stern gesetzt. Die Favoriten gelten pro Person und sind auf jedem Gerät dieselben. - **Updates aus der App heraus** — unter Einstellungen → App genügt ein Klick, wenn eine neue Version bereitsteht. ## Installation auf dem Fernseher 1. Auf dem Google TV die App **Downloader** installieren (oder einen anderen Weg nutzen, eine APK-Datei zu öffnen). 2. Diese Adresse eingeben: `git.beckm4nn.net/benjamin/castarr/raw/branch/apk/castarr.apk` 3. Installation bestätigen („Unbekannte Quellen" für Downloader erlauben, wenn der Fernseher fragt). 4. Castarr starten und den drei Schritten auf dem Bildschirm folgen: QR-Code scannen, auf dem Handy Server angeben und anmelden — den Rest macht der Fernseher. Danach hält sich die App über den eingebauten Updater selbst aktuell. --- ## Für Technikinteressierte Native Kotlin-App (Jetpack Compose for TV, Media3/ExoPlayer für HLS und MPEG-TS). Als Backend dient ein [Dispatcharr](https://github.com/be-nj/Dispatcharr)-Fork mit OIDC-Unterstützung: Anmeldung per Device Authorization Grant (der Fernseher zeigt QR + Code, bestätigt wird am Handy beim Identity Provider), API-Zugriff per Bearer-Token, Favoriten und Ausgabeprofile pro Nutzer. Ohne Dispatcharr funktioniert auch jede M3U-Playlist (+ optionales XMLTV) als generische Quelle — ErsatzTV, Threadfin, Tunarr, einfache Playlists. Die Handy-Fernbedienung serviert der Fernseher selbst (eingebetteter HTTP/WebSocket-Server, Kopplung per QR-Token mit ratenlimitiertem Zahlencode als Fallback). Physische Mediatasten und Google Assistant funktionieren über eine Media3 MediaSession. ### Selbst bauen JDK 17+ und Android SDK (Platform 35) erforderlich; eine passende JDK-Toolchain wird automatisch aufgelöst (foojay). ``` ./gradlew assembleDebug # Debug-APK ./gradlew assembleRelease # signiert, wenn CASTARR_STORE_*-Env gesetzt ist ``` APK-Ausgabe: `app/build/outputs/apk//`. Die Releases hier im Repo sind signiert; über einem Debug-Build muss einmal deinstalliert werden (Signaturwechsel). Updates bezieht die App über die Release-API dieses Repos, die APK selbst liegt auf dem Branch `apk`. Architektur-Notizen: [CONTEXT.md](CONTEXT.md) und [docs/adr/](docs/adr/).