Frames e momentos do YouTube para agentes de IA
Dê ao seu agente os frames e os momentos de um vídeo do YouTube
Frameskim é uma API para extrair frames do YouTube que devolve os frames e os momentos de um vídeo público do YouTube nos timestamps que você pedir, por $0.12 por vídeo mais $0.015 por frame. Passe uma URL pública do YouTube. Receba frames em timestamps exatos, as palavras ditas entre eles e os momentos que respondem à sua pergunta. Pela API da Apify ou por MCP.
Frameskim é uma API para extrair frames do YouTube que devolve os frames e os momentos de um vídeo público do YouTube nos timestamps que você pedir, por $0.12 por vídeo mais $0.015 por frame. Passe uma URL pública do YouTube. Receba frames em timestamps exatos, as palavras ditas entre eles e os momentos que respondem à sua pergunta.
A partir de US$0.12 por vídeo. Uma execução que falha não é cobrada.
Saída real
Encontre o momento
Resposta0:00:15
0:00:15
moments("when does the parachute deploy")
{ "frameTime": "0:00:15", "score": 0.95, "imageUrl": "https://api.apify.com/v2/key-value-stores/…" }Agentes leem texto. A resposta muitas vezes está na tela. O Frameskim encontra o momento, entrega o frame e diz exatamente quando acontece.
Um frame a cada 10 segundos. Em âmbar, o frame que cada pergunta retorna.
- 1when does the parachute deployframe em 0:00:15
- 2when does the heat shield separateframe em 0:00:35
Três modos, um vídeo por execução
Peça frames, um trecho ou o momento.
Frames
0:00:15
0:00:25
0:00:35
0:00:45
Um frame a cada N segundos no intervalo que você escolher. Cada item traz o segundo, o timestamp, o tamanho e um link assinado para a imagem, que abre sem token.
{
"mode": "frames",
"url": "https://youtu.be/4czjS9h4Fpg",
"start": "0:15",
"end": "0:45",
"every": 10
}{
"videoId": "4czjS9h4Fpg", "t": 15.0, "ts": "0:00:15",
"imageUrl": "https://api.apify.com/v2/key-value-stores/.../records/frame-000-15000.jpg",
"width": 854, "height": 480, "source": "media"
}Saída: um item por frame e, no fim, um item de resumo
Trecho
0:00:15
"text" dito até o frame seguinte
…navigation has confirmed that the parachute has deployed…
Os mesmos frames mais o texto da transcrição dito entre cada frame e o seguinte. O item de resumo traz um bloco de Markdown pronto para colar: uma linha por frame com o timestamp, o texto e o link da imagem.
{
"mode": "segment",
"url": "https://youtu.be/4czjS9h4Fpg",
"start": "0:15",
"end": "0:45",
"every": 10
}{
"videoId": "4czjS9h4Fpg", "t": 15.0, "ts": "0:00:15",
"text": "...", "imageUrl": "https://...",
"width": 854, "height": 480, "source": "media"
}Saída, com o que é dito até o frame seguinte
Momentos
query "when does the parachute deploy"
0:00:15
Uma pergunta em linguagem natural. O Frameskim pontua a transcrição e retorna os melhores momentos que a respondem, do melhor para o pior, cada um com sua janela e o frame do meio dela.
{
"mode": "moments",
"url": "https://youtu.be/4czjS9h4Fpg",
"query": "when does the parachute deploy",
"topK": 3
}{
"videoId": "4czjS9h4Fpg", "start": 0.0, "end": 30.0, "ts": "0:00:00",
"frameTs": 15.0, "frameTime": "0:00:15", "score": 0.95, "text": "...",
"imageUrl": "https://...", "width": 854, "height": 480, "source": "media"
}Saída: um item por momento, valores encurtados
Conectar
Entregue ao Claude, ou chame de qualquer lugar.
Adicione uma linha à sua config do MCP e o Claude pode chamá-lo. Pelo código, um POST retorna os frames em JSON.
{
"mcpServers": {
"apify": { "url": "https://mcp.apify.com/?actors=emttn/frameskim" }
}
}Depois peça: “Use o Frameskim para achar onde este vídeo diz que o paraquedas abre e me mostre o frame.”
{
"mode": "moments",
"url": "https://youtu.be/4czjS9h4Fpg",
"query": "when does the parachute deploy",
"topK": 3
}- Adicione o node oficial da Apify (
@apify/n8n-nodes-apify), operação Run Actor, e escolhaemttn/frameskim. Cole o JSON acima como input. - Adicione um segundo node da Apify, Get Dataset Items, para ler os resultados.
- Sem node da Apify? Use um node HTTP Request:
POST https://api.apify.com/v2/acts/emttn~frameskim/run-sync-get-dataset-itemscom um headerAuthorization: Bearere o mesmo JSON como body.
# pip install langchain-apify (APIFY_TOKEN set in the environment)
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("emttn/frameskim")
items = tool.invoke({"run_input": {
"mode": "moments", "url": "https://youtu.be/4czjS9h4Fpg",
"query": "when does the parachute deploy", "topK": 3,
}})Ou entregue tool a um agente do LangChain e deixe que ele decida quando chamar.
curl -X POST "https://api.apify.com/v2/acts/emttn~frameskim/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode": "segment", "url": "https://youtu.be/4czjS9h4Fpg", "start": "1:00", "end": "1:30"}'import os, requests
items = requests.post(
"https://api.apify.com/v2/acts/emttn~frameskim/run-sync-get-dataset-items",
headers={"Authorization": f"Bearer {os.environ['APIFY_TOKEN']}"},
json={"mode": "moments", "url": "https://youtu.be/4czjS9h4Fpg",
"query": "when does the parachute deploy", "topK": 3},
timeout=300,
).json()
for item in items[:-1]: # the last item is the run summary
print(item["ts"], item["frameTime"], item["imageUrl"])Preços
Pagamento por evento. Sem assinatura.
A Apify cobra cada evento e nunca mais do que o limite de gastos que você define para a execução.
- Por vídeo
- US$0.12Uma vez por execução que entrega frames.
- Por frame
- US$0.015Cada frame extraído do vídeo.
Busca de momentos US$0.02. Vídeo HD US$0.60 em vez de US$0.12. Frame de storyboard (quando o YouTube bloqueia o download) US$0.002. Lista completa na Apify
hd cobra 0.60 USD por vídeo assim que se tenta o download em resolução completa, mesmo que o YouTube o bloqueie e os frames passem para storyboard; standard cobra 0.12 e usa storyboard quando a resolução completa custaria demais.
Perguntas frequentes
Por que alguns frames têm baixa resolução?
O YouTube bloqueia muitos downloads automáticos. Em vez de falhar, o Frameskim usa as imagens de storyboard do YouTube e cobra o preço menor de storyboard. quality: hd paga uma tentativa em resolução completa.
Quais idiomas?
Qualquer idioma em que o vídeo tenha legendas; defina lang (padrão en) e o Frameskim volta ao idioma original se não houver.
E se uma execução falhar?
A mensagem de status diz o motivo e termina com "Nothing was charged." (nada foi cobrado). Tente de novo mais tarde se o YouTube bloqueou o pedido.
Onde ficam meus frames?
Só no storage da Apify da sua própria execução, com a retenção do seu plano. O Frameskim não guarda cópias.
Quais são os limites?
Um vídeo por execução. maxFrames é 50 por padrão; um intervalo maior aumenta every para ficar abaixo disso. moments permite 3 buscas por mês no plano gratuito da Apify e 200 por dia nos planos pagos, sobre até 540 janelas de transcrição (cerca de 3 horas de vídeo).












