- The API key is only in the gateway; the app only knows the gateway's URL.
- Store the session token and
playback_keyin secure storage; never the password. - On start:
refresh-session, thenplayback-routes. - Branch on
code.session_expired→refresh-sessiononce; other401→ sign in again;403→ show it and keep the session. - Build playback tokens with the panel's clock (
server_time). - Never retry a
401,403or429in a loop. Repeated failures get the IP blocked. - Report history on pause, stop and end, and at most every 2 minutes while
playing; channels once after ~30 s. Drop a report that gets
rate_limited. - Respect
is_adult: lock adult content in every list, not only in its category. - Channel pictures (7.6) only from nodes with
thumbnails: true(and, withpicture_routes, listed in the channel'spictures): on a key press only the chosen channel's, neighbours once it plays, at most 2-3 in flight;404means show the logo. - Playback reports (7.7): stalls and crashes to the node where they
happened (
reports: true), blocks todiagnostics; one batch per minute, nothing about healthy playback, nothing when "Send diagnostics" is off. - Ignore unknown fields and unknown capabilities; handle unknown codes by HTTP status.
Streaming API v2: Checklist
Everything a well-behaved app does, in one list.
Join our Telegram Informative Group
Any other questions? Get in touch