Companion app control

API

The Pi image exposes a small local HTTP API on port 24024. It is meant for companion apps, remote controls, and future voice-assistant bridges.

Status check
curl http://tatertube.local:24024/api/v1/status
Useful endpoints

Player, key, search, and launch calls.

API surface
GET  /api/v1/status
POST /api/v1/player/play-pause
POST /api/v1/player/pause
POST /api/v1/player/resume
POST /api/v1/player/stop
POST /api/v1/player/seek          {"position_ms": 60000}
POST /api/v1/player/skip-forward  {"offset_ms": 30000}
POST /api/v1/player/skip-back     {"offset_ms": -10000}
POST /api/v1/player/volume-up
POST /api/v1/player/volume-down
POST /api/v1/player/mute
POST /api/v1/player/key           {"key": "LEFT", "repeat": 1}
POST /api/v1/library/search       {"query": "batman", "types": ["movie", "show", "game"], "limit": 10}
POST /api/v1/library/launch       {"id": "vod:movie:ITEM_ID"}

Set TATER_TUBE_API_TOKEN to require Authorization: Bearer <token> or X-TaterTube-Token: <token>.

Server API

Tater Tube Server exposes player-facing endpoints on port 8080.

The player uses the server API for pairing, The Tube catalog, Tube TV lineup and guide data, Newznab discovery, local libraries, resume state, playback activity, stream launch, and local playback URLs.

Player-facing server API
GET  /api/tater/server
POST /api/tater/players/pair
GET  /api/tater/tv/lineup
GET  /api/tater/streams/active

Tube TV

Players request the shared lineup and guide, then tune the scheduled item at its current timeline position.

LineupGuideTune

Library State

The server supplies local metadata, durations, Continue Watching, next episodes, and playback progress.

LocalResumeDuration

Authorized Players

Pairing exchanges a short-lived PIN for a revocable player token used by later server requests.

PINTokenRevoke