Frames y momentos de YouTube para agentes de IA
Dale a tu agente los frames y los momentos de un video de YouTube
Frameskim es una API para extraer fotogramas de YouTube que devuelve los frames y los momentos de un video público de YouTube en los timestamps que pidas, por $0.12 por video más $0.015 por frame. Dale una URL pública de YouTube. Recibe frames en timestamps exactos, las palabras dichas entre uno y otro, y los momentos que responden tu pregunta. Por la API de Apify o por MCP.
Frameskim es una API para extraer fotogramas de YouTube que devuelve los frames y los momentos de un video público de YouTube en los timestamps que pidas, por $0.12 por video más $0.015 por frame. Dale una URL pública de YouTube. Recibe frames en timestamps exactos, las palabras dichas entre uno y otro, y los momentos que responden tu pregunta.
Desde US$0.12 por video. Una ejecución que falla no se cobra.
Salida real
Encuentra el momento
Respuesta0: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/…" }Los agentes leen texto. La respuesta muchas veces está en pantalla. Frameskim encuentra el momento, entrega el frame y dice exactamente cuándo pasa.
Un frame cada 10 segundos. En ámbar, el frame que devuelve cada pregunta.
- 1when does the parachute deployframe en 0:00:15
- 2when does the heat shield separateframe en 0:00:35
Tres modos, un video por ejecución
Pide frames, un segmento o el momento.
Frames
0:00:15
0:00:25
0:00:35
0:00:45
Un frame cada N segundos en el rango que elijas. Cada ítem trae su segundo, su timestamp, su tamaño y un link firmado a la imagen que abre sin 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"
}Salida: un ítem por frame y al final un ítem de resumen
Segmento
0:00:15
"text" dicho hasta el frame siguiente
…navigation has confirmed that the parachute has deployed…
Los mismos frames más el texto de la transcripción dicho entre cada frame y el siguiente. El ítem de resumen suma un bloque de Markdown listo para pegar: una línea por frame con su timestamp, el texto y el link a la imagen.
{
"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"
}Salida, con lo que se dice hasta el frame siguiente
Momentos
query "when does the parachute deploy"
0:00:15
Una pregunta en lenguaje natural. Frameskim puntúa la transcripción y devuelve los mejores momentos que la responden, del mejor al peor, cada uno con su ventana y el frame del medio.
{
"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"
}Salida: un ítem por momento, valores acortados
Conectar
Dáselo a Claude, o llámalo desde cualquier lado.
Agrega una línea a tu config de MCP y Claude puede llamarlo. Desde código, un POST devuelve los frames en JSON.
{
"mcpServers": {
"apify": { "url": "https://mcp.apify.com/?actors=emttn/frameskim" }
}
}Después pide: “Usa Frameskim para encontrar dónde dice este video que se abre el paracaídas y muéstrame el frame.”
{
"mode": "moments",
"url": "https://youtu.be/4czjS9h4Fpg",
"query": "when does the parachute deploy",
"topK": 3
}- Agrega el nodo oficial de Apify (
@apify/n8n-nodes-apify), operación Run Actor, y eligeemttn/frameskim. Pega el JSON de arriba como su input. - Agrega un segundo nodo de Apify, Get Dataset Items, para leer los resultados.
- ¿Sin nodo de Apify? Usa un nodo HTTP Request:
POST https://api.apify.com/v2/acts/emttn~frameskim/run-sync-get-dataset-itemscon un headerAuthorization: Bearery el mismo 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,
}})O pásale tool a un agente de LangChain y deja que decida cuándo llamarlo.
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"])Precios
Pago por evento. Sin suscripción.
Apify cobra cada evento y nunca más que el límite de gasto que fijas para la ejecución.
- Por video
- US$0.12Una vez por ejecución que entrega frames.
- Por frame
- US$0.015Cada frame sacado del video.
Búsqueda de momentos US$0.02. Video HD US$0.60 en lugar de US$0.12. Frame de storyboard (cuando YouTube bloquea la descarga) US$0.002. Lista completa en Apify
hd cobra 0.60 USD por video en cuanto se intenta la descarga en resolución completa, aunque YouTube la bloquee y los frames pasen a storyboard; standard cobra 0.12 y usa storyboard cuando la resolución completa costaría demasiado.
Preguntas frecuentes
¿Por qué algunos frames tienen baja resolución?
YouTube bloquea muchas descargas automáticas. En lugar de fallar, Frameskim usa las imágenes de storyboard de YouTube y cobra el precio menor de storyboard. quality: hd paga un intento en resolución completa.
¿Qué idiomas?
Cualquier idioma en el que el video tenga subtítulos; indica lang (por defecto en) y Frameskim vuelve al idioma original si no está.
¿Y si una ejecución falla?
El mensaje de estado dice por qué y termina con "Nothing was charged." (no se cobró nada). Reintenta más tarde si YouTube bloqueó la solicitud.
¿Dónde quedan mis frames?
Solo en el storage de Apify de tu propia ejecución, con la retención de tu plan. Frameskim no guarda copias.
¿Cuáles son los límites?
Un video por ejecución. maxFrames es 50 por defecto; un rango más largo amplía every para no superarlo. moments permite 3 búsquedas por mes en el plan gratuito de Apify y 200 por día en los planes de pago, sobre hasta 540 ventanas de transcripción (unas 3 horas de video).
Dale un video. Recibe el momento.
Corre en tu cuenta de Apify. Leer la documentación












