Написать в Telegram@Odilient

ИИ И АВТОМАТИЗАЦИЯ

RecipeReel

ИИ-инструмент, который превращает кулинарное видео с YouTube, TikTok или из загруженного файла в структурированный рецепт с настоящими граммовками, шагами с таймкодами и разметкой schema.org JSON-LD.

AMD Developer Hackathon
Клиент
Медиа и развлечения
Отрасль
3 дня
Срок
2026
Год
С чего всё началось

Задача

Кулинарное видео — неудобный формат рецепта: зрители по нескольку раз перематывают 12-минутный ролик только ради того, чтобы узнать, сколько класть муки. Большинство инструментов, которые превращают видео в текст, читают только расшифровку речи, а в настоящих кулинарных роликах количества обычно показывают текстом на экране и редко произносят вслух. Полезный конвертер должен был читать и экран, и звук — и оставлять количество пустым, а не угадывать его.

Что мы сделали

Решение

Мы сделали пайплайн на FastAPI, который объединяет два сигнала. Whisper-large-v3 превращает закадровую речь в шаги с таймкодами, а Qwen2.5-VL читает выбранные ключевые кадры, находя ингредиенты и количества на экране. Gemma сводит всё это в один проверенный рецепт, записывает, откуда взято каждое поле, и экспортирует его в формате schema.org Recipe JSON-LD. Веб-приложение без сборки позволяет вставить ссылку, смотреть за прогрессом в реальном времени и переходить к любому шагу в видео.

Технологии
PythonFastAPIWhisperQwen2.5-VLGemmaAMD ROCmyt-dlpFFmpegDockerSQLite
За кулисами

Как всё создавалось

ИИ-конвертер кулинарных видео в рецепты

RecipeReel превращает кулинарное или обучающее видео в один аккуратный структурированный рецепт. Вставьте ссылку на YouTube, TikTok или Instagram Reels либо загрузите файл. На выходе вы получите:

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

Результат выдаётся в виде JSON или в виде JSON-LD по schema.org/Recipe, который кулинарный сайт может сразу опубликовать.

Мы сделали его за три дня для трека 3 хакатона AMD Developer Hackathon: ACT II. Код распространяется по лицензии MIT и открыт на GitHub. Живое демо прогоняет весь пайплайн в режиме моков.

Ключевые возможности

  • Слияние расшифровки и текста на экране — из речи берутся порядок шагов и техника. Компьютерное зрение и распознавание текста на ключевых кадрах дают точные количества, которые авторы показывают, но не произносят.
  • Шаги с таймкодами — у каждого шага сохраняется время начала, поэтому веб-приложение может перемотать встроенное видео на нужный момент.
  • Происхождение у каждого поля — каждый ингредиент помечен как прозвучавший, показанный на экране или выведенный из контекста. Неизвестное количество остаётся пустым (null), а не выдумывается.
  • Экспорт в schema.org Recipe — отдельный эндпоинт возвращает JSON-LD с ингредиентами, инструкциями HowToStep, временем, инвентарём и пищевой ценностью.
  • Ссылка или загрузка — видео по ссылкам скачиваются через yt-dlp, а загруженные файлы проходят через тот же пайплайн.
  • Прогресс в реальном времени — задачи выполняются асинхронно, а каждый этап транслируется через Server-Sent Events.
  • Защита от ботов без сторонних сервисов — эндпоинты извлечения защищает собственная капча Altcha на основе proof-of-work. Её задания подписаны, имеют срок действия и срабатывают только один раз.

Архитектура и технологический стек

Пайплайн обработки

Каждая задача проходит восемь этапов:

  1. Принять видео.
  2. Извлечь аудио 16 кГц с помощью FFmpeg.
  3. Выбрать около 24 ключевых кадров с таймкодами.
  4. Расшифровать аудио через Whisper-large-v3.
  5. Прочитать кадры с помощью Qwen2.5-VL.
  6. Собрать один рецепт с помощью Gemma при температуре 0 строго по JSON-схеме.
  7. Проверить результат, привести единицы измерения к единому виду и убрать дубли ингредиентов.
  8. Сохранить рецепт в SQLite.

Модели и железо

Речь и зрение — тяжёлые этапы, которые упираются в пропускную способность, поэтому они рассчитаны на GPU AMD Instinct MI300X через ROCm. PyTorch для ROCm выдаёт себя за CUDA, поэтому один и тот же код работает на CPU ноутбука, в CI и на GPU. Jupyter-ноутбук запускает обе модели на MI300X.

Синтез идёт через единый OpenAI-совместимый клиент со взаимозаменяемыми маршрутами: Gemma 4 в Google AI Studio, быстрая модель на Fireworks AI или Gemma, развёрнутая у себя через vLLM. Переключиться между ними — значит поменять конфигурацию. В одном проверенном сквозном прогоне на реальном YouTube Shorts кадры читала Gemini 2.5 Flash, а рецепт писала Gemma 4.

Как обойти блокировку YouTube в продакшене

Боевой сервер работает на IP-адресе дата-центра, и YouTube заблокировал с него скачивание. Мы протестировали прокси дата-центров и провайдерские прокси, а затем перевели загрузку с YouTube на внешний API для скачивания, оставив yt-dlp запасным вариантом. Сырые ошибки загрузчика заменены спокойным сообщением с предложением загрузить файл напрямую, поэтому сообщения о блокировке ботов никогда не доходят до пользователей.

Веб-приложение

Фронтенд — самодостаточное приложение на чистых HTML, CSS и JavaScript, которое раздаёт сам API. На десктопе — журнальная вёрстка, на телефонах — полноэкранная вёрстка в стиле приложения. В нём есть страница рецепта, режим готовки, библиотека с поиском и добавление по ссылке, которое запускает настоящую задачу извлечения.

Качество

Каждый этап — подключаемый провайдер с мок-реализацией, поэтому сервис запускается всегда. Режим моков гоняет настоящий код на встроенных фикстурах — для демо и CI. В наборе 24 проходящих теста, в комплекте — облегчённый Docker-образ и образ для ROCm.

Почему важны структурированные данные рецепта

Конвертер видео в рецепт полезен ровно настолько, насколько полезен его результат. Разметка schema.org Recipe позволяет страницам рецептов попадать в расширенные результаты Google для рецептов, и именно в таком виде данные могут принимать планировщики меню и интеграции с продуктовыми сервисами. Поэтому RecipeReel выдаёт стандартные структурированные данные, а не просто более аккуратную расшифровку.

Смежные работы

RecipeReel — часть нашей работы по внедрению ИИ и автоматизации. LectureLoom применяет тот же пайплайн к видеолекциям. Legible, Testify и Keystone появились на том же хакатоне.

Демо-видео

Обзор продукта

Создадим вместе

Хотите что-то вроде RecipeReel?

Расскажите, что должен делать ваш продукт. Мы определим объём работ, распишем сроки и пришлём фиксированную цену — бесплатно и без обязательств продолжать.

Бесплатная консультация Без обязательств Быстрый ответ