Como eu acho videos outlier do YouTube com uma API?
Puxe um lote de videos para uma palavra-chave, tire a mediana de visualizacoes desse lote e marque qualquer video cujas visualizacoes dividam a mediana por 5 ou mais. Essa razao e o score outlier, e uma API como a busca de YouTube da Scavio te entrega as visualizacoes, curtidas e comentarios em JSON sem voce tocar num navegador. Faz pouco tempo um criador no Reddit abriu o codigo de um "outlier finder" que faz exatamente isso, e um cientista de dados no mesmo subreddit mostrou por que os outliers por visualizacao, e nao a queda de impressoes, sao a unica coisa que da para medir de fora.
O que conta como video outlier?
Um outlier e um video que supera de forma massiva o desempenho tipico do seu grupo de pares. Esse grupo e ou os uploads recentes de um canal, ou os primeiros resultados de uma busca num nicho. A formula e simples:
outlier_score = video_views / median_views_of_peer_set
Use a mediana, nao a media. Um unico sucesso viral puxa a media para cima e esconde todos os outros estouros, enquanto a mediana fica ancorada no que e "normal". Um score de 1.0 e a media pura. Um score >= 5x e um outlier forte que vale dissecar: aquele tema, titulo ou formato de thumbnail se descolou do resto por algum motivo. Abaixo de ~2x e ruido. A maioria dos criadores estuda a faixa de 5x para cima, porque e ali que costuma se esconder um padrao repetivel.
Python: puxar um nicho, calcular a mediana, marcar os outliers
Isto chama a busca de YouTube da Scavio, pega as visualizacoes e imprime tudo que estiver em 5x ou mais. Roda do jeito que esta assim que voce colocar sua chave.
import requests
import statistics
API_KEY = "sk_live_..."
NICHE = "home espresso setup"
THRESHOLD = 5.0
resp = requests.post(
"https://api.scavio.dev/api/v1/youtube/search",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"search": NICHE},
)
resp.raise_for_status()
videos = resp.json()["videos"]
views = [v["view_count"] for v in videos if v.get("view_count")]
median = statistics.median(views)
for v in videos:
vc = v.get("view_count") or 0
score = vc / median if median else 0
if score >= THRESHOLD:
print(f"{score:.1f}x {vc:>10,} {v['title']}")Os nomes dos campos dependem do formato real da resposta, entao imprima um item primeiro se view_count ou videos nao baterem. Uma chamada custa 1 credito ($0.005), entao varrer dez nichos sai por cinco centavos.
JavaScript: a mesma chamada com fetch
const resp = await fetch("https://api.scavio.dev/api/v1/youtube/search", {
method: "POST",
headers: {
"Authorization": "Bearer sk_live_...",
"Content-Type": "application/json",
},
body: JSON.stringify({ search: "home espresso setup" }),
});
const { videos } = await resp.json();
const views = videos.map((v) => v.view_count).filter(Boolean).sort((a, b) => a - b);
const median = views[Math.floor(views.length / 2)];
const outliers = videos.filter((v) => (v.view_count || 0) / median >= 5);
console.log(outliers);O tradeoff honesto: dados de descoberta, nao analytics de canal
A Scavio devolve resultados de busca rankeados com visualizacoes, curtidas e comentarios publicos. E exatamente o que voce quer para descobrir e para varrer varios nichos rapido, a 1 credito por chamada. O que ela nao da sao as series temporais privadas por video: impressoes, taxa de cliques, duracao media de exibicao, a curva de tempo assistido. Isso vive atras de um login. Entao um outlier por visualizacao te diz que um video teve desempenho acima; nao te diz se foi a thumbnail que ganhou o clique ou o tema que segurou a exibicao.
Se voce precisa de metadados por video alem da busca, combine com POST https://api.scavio.dev/api/v1/youtube/metadata para um puxao mais rico de um video especifico. Mas para a queda de impressoes e CTR do seu proprio canal, o YouTube Studio e a API oficial do YouTube Data ganham sem discussao. O cientista de dados do Reddit que mediu a queda de impressoes trabalhava com exports do Studio justamente por isso. A Scavio e a vista de fora do desempenho publico; o Studio e a vista de dentro do seu proprio funil.
Por que uma API bate o scraping da busca publica
Os resultados de busca do YouTube sao publicos e indexados, entao uma API estruturada te entrega JSON limpo sem rotacao de proxy, sem resolver CAPTCHA, sem um navegador headless para cuidar. Voce pergunta, recebe visualizacoes e titulos. A pegadinha e a mesma do tradeoff acima: isto sao dados publicos de descoberta. Nao e uma porta dos fundos para metricas privadas de canal, e nenhuma API te da as impressoes ou o CTR de outra pessoa. Trate como um telescopio de pesquisa, nao como um painel de analytics.
A regra de decisao
Use uma API de dados de busca como a Scavio quando quiser varrer muitos nichos atras de temas que estouram e reconstruir titulos e formatos vencedores a partir de outliers publicos por poucos centavos por varredura. Combine com /youtube/metadata para puxoes mais profundos por video. Mude para o YouTube Studio ou para a Data API oficial no momento em que sua pergunta for sobre suas proprias impressoes, CTR ou retencao. Cacar outlier e descoberta; otimizar o canal e analytics, e uma unica ferramenta nao deveria fingir ser as duas.