ai-medialens
AI-MediaLens — анализ медиа для ИИ-агентов через OpenRouter
Заполняет пробел того, что Cline не может прочитать: видео, аудио и PDF-файлы. Отправляет файлы напрямую в OpenRouter API, который направляет их мультимодальным моделям (и разбирает PDF для любой модели).
Работает как MCP-сервер для Cline, автономный CLI и импортируемый Python-модуль — всё из одного файла.
Быстрый старт
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 в интерактивном режиме:
Сохраняет ваш ключ OpenRouter в
.envРегистрирует MCP-сервер
ai-medialensв глобальной конфигурации Cline
Related MCP server: Media Context MCP
Поддерживаемые входные данные (определяются автоматически по расширению)
Тип | Расширения | Тип контента OpenRouter |
Видео |
|
|
Аудио |
|
|
|
| |
Изображение |
|
|
Использование
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 (из Cline)
Cline вызывает инструменты нативно:
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 }Как Python-модуль
from openrouter_media import analyze
text = analyze("video.mp4", "Transcribe all speech.")
resp = analyze("doc.pdf", "Summarize.", raw=True)Порядок определения ключа API
Флаг
-k/--keyПеременная окружения
OR_KEYПеременная окружения
OPENROUTER_API_KEYФайл
.envрядом со скриптом (см. .env.example)
ffmpeg и обрезка по времени
--start/--end обрезают медиа локально перед загрузкой (у OpenRouter нет нативного параметра диапазона). ffmpeg ищется в следующем порядке:
Встроенный
bin\ffmpeg.exe(если вы его туда поместили)Кэшированная копия в
%LOCALAPPDATA%\ai-medialens\bin\ffmpeg.exeffmpeg в PATH
Автоматическая загрузка (~80 МБ статическая сборка, однократно, Windows)
Примечание: обрезка использует -c copy (быстро, но режет по ключевым кадрам; точная обрезка потребовала бы перекодирования).
Модели
По умолчанию: qwen/qwen3.7-flash ($0.03/M вход, $0.13/M выход) — на данный момент самая дешёвая модель OpenRouter с полной поддержкой видео на входе.
Другие хорошие варианты с поддержкой видео (проверяйте актуальные цены через --list-models video):
Модель | Вход /M | Выход /M |
| $0.03 | $0.13 |
| $0.075 | $0.25 |
| $0.425 | $2.55 |
Любой slug модели OpenRouter работает через -m / model= — включая новые релизы по мере их появления.
Движки разбора PDF
PDF-файлы разбираются либо локально, либо на стороне сервера OpenRouter:
Движок | Поведение | Стоимость |
(по умолчанию) | Извлечение текста на стороне сервера из встроенного текстового слоя | Бесплатно |
| Локальный разбор через PyMuPDF ( | Бесплатно |
| Настоящий OCR на стороне сервера по изображениям страниц — читает сканированные PDF и PDF только с изображениями | Тарифицируется за страницу |
| Передаёт сырой PDF моделям с нативным файловым вводом | Бесплатно |
Рекомендуется local: он никогда не упирается в лимиты запросов парсера OpenRouter и обрабатывает как цифровые, так и сканированные PDF без дополнительных затрат.
Распознавание речи (STT)
Использует выделенную конечную точку OpenRouter /audio/transcriptions (модели класса Whisper). Модель по умолчанию: openai/whisper-large-v3-turbo. Другие варианты: openai/gpt-4o-transcribe, openai/gpt-4o-mini-transcribe, microsoft/mai-transcribe-1.5, openai/whisper-large-v3.
Укрепление конвейера (уроки из продакшн-системы YouTube→субтитры):
Любой аудио/видео вход → ffmpeg конвертирует в Opus 32kbps/16kHz/mono (в 8 раз меньше WAV, принимается всеми провайдерами); видеодорожки удаляются
Длинные медиа автоматически разбиваются на 6-минутные фрагменты (у OpenRouter есть таймаут ~60 секунд на запрос)
Каждый фрагмент пересобирается для добавления недостающей страницы Ogg EOS (сегментный мультиплексор ffmpeg её пропускает; парсер OpenRouter отклоняет потоки без неё)
--srtвозвращает субтитры SRT с временными метками через сегментыverbose_json, с корректным смещением между фрагментамиПримечание:
whisper-large-v3выдаёт искажённый вывод на ускоренном аудио;mai-transcribe-1.5это переносит
Примечания
Большие файлы кодируются в base64 в памяти — очень большие видео могут упереться в лимиты загрузки провайдера.
Секреты в безопасности:
.envв .gitignore и никогда не коммитится.
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