ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo construir un detector de tendencias de productos TikTok
Tutorial

Cómo construir un detector de tendencias de productos TikTok

Cree un sistema de detección de tendencias en TikTok que identifique los productos virales antes de que alcancen su punto máximo. Realice un seguimiento de los hashtags, la velocidad de visualización y las tasas de adopción de los creadores.

Obtener clave API gratisDocumentacion API

TikTok impulsa las tendencias de productos más rápido que cualquier otra plataforma: un producto puede pasar de ser desconocido a estar agotado en cuestión de días. La detección temprana de tendencias brinda a las marcas de comercio electrónico y a los dropshippers una ventaja crucial. Este tutorial crea un canal de detección de tendencias utilizando la API Scavio TikTok que monitorea los hashtags relacionados con productos, rastrea la velocidad de visualización e identifica productos emergentes antes de que alcancen su punto máximo. El sistema analiza las tasas de crecimiento de los hashtags, los patrones de adopción de los creadores y los índices de participación para generar puntuaciones de tendencias. Cada ejecución de detección cuesta entre 5 y 10 créditos (entre 0,025 y 0,05 dólares).

Requisitos previos

  • Python 3.9+ instalado
  • solicita biblioteca instalada
  • Una clave API de Scavio de scavio.dev
  • Categorías de productos o nichos a monitorear

Guia paso a paso

Paso 1: Definir categorías de seguimiento de productos

Configure las categorías de productos y los términos de búsqueda relacionados para monitorear. Cada categoría tiene varias palabras clave para captar diferentes ángulos de la misma tendencia.

Python
categories = {
    'skincare': {
        'keywords': ['skincare routine', 'skincare haul', 'skincare viral',
                     'skincare hack', 'skincare tiktok made me buy'],
        'hashtags': ['skincareroutine', 'skincarehaul', 'tiktokmademebuyit']
    },
    'tech_gadgets': {
        'keywords': ['tech gadget viral', 'amazon finds tech',
                     'tiktok gadget review', 'must have tech 2026'],
        'hashtags': ['techfinds', 'amazontechfinds', 'gadgetreview']
    },
    'kitchen': {
        'keywords': ['kitchen gadget tiktok', 'cooking hack viral',
                     'amazon kitchen finds', 'kitchen must have'],
        'hashtags': ['kitchenhacks', 'kitchenfinds', 'cookingtiktok']
    }
}

total_searches = sum(len(c['keywords']) + len(c['hashtags']) for c in categories.values())
print(f'{len(categories)} categories, {total_searches} total API calls')
print(f'Estimated cost per run: ${total_searches * 0.005:.2f}')

Paso 2: Busque vídeos de productos de tendencia

Para cada palabra clave, busque TikTok y recopile datos de video. Realice un seguimiento de las reproducciones, los me gusta y los tiempos de creación para calcular métricas de velocidad.

Python
import requests, os, time

API_KEY = os.environ['SCAVIO_API_KEY']
TIKTOK_URL = 'https://api.scavio.dev/api/v1/tiktok'

def search_tiktok(keyword: str, count: int = 20) -> list:
    resp = requests.post(f'{TIKTOK_URL}/search/videos',
        headers={'Authorization': f'Bearer {API_KEY}',
                 'Content-Type': 'application/json'},
        json={'keyword': keyword, 'count': count, 'cursor': 0})
    resp.raise_for_status()
    videos = resp.json().get('data', {}).get('videos', [])
    return [{
        'id': v.get('id', ''),
        'author': v.get('author', {}).get('uniqueId', ''),
        'desc': v.get('desc', ''),
        'plays': v.get('stats', {}).get('playCount', 0),
        'likes': v.get('stats', {}).get('diggCount', 0),
        'comments': v.get('stats', {}).get('commentCount', 0),
        'shares': v.get('stats', {}).get('shareCount', 0),
        'create_time': v.get('createTime', 0),
        'keyword': keyword
    } for v in videos]

Paso 3: Extraer nombres de productos de descripciones de vídeos

Analice las descripciones de los videos para identificar marcas y nombres de productos específicos. Los vídeos suelen mencionar el nombre exacto del producto, la marca o el ASIN de Amazon.

Python
import re
from collections import Counter

def extract_products(videos: list) -> Counter:
    """Extract product mentions from video descriptions."""
    product_counter = Counter()
    # Common patterns: "Product Name" in caps, @brand mentions, #productname
    for v in videos:
        desc = v.get('desc', '')
        # Hashtag products (e.g., #CeraVe #StanleyCup)
        hashtags = re.findall(r'#(\w+)', desc)
        for tag in hashtags:
            # Filter out generic tags
            if len(tag) > 3 and tag.lower() not in {
                'fyp', 'foryou', 'viral', 'trending', 'tiktok',
                'skincare', 'review', 'haul', 'musthave'}:
                product_counter[tag.lower()] += 1
        # Brand mentions (capitalized words that look like brand names)
        brands = re.findall(r'\b([A-Z][a-zA-Z]+(?:\s[A-Z][a-zA-Z]+)?)\b', desc)
        for brand in brands:
            if len(brand) > 3 and brand.lower() not in {'this', 'that', 'the', 'with'}:
                product_counter[brand.lower()] += 1
    return product_counter

# Example:
products = extract_products(search_tiktok('skincare viral'))
for product, count in products.most_common(10):
    print(f'  {product}: {count} mentions')

Paso 4: Calcular puntuaciones de velocidad de tendencia

Califique cada producto según la rapidez con la que crecen sus menciones. La alta velocidad de visualización y muchos creadores únicos indican un producto de tendencia.

Python
import statistics
from datetime import datetime

def calculate_trend_score(product: str, videos: list) -> dict:
    relevant = [v for v in videos if product in v.get('desc', '').lower()]
    if len(relevant) < 2:
        return {'product': product, 'trend_score': 0, 'reason': 'Too few videos'}
    total_plays = sum(v['plays'] for v in relevant)
    total_engagement = sum(v['likes'] + v['comments'] + v['shares'] for v in relevant)
    unique_creators = len(set(v['author'] for v in relevant))
    # Recency: weight recent videos more heavily
    now = time.time()
    recency_scores = []
    for v in relevant:
        age_days = (now - v['create_time']) / 86400 if v['create_time'] > 0 else 30
        recency_scores.append(max(0, 1 - (age_days / 30)))  # 0-1, 1=today
    avg_recency = statistics.mean(recency_scores)
    # Composite trend score
    play_score = min(total_plays / 100000, 40)  # up to 40 points
    creator_score = min(unique_creators * 5, 30)  # up to 30 points
    recency_score = avg_recency * 30  # up to 30 points
    total_score = round(play_score + creator_score + recency_score, 1)
    return {
        'product': product,
        'trend_score': total_score,
        'total_plays': total_plays,
        'unique_creators': unique_creators,
        'video_count': len(relevant),
        'avg_recency': round(avg_recency, 2)
    }

Paso 5: Ejecutar todo el proceso de detección de tendencias

Combine todos los pasos en un único proceso que escanea categorías, extrae productos, califica tendencias y genera un informe clasificado.

Python
def detect_trends(categories: dict) -> list:
    all_videos = []
    credits_used = 0
    for category, config in categories.items():
        print(f'Scanning {category}...')
        for keyword in config['keywords']:
            videos = search_tiktok(keyword, count=20)
            all_videos.extend(videos)
            credits_used += 1
            time.sleep(0.3)
    # Extract and score products
    product_counts = extract_products(all_videos)
    trends = []
    for product, count in product_counts.most_common(20):
        if count >= 3:  # minimum mention threshold
            score = calculate_trend_score(product, all_videos)
            if score['trend_score'] > 10:
                trends.append(score)
    trends.sort(key=lambda t: t['trend_score'], reverse=True)
    print(f'\nDetected {len(trends)} trending products')
    print(f'Credits used: {credits_used} (${credits_used * 0.005:.2f})')
    for t in trends[:10]:
        emoji_bar = '#' * int(t['trend_score'] / 5)
        print(f'  [{t["trend_score"]:5.1f}] {t["product"]}: '
              f'{t["total_plays"]:,} plays, {t["unique_creators"]} creators '
              f'{emoji_bar}')
    return trends

trends = detect_trends(categories)

Ejemplo en Python

Python
import os, requests, time, re
from collections import Counter

API_KEY = os.environ['SCAVIO_API_KEY']
TT = 'https://api.scavio.dev/api/v1/tiktok'

def search(keyword, count=20):
    resp = requests.post(f'{TT}/search/videos',
        headers={'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json'},
        json={'keyword': keyword, 'count': count, 'cursor': 0})
    return resp.json().get('data', {}).get('videos', [])

def detect_trends(keywords):
    all_videos = []
    for kw in keywords:
        all_videos.extend(search(kw))
        time.sleep(0.3)
    products = Counter()
    for v in all_videos:
        for tag in re.findall(r'#(\w{4,})', v.get('desc', '')):
            if tag.lower() not in {'fyp', 'foryou', 'viral', 'trending'}:
                products[tag.lower()] += 1
    print(f'Scanned {len(all_videos)} videos, found {len(products)} products')
    for product, count in products.most_common(10):
        print(f'  {product}: {count} mentions')
    return products

detect_trends(['skincare viral', 'amazon finds 2026', 'tiktok made me buy'])

Ejemplo en JavaScript

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
const TT = 'https://api.scavio.dev/api/v1/tiktok';

async function searchTikTok(keyword) {
  const resp = await fetch(`${TT}/search/videos`, {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' },
    body: JSON.stringify({ keyword, count: 20, cursor: 0 })
  });
  return (await resp.json()).data?.videos || [];
}

async function detectTrends(keywords) {
  const products = {};
  for (const kw of keywords) {
    const videos = await searchTikTok(kw);
    videos.forEach(v => {
      const tags = (v.desc || '').match(/#(\w{4,})/g) || [];
      tags.forEach(t => {
        const tag = t.slice(1).toLowerCase();
        if (!['fyp', 'foryou', 'viral'].includes(tag)) {
          products[tag] = (products[tag] || 0) + 1;
        }
      });
    });
  }
  Object.entries(products).sort((a, b) => b[1] - a[1]).slice(0, 10)
    .forEach(([p, c]) => console.log(`  ${p}: ${c} mentions`));
}

detectTrends(['skincare viral', 'amazon finds 2026']);

Salida esperada

JSON
Scanning skincare...
Scanning tech_gadgets...
Scanning kitchen...

Detected 8 trending products
Credits used: 12 ($0.06)
  [ 78.5] cerave: 1,234,000 plays, 15 creators ################
  [ 65.2] stanleycup: 890,000 plays, 12 creators #############
  [ 52.1] dysonairwrap: 567,000 plays, 8 creators ###########
  [ 45.8] theordinary: 445,000 plays, 9 creators #########
  [ 38.4] airfryer: 334,000 plays, 7 creators ########
  [ 31.0] laneige: 234,000 plays, 6 creators ######
  [ 24.5] owala: 178,000 plays, 5 creators #####
  [ 18.2] hexclad: 123,000 plays, 4 creators ####

Tutoriales relacionados

  • Cómo crear un rastreador de tendencias de comercio electrónico de TikTok
  • Cómo monitorear una campaña de hashtag de TikTok a través de API
  • Cómo crear una canalización de recopilación de UGC en TikTok

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.9+ instalado. solicita biblioteca instalada. Una clave API de Scavio de scavio.dev. Categorías de productos o nichos a monitorear. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

Las mejores API de análisis de hashtags de TikTok (2026)

Read more
Best Of

Las mejores API de datos de TikTok sin autenticación en 2026

Read more
Glossary

API no oficial de TikTok

Read more
Comparison

TikTok Proxy Scraping vs TikTok Third-Party API (Scavio, TikAPI)

Read more
Glossary

Cumplimiento de la API de TikTok versus raspado

Read more
Comparison

Apify TikTok Scraper vs Scavio TikTok API

Read more

Empieza a construir

Cree un sistema de detección de tendencias en TikTok que identifique los productos virales antes de que alcancen su punto máximo. Realice un seguimiento de los hashtags, la velocidad de visualización y las tasas de adopción de los creadores.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad