Build in Public · LF-04
API de datos de creadores de TikTok: filtrado inicial verificable con muestras de perfil y vídeos
Integra de forma gradual el perfil y user_videos de TikTok, separa las instantáneas de cuentas y vídeos, calcula métricas de interacción con criterios claros, y gestiona valores ausentes, sesgos de muestreo y tendencias sin confundir los datos públicos con resultados comerciales.
Al obtener una lista de creadores de TikTok, la práctica más común es ordenar primero por número de seguidores. Sin embargo, tener muchos seguidores no equivale a un rendimiento reciente estable, y un vídeo popular no significa que todo el contenido tenga el mismo desempeño. Si la tabla de datos solo conserva el nombre de usuario, el recuento de seguidores y una «tasa de interacción» de origen desconocido, la lista resulta difícil de verificar y complica evaluar qué perfiles merecen un contacto posterior.
La API de datos de creadores de TikTok resulta más útil para un filtrado inicial fundamentado: confirma primero la identidad de la cuenta y la información del perfil, recupera después un conjunto de muestras de vídeos con criterios claros y combina ambos aspectos con la adecuación del contenido y la revisión manual para tomar una decisión. Esta guía utiliza el perfil y user_videos de EveryInfra para completar este flujo, sin extrapolar los datos de interacción pública hacia ingresos por ventas, perfiles de compradores reales o previsiones de retorno de colaboración.
Los parámetros y campos se han verificado con el catálogo público y el código fuente de 2026-09-04. Las siguientes peticiones comerciales son plantillas adaptadas para escenarios autorizados y no han vuelto a invocar cuentas reales en esta ronda; todos los ejemplos de cálculo emplean datos sintéticos.
Distingue la visualización oficial autorizada de la lectura de datos de esta guía
La Display API oficial de TikTok sirve para mostrar el perfil y los vídeos de los creadores, e incluye interfaces como información de usuario, lista de vídeos y consulta de vídeos por ID; su integración requiere cumplir con los procesos correspondientes de autorización de aplicaciones y usuarios. La documentación oficial enumera los permisos user.info.basic y video.list. Si permites que los usuarios conecten sus propias cuentas de TikTok, verifica primero esta ruta de acceso oficial.
platform/action/params de EveryInfra constituye otro contrato de solicitud. No equivale a la Display API oficial, no reutiliza los tokens de acceso oficiales y no obtiene el respaldo de la plataforma por el hecho de que este documento cite la documentación oficial. Evalúa por separado los permisos, campos y la cobertura de ambas rutas.
Este artículo solo procesa muestras de vídeo y de perfil. Los comentarios, temas, productos o las capacidades para creadores de tiendas deben consultarse en su respectiva acción; no es posible deducir transacciones de productos a partir de un objeto de perfil, ni emplear las condiciones geográficas de búsqueda de productos como el país del autor. Acota primero la pregunta de investigación para determinar qué campos necesitas realmente.
Primer paso: divide la tarea de investigación en dos lecturas claras
El perfil responde a «qué información pública muestra actualmente esta cuenta» y user_videos responde a «qué registros de vídeo de la cuenta se han devuelto en esta ocasión». Aunque ambos utilizan username, sus formatos de respuesta difieren: el primero es un objeto y el segundo una matriz, por lo que el código de análisis no puede reutilizarse tal cual cambiando únicamente la acción.
curl -fsS --max-time 30 \
'https://api.everyinfra.com/api/v1/social/catalog?platform=tiktok' \
| jq '.capabilities[]
| select(.action == "profile" or .action == "user_videos")
| {action, required_params, optional_params, param_meanings,
mode, returns_list, default_limit, max_limit, response_fields}'En el catálogo actual, ambos elementos requieren username y su modo es sync. user_videos ofrece por defecto 10 elementos, con un límite máximo de 50 elementos; el perfil es un único objeto y no hay motivo para asignarle un límite de lista. El nombre de usuario aquí se refiere al identificador corto de la cuenta, no al apodo visible, a la URL completa del perfil ni al identificador de cuenta de Douyin. Los ejemplos emplean de manera uniforme nombres cortos sin el signo @, en consonancia con el catálogo público actual.
El nombre de usuario se emplea para las solicitudes, mientras que el ID de cuenta estable sirve para la vinculación a largo plazo. Tras un cambio de nombre, no debes tratar sin más el nuevo nombre corto como un creador completamente nuevo, pero tampoco puedes concluir que se trata de la cuenta original basándote únicamente en similitudes de avatar o apodo. Prioriza la vinculación mediante ID cuando esté disponible, y mantén un estado pendiente de confirmación si falta el ID o surgen conflictos de identidad.
Segundo paso: lee el perfil y confirma el objeto antes de emitir puntuaciones
Asume que el servidor ya tiene configurados EVERYINFRA_API_KEY y EVERYINFRA_TIKTOK_USERNAME con autorización de consulta. Envía una única solicitud de perfil y conserva el estado HTTP y el cuerpo para facilitar una comprobación inicial; no expongas la clave en código frontend ni en tablas de análisis públicas.
: "${EVERYINFRA_API_KEY:?configura primero la API Key}"
: "${EVERYINFRA_TIKTOK_USERNAME:?pega el nombre corto de la cuenta autorizada}"
jq -cn --arg username "${EVERYINFRA_TIKTOK_USERNAME}" '{
platform: "tiktok", action: "profile", params: {username: $username}
}' | curl --silent --show-error --include --max-time 180 \
'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer ${EVERYINFRA_API_KEY}" \
-H 'Content-Type: application/json' --data-binary @-La implementación actual sitúa el objeto de perfil dentro de results, con información de seguimiento de peticiones y facturación en el nivel exterior. Verifica primero si username, user_id y la URL de origen corresponden al objetivo; si no se obtiene ningún objeto, no debes crear una fila con un perfil de cuenta lleno de ceros. El contenido inaccesible, los fallos de extracción y la ausencia real de datos públicos deben registrarse por separado.
Los campos del perfil sirven para comprender la biografía de la cuenta y su escala actual, tales como bio, follower_count, following_count, video_count, is_verified e is_private. Estos campos no acreditan la edad de la audiencia, los comportamientos de compra reales ni atributos sensibles del creador de contenido. Cuando is_private es verdadero, tampoco puedes seguir asumiendo que los vídeos son legibles ni buscar métodos para sortearlo.
También debes distinguir los campos homónimos: like_count en el perfil es un recuento a nivel de cuenta, mientras que like_count en la línea de vídeo pertenece a ese vídeo específico. No deben mezclarse en la misma tabla bajo una columna de «me gusta» sin acotar, ni calcularse dividiendo el recuento acumulado de la cuenta entre las reproducciones de los vídeos recientes.
Tercer paso: obtén muestras de vídeo y registra las condiciones de selección
: "${EVERYINFRA_API_KEY:?configura primero la API Key}"
: "${EVERYINFRA_TIKTOK_USERNAME:?pega el nombre corto de la cuenta autorizada}"
jq -cn --arg username "${EVERYINFRA_TIKTOK_USERNAME}" '{
platform: "tiktok",
action: "user_videos",
params: {username: $username, limit: 5}
}' | curl --silent --show-error --include --max-time 180 \
'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer ${EVERYINFRA_API_KEY}" \
-H 'Content-Type: application/json' --data-binary @-Los cinco elementos aquí presentes se emplean para comprobar campos, no para conformar un volumen de muestras estadísticamente representativo. La solicitud se ejecuta y factura de forma independiente a la lectura del perfil; el éxito del perfil no garantiza el éxito de la lista de vídeos. Guarda por separado el identificador, la hora y la facturación de cada una de las dos solicitudes para evitar trasladar el resultado de un paso al otro.
Cuando necesites un ordenamiento específico, el catálogo actual de user_videos enumera newest, oldest y popular; define el objetivo de investigación antes de seleccionar. Las muestras populares resultan idóneas para estudiar contenidos de alto rendimiento, pero no son adecuadas para estimar directamente el desempeño cotidiano; si seleccionas por fecha, aún debes verificar si coinciden los elementos fijados, las ausencias, el momento real de publicación y la ventana temporal.
until expresa el límite superior del momento de publicación del vídeo, no el instante de la recopilación actual ni un cursor de paginación validado. El contrato de la lista actual no ofrece ninguna garantía de paginación que permita recorrer todo el historial; modificar repetidamente la fecha y lanzar solicitudes continuas no demuestra automáticamente la ausencia de omisiones. El ejemplo mínimo se inicia sin condiciones de filtro, incorporándolas y contrastando los resultados reales conforme se necesite.
Es posible que algunos parámetros aparezcan en el catálogo junto con varias acciones. El hecho de que un parámetro aparezca listado no basta para certificar que se adapta a todos los objetos de estudio; por ejemplo, la ordenación de vídeos no equivale a ordenar por el número de seguidores del creador. Si no puedes confirmar el efecto de un parámetro, déjalo en la verificación de integración y no lo consignes en las conclusiones de la investigación.
Como control de los límites de la interfaz, el vídeo/list de autorización oficial de TikTok especifica claramente cursor, has_more y max_count por página. No puedes trasladar directamente este conjunto de parámetros de paginación oficial a user_videos de EveryInfra: la capacidad de realizar paginación debe demostrarse mediante el contrato y los resultados del propio punto de entrada de la llamada.
Cuarto paso: almacena por separado la cuenta, los vídeos y las notas de observación
Puedes organizar los datos en tres tipos de objetos. La tabla de cuentas registra la identidad y las observaciones del perfil; la tabla de vídeos vincula el contenido con la cuenta mediante el ID de vídeo; y la tabla de observaciones almacena los valores de las métricas, las condiciones y el momento obtenidos en una solicitud determinada. Esta división evita tener que duplicar los datos de un nuevo creador cada vez que se actualizan las reproducciones de un vídeo.
- Observación de cuenta: user_id, nombre corto solicitado, nombre corto devuelto, referencia de perfil, recuentos disponibles, momento de observación e ID de solicitud.
- Observación de vídeo: ID de vídeo, URL, texto, nombre corto del autor, posted_at, recuentos de interacción y reproducciones, momento de observación e ID de solicitud.
- Análisis derivado: vídeos utilizados, registros excluidos, versión de la fórmula de métricas, momento del cálculo y notas manuales.
curl -fsS --max-time 30 \
'https://api.everyinfra.com/api/v1/social/fields?platform=tiktok&action=user_videos' \
| jq '{fields, undocumented}'El catálogo de vídeos enumera campos como like_count, comment_count, share_count y view_count. La documentación de objetos de vídeo oficiales de TikTok también explica el significado de los me gusta, comentarios, compartidos y reproducciones; esto ayuda a contrastar la terminología, pero no implica que EveryInfra devuelva necesariamente todos los campos del objeto oficial. Analiza cada interfaz conforme a sus resultados reales.
Debes diferenciar entre null, campos ausentes y 0. Un recuento de reproducciones no publicado no debe completarse con ceros, y la falta de datos de compartidos no puede computarse como cero en el cálculo de interacciones sin aclararlo previamente. posted_at y observed_at tampoco son equivalentes: el primero indica el instante en que se publicó el contenido y el segundo cuándo observaste dichos contadores.
Quinto paso: redacta la fórmula antes de calcular cualquier tasa de interacción
No existe una única «tasa de interacción» definida en este documento que resulte aplicable a todos los equipos. A modo de demostración, definimos el siguiente indicador de muestra: ratio de interacción por reproducción = suma de me gusta, comentarios y compartidos en la muestra válida ÷ suma de reproducciones en ese mismo grupo de muestras. El numerador corresponde al recuento de eventos de interacción y el denominador al recuento de reproducciones; no representa personas independientes ni una tasa de conversión de compra.
Este artículo incluye en el cálculo únicamente los registros cuyos cuatro contadores sean enteros no negativos válidos y cuyas reproducciones sean superiores a cero, listando por separado los registros con elementos incompletos. Esta norma es de carácter conservador, pero previene el uso de ceros ficticios para enmascarar ausencias. Si tu investigación requiere otra definición, puedes modificar la regla y registrar la versión, evitando ordenar directamente comparando resultados obtenidos con fórmulas distintas.
function interactionPerView(rows) {
const seen = new Set();
let events = 0, views = 0, used = 0;
const excluded = [];
for (const row of rows) {
if (typeof row.id !== "string" || !row.id || seen.has(row.id)) {
throw new Error("missing or duplicate video id");
}
seen.add(row.id);
const counts = [row.like_count, row.comment_count,
row.share_count, row.view_count];
if (!counts.every(x => Number.isSafeInteger(x) && x >= 0)
|| row.view_count === 0) {
excluded.push(row.id);
continue;
}
events += row.like_count + row.comment_count + row.share_count;
views += row.view_count;
if (!Number.isSafeInteger(events) || !Number.isSafeInteger(views)) {
throw new Error("aggregate exceeds safe integer range");
}
used++;
}
return {used, excluded, events, views,
ratio: views > 0 ? events / views : null};
}
console.log(interactionPerView([
{id: "synthetic-a", like_count: 8, comment_count: 1,
share_count: 1, view_count: 100},
{id: "synthetic-b", like_count: 7, comment_count: 1,
share_count: 1, view_count: 10},
{id: "synthetic-c", like_count: null, comment_count: 1,
share_count: 0, view_count: 20}
]));En este conjunto de tres registros sintéticos, los dos primeros participan en el cálculo y el tercero se excluye debido a la ausencia del recuento de me gusta. La interacción total asciende a 19, la reproducción total a 110 y el ratio de interacción por reproducción ronda el 17.27%. Si calculas primero la proporción de cada elemento para luego promediar, obtendrás un 50%; ambas opciones no responden a la misma pregunta. La primera agrega en función de la escala de reproducciones y la segunda otorga el mismo peso a cada vídeo, por lo que debes reflejar claramente tu elección en el informe.
Este ejemplo no constituye un patrón de puntuación de creadores ni establece un «umbral de excelencia» en el sector. Una misma cuenta puede destacar en un número reducido de vídeos y mostrar un rendimiento ordinario en el resto; la duración de los contenidos, el momento de publicación y las condiciones de selección también condicionan la comparabilidad. En lugar de presentar un porcentaje aislado, resulta más útil mostrar de forma simultánea el número de muestras empleadas, las exclusiones, las reproducciones totales y la ventana elegida.
Sexto paso: permite la interpretación humana en los resultados del filtrado
Los datos públicos te ayudan a decidir qué cuentas revisar primero, pero no deben reemplazar la inspección de contenidos. Al leer un conjunto de vídeos, puedes comprobar si la temática guarda relación con el producto, si el tono se ajusta al público objetivo y si existe suficiente contenido reciente para emitir un juicio. Las conclusiones sobre la idoneidad del contenido deben incluir fundamentos específicos en lugar de limitarse a una puntuación opaca.
Asimismo, evita inferir atributos personales sensibles a partir de biografías, nombres, avatares o idiomas. Cuando necesites información real sobre la audiencia, conversiones o cumplimiento dentro de una colaboración comercial, recabala mediante los procesos de autorización y asociación pertinentes. Ante la falta de evidencias de este tipo, marca los campos como desconocidos sin recurrir a modelos para generar perfiles aparentemente completos.
La investigación de productos requiere establecer un criterio claro por separado. La presencia de menciones a productos en un vídeo, enlaces en el perfil o información de tiendas en la cuenta mantiene una brecha de evidencias respecto a las ventas exactas, el volumen neto de transacciones y el retorno de la inversión publicitaria. Las dos acciones de este artículo no acreditan dichos resultados comerciales, por lo que no debes añadir por cuenta propia un «GMV estimado» en las tablas de salida simulándolo como un hecho de la plataforma.
Séptimo paso: observa de forma repetida para debatir sobre los cambios
Una única llamada de perfil o vídeo constituye una instantánea. Para analizar el crecimiento se precisan al menos varias observaciones comparables: identidad de cuenta coherente, definiciones de campo idénticas, intervalos de observación claros y obtención de datos válidos en todas las ocasiones. Si falla una ronda posterior, no puedes tratarlo como si los seguidores o las reproducciones hubiesen descendido a cero.
También conviene distinguir entre conjuntos de vídeos fijos y conjuntos de vídeos móviles. Hacer un seguimiento constante del mismo grupo de vídeos permite observar la evolución de sus contadores; en cambio, extraer un lote de contenidos recientes en cada ocasión implica contemplar al mismo tiempo variaciones en la composición de los contenidos. Unir ambas series en una única curva sin documentar los elementos de los vídeos dificultará la interpretación de dicha curva.
La desaparición de un vídeo de la lista no demuestra de forma directa que se haya eliminado; es posible que quede fuera de la muestra actual. Los cambios de nombre, las modificaciones en los elementos fijados, los errores al analizar la fecha de publicación y la ausencia de campos deben consignarse en las notas de calidad. No catalogues automáticamente a un creador como anómalo o poco fiable solo porque se reduzca el volumen de datos.
Al rastrear los motivos por los cuales este filtrado difiere, puedes apoyarte en las entidades, las actividades de procesamiento y las relaciones de derivación de W3C PROV: vincula las muestras de vídeos, las versiones de reglas y las listas generadas. Esta referencia metodológica se limita a la lógica de registro, por lo que no exige adoptar RDF ni presupone que la lista cumpla la especificación de intercambio PROV.
Conserva registros recuperables cuando surjan errores
Verifica por separado la autenticación, los permisos de capacidad y las condiciones de cuenta para 401, 403 y los problemas de cuota; corrige los errores de parámetros basándote en las indicaciones de la respuesta y evita enviar de forma reiterada la misma petición errónea. Las respuestas con formas desconocidas deben pasar a la zona de revisión pendiente, evitando fusionar un objeto de perfil vacío con una lista de vídeos vacía en un único estado de éxito.
Tras un tiempo de espera agotado (timeout) en la red, cabe la posibilidad de que el servidor ya haya procesado la solicitud, por lo que no debes reenviarla de inmediato asumiendo la inexistencia de cargos duplicados. Guarda los tiempos de inicio y fin de la solicitud, la acción, un resumen de los parámetros no sensibles y el identificador de seguimiento obtenido antes de contrastar el registro de llamadas. Los costes reales se rigen por billing y la facturación, sin calcularse de forma inversa a partir de las filas conservadas finalmente en la tabla de investigación.
Entrega una lista de filtrado susceptible de verificación
Un registro de filtrado de creadores utilizable debe incorporar de forma simultánea los motivos de selección y los límites de las evidencias: identidad de cuenta, origen de las muestras, momento de observación, reglas de cálculo, elementos excluidos, notas de revisión de contenido e información pendiente de confirmar con los socios colaboradores. No conviertas el resultado de una llamada a la interfaz en una diligencia debida completa, ni consideres que la legibilidad de los datos públicos otorga una autorización ilimitada para su almacenamiento y reexhibición.
Completa el recorrido por el perfil, los vídeos y la verificación de métricas utilizando una única cuenta autorizada antes de incrementar el volumen de cuentas. La API de datos reduce las tareas repetitivas de extracción; la calidad del filtrado depende de que expliques con claridad las métricas y logres que cada juicio remita a muestras reales.