n8n es la plataforma de automatización autohospedada dominante en 2026, y los flujos de trabajo de transcripción de YouTube son una de las solicitudes más comunes de la comunidad. Este tutorial conecta el punto final de transcripción de Scavio a un nodo de solicitud HTTP n8n y agrega transcripciones a cualquier flujo de trabajo que toque una URL de YouTube.
Requisitos previos
- n8n autohospedado o en la nube
- Una clave API de Scavio
- Una fuente de URL de YouTube (RSS, manual, Airtable)
Guia paso a paso
Paso 1: Agregar una credencial Scavio en n8n
Configuración > Credenciales > Nuevo > Autenticación de encabezado. Nombre = x-api-key, valor = su clave.
Name: Scavio API Key
Header: x-api-key
Value: sk_live_...Paso 2: Agregar un nodo de solicitud HTTP
PUBLICAR en el punto final de la transcripción de Scavio.
URL: https://api.scavio.dev/api/v1/search
Method: POST
Auth: Scavio API Key (credential)
Body: { "platform": "youtube_transcript", "query": "{{ $json.video_url }}" }Paso 3: Analizar la transcripción
El nodo Set de n8n extrae la matriz de transcripción.
// Set node expression
{{ $json.transcript.map(seg => seg.text).join(' ') }}Paso 4: Encadenar a un nodo LLM
Envíe la transcripción a OpenAI o al nodo Anthropic para obtener un resumen.
Prompt: Summarize this YouTube transcript in 5 bullets:
{{ $json.transcript_text }}Paso 5: Escribir de nuevo al destino
Airtable, Notion o Slack.
Airtable node > Update row > Fields: summary = {{ $json.summary }}Ejemplo en Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def transcript(video_url):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'youtube_transcript', 'query': video_url})
segs = r.json().get('transcript', [])
return ' '.join(s['text'] for s in segs)
print(transcript('https://youtube.com/watch?v=dQw4w9WgXcQ')[:500])Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function transcript(videoUrl) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ platform: 'youtube_transcript', query: videoUrl })
});
const { transcript } = await r.json();
return transcript.map(s => s.text).join(' ');
}Salida esperada
Full transcript text in n8n $json. Typical video: 30-second extraction. Cost per transcript: ~5 credits.