docs: README reflects the actual feature set

This commit is contained in:
be-nj
2026-08-25 01:48:48 +02:00
parent 0cf22204d3
commit b9195e8658

View File

@@ -1,21 +1,49 @@
# Castarr # Castarr
Native Google TV client for a [Dispatcharr](https://github.com/be-nj/Dispatcharr) Native Google TV client for a [Dispatcharr](https://github.com/be-nj/Dispatcharr)
backend: live IPTV with a full D-pad UI, login via OIDC device flow backend: live IPTV with a full D-pad UI (Compose for TV), login via the OIDC
(Authentik), per-user favorites, and an optional phone remote paired by QR device flow (Authentik), per-user favorites, per-stream output profiles, and
code (served by the TV itself, no phone app install). an optional phone remote paired by QR code served by the TV itself, no phone
app install.
Status: bootstrap. The code base was imported from the NodeCast prototype ## Features
(phone-remote-first, M3U standalone) and is being reshaped per the decisions
in [CONTEXT.md](CONTEXT.md) and [docs/adr/](docs/adr/) — see the issue tracker - **Live TV** channel list with Now/Next EPG and progress, zapping via
for the phase-1 slices. channel/D-pad keys, fullscreen playback (ExoPlayer, HLS + MPEG-TS) with a
minimal auto-hiding overlay
- **Login without typing**: the TV shows a QR code and a user code; confirm on
your phone at your identity provider (OIDC device authorization grant). The
only thing entered on the TV is the Dispatcharr URL.
- **Dispatcharr source**: channels, groups and EPG via the fork's
Bearer-authenticated API; favorites are stored per user on the backend
(long-press a channel to star it, filter chip in the list)
- **Stream profiles**: pick Standard / Passthrough / audiofix / 720p (list
comes from the backend) — applied per stream request
- **Generic source fallback**: any M3U (+ optional XMLTV) URL works without a
login — ErsatzTV, Threadfin, Tunarr, plain playlists
- **Phone remote** (optional): scan the QR under Einstellungen; play/pause,
zapping, volume, channel list with Now/Next and favorite toggling in the
browser — no app install, rate-limited pairing code as fallback
- Physical remote keys and Google Assistant keep working (Media3
MediaSession, TV app quality guidelines TV-PC/TV-PP/TV-VC)
## Building ## Building
Requires JDK 17+ and the Android SDK (platform 35). Requires JDK 17+ and the Android SDK (platform 35). A JDK toolchain is
resolved automatically (foojay) if the host only has a JRE.
``` ```
./gradlew assembleDebug ./gradlew assembleDebug # debug APK
./gradlew assembleRelease # signed when CASTARR_STORE_* env vars are set
``` ```
APK output: `app/build/outputs/apk/debug/app-debug.apk`. APK output: `app/build/outputs/apk/<variant>/`. Releases on the
[releases page](https://github.com/be-nj/castarr/releases) are signed; install
over an existing debug build requires uninstalling first (signature change).
## Backend
The full feature set needs the Dispatcharr fork with OIDC support
(be-nj/Dispatcharr): its `/api/accounts/oidc/status/` endpoint hands the app
the issuer and public device-flow client id. Configuration lives in
[CONTEXT.md](CONTEXT.md) and [docs/adr/](docs/adr/).