ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Flujos de trabajo
  3. Diario TikTok Winning Producto Scan
Flujo de trabajo

Diario TikTok Winning Producto Scan

Diario automatizado scan of trending TikTok hashtags to detectar winning productos con high engagement antes de they go mainstream.

Comenzar gratisDocumentacion API

Resumen

Este flujo de trabajo scans trending TikTok hashtags diario to detectar productos gaining viral traction. It rastrea engagement velocity a traves de product-related hashtags, puntuaciones videos by view-to-engagement ratios, y surfaces productos showing early viral senales. El salida feeds en producto research pipelines for dropshippers y DTC marca scouts.

Desencadenador

Cron programar (diario at 10 AM UTC)

Programación

Diario 7 AM

Pasos del flujo de trabajo

1

Cargar producto hashtag lista

Leer el lista of product-related TikTok hashtags to monitorear de configuracion.

2

Obtener trending videos per hashtag

Call el Scavio TikTok API for cada hashtag y retrieve trending video datos.

3

Calcular engagement puntuaciones

Compute engagement tasa, view velocity, y creator authenticity senales for cada video.

4

Filtrar high-signal productos

Keep solo videos con engagement above umbral y views suggesting early traction.

5

Deduplicate y clasificar

Group by producto, deduplicate a traves de hashtags, y clasificar by combined engagement senal.

6

Salida producto oportunidades

Save ranked producto lista con engagement datos y enviar top oportunidades to Slack.

Implementacion en Python

Python
import requests
import json
from datetime import datetime
from pathlib import Path
from collections import defaultdict

API_KEY = "your_scavio_api_key"
BASE_URL = "https://api.scavio.dev/api/v1/tiktok"

PRODUCT_HASHTAGS = [
    "tiktokmademebuyit",
    "amazonfinds",
    "viralproducts",
    "dropshipping2026",
    "tiktokshop",
    "musthave",
    "gadgets",
    "homefinds",
]

MIN_VIEWS = 50000
MIN_ENGAGEMENT_RATE = 0.04

def fetch_hashtag_videos(hashtag: str) -> list[dict]:
    res = requests.post(
        f"{BASE_URL}/hashtag",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"hashtag": hashtag},
        timeout=15,
    )
    res.raise_for_status()
    return res.json().get("videos", [])

def score_video(video: dict) -> dict | None:
    views = video.get("views", 0)
    likes = video.get("likes", 0)
    shares = video.get("shares", 0)
    comments = video.get("comments", 0)

    if views < MIN_VIEWS:
        return None

    engagement_rate = (likes + shares + comments) / views if views > 0 else 0
    if engagement_rate < MIN_ENGAGEMENT_RATE:
        return None

    return {
        "video_id": video.get("id", ""),
        "description": video.get("description", "")[:200],
        "creator": video.get("creator", ""),
        "views": views,
        "likes": likes,
        "shares": shares,
        "engagement_rate": round(engagement_rate, 4),
        "score": round(engagement_rate * (views / 100000), 2),
    }

def run():
    opportunities = defaultdict(list)

    for hashtag in PRODUCT_HASHTAGS:
        videos = fetch_hashtag_videos(hashtag)
        for video in videos:
            scored = score_video(video)
            if scored:
                scored["hashtag"] = hashtag
                opportunities[scored["creator"]].append(scored)

    # Rank by best single video score
    ranked = []
    for creator, videos in opportunities.items():
        best = max(videos, key=lambda x: x["score"])
        ranked.append(best)

    ranked.sort(key=lambda x: x["score"], reverse=True)

    date = datetime.utcnow().strftime("%Y-%m-%d")
    report = {
        "date": date,
        "total_opportunities": len(ranked),
        "top_products": ranked[:20],
    }

    Path(f"tiktok_products_{date}.json").write_text(json.dumps(report, indent=2))
    print(f"Found {len(ranked)} product opportunities")
    for item in ranked[:5]:
        print(f"  {item['hashtag']} | {item['views']:,} views | {item['engagement_rate']:.1%} ER | score: {item['score']}")

if __name__ == "__main__":
    run()

Implementacion en JavaScript

JavaScript
const API_KEY = "your_scavio_api_key";
const BASE_URL = "https://api.scavio.dev/api/v1/tiktok";

const PRODUCT_HASHTAGS = [
  "tiktokmademebuyit", "amazonfinds", "viralproducts", "dropshipping2026",
  "tiktokshop", "musthave", "gadgets", "homefinds",
];

const MIN_VIEWS = 10000;
const MIN_ENGAGEMENT = 0.03;

async function fetchHashtagVideos(hashtag) {
  const res = await fetch(BASE_URL + "/hashtag/videos", {
    method: "POST",
    headers: { Authorization: "Bearer " + API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ hashtag }),
  });
  if (!res.ok) throw new Error("tiktok " + res.status);
  const data = await res.json();
  return data.data?.videos || [];
}

function scoreVideo(video) {
  const views = video.play_count || 0;
  if (views < MIN_VIEWS) return null;
  const likes = video.digg_count || 0;
  const shares = video.share_count || 0;
  const comments = video.comment_count || 0;
  const er = views > 0 ? (likes + shares + comments) / views : 0;
  if (er < MIN_ENGAGEMENT) return null;
  return { videoId: video.id, creator: video.creator, views, likes, shares, er: Math.round(er * 10000) / 10000, score: Math.round(er * (views / 100000) * 100) / 100 };
}

async function run() {
  const opportunities = {};
  for (const hashtag of PRODUCT_HASHTAGS) {
    const videos = await fetchHashtagVideos(hashtag);
    for (const video of videos) {
      const scored = scoreVideo(video);
      if (scored) {
        scored.hashtag = hashtag;
        if (!opportunities[scored.creator]) opportunities[scored.creator] = [];
        opportunities[scored.creator].push(scored);
      }
    }
  }
  const ranked = Object.values(opportunities).map(vids => vids.sort((a, b) => b.score - a.score)[0]).sort((a, b) => b.score - a.score);
  console.log("Found " + ranked.length + " product opportunities");
  ranked.slice(0, 5).forEach(item => console.log("  " + item.hashtag + " | " + item.views + " views | score: " + item.score));
}

run();

Plataformas utilizadas

TikTok

Descubrimiento de videos, creadores y productos en tendencia

Preguntas frecuentes

Este flujo de trabajo scans trending TikTok hashtags diario to detectar productos gaining viral traction. It rastrea engagement velocity a traves de product-related hashtags, puntuaciones videos by view-to-engagement ratios, y surfaces productos showing early viral senales. El salida feeds en producto research pipelines for dropshippers y DTC marca scouts.

Este flujo de trabajo usa un cron programar (diario at 10 am utc). Diario 7 AM.

Este flujo de trabajo usa las siguientes plataformas de Scavio: tiktok. Cada plataforma se llama a traves del mismo endpoint de API unificado.

Si. El plan gratuito de Scavio incluye 50 creditos al registrarte sin tarjeta de credito. Es suficiente para probar y validar este flujo de trabajo antes de escalarlo.

Diario TikTok Winning Producto Scan

Diario automatizado scan of trending TikTok hashtags to detectar winning productos con high engagement antes de they go mainstream.

Obtener tu clave APILeer 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