Si tus TikToks consiguen unos cientos de visitas y ninguna conversión, la solución no es 'publica más memes', es estudiar qué funciona ya en tu nicho exacto y copiar la estructura. Un desarrollador de videojuegos publicó en r/gameDevMarketing que 5 vídeos estilo meme en un mes sumaron unas 3,364 visitas entre TikTok, Reels y Shorts, con crecimiento plano en la wishlist. La respuesta honesta del hilo: la conversión desde el vídeo corto es brutalmente baja salvo que te hagas viral de verdad, y las visitas de memes rara vez convierten. Así que deja de adivinar. La API de TikTok te deja sacar los mejores vídeos de los hashtags de tu nicho, leer sus cifras reales de reproducciones, likes, comentarios y compartidos, y descifrar el gancho, la duración y el formato que sí generan interacción. Cada llamada a TikTok de Scavio es 1 crédito ($0.005).
Requisitos previos
- Una API key de Scavio (50 créditos gratis al registrarte)
- Python 3.9+ o Node 18+
- 3-5 hashtags que tu público objetivo ve de verdad (no solo el nombre de tu juego)
Guia paso a paso
Paso 1: Resuelve los hashtags de tu nicho
Empieza por el endpoint de hashtag para confirmar que una etiqueta existe y ver su escala (view_count, video_count). Una etiqueta con millones de visitas pero pocos éxitos recientes está saturada; una etiqueta de tamaño medio con vídeos virales frescos es donde un creador pequeño puede colocarse.
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": "indiegame"}).json()
print(tag["data"]) # challenge_id, view_count, video_countPaso 2: Saca los mejores vídeos de cada hashtag
El endpoint hashtag/videos devuelve vídeos con información del autor y estadísticas completas. Este es tu conjunto de entrenamiento: los vídeos que tu público está viendo y con los que interactúa de verdad.
vids = requests.post("https://api.scavio.dev/api/v1/tiktok/hashtag/videos",
headers=H, json={"hashtag": "indiegame", "count": 30}).json()Paso 3: Ordena por tasa de interacción, no por visitas en bruto
Las visitas en bruto engañan. Calcula la tasa de interacción = (digg + comment + share) / play. Un vídeo con 40k visitas y 5% de interacción le gana a uno con 400k visitas y 0.3%. Este ratio es lo que separa el contenido que convierte del que solo se muestra.
def eng_rate(v):
s = v["statistics"]
plays = max(s["play_count"], 1)
return (s["digg_count"] + s["comment_count"] + s["share_count"]) / plays
ranked = sorted(vids["data"]["videos"], key=eng_rate, reverse=True)
for v in ranked[:10]:
print(round(eng_rate(v)*100, 1), "%", v["desc"][:60])Paso 4: Lee los ganchos de los ganadores
Saca la descripción y los patrones del primer comentario en los vídeos de mayor interacción. Busca la estructura compartida: un gancho en forma de pregunta, un antes/después, una recompensa en 3 segundos. Este es el formato que copiar, adaptado a tu juego.
top = ranked[0]
detail = requests.post("https://api.scavio.dev/api/v1/tiktok/video",
headers=H, json={"video_id": top["id"]}).json()
comments = requests.post("https://api.scavio.dev/api/v1/tiktok/video/comments",
headers=H, json={"video_id": top["id"], "count": 20}).json()Paso 5: Encuentra y estudia a los creadores, no solo los vídeos
Busca creadores de tu nicho, saca sus publicaciones recientes y mira qué formatos repiten. La consistencia entre los mejores vídeos de un creador es una señal más fuerte que cualquier viral aislado.
users = requests.post("https://api.scavio.dev/api/v1/tiktok/search/users",
headers=H, json={"query": "indie game dev", "count": 10}).json()
prof = requests.post("https://api.scavio.dev/api/v1/tiktok/profile",
headers=H, json={"username": users["data"]["users"][0]["unique_id"]}).json()
posts = requests.post("https://api.scavio.dev/api/v1/tiktok/user/posts",
headers=H, json={"sec_user_id": prof["data"]["user"]["sec_uid"], "count": 20}).json()Ejemplo en Python
import os, requests
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}
def top_by_engagement(hashtag, n=10):
vids = requests.post("https://api.scavio.dev/api/v1/tiktok/hashtag/videos",
headers=H, json={"hashtag": hashtag, "count": 50}).json()
def rate(v):
s = v["statistics"]; plays = max(s["play_count"], 1)
return (s["digg_count"] + s["comment_count"] + s["share_count"]) / plays
return sorted(vids["data"]["videos"], key=rate, reverse=True)[:n]
for v in top_by_engagement("indiegame"):
print(v["desc"][:70])Ejemplo en JavaScript
import { Scavio } from "scavio";
const client = new Scavio({ apiKey: process.env.SCAVIO_API_KEY });
async function topByEngagement(hashtag, n = 10) {
const vids = await client.tiktok.hashtagVideos({ hashtag, count: 50 });
const rate = v => {
const s = v.statistics, plays = Math.max(s.play_count, 1);
return (s.digg_count + s.comment_count + s.share_count) / plays;
};
return vids.data.videos.sort((a, b) => rate(b) - rate(a)).slice(0, n);
}
console.log((await topByEngagement("indiegame")).map(v => v.desc.slice(0, 70)));Salida esperada
POV: you shipped your first game and nobody downloaded it...
day 47 of making a game about a sentient toaster...
i spent 2 years on this boss fight, was it worth it?...