Skip to main content
Glama

Ваша LLM не может посмотреть сорокачасовой курс. Загружать его — долго, часто дорого и обычно нельзя. Извлекать кадры самостоятельно — это миллионы токенов, а аудиодорожка остаётся неиспользованной.

video-to-llm превращает каждое видео в один хронологический документ — речь, отмеченные паузы, заголовки разделов и, по желанию, то, что было на экране, — всё в порядке событий, каждая строка с таймкодом, ведущим к конкретному кадру, из которого она взята.

Сделайте это один раз. Задавайте сколько угодно вопросов — каким угодно моделям — как долго храните папку.

Быстрый старт

uvx video-to-llm process lecture.mp4 --transcribe-model tiny

Это самый быстрый способ увидеть, как всё работает: модель речи tiny весит 75 МБ вместо стандартных 1,4 ГБ, так что вы получите настоящий документ примерно за минуту, а не будете ждать загрузку, чтобы понять, нравится ли вам результат. Когда разберётесь — уберите флаг:

uvx video-to-llm process lecture.mp4

Пока недоступно для установки с PyPI. Имя зарегистрировано, но на индексе нет ничего, что стоило бы ставить: единственный опубликованный релиз, 1.0.0rc1, вышел без модуля collections и был отозван. До выхода 1.0.0 клонируйте репозиторий и выполните uv sync, затем uv run video-to-llm process lecture.mp4 --transcribe-model tiny.

Нужен FFmpeg в вашем PATH — версии 4–9, любые. Модель речи загружается один раз, при первом использовании, после чего сеть больше не используется.

video-to-llm doctor          # check this machine is ready

tiny быстрая, но заметно менее точная; medium — стандартная, потому что это наименьшая модель, ради которой стоит хранить транскрипт. --transcribe-model также принимает base, small и large-v3.

Related MCP server: video-reader-mcp

Что вы получаете

Это реальный вывод — настоящие строки из настоящей 49-минутной записи, в конфигурации по умолчанию:

00:01:30  [nobody speaking · 11 seconds]
00:01:40  Yep, just so that you know, the first thing you'll do is you'll take everything out of
00:01:48  your chart.
00:01:49  When you're going to analyze the chart.
00:01:54  [nobody speaking · 4 seconds]
00:01:58  I think all of you know what trends are, right?
00:02:01  You're either going up or you're either coming down. Very simple, right?
00:02:05  But when you look at trends in terms of structure, what we are looking for is the basic.

Это весь артефакт: обычный текст, хронологический, с таймкодами на источник, и он ваш. Отдайте его любой модели. Ищите grep. Храните десятилетиями.

Проверка строк

Каждый таймкод обратимо ведёт к картинке, из которой получен:

video-to-llm show lecture 00:02:05
lecture.mp4 — 00:02:05
in job 'lecture'

  00:02:01  You're either going up or you're either coming down. Very simple, right?
> 00:02:05  But when you look at trends in terms of structure, what we are looking for is the basic.

Picture: ~/Documents/VideoToLLM/lecture/…/frames/000062_t000124.jpg

Утверждение вашей модели является доказательством, только если вы можете проверить его. Вот как проверить.

Сравнение

Честно в обе стороны — включая те случаи, где этот инструмент не подходит.

video-to-llm

Инструменты для клипов (/watch, claude-real-video)

Загрузить видео

Длина видео

Часы. Проверено на 49 мин / 1 488 кадров и 15-часовом курсе

Минуты; по умолчанию лимиты кадров 50–150

От минут до часа, платой

Второй вопрос

Бесплатно и мгновенно — использует уже готовый документ

Повторная загрузка и обработка

Повторная загрузка или оплата

Переживает сбой в середине работы

Да, продолжает с того же этапа

Нет

н/п

Много видео, один упорядоченный документ

Да

Нет

Нет

Покидает ваш компьютер

Никогда, кроме случая когда вы явно разрешаете для задачи

По-разному — claude-real-video транскрибирует локально; /watch отправляет аудио в Groq или OpenAI, если в видео нет субтитров

Полностью

Разговорная речь

Любая — определяется автоматически или указывается через --language

По-разному; /watch запрашивает английские субтитры

Любой

Контроль расходов

Есть проверка лимита перед каждым запросом

Нет

Оплата за вызов

Сослаться на кадр для утверждения

Да

Нет

Нет

Время настройки

Несколько минут: FFmpeg и модель на 75 МБ

Секунды

Секунды

Один короткий клип

Излишняя сложность — используйте что-то другое

Идеально

Идеально

Проверено по собственной документации этих проектов 21 августа 2026 года. Они развиваются; если какая-то строка устарела — это ошибка, которую стоит сообщить.

Использование

Из командной строки

video-to-llm process lecture.mp4                      # one video
video-to-llm process w1.mp4 w2.mp4 --name "Course"    # several, in your order
video-to-llm process talk.mp4 --interval 5            # fewer pictures, faster
video-to-llm process demo.mp4 --describe local        # add screen descriptions
video-to-llm process talk.mp4 --format jsonl          # also emit structured data
video-to-llm show "Course" 01:12:30                   # resolve a citation
video-to-llm export "Course" --format srt             # subtitles, no reprocessing
video-to-llm status                                   # what is done, what is running
video-to-llm run-next "Course"                        # jump the queue

Из агента

video-to-llm mcp        # MCP server on stdio; needs the [mcp] extra

Четыре инструмента — process_video, list_videos, get_transcript, get_segment. process_video идемпотентен: если запрошено видео, которое уже обработано, возвращается существующий документ без повторной работы. Именно в этом и смысл. Обработайте сорокачасовой курс один раз; каждый следующий вопрос становится мгновенным, офлайн и бесплатным.

Агент не может выбрать платный сервис описаний через эти инструменты. Это решение остаётся экрану настроек, где видны оценка расходов и предел расходовщины.

Также есть скилл, который учит агента проверять, что уже обработано, до того как делать что-то идалось дорогое:

npx skills add navdeep-h-singh/video-to-llm -g

Он работает в Codex, Cursor, Copilot, Gemini CLI и любых других программах, которые читают Agent Skills. Для Claude Code плагин регистрирует скилл и MCP сервер вместе:

/plugin marketplace add navdeep-h-singh/video-to-llm
/plugin install video-to-llm@video-to-llm

Из браузера

video-to-llm start

Интерфейс на 127.0.0.1 с прогрессом в реальном времени, просмотрщиком кадров, управлением задачами и сборщиком коллекций. Закрытие браузера не останавливает задачу.

Коллекции

Несколько уже обработанных видеозаписей, в заданном вами явном порядке, собираются в один документ или в пронумерованные части, с учётом контекстного окна. Сборка коллекции переиспользует существующие выходные данные — она никогда не извлекает кадры заново, не транскрибирует аудио и не запускает описание повторно.

Порядок никогда не выводится из имени файла, даты или содержимого. Две записи из одного утра не имеют собственной последовательности, поэтому вы её задаёте.

Конфиденциальность как механизм

Не обещание, а набор свойств с тестами, которые падают при их регрессе.

  • Интерфейс привязывается к 127.0.0.1, это проверяется при построении приложения.

  • Один middleware отклоняет чужой Host и чужой origin при каждой записи.

  • Ни одна страница не загружает внешний ресурс. Ни CDN, ни веб-шрифта, ни аналитики.

  • Ваши исходные видео никогда не копируются, не перемещаются и не загружаются.

  • Ключи хранятся в системной связке ключей — macOS Keychain, Windows Credential Manager, Linux Secret Service. Никогда не создаётся запасной вариант с открытым текстом, и хранимый ключ никогда не отображается вам обратно, даже префиксом.

  • Никаких аккаунтов, никакой телеметрии и входить не во что.

  • Описания по умолчанию выключено. Задача с выключенными описаниями не делает сетевых запросов вообще.

  • Локальный режим никогда молча не заменяется облачным.

Необязательные: описания экрана

По умолчанию выключено. Если включить, нужно выбрать между собственной Ollama моделью — кадры остаются на устройстве, без оплаты — и сервис (Claude, Gemini, OpenAI или точку совместимый с OpenAI либо Anthropic), который получает только пронумerованные статичные картины, никада виdeо и никада аудио. Видно, что будет отправлено и примерную сто­имость преждe чем что-либо покинет систему, и обробка оста­нов­ится на пределе, который вы установили.

Требования

  • Python 3.11, 3.12 or 3.13

  • FFmpeg с ffprobe в вашем PATH

  • Место для модели речи — 75 МБ для tiny, 1,4 ГБ для всей по умолчанию medium — плюс место для кадров: двухчасовое видео при одном кадре каждые 2 секунды занимает примерно 2 ГБ

GPU везде украшает. Транскрипцы работает на процессоре на всех платформах.

Ffmpeg 9 — это нормльно. sub>убрал -vsync, которое было всем FFmpegдо 5; извлечение считывает версию один раз и применяет тот же флаг, который принимает конкретная сборка, поэтому работают 4.x–9.x. video-to-llm doctor выводит найденную версию и используемый флаг. В разработке тут всё проверено против 8.1.2; остальное охваченotests на списке аргументов и в матрице ci.

Другие способы установки

uv tool install video-to-llm            # or: pipx install video-to-llm
uv sync                                 # from a clone
docker build -t video-to-llm .          # command line only, see the Dockerfile

Известная ограничения

Здесь учтены заранее, а не изучены для вас.

  • Описания экранов находятся в статусе бета, и их структурированные поля рассчитаны на одну предметную область. Они работают — на 49-минутной записи графика модель прочитала с экрана правильный инструмент, правильный таймфрейм и реальные значения — но пять из восьми полей (timeframe, currency_pair, indicators_and_states, exact_action, setup_type) описывают торговые графики, и это осознанный выбор, а не упущение. На любом другом типе видео эти пять возвращают Unknown. Модель отказывается от ответа, а не выдумывает, поэтому результат скорее скудный, чем неверный, а visible_text, visual_description и confidence по-прежнему применимы к чему угодно. Точность в любом случае не измерялась. Эксперимент, стоящий за этим, описан в docs/DESCRIPTION_QUALITY.md.

    Транскрипт, таймлайн и цитаты — это то, что работает с любым видео. Оценивайте инструмент по ним.

  • Точность транскрибации не измерялась, и Whisper иногда записывает строку поверх тишины — транскрипт, начинающийся с «Thanks for watching!», это модель, а не ваше видео.

  • Локальные описания работают медленно: примерно 31 с/изображение на Mac с Apple Silicon, измерено на 1 488 изображениях. Используйте более крупный шаг --interval или сервис с лимитом.

  • Ни один облачный провайдер не проверялся на живое использовании. Пять адаптеров проверены на соответствии документированным формам запросов и ответов; локальный Ollama проверен вживую на версии 0.32.6 с моделью qwen2.5vl:7b.

  • Никто не использовал это на Windows или Linux, хотя CI теперь работает и там. Разработка велась полностью на macOS (Apple Silicon). Весь набор тестов проходит на всех трёх операционных системах и всех трёх версиях Python, собранный wheel устанавливается и проверяется вне рабочей копии на каждой из них, а контейнер прогоняет конвейер от начала до конца без сети. Это реальный минимум, но это не то же самое, что реальное использование: зелёная матрица говорит, что пути, бэкенды keyring и запасные варианты для симлинков работают на чистом раннере, а не то, что они заработают на вашей машине с вашими файлами. Сообщения и о том, и о другом — самое полезное, что может получить этот проект.

  • Контейнер поставляет командную строку, а не интерфейс — интерфейс привязывается к loopback, который внутри контейнера недоступен с хоста.

  • Загрузка по URL не предусмотрена. Только локальные файлы. Загрузите их сами.

  • Журнал событий растёт без ограничений.

Документация

Документ

Что описывает

docs/DESCRIPTION_QUALITY.md

Что на самом деле выдаёт модель описаний, а чего не выдаёт

docs/PIPELINE_CONTRACT.md

Входные данные, выходные данные и гарантии этапов

docs/COLLECTIONS.md

Коллекции и контекстные пакеты

docs/SECURITY.md

Обработка секретов и граница localhost

docs/LOCAL_OLLAMA.md

Запуск описаний на этом компьютере

docs/RECOVERY.md

После сбоя, сна или отмены

docs/OPERATIONS.md

Запуск, пауза, наблюдение

docs/IMPORT_EXPORT.md

Импорт ранее проделанной работы, экспорт результатов

docs/LOCAL_SETUP.md

Настройка под конкретную платформу

docs/DECISIONS.md

Решения, принятые во время сборки, и почему

Участие в разработке

Отчёты об ошибках из реального использования сейчас важнее всего остального, особенно на Windows и Linux. См. CONTRIBUTING.md.

Лицензия

MIT. См. LICENSE.

A
license - permissive license
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

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to query local video timelines by extracting speech, frame captions, and on-screen text into a SQLite store, exposing search and retrieval tools via MCP.
    PolyForm Noncommercial 1.0.0
  • A
    license
    A
    quality
    B
    maintenance
    Let AI agents watch videos: local transcripts, speaker labels, scenes, chapters and exact-moment search from any video URL or file. Fully local, no API keys.
    4
    2
    AGPL 3.0

View all related MCP servers

Related MCP Connectors

  • 15 media & data tools for AI agents: search, transcribe, subtitles, voiceover, translate & more.

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

  • Extract YouTube transcripts, search what was said, and read on-screen frames with cited timestamps.

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/navdeep-h-singh/video-to-llm'

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