El problema de "nunca se que publicar despues" es un problema de datos, no de creatividad. Fundadores y creadores se quedan mirando un borrador en blanco porque estan adivinando en lugar de mirar lo que ya funciona en su nicho. La API de TikTok arregla la mitad de la adivinacion: trae los videos top de los hashtags de tu nicho, ordenalos por reproducciones y tienes una lista clasificada de formatos y ganchos que estan consiguiendo visitas ahora mismo. Los endpoints de TikTok de Scavio devuelven esto como JSON estructurado a 1 credito (0,005 $) por peticion, sin scraping, sin proxies. Esto recorre como convertir un nicho en una cola de ideas de contenido. La API te da la senal; el angulo sigue siendo tuyo.
Requisitos previos
- Una API key de Scavio (50 creditos gratis al registrarte)
- Python 3.9+ o Node 18+
- Un nicho y dos o tres hashtags semilla
Guia paso a paso
Paso 1: Resuelve tu hashtag a su challenge ID
Los endpoints de TikTok son una busqueda en dos pasos: nombre a ID, luego ID a datos. Empieza resolviendo tu hashtag semilla (por ejemplo "skincare") a su challenge_id y sus estadisticas de visualizacion.
import os, requests
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}
tag = requests.post("https://api.scavio.dev/api/v1/tiktok/hashtag",
headers=H, json={"hashtag": "skincare"}).json()
print(tag["data"]) # challenge_id, view_count, video_countPaso 2: Trae los videos top bajo ese hashtag
Trae los videos del hashtag y lee el bloque de statistics de cada uno: play_count, digg_count (likes), comment_count, share_count. Esas son tus senales de ranking, lo que el nicho esta premiando de verdad.
vids = requests.post("https://api.scavio.dev/api/v1/tiktok/hashtag/videos",
headers=H, json={"hashtag": "skincare", "count": 30}).json()
top = sorted(vids["data"]["videos"],
key=lambda v: v["statistics"]["play_count"], reverse=True)[:10]Paso 3: Busca patrones de formato, no solo un hashtag
Los hashtags son ruidosos. Usa search/videos con una frase de nicho ("morning skincare routine") para captar videos con muchas visitas que no usaron tu etiqueta exacta. Combina ambas listas y deduplica por ID de video para una foto mas completa de lo que funciona.
search = requests.post("https://api.scavio.dev/api/v1/tiktok/search/videos",
headers=H, json={"query": "morning skincare routine", "count": 30}).json()Paso 4: Extrae el patron repetible y luego anade tu angulo
Mira a traves de los videos top la estructura compartida: el gancho en los dos primeros segundos, el formato (antes/despues, lista, voz en off), la duracion. Esa estructura repetible es tu idea de contenido. La API te entrega el formato probado; tu pones el angulo y la voz especificos del nicho. Vuelve a ejecutarlo cada semana, las tendencias caducan rapido, y el gancho ganador del mes pasado es el ruido de este mes.
Ejemplo en Python
import os, requests
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}
def content_ideas(hashtag, phrase, n=10):
vids = requests.post("https://api.scavio.dev/api/v1/tiktok/hashtag/videos",
headers=H, json={"hashtag": hashtag, "count": 30}).json()["data"]["videos"]
found = requests.post("https://api.scavio.dev/api/v1/tiktok/search/videos",
headers=H, json={"query": phrase, "count": 30}).json()["data"]["videos"]
pool = {v["id"]: v for v in vids + found}.values()
return sorted(pool, key=lambda v: v["statistics"]["play_count"], reverse=True)[:n]
for v in content_ideas("skincare", "morning skincare routine"):
print(v["statistics"]["play_count"], v["desc"][:80])Ejemplo en JavaScript
const H = { Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`, "Content-Type": "application/json" };
async function contentIdeas(hashtag, phrase, n = 10) {
const post = (path, body) => fetch(`https://api.scavio.dev/api/v1/tiktok/${path}`,
{ method: "POST", headers: H, body: JSON.stringify(body) }).then(r => r.json());
const a = (await post("hashtag/videos", { hashtag, count: 30 })).data.videos;
const b = (await post("search/videos", { query: phrase, count: 30 })).data.videos;
const pool = [...new Map([...a, ...b].map(v => [v.id, v])).values()];
return pool.sort((x, y) => y.statistics.play_count - x.statistics.play_count).slice(0, n);
}Salida esperada
Una lista clasificada de los videos con mas visitas de tu nicho, cada uno con su recuento de reproducciones y su descripcion, para que el proximo post se base en lo que ya esta ganando en lugar de una conjetura a pagina en blanco.