Una publicación de r/webscraping: el cortapelos del lado del navegador alcanzó los bloques del firewall de YouTube de nivel IP de Supabase. Esto recorre la solución a nivel de arquitectura.
Requisitos previos
- Herramienta de vídeo existente en Supabase o un servidor similar
- Decisión: ¿necesita bytes o solo metadatos?
- Clave API de Scavio
Guia paso a paso
Paso 1: Auditar la arquitectura actual
¿Dónde se realiza la búsqueda de YouTube? ¿Qué necesita realmente el producto?
// Trace: client uploads URL → server fetches video bytes.
// What does the product need: bytes for transcoding? metadata + transcript for clip moments?Paso 2: Reformular: la mayoría de las herramientas de clip UX necesitan metadatos, no bytes
La reproducción de iframe + marcas de tiempo de transcripción es local primero Y evita el firewall.
// User-facing UX: playback in iframe; clip moments built from transcript timestamps.Paso 3: Ruta de metadatos: punto final de Scavio YouTube
El servidor recupera JSON escrito.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def get_meta(video_url):
return requests.post('https://api.scavio.dev/api/v1/search', headers=H, json={'platform': 'youtube', 'url': video_url, 'include_transcript': True}).json()Paso 4: Front-end: iframe + UX de clip basado en transcripción
Local-primero conservado.
// React: <iframe src={`https://www.youtube.com/embed/${id}?start=${start}&end=${end}`} />Paso 5: Ruta de bytes (solo si es necesario): trabajador perimetral + proxy residencial
Cloudflare/Vercel Edge + Datos brillantes/Oxylabs.
// Cloudflare Worker: fetch with proxy headers.Paso 6: Caché agresivo
Transcripciones en caché por URL de vídeo.
// Cache key: youtube:{video_id} → expire 7 days.Paso 7: Verifique que Supabase ya no llegue al firewall
Troncos de cola.
# Tail server logs for 7 days. Expect zero blocked errors.Ejemplo en Python
# Per-month: 1K videos × Scavio metadata calls = under $30 Project tier.Ejemplo en JavaScript
// Same shape in Node.Salida esperada
Local-first clip tool architecture with no Supabase IP firewall fights.