jsonscraper
Mercados
Volver al diario

Cómo detectar vídeos de TikTok con una interacción creciente sin comparar las visualizaciones totales

Captura métricas de los mismos vídeos encontrados a intervalos y calcula el aumento por separado de la popularidad acumulada

Política editorial Informar de un error

Para saber si un vídeo concreto de TikTok está generando más interacción, compara sus métricas públicas con una captura anterior del mismo vídeo. Una búsqueda puntual muestra las visualizaciones e interacciones acumuladas; volver a recopilar los mismos vídeos permite observar el cambio entre dos ejecuciones. A continuación se presenta un flujo de trabajo mínimo y funcional en Python: una consulta de búsqueda, el almacenamiento de las métricas en un CSV y el cálculo de la diferencia.

¿Qué mide exactamente este seguimiento?

El script es útil para profesionales del marketing, analistas o desarrolladores que necesitan una lista de vídeos encontrados sobre un tema y un historial verificable de observaciones. Por ejemplo, un equipo puede hacer un seguimiento periódico de vídeos sobre el lanzamiento de un producto o una consulta concreta de la audiencia y averiguar cuáles han ganado más visualizaciones, «Me gusta», comentarios o compartidos desde la revisión anterior.

Artículo: Cómo detectar vídeos de TikTok con una interacción creciente sin comparar las visualizaciones totales
Resumen: Un flujo de trabajo paso a paso en Python recopila vídeos de TikTok encontrados mediante una búsqueda, guarda las métricas de visualizaciones e interacciones en un CSV y, en la siguiente ejecución, calcula los cambios de esos mismos vídeos.
Función de la imagen: portada: la idea central
Sección: ¿Qué mide exactamente este seguimiento?
Tema visual: Fotografía editorial: hojas impresas con filas anonimizadas de identificadores de vídeos cortos y dos marcas de tiempo
Comparación de dos capturas de métricas del mismo vídeo mediante su identificador.© jsonscraper · creado con IA

La unidad clave de comparación es el vídeo, identificado mediante aweme_id. Para cada registro se guardan la hora de recopilación, el identificador, la descripción, la URL, el nombre del autor y los contadores disponibles. Después, las dos capturas se emparejan por identificador. Así, el aumento de las visualizaciones de un vídeo no se confunde con las visualizaciones acumuladas de otro.

El resultado solo describe los vídeos devueltos por una consulta de búsqueda concreta en una ejecución concreta. Los resultados de búsqueda pueden variar y algunos campos de estadísticas podrían no estar disponibles. Por eso conviene conservar las propias capturas y la hora de recopilación, e interpretar el informe como un seguimiento de vídeos ya encontrados, no como un catálogo completo de publicaciones sobre el tema.

¿Cómo funciona la recopilación mediante API?

La documentación de TikTok Scraper API describe la ruta GET /searchVideo. La búsqueda requiere el texto keyword; entre los parámetros opcionales figuran count, region, sort_by y date_posted. La clave de API se envía como license_key. La documentación indica https://tiktok.evelode.com como punto de acceso base.

La respuesta contiene un estado externo y un objeto tiktok. Los vídeos de los resultados de búsqueda pueden aparecer en tiktok.aweme_list o dentro de tiktok.search_item_list[].aweme_info. El procesador de abajo admite ambos formatos. Las métricas se obtienen de statistics, incluidos play_count, digg_count, comment_count y share_count; los valores ausentes se guardan en blanco, no se sustituyen por cero.

La documentación de las rutas enumera cursor para recorrer los resultados de búsqueda e indica los valores permitidos de date_posted y sort_by. Para un seguimiento sencillo y repetible, basta con obtener primero una página de resultados y registrar la respuesta; añade paginación solo si hace falta. Si la necesitas, pasa el cursor recibido sin transformarlo.

Ejemplo funcional en Python

Instala la biblioteca de solicitudes con el comando python -m pip install requests y define la clave en la variable de entorno JSONSCRAPER_TIKTOK_LICENSE_KEY. El script acepta una frase de búsqueda como argumento y añade las capturas recopiladas a un único archivo CSV. El código es compatible con Python 3.8 o posterior.

import csv
import os
import sys
from datetime import datetime, timezone
from pathlib import Path

import requests

BASE_URL = "https://tiktok.evelode.com/searchVideo"
CSV_PATH = Path("tiktok_video_snapshots.csv")
FIELDS = [
    "collected_at", "aweme_id", "author", "description", "share_url",
    "play_count", "digg_count", "comment_count", "share_count",
]


def extract_items(payload):
    """Support the observed search response layouts."""
    data = payload.get("tiktok") or {}
    items = data.get("aweme_list") or []
    if items:
        return items

    found = []
    for result in data.get("search_item_list") or []:
        info = result.get("aweme_info")
        if info:
            found.append(info)
    return found


def main():
    key = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
    if not key:
        raise SystemExit("Set JSONSCRAPER_TIKTOK_LICENSE_KEY first")
    if len(sys.argv) < 2:
        raise SystemExit('Usage: python collect.py "search phrase"')

    params = {
        "license_key": key,
        "keyword": sys.argv[1],
        "count": 20,
        "region": "US",
        "sort_by": "relevance",
        "date_posted": "this-week",
    }
    response = requests.get(BASE_URL, params=params, timeout=30)
    response.raise_for_status()
    payload = response.json()

    if payload.get("status") != "ok":
        raise RuntimeError("API returned a non-ok outer status")
    data = payload.get("tiktok") or {}
    items = extract_items(payload)
    collected_at = datetime.now(timezone.utc).isoformat()

    rows = []
    for item in items:
        stats = item.get("statistics") or {}
        author = item.get("author") or {}
        rows.append({
            "collected_at": collected_at,
            "aweme_id": item.get("aweme_id"),
            "author": author.get("unique_id") or author.get("nickname"),
            "description": item.get("desc"),
            "share_url": item.get("share_url"),
            "play_count": stats.get("play_count"),
            "digg_count": stats.get("digg_count"),
            "comment_count": stats.get("comment_count"),
            "share_count": stats.get("share_count"),
        })

    write_header = not CSV_PATH.exists()
    with CSV_PATH.open("a", newline="", encoding="utf-8") as file:
        writer = csv.DictWriter(file, fieldnames=FIELDS)
        if write_header:
            writer.writeheader()
        writer.writerows(rows)

    print("Saved", len(rows), "returned videos")
    print("has_more:", data.get("has_more"), "cursor:", data.get("cursor"))


if __name__ == "__main__":
    main()

Por ejemplo, ejecuta python collect.py "consulta sobre un producto". La biblioteca añade la clave a los parámetros de la URL; el script no la muestra en el terminal. No guardes la URL completa de la solicitud en registros públicos, ya que incluye la clave. Para un sistema de producción, utiliza un gestor de secretos y restringe el acceso al archivo de capturas.

¿Cómo calcular el aumento entre ejecuciones?

El script guarda deliberadamente todas las observaciones en lugar de sobrescribir los valores anteriores. El siguiente analizador compara las dos capturas más recientes de cada vídeo e imprime la diferencia entre los contadores. Si una métrica no tiene valor en uno de los dos registros, el resultado se marca como no disponible.

Artículo: Cómo detectar vídeos de TikTok con una interacción creciente sin comparar las visualizaciones totales
Resumen: Un flujo de trabajo paso a paso en Python recopila vídeos de TikTok encontrados mediante una búsqueda, guarda las métricas de visualizaciones e interacciones en un CSV y, en la siguiente ejecución, calcula los cambios de esos mismos vídeos.
Función de la imagen: ilustración complementaria 2: otro aspecto específico
Sección: ¿Cómo calcular el aumento entre ejecuciones?
Tema visual: Infografía en ruso que muestra el flujo: búsqueda de TikTok por palabra clave → vídeo devuelto
El recorrido de los datos desde los resultados de búsqueda hasta la comparación de dos capturas guardadas.© jsonscraper · ilustración generada con IA
import csv
from collections import defaultdict
from pathlib import Path

rows_by_video = defaultdict(list)
with Path("tiktok_video_snapshots.csv").open(encoding="utf-8", newline="") as file:
    for row in csv.DictReader(file):
        if row["aweme_id"]:
            rows_by_video[row["aweme_id"]].append(row)

metrics = ("play_count", "digg_count", "comment_count", "share_count")
for video_id, snapshots in rows_by_video.items():
    snapshots.sort(key=lambda row: row["collected_at"])
    if len(snapshots) < 2:
        continue
    previous, latest = snapshots[-2], snapshots[-1]
    changes = {}
    for metric in metrics:
        old, new = previous[metric], latest[metric]
        changes[metric] = int(new) - int(old) if old and new else None
    print(video_id, changes, latest["share_url"])

La diferencia es el resultado de restar dos valores guardados, no una tasa de crecimiento calculada para una periodicidad garantizada. Si las ejecuciones tienen intervalos distintos, añade el cálculo del tiempo transcurrido entre collected_at y compara el aumento durante el intervalo real. Los contadores pueden cambiar entre observaciones; las marcas de tiempo guardadas indican cuándo se obtuvieron los valores utilizados.

¿Cómo automatizar e interpretar el informe?

Para elaborar un informe diario, programa la recopilación en un servidor o en CI, define una lista fija de frases de búsqueda y guarda el CSV o carga las filas en una base de datos. Si la búsqueda devuelve elementos duplicados en una ejecución, deduplica los registros de esa captura mediante aweme_id. Para conservar el historial, guarda el JSON original junto con las columnas normalizadas: así será más fácil volver a procesar los datos si cambia el esquema del informe.

En la tabla, resulta práctico mostrar el ID y la URL del vídeo, el autor, la descripción, la hora de recopilación y las diferencias de cada métrica. Ordenar por el aumento de visualizaciones permite evaluar la difusión; el aumento de comentarios o de contenido compartido ayuda a detectar otro tipo de reacción. No combines estos indicadores en una clasificación única sin definir una regla explícita: cada contador representa algo distinto.

El planificador puede enviar el informe por correo electrónico, a una hoja de cálculo o a un canal interno, pero ese paso depende de tu infraestructura: el ejemplo anterior solo recopila y analiza los datos. Para una recopilación más completa, puedes recorrer las páginas de resultados, guardar el cursor y detener el bucle cuando la API indique que no quedan más páginas. El cursor de búsqueda es un valor opaco de la respuesta; no lo calcules por tu cuenta. Incluso recorrer todas las páginas describe los resultados devueltos y no garantiza una lista exhaustiva de todas las publicaciones pertinentes.

El resultado práctico esperado es un registro reproducible de observaciones y una tabla con los cambios de los vídeos encontrados. Esto ayuda a detectar qué publicaciones han cambiado sus contadores públicos entre revisiones y a compartir enlaces concretos con un especialista para un análisis más detallado. Encontrarás más información sobre el producto y el acceso a la API en la página de TikTok Scraper API.

¿Qué hay que comprobar antes de programar la ejecución?

  • Comprueba que el estado externo de la respuesta sea ok antes de procesar tiktok.
  • Verifica las dos estructuras posibles de los elementos de búsqueda; si no hay una lista, la recopilación debe quedar vacía, no generar un error.
  • Conserva los valores originales y las marcas de tiempo. Una métrica vacía debe seguir vacía.
  • Utiliza las mismas consultas y parámetros para facilitar la comparación de las capturas; registra junto al informe cualquier cambio en esos ajustes.
  • Controla la frecuencia de ejecución, los errores HTTP y el tamaño del historial; respeta también las normas aplicables de la plataforma y los requisitos de tratamiento de datos.

En resumen, para obtener un resultado observable basta con repetir la misma búsqueda, identificar los vídeos mediante aweme_id y comparar sus métricas guardadas a lo largo del tiempo. Este método responde a una pregunta práctica y concreta —qué vídeos ya encontrados han cambiado sus contadores públicos entre dos revisiones— y conserva los datos originales para auditarlos y procesarlos posteriormente.

Gente

Aún no hay personas en la lista para este artículo.

Sigue leyendoCómo analizar los temas de creadores de TikTok: un flujo práctico con Python
Lee el siguiente artículo

Convierte lo que lees en una integración funcional

Explora las API de datos sociales de jsonscraper, prueba solicitudes y crea tu próximo flujo de trabajo.

Explorar APIs