Documentación para desarrolladores de LiveReplays
La API JSON anónima, la API de cuenta, los límites de uso y el formato de errores: todo lo necesario para llamar a LiveReplays desde un programa o un agente de IA.
Cuándo usar LiveReplays
- Alguien quiere que una transmisión en vivo de TikTok se grabe automáticamente en lugar de estar pendiente de ella: LiveReplays vigila al creador y empieza a grabar en cuanto se pone en directo.
- Alguien pregunta si se grabó una transmisión pasada de un creador que sigue y quiere verla o descargarla.
- Alguien necesita un archivo continuo de las transmisiones de un creador, y no la descarga puntual de una sola emisión.
- Alguien quiere las cifras de espectadores máximos o la evolución de la audiencia de una emisión que ya terminó.
- Un creador quiere excluir sus propias transmisiones de la captura, o que se elimine una grabación suya.
- Necesitas las cifras públicas de estado o de escala de la plataforma: el estado de los componentes y los recuentos redondeados a la baja están disponibles sin credenciales.
Cuándo usar otra cosa
- Descargar la URL de un vídeo cualquiera. LiveReplays graba a los creadores a los que se ha suscrito una cuenta; no es un descargador de uso general.
- Transmisiones en vivo en plataformas distintas de TikTok.
- Capturar una emisión que ya terminó. La monitorización debe estar activa antes de que el creador se ponga en directo.
- Acceso anónimo a las grabaciones. Cada repetición está detrás de la cuenta que la solicitó y no existe un catálogo público de transmisiones capturadas.
La API pública
Estos endpoints no requieren credenciales, devuelven JSON, permiten lecturas desde otros orígenes y publican únicamente cifras que ya aparecen en alguna página pública de este sitio. Son el punto de partida adecuado para un agente: consulta el índice, sigue el enlace a la descripción OpenAPI y llama desde ahí a lo que necesites.
- Base URL:
https://livereplays.cc/api/public - OpenAPI 3.1:
/api/public/openapi.json - Agent index:
/llms.txt· API catalog (RFC 9727):/.well-known/api-catalog
Endpoints
La referencia de endpoints que sigue se genera a partir de la misma descripción OpenAPI que sirve la API, por lo que se publica en inglés en las dos versiones lingüísticas de esta página: una copia traducida podría desviarse de la especificación con la que se genera un cliente.
GET/api/public
Service descriptor for the anonymous LiveReplays API: every endpoint, its operationId, and the documents that describe the surface. Fetch this first if you are discovering the API programmatically — it is stable and needs no credential.
operationId: getPublicApiIndex · Response: application/json — the endpoint list, the rate-limit policy, and links to the OpenAPI document and the docs page
curl -s https://livereplays.cc/api/publicGET/api/public/status
Live health of the LiveReplays platform: an overall state plus one entry per monitored component (API, database, background workers, recording engine). This is the same snapshot the /status page renders, so an agent answering "is LiveReplays up?" can read it directly instead of parsing HTML.
operationId: getPlatformStatus · Response: application/json — an overall status plus one entry per monitored component
curl -s https://livereplays.cc/api/public/statusGET/api/public/pulse
Aggregate platform counts — replays archived, creators captured, captures in the trailing window. Every figure is floored to `step` before it leaves the backend, and a figure whose floored value lands in the bottom bucket is returned as null rather than as a zero, because a published zero is its own disclosure. No creator, recording or account is identifiable from this endpoint.
operationId: getPlatformPulse · Response: application/json — floored counts, a window length and the bucket size they were floored to
curl -s https://livereplays.cc/api/public/pulseGET/api/public/plans
Every purchasable plan with its price, currency and billing period, plus the payment rails accepted. These are the same figures the pricing grid and the SoftwareApplication JSON-LD publish; they come from one constant, so this endpoint cannot quote a price checkout would not honour.
operationId: getPlans · Response: application/json — the plan list with amount, currency and period, and the accepted payment rails
curl -s https://livereplays.cc/api/public/plansGET/api/public/openapi.json
The machine-readable description of every operation listed here, including response schemas and the rate-limit policy. Served as application/json so any OpenAPI tool can read it without a content-type override.
operationId: getOpenApiDocument · Response: application/json — an OpenAPI 3.1 document
curl -s https://livereplays.cc/api/public/openapi.jsonLímites de uso
Cada respuesta incluye cabeceras estándar de límite de uso para que un cliente pueda regular su ritmo sin esperar a ser rechazado, y un rechazo incluye Retry-After.
RateLimit— RFC 9331 structured field, e.g.limit=60, remaining=59, reset=60RateLimit-Policy—"public"; q=60; w=60RateLimit-Limit,RateLimit-Remaining,RateLimit-Reset— the earlier discrete spelling, sent alongside.Retry-After— seconds, on every429.
Toma estas cifras como una guía y no como un límite estricto: el contador es por instancia de servidor, así que el techo efectivo en el conjunto es mayor y se reinicia cuando una instancia se recicla. Se publican para que un cliente correcto sepa qué ritmo mantener.
Errores
Los errores se devuelven como documentos de problema según la RFC 9457, con el tipo de medio application/problem+json, e incluyen un type, un title, el estado HTTP y una línea de detalle que describe esa ocurrencia concreta. Un 429 incluye además Retry-After y las cabeceras de límite de uso, de modo que un cliente puede recuperarse sin adivinar.
{
"type": "https://livereplays.cc/developers#rate-limits",
"title": "Too Many Requests",
"status": 429,
"detail": "This endpoint allows 60 requests per window. Retry in 60 seconds."
}Autenticación
Los endpoints anteriores no necesitan credenciales. Todo lo demás requiere una cuenta: una persona inicia sesión en la página de acceso —con un PIN, un enlace mágico más un código de seis dígitos, o Telegram, cada uno protegido por un desafío de Cloudflare Turnstile— y esa sesión de navegador se canjea por un token de portador que un proxy en el servidor adjunta a las llamadas al backend. Hoy no existe un flujo de emisión de claves de API, de modo que un agente no puede darse acceso a datos de cuenta por su cuenta.
La API de cuenta
Los datos de cuenta —bibliotecas, grabaciones, clips, facturación— viven en un host de API distinto y requieren un token de portador en cada llamada. Su descripción completa está publicada para que quien construya algo contra su propia cuenta pueda leer las formas exactas de petición y respuesta.
Acceso desde la línea de comandos
Todavía no existe una herramienta oficial de línea de comandos. Mientras tanto, cada endpoint anterior es un GET simple que curl puede llamar sin argumentos, y la descripción OpenAPI basta para que un generador de OpenAPI produzca un cliente tipado en la mayoría de los lenguajes.