Skip to content

Inicio rápido ​

Necesitas el código de 6 caracteres que muestra el TV. La API está en https://beta.playeroff.app.

1. Conectar ​

sh
curl -X POST https://beta.playeroff.app/v1/sessions \
  -H 'Content-Type: application/json' \
  -d '{"code": "K7M3QX"}'
js
const res = await fetch('https://beta.playeroff.app/v1/sessions', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ code: 'K7M3QX' }),
})
const { sessionToken } = await res.json()
dart
import 'dart:convert';
import 'package:http/http.dart' as http;

final res = await http.post(
  Uri.parse('https://beta.playeroff.app/v1/sessions'),
  headers: {'Content-Type': 'application/json'},
  body: jsonEncode({'code': 'K7M3QX'}),
);
final sessionToken = jsonDecode(res.body)['sessionToken'] as String;

Respuesta 201:

json
{ "sessionToken": "…", "expiresAt": 1800007200000, "receiver": { "platform": "tizen", "name": "" } }

El código no distingue mayúsculas y acepta espacios o guiones (k7m 3qx vale).

2. Enviar un video ​

sh
curl -X POST https://beta.playeroff.app/v1/casts \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"url": "https://example.com/pelicula.m3u8", "title": "Mi película"}'
js
const res = await fetch('https://beta.playeroff.app/v1/casts', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${sessionToken}` },
  body: JSON.stringify({ url: 'https://example.com/pelicula.m3u8', title: 'Mi película' }),
})
const { castId } = await res.json()
dart
final res = await http.post(
  Uri.parse('https://beta.playeroff.app/v1/casts'),
  headers: {'Content-Type': 'application/json', 'Authorization': 'Bearer $sessionToken'},
  body: jsonEncode({'url': 'https://example.com/pelicula.m3u8', 'title': 'Mi película'}),
);
final castId = jsonDecode(res.body)['castId'] as String;

Respuesta 202: { "castId": "…", "status": "pending", "expiresAt": … }. El TV empieza a reproducir en cuanto lo recibe.

3. (Opcional) Saber qué pasó ​

sh
curl https://beta.playeroff.app/v1/casts/$CAST_ID -H "Authorization: Bearer $TOKEN"

status puede ser pending, delivered, playing, failed (con error) o expired.

4. Desconectar ​

sh
curl -X DELETE https://beta.playeroff.app/v1/sessions -H "Authorization: Bearer $TOKEN"

PlayerOFF · API abierta para enviar videos a cualquier pantalla.