v0.4.0 — libre y de código abierto · Windows / macOS / Linux
Extracción de medios y automatización de navegador, íntegramente en tu máquina.
Operant es una extensión Manifest V3 con un host nativo en Python. Captura streams de la página, los entrega a ffmpeg y yt-dlp y procesa todo en local — sin cuentas, sin servidores, sin telemetría.
01
Qué hace
El sandbox del navegador no puede ejecutar binarios nativos ni reensamblar streams pesados. Operant salva esa distancia con un host local pequeño y auditable.
Captura de streams
Detecta manifiestos HLS (.m3u8) y DASH (.mpd) mediante webRequest, además de imágenes, vídeo y audio del DOM. Las descargas se reconstruyen con el Referer real de la página mediante reglas efímeras de declarativeNetRequest.
Host nativo en Python
Un daemon escrito solo con la librería estándar se comunica con la extensión por stdio. Gestiona binarios aislados de ffmpeg y yt-dlp en ~/Operant/bin sin tocar tu PATH ni la configuración del sistema.
Descargas paralelas
Peticiones por rangos con colas concurrentes, empaquetado ZIP en memoria y exportación estructurada de URLs para pipelines de datos.
Pipeline ffmpeg
Remux, compresión, redimensionado, extracción de audio y fusión de pistas separadas — a velocidad nativa, fuera del sandbox del navegador.
Side panel
Panel lateral persistente de Chromium con vistas de rejilla y lista, filtros por dimensiones y tipo de medio, y estado de cola en vivo.
Listo para agentes
El host nativo funciona como pasarela local de automatización: Playwright, Browser-Use o cualquier tooling en Python puede controlar la pestaña activa sin restricciones CORS.
02
Tres capas desacopladas
Una separación estricta de responsabilidades mantiene la interfaz fluida, la interceptación dirigida por eventos y el procesamiento pesado en nativo.
Side panel
JS vanilla · renderizado bajo demanda
- Detección de medios y filtros
- Gestor de cola de descargas
- Consola ffmpeg / yt-dlp
Service worker y motor de contenido
Manifest V3 · dirigido por eventos
- Escáner DOM (img, video, srcset, fondos CSS)
- Sniffer webRequest (m3u8, mpd, segmentos fMP4)
- Inyección de Referer con declarativeNetRequest
Daemon nativo en Python
operant_host.py · ejecución sin sandbox
- ffmpeg: remux, compresión, redimensionado, extracción de audio
- yt-dlp: fusión de la mejor calidad de vídeo y audio
- Pasarela IPC local para tooling de automatización
03
Un host nativo autocontenido
operant_host.py usa únicamente la librería estándar de Python. Sin paquetes pip, sin virtualenvs, sin nada instalado fuera de sus propios directorios.
- Binarios aisladosffmpeg y yt-dlp se gestionan en ~/Operant/bin, separados de cualquier herramienta que ya tengas en tu PATH.
- Silencioso en WindowsSe lanza con pythonw.exe a través de un wrapper .bat, sin ventanas de consola que roben el foco del navegador.
- Verificación de integridadLos streams fMP4 concatenados se validan (moov/mdat) antes de escribir cualquier cosa en disco.
- IPC bidireccionalFraming de 4 bytes en little endian por stdio, con progreso de descarga en vivo reportado al panel.
# Windows (Chrome / Edge)
native-host\install_host.bat <extension-id>
# Linux / macOS
./native-host/install_host.sh <extension-id>
# Rutas registradas
manifest: %APPDATA%\Operant\operant_host.json
binaries: %LOCALAPPDATA%\Operant\bin\
output: ~/Downloads/Operant/04
Estado
Operant se diseñó para ir más allá de la captura de medios. Esto es donde está.
Núcleo de medios
Escaneo DOM, sniffing HLS/DASH, descargas paralelas y exportación ZIP en memoria.
Host nativo y ffmpeg
Daemon en Python stdlib, binarios gestionados de ffmpeg/yt-dlp, pipelines de remux y fusión.
Agent deck
Análisis del árbol de accesibilidad y navegación autónoma con Browser-Use y LLMs locales, orquestados desde el host nativo.
05
FAQ
Respuestas directas sobre arquitectura, seguridad y funcionamiento.
¿Por qué Operant necesita un host nativo?
Las extensiones de navegador corren en un sandbox que no puede ejecutar binarios compilados ni acceder libremente al sistema de archivos. El host nativo es un puente fino y auditable que permite a ffmpeg y yt-dlp trabajar a velocidad nativa con acceso completo al disco.
¿Es seguro el host nativo?
Está escrito solo con la librería estándar de Python y su código fuente es totalmente auditable. Se comunica exclusivamente por stdio y solo acepta mensajes del ID de extensión registrado en tu sistema — ningún otro programa o página web puede alcanzarlo.
¿Cómo se capturan los streams HLS y DASH?
Un content script analiza los elementos multimedia del DOM mientras un observador webRequest vigila las peticiones de manifiestos (.m3u8, .mpd). Cuando se detecta un vídeo fragmentado aparece en el panel lateral; desde ahí el host descarga los fragmentos o deja que ffmpeg ensamble el stream directamente.
¿Operant envía datos a algún servidor?
No. No hay telemetría, ni analíticas, ni servidores intermediarios. La detección de medios, la comunicación con el host y el procesado con ffmpeg ocurren íntegramente en tu máquina.
¿Cómo se integrará la automatización y la IA?
Por el mismo canal de Native Messaging. El host de Python puede ejecutar Playwright o conectarse a LLMs locales (Ollama o APIs) para recibir instrucciones en lenguaje natural desde el panel y ejecutar tareas de automatización sobre la pestaña activa.
06
Consigue Operant
Libre y de código abierto bajo GPL-3.0-or-later. Descárgalo, cárgalo, audita cada línea.
Descarga para Chrome y Edge
La build cargable directamente de la versión actual. Sin paso de build, sin cuentas.
Chrome Web Store
La build empaquetada, a un clic de la barra de herramientas.
ProntoFirefox Add-ons
El port a Firefox, cuando la build experimental se estabilice.
ProntoCárgalo en Chrome
- Descarga el zip y descomprímelo
- Abre chrome://extensions y activa el modo desarrollador
- Pulsa Cargar descomprimida y elige la carpeta operant
- Fija Operant desde el menú de extensiones
Opcional: para procesar medios con ffmpeg y yt-dlp, instala después el host nativo.
¿No sabes por dónde empezar? Lee la guía de instalación