API de Tablero de vídeos en tendencia de Douyin
Salud de la API
- Salud 24 h
- Normal
- Tiempo medio 24 h
- —
- Saludable / normal
- Disponible
- Limitada
- Casi sin servicio
Últimas 24 horas
Últimos 30 días
Lee el tablero de vídeos de Hot Spot Treasure, la herramienta de tendencias del propio Douyin: general (all), de mayor captación de seguidores o de mayor tasa de «me gusta», en la última hora, día, 3 días o 7 días. Cada obra trae reproducciones, «me gusta», tasa de «me gusta», seguidores ganados, tasa de crecimiento, puntuación de calor y seguidores del autor, de mayor a menor calor y sin campo de posición. Hasta 50 por página; Douyin descarta algunas obras, de modo que una página corta no indica el final.
Precio $0.81 por 1.000 solicitudes ($0.000806 por llamada). Las llamadas fallidas y los resultados vacíos no se cobran. Síncrona. Para tareas lentas añade "mode": "async" al cuerpo, recibe un job_id y consúltalo.
Prompt para IA
Ayúdame a escribir un script de recopilación de datos con el endpoint de EveryInfra Douyin: Tablero de vídeos en tendencia (douyin/billboard_video_hot).
Cómo funciona el endpoint:
- Solicitud: POST https://api.everyinfra.com/api/v1/social con la cabecera Authorization: Bearer <clave API>. Lee la clave de la variable de entorno EVERYINFRA_API_KEY y no la escribas en el código.
- En el cuerpo de la solicitud, pon platform en douyin y action en billboard_video_hot, y los parámetros dentro de params.
- No hay parámetros obligatorios.
- Parámetros opcionales:
- board: Tablero de billboard_video_hot: all (general, por defecto), follower_growth (obras que más seguidores captan en proporción a sus reproducciones) o like_rate (mayor tasa de «me gusta»). (valores admitidos: all / follower_growth / like_rate)
- keyword: Opcional: deja solo las obras relacionadas con esta palabra, como comida; sin ella se lee el tablero completo.
- page_token: Token de paginación. Omítelo en la primera página y luego devuelve tal cual el next_page_token anterior, sin cambiar los demás parámetros. Cada página trae hasta 50 obras y es una llamada.
- time_window: Ventana de tiempo: 1h (última hora), 1d (últimas 24 horas, por defecto), 3d o 7d. (valores admitidos: 1d / 1h / 3d / 7d)
- Devuelve una lista de registros. Campos principales de cada registro: id, url, text, media_type (Tipo de medio: video, o image en las pu…), image_count (Número de imágenes de una publicación d…), cover_image_url (URL de la miniatura de portada del víde…), video_url (URL de reproducción del vídeo (firmada…), duration_seconds, duration_sec (Duración del video en segundos), author_name, author_avatar_url (URL del avatar del autor: el creador en…), author_follower_count; 20 campos en total, lista completa en https://api.everyinfra.com/api/v1/social/catalog?platform=douyin.
- Cuerpo de solicitud de ejemplo:
{
"platform": "douyin",
"action": "billboard_video_hot",
"params": {}
}
- Precio: $0.81 por 1.000 solicitudes; los resultados fallidos y vacíos no se cobran.
- Para decenas o cientos de objetivos, añade "mode": "async" al cuerpo: recibes un job_id al instante y consultas GET https://api.everyinfra.com/api/v1/jobs/{job_id} para obtener el resultado.
- Ante un 422, corrige la solicitud con los nombres de parámetros y los valores admitidos que sugiere el error; ante un 429 o un 503, espera lo que indique Retry-After y vuelve a intentarlo.
Antes de escribir código, pregúntame qué objetivos necesito, cuántos, qué campos y en qué formato quiero el resultado; luego confirma conmigo el plan y el coste aproximado.Parámetros de la solicitud
| Nombre | Ubicación | Tipo | Obligatorio | Por defecto | Descripción |
|---|---|---|---|---|---|
Authorization | header | string | Sí | - | Bearer seguido de tu clave de API. Créala en la consola; nunca la pongas en una URL ni en un repositorio de código. |
platform | body | string | Sí | douyin | Identificador de la plataforma, valor fijo. |
action | body | string | Sí | billboard_video_hot | Identificador de la capacidad, valor fijo. |
board | body.params | string (enum) | No | - | Tablero de billboard_video_hot: all (general, por defecto), follower_growth (obras que más seguidores captan en proporción a sus reproducciones) o like_rate (mayor tasa de «me gusta»).Valores permitidosallfollower_growthlike_rate |
keyword | body.params | string | No | - | Opcional: deja solo las obras relacionadas con esta palabra, como comida; sin ella se lee el tablero completo. |
page_token | body.params | string | No | - | Token de paginación. Omítelo en la primera página y luego devuelve tal cual el next_page_token anterior, sin cambiar los demás parámetros. Cada página trae hasta 50 obras y es una llamada; Douyin descarta algunas, así que una página suele traer menos de 50 sin que sea la última. Dura 24 horas; al final no hay next_page_token (como mucho unas 1000 obras por tablero). |
time_window | body.params | string (enum) | No | - | Ventana de tiempo: 1h (última hora), 1d (últimas 24 horas, por defecto), 3d o 7d.Valores permitidos1d1h3d7d |
Ejemplos de código
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "douyin",
"action": "billboard_video_hot",
"params": {}
}'Definición OpenAPI (JSON)Los ejemplos leen la clave de la variable de entorno EVERYINFRA_API_KEY; el código copiado nunca contiene tu clave.
Ejemplo de respuesta
Todavía no hay una muestra real para estos parámetros de ejemplo: se muestra la estructura de la respuesta y sus campos según la definición de la API, con … como marcadores. No es el resultado de una llamada real.
{
"id": "req_…",
"platform": "douyin",
"action": "billboard_video_hot",
"results": [
{
"id": …,
"url": …,
"text": …,
"media_type": …,
"image_count": …,
"cover_image_url": …,
"video_url": …,
"duration_seconds": …,
"duration_sec": …,
"author_name": …,
"author_avatar_url": …,
"author_follower_count": …,
"play_count": …,
"like_count": …,
"like_rate": …,
"new_follower_count": …,
"follower_growth_rate": …,
"hot_value": …,
"posted_at": …,
"next_page_token": …,
"platform": …
}
],
"next_page_token": …,
"pagination": { … },
"count": …,
"billing": {
"charged": …,
"charged_usd": …,
"balance_after_usd": …,
…
},
"quota": { … }
}Campos de la respuesta
Los datos están en results. La tabla lista los campos que puede tener cada registro; los valores que la plataforma no muestra nunca se inventan.
| Campo | Significado |
|---|---|
id | Identificador único del registro en la plataforma. Solo es único dentro de una plataforma; puede repetirse entre plataformas. |
url | Enlace al registro en la plataforma. |
text | Texto del contenido sin HTML, completo y sin recortes (en algunas plataformas los resultados de listado solo traen un extracto; lo indican las notas de campos de la plataforma). |
media_type | Tipo de medio: video, o image en las publicaciones de imágenes. |
image_count | Número de imágenes de una publicación de imágenes (tableros de vídeos de Hot Spot Treasure; solo cuando media_type es image). |
cover_image_url | URL de la miniatura de portada del vídeo o la nota (filas de search / user_posts). |
video_url | URL de reproducción del vídeo (firmada y con caducidad; descárgala pronto si necesitas conservarla). Null para notas de imágenes o si la fuente no la trae. |
duration_seconds | Duración en segundos. null en contenido que no es video ni audio. |
duration_sec | Duración del video en segundos. |
author_name | Nombre visible del autor. |
author_avatar_url | URL del avatar del autor: el creador en las filas de search, user_posts y video; quien comenta en las de comments. |
author_follower_count | Seguidores del autor. null significa no publicado. |
play_count | Reproducciones. En los tableros de vídeos de Hot Spot Treasure (billboard_video_hot, billboard_low_fan_explosion, billboard_high_completion) es la cifra propia de Douyin. En las demás acciones Douyin no publica reproducciones, así que el valor (normalmente 0) nunca refleja reproducciones reales; mide el alcance con me gusta, comentarios y compartidos. |
like_count | Me gusta. null significa que la plataforma o esta capacidad no lo publica; no es 0. |
like_rate | Tasa de «me gusta» en los tableros de vídeos de Hot Spot Treasure: like_count dividido entre play_count, en decimal (0,0118 equivale a 1,18 %). |
new_follower_count | Seguidores que atrajo la obra (tableros de vídeos de Hot Spot Treasure). |
follower_growth_rate | Tasa de captación de seguidores en los tableros de vídeos de Hot Spot Treasure: decimal propio de Douyin, aproximadamente new_follower_count dividido entre play_count. |
hot_value | Valor de calor, medida propia de Douyin comparable solo dentro de un mismo tablero y ventana: en trending, el de la entrada (a menudo vacío en el tablero hotspot); en los tableros de vídeos de Hot Spot Treasure, la puntuación del tablero, con las filas de mayor a menor; en billboard_search_hot, el calor de búsqueda del término en la ventana. |
posted_at | Fecha de publicación en ISO 8601, UTC (por ejemplo 2026-08-07T12:34:56+00:00). Las cadenas no estándar de la plataforma se transmiten tal cual, así que conviene analizarlas con tolerancia. null significa que la plataforma no la publica. |
next_page_token | Token de paginación (search / user_posts / comments / comment_replies / billboard_video_hot / billboard_low_fan_explosion / billboard_high_completion / billboard_account_search / music_search): devuélvelo sin cambios como page_token para obtener la página siguiente, con los demás parámetros iguales; dura 24 horas. Todas las filas de una página llevan el mismo valor, que también aparece en el nivel superior de la respuesta. No aparece en la última página. Las páginas de comentarios recorren todos los comentarios de primer nivel. |
platform | Identificador de la plataforma, igual que platform en la solicitud (por ejemplo xiaohongshu, tiktok). |
Errores y facturación
- 401
- Falta la clave o no es válida.
- 402
- Saldo insuficiente. Recarga primero.
- 422
- Nombre o valor de parámetro incorrecto. Corrígelo según las opciones indicadas en el error. Sin cargo.
- 429
- Se alcanzó el límite de solicitudes por minuto. Espera el tiempo indicado en Retry-After y vuelve a intentarlo.
- 503
- No se pudo completar. El cargo retenido vuelve a tu saldo. Si el resultado es incierto, compruébalo antes de reenviar.
- 200 vacío
- Sin datos. Sin cargo.