ai-medialens
AI-MediaLens - Análisis de medios para agentes de IA mediante OpenRouter
Cubre la brecha de lo que Cline no puede leer: archivos de video, audio y PDF. Envía archivos directamente a la API de OpenRouter, que los enruta a modelos multimodales (y analiza PDFs para cualquier modelo).
Funciona como un servidor MCP para Cline, una CLI independiente y un módulo de Python importable, todo desde un solo archivo.
Inicio rápido
git clone https://github.com/Alihkhawaher/ai-medialens.git
cd ai-medialens
pip install mcp # only needed for MCP mode
python openrouter_media.py setup # configure API key + register in Clinesetup de forma interactiva:
Guarda tu clave de OpenRouter en
.envRegistra el servidor MCP
ai-medialensen la configuración global de Cline
Related MCP server: Media Context MCP
Entradas compatibles (detección automática por extensión)
Tipo | Extensiones | Parte de contenido de OpenRouter |
Video |
|
|
Audio |
|
|
|
| |
Imagen |
|
|
Uso
CLI
# Full file
python openrouter_media.py video.mp4 -p "Transcribe all spoken Arabic word-for-word"
# Only seconds 5-20 (trimmed locally; ffmpeg auto-downloaded on first use)
python openrouter_media.py video.mp4 -p "What happens here?" --start 5 --end 20
# Different model / explicit key
python openrouter_media.py doc.pdf -p "Summarize" -m z-ai/glm-5.3-flash -k sk-or-v1-...
# Scanned PDF -> real OCR (billed per page by OpenRouter)
python openrouter_media.py scan.pdf -p "Extract all text" --pdf-engine mistral-ocr
# Speech-to-text (works on video files too - audio track extracted locally)
python openrouter_media.py lecture.mp4 --stt --language ar
# SRT subtitles with timestamps
python openrouter_media.py lecture.mp4 --stt --srt > lecture.srt
# Find models that accept video input, with prices
python openrouter_media.py --list-models video
# Preview request shape without sending (no API cost)
python openrouter_media.py video.mp4 -p "test" --dry-runMCP (desde Cline)
Cline llama a las herramientas de forma nativa:
use_mcp_tool: server=ai-medialens, tool=analyze_media
arguments: { "path": "...", "prompt": "...", "start": "5", "end": "20" }
use_mcp_tool: server=ai-medialens, tool=transcribe_audio
arguments: { "path": "...", "language": "ar", "srt": false }Como módulo de Python
from openrouter_media import analyze
text = analyze("video.mp4", "Transcribe all speech.")
resp = analyze("doc.pdf", "Summarize.", raw=True)Orden de resolución de la clave de API
Indicador
-k/--keyVariable de entorno
OR_KEYVariable de entorno
OPENROUTER_API_KEYArchivo
.envjunto al script (ver .env.example)
ffmpeg y recorte por rango de tiempo
--start/--end recortan el medio localmente antes de la subida (OpenRouter no tiene
parámetro de rango nativo). ffmpeg se resuelve en este orden:
bin\ffmpeg.exeincluido (si lo colocas allí)Copia en caché en
%LOCALAPPDATA%\ai-medialens\bin\ffmpeg.exeffmpeg en PATH
Descarga automática (compilación estática de ~80 MB, una sola vez, Windows)
Nota: el recorte usa -c copy (rápido, pero corta en keyframes; los cortes exactos
requerirían re-codificación).
Modelos
Predeterminado: qwen/qwen3.7-flash ($0.03/M entrada, $0.13/M salida) — actualmente el
modelo más barato de OpenRouter con soporte completo de entrada de video.
Otras buenas opciones con capacidad de video (verifica los precios actuales mediante
--list-models video):
Modelo | Entrada /M | Salida /M |
| $0.03 | $0.13 |
| $0.075 | $0.25 |
| $0.425 | $2.55 |
Cualquier slug de modelo de OpenRouter funciona mediante -m / model= — incluyendo
lanzamientos más recientes a medida que aparecen.
Motores de análisis de PDF
Los PDFs se analizan localmente o en el lado del servidor por OpenRouter:
Motor | Comportamiento | Costo |
(predeterminado) | Extracción de texto del lado del servidor desde la capa de texto incrustada | Gratis |
| Análisis local mediante PyMuPDF ( | Gratis |
| OCR real del lado del servidor sobre imágenes de páginas — lee PDFs escaneados/solo imagen | Facturado por página |
| Reenvía el PDF sin procesar a modelos con entrada de archivo nativa | Gratis |
local es recomendado: nunca alcanza los límites de tasa del analizador de OpenRouter y
maneja tanto PDFs digitales como escaneados a costo adicional cero.
Conversión de voz a texto (STT)
Usa el endpoint dedicado /audio/transcriptions de OpenRouter (modelos clase Whisper).
Modelo predeterminado: openai/whisper-large-v3-turbo. Otras opciones:
openai/gpt-4o-transcribe, openai/gpt-4o-mini-transcribe,
microsoft/mai-transcribe-1.5, openai/whisper-large-v3.
Endurecimiento del pipeline (lecciones de un sistema de producción YouTube→subtítulos):
Cualquier entrada de audio/video → ffmpeg convierte a Opus 32kbps/16kHz/mono (8× más pequeño que WAV, aceptado por todos los proveedores); las pistas de video se eliminan
Medios largos se dividen automáticamente en fragmentos de 6 minutos (OpenRouter tiene un tiempo de espera ascendente de ~60s por solicitud)
Cada fragmento se re-multiplexa para agregar la página Ogg EOS faltante (el muxer de segmentos de ffmpeg la omite; el analizador de OpenRouter rechaza flujos sin ella)
--srtdevuelve subtítulos SRT con marcas de tiempo mediante segmentosverbose_json, con compensación correcta entre fragmentosNota:
whisper-large-v3produce salida confusa en audio acelerado;mai-transcribe-1.5lo tolera
Notas
Los archivos grandes se codifican en base64 en memoria - videos muy grandes pueden alcanzar los límites de subida del proveedor.
Los secretos están seguros:
.envestá en gitignore y nunca se confirma.
This server cannot be deployed
Maintenance
Related MCP Connectors
Multimodal video analysis MCP — transcription, vision, and OCR for any video URL.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Extract structured insights from videos, podcasts, articles, and PDFs with multi-model AI
Video, audio, and image processing for AI agents: convert, transcribe, upscale - 150+ operations.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides image and video analysis capabilities for LLMs, with local preprocessing (ffmpeg/OpenCV) and any OpenAI-compatible vision model for understanding and Q&A.4MIT
- AlicenseNot gradedqualityBmaintenanceEnables text-only coding models to read images, PDFs, presentations, spreadsheets, and other non-text files through a single analyze_media tool, combining local document extraction, OCR, and optional vision models with clear evidence labeling.1MIT
- AlicenseAqualityCmaintenanceEnables AI agents to extract, analyze, and manipulate images, PDFs, video, and audio while conserving context through downscaling, truncation, and frame/page caps.22MIT
- AlicenseNot gradedqualityAmaintenanceProvides local, offline transcription, keyframe extraction, OCR, and pre-publish review of audio, video, and image files, enabling AI agents to see and hear media without cloud or API keys.29 npmApache 2.0