O problema que resolve
Traders e pesquisadores querem saber quais ativos as vozes influentes estão discutindo e se o sentimento está mudando, mas a informação fica presa em vídeos longos. Quando um trecho viraliza nas redes sociais, o movimento já pode ter acontecido. Um feed estruturado transforma comentários falados em dados que podem ser examinados, pesquisados e usados em backtests.
O que incluir na primeira versão
- Uma lista selecionada de canais de analistas e comentaristas
- Extração de tickers e ativos de cada novo vídeo
- Sentimento de alta, baixa ou neutro por menção
- Um resumo diário ranqueado por número de menções e mudança de sentimento
- Um feed em JSON ou API para usuários quantitativos
Como criar, passo a passo
- 01
Selecione os canais
Escolha canais por categoria e influência. Resolva cada um uma única vez para armazenar o ID do canal.
- 02
Consulte de hora em hora
Resolva cada canal com um limite pequeno e transcreva só os novos IDs de vídeo com /transcribe.
- 03
Extraia sinais estruturados
Peça a um LLM que retorne um JSON listando cada ativo mencionado, a tese apresentada, o sentimento e o timestamp.
- 04
Agregue e publique
Armazene os sinais em um banco de dados, ranqueie-os diariamente e publique uma newsletter, um dashboard ou um feed via API.
Código inicial
Esta ideia segue o padrão "Receita 2: monitore canais e receba alertas de novos uploads". Use seus próprios canais, prompts e armazenamento.
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
WATCHLIST = ["@somechannel", "@anotherchannel"]
KEYWORDS = ["your brand", "competitor"]
seen = set() # persist this in a database in production
for handle in WATCHLIST:
latest = requests.post(f"{API}/channels/resolve", headers=HEADERS,
json={"handle": handle, "limit": 10}).json()
for video in latest["items"]:
if video["video_id"] in seen:
continue
seen.add(video["video_id"])
t = requests.post(f"{API}/transcribe", headers=HEADERS,
json={"video": video["video_id"]}).json()
text = t.get("data", {}).get("transcript", {}).get("text", "").lower()
hits = [k for k in KEYWORDS if k in text]
if hits:
print(f"ALERT {video['title']}: {hits}")Como gera receita
Opere como newsletter paga para traders pessoa física, assinatura de dashboard para equipes de research ou feed via API com preço por cobertura. Os dados históricos ficam mais valiosos com o tempo para backtests.
Erros a evitar
- Apresentar os sinais como recomendação de investimento: identifique o feed como informativo e inclua avisos claros.
- Confundir tickers com palavras comuns: valide os símbolos contra uma lista de tickers e o contexto ao redor.
- Armazenar só os resumos: guarde as transcrições brutas para poder extrair os sinais de novo conforme seus prompts melhorarem.
Dúvidas sobre esta ideia
O sentimento no YouTube consegue prever movimentos do mercado?
É um sinal entre muitos. O valor de um feed está na velocidade e na cobertura: saber o que as vozes influentes estão dizendo sem assistir a cada vídeo.
Com que rapidez novos vídeos podem ser processados?
Consultando de hora em hora e transcrevendo os novos uploads com legendas, os novos comentários normalmente aparecem em até uma hora.
É legal vender uma newsletter baseada em vídeos do YouTube?
Resumos e análises são comuns, mas você é responsável por cumprir os termos do YouTube e a lei de direitos autorais. Evite republicar transcrições completas e inclua links para os vídeos originais.