Skip to main content
Glama

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 Cline

setup de forma interactiva:

  1. Guarda tu clave de OpenRouter en .env

  2. Registra el servidor MCP ai-medialens en la configuración global de Cline

Related MCP server: mcp-multivision-server

Entradas compatibles (detección automática por extensión)

Tipo

Extensiones

Parte de contenido de OpenRouter

Video

.mp4 .mpeg .mov .webm

video_url (base64)

Audio

.wav .mp3 .aiff .aac .ogg .flac .m4a

input_audio

PDF

.pdf

file (base64)

Imagen

.jpg .jpeg .png .gif .webp

image_url (base64)

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-run

MCP (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

  1. Indicador -k/--key

  2. Variable de entorno OR_KEY

  3. Variable de entorno OPENROUTER_API_KEY

  4. Archivo .env junto 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:

  1. bin\ffmpeg.exe incluido (si lo colocas allí)

  2. Copia en caché en %LOCALAPPDATA%\ai-medialens\bin\ffmpeg.exe

  3. ffmpeg en PATH

  4. 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

qwen/qwen3.7-flash (predeterminado)

$0.03

$0.13

z-ai/glm-5.3-flash

$0.075

$0.25

qwen/qwen3.8-27b

$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

--pdf-engine local

Análisis local mediante PyMuPDF (pip install pymupdf) — sin límites de tasa. PDFs digitales: texto extraído localmente. PDFs escaneados: páginas renderizadas como imágenes y el modelo de visión realiza el OCR por sí mismo

Gratis

--pdf-engine mistral-ocr

OCR real del lado del servidor sobre imágenes de páginas — lee PDFs escaneados/solo imagen

Facturado por página

--pdf-engine native

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)

  • --srt devuelve subtítulos SRT con marcas de tiempo mediante segmentos verbose_json, con compensación correcta entre fragmentos

  • Nota: whisper-large-v3 produce salida confusa en audio acelerado; mai-transcribe-1.5 lo 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: .env está en gitignore y nunca se confirma.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

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.

  • Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Alihkhawaher/ai-medialens'

If you have feedback or need assistance with the MCP directory API, please join our Discord server