YouTube URL → извлекаем субтитры через Supadata API (primary) или yt-dlp (fallback). Возвращается текст с тайм-кодами.
Транскрипт идёт в Claude с системным промптом и 2 few-shot примерами. Результат — структурированный бриф: суть, идеи, факты, применение, черновик ТЗ.
Видео, сегменты, бриф и метрики (токены, стоимость, кэш) пишутся в локальный SQLite через Prisma. Файлы дублируются в ./output/.
- ссылка
- Полный URL YouTube-видео. Поддерживает youtube.com/watch?v=, youtu.be/, shorts, embed, live. Enter тоже запускает обработку.
- Основная кнопка. Гоняет весь пайплайн: извлечение → бриф → БД. Занимает 5-15 секунд в зависимости от длины видео и модели.
- На каком языке Claude напишет бриф. Транскрипт не переводится — это язык только финального отчёта.
- sonnet-4.6 — баланс качество/цена (~$0.07 на часовое видео). opus-4.7 — максимум качества (~$0.12). haiku-4.5 — быстро и дёшево (~$0.02) для простых брифов.
- markdown — человеко-читаемая проза с заголовками. json — структурированные поля со схемой (tldr, key_ideas[], software_brief и т.д.) — удобно парсить кодом.
- backend
- auto — умный порядок с fallback: если найден cookies.txt или выбран браузер, первым идёт yt-dlp (бесплатно); иначе — Supadata. При неудаче переключается на другой. Мы не можем заранее знать, сработает ли yt-dlp (YouTube рандомно блокирует), поэтому последовательность = «наиболее вероятно → запасной». supadata / ytdlp — строго один бэкенд, без fallback. Используй если хочешь принудительно.
- Пропустить шаг брифа. Claude не вызывается, затрат на API нет — остаётся только транскрипт в БД и файлах.
- обновить, даже если есть
- По умолчанию «запустить» сначала ищет в БД: если видео и бриф с той же моделью/языком/форматом уже есть — возвращает из кэша за 0 токенов. Эта галочка форсит заново: переизвлечь транскрипт через Supadata/yt-dlp и перегенерить бриф через Claude. Нужно, если обновился сам ролик или ты поменял промпт.
- Копирует текст брифа в буфер обмена (markdown-исходник, не rendered-HTML).
- проверить (коннектор)
- Smoke-тест API-ключа. Supadata — дёргает первое YouTube-видео (бесплатно). Anthropic — шлёт haiku-запрос на 10 токенов (~$0.00005).
- история → открыть
- Клик по строке подгружает ранее обработанное видео из БД (без повторного вызова Claude). Полезно, чтобы сравнить модели или форматы.
Первый прогон новой модели/языка/формата пишет системный промпт в кэш Anthropic (примерно +25% к цене, одноразово). Повторные прогоны в том же формате читают из кэша по ~10% цены. Supadata тарифицируется отдельно на их стороне. Текущие расходы видны в строке под брифом и в колонке «total cost» в истории.
Текст видео с тайм-кодами. В БД и .txt — полностью, на экране — первые 400 сегментов.
Пусто. Вставь ссылку выше и нажми «запустить».
Извлекаю транскрипт…
Структурированная выжимка через Claude: суть, ключевые идеи, факты, применение, черновик ТЗ.
Бриф появится после обработки видео.
Генерирую бриф через Claude…
Все обработанные видео из локальной БД. Клик — открыть без повторного вызова Claude.
Непрерывный захват YouTube live-эфира: режется на N-минутные чанки, локальный faster-whisper (CUDA) расшифровывает, Claude вытягивает новостные утверждения. Каждый item уходит в draft, пока ты не подтвердишь.
yt-dlp получает HLS-поток, ffmpeg режет его на MP3-чанки по N минут (из настроек). Чанк попадает в БД со статусом pending.
faster-whisper на CUDA (RTX 2060) — ~30 сек на 2-мин чанк. Статус меняется на transcribed, сохраняется текст + тайм-коды.
Claude с news-промптом извлекает утверждения (headline, quote, category, confidence, tags). Статус чанка → extracted.
Items попадают в раздел Новости со статусом draft. Язык — из общих настроек.
- URL
- Любой YouTube live-эфир. Поддерживает 24/7-каналы, long-running streams, DVR-режим.
- Как будет называться в атрибуции каждой новости: «Источник: <название>».
- Добавляется в атрибуцию: «Источник: CNN, 2026-04-19, Anderson Cooper». Если не указан — только канал+дата.
- Длина каждого чанка в минутах. 2-5 — баланс: меньше = быстрее news items, больше = лучше контекст для Claude.
- small быстро, слабее на русском. medium сбалансирована. distil-large-v3 — как large-v3, но втрое быстрее и без OOM на 6 GB VRAM.
- сводный бриф
- Галочка включает возможность собрать один markdown-бриф по всем транскриптам стрима. Шаблон news — без ТЗ, full — с ТЗ.
- Если включено вместе со «сводным брифом» — при нажатии автоматически генерится итоговый бриф по накопленным данным.
- Останавливает capture + обработку. Транскрипт текущего чанка дорабатывается, очередь drain'ится. Можно продолжить кнопкой «продолжить».
- Полностью завершает мониторинг, стрим уходит в «историю стримов». Данные остаются. Если стоял флаг «авто на остановке» — генерит сводный бриф.
- рестарт
- На остановленном стриме — возобновить захват с того места, где прекратили. Индекс чанков продолжается (3, 4, 5…).
- ред.
- Править поля (интервал, whisper, настройки брифа). URL-смена требует пауза → продолжить. Остальное вступает в силу на следующем чанке.
- бриф сейчас
- Вручную собрать сводный бриф на текущий момент. Склеивает все расшифрованные чанки + прогоняет через Claude. Не останавливает capture.
- Сносит стрим со всеми чанками, MP3-файлами, NewsItem, StreamBrief. Каскад. Необратимо.
faster-whisper локально — $0 за расшифровку. Claude за news-extract — ~$0.01-0.02 на 2-минутный чанк на Sonnet 4.6, на час стрима — ~$0.30-0.60. Сводный бриф — ещё ~$0.05-0.15 за прогон в зависимости от длительности. Supadata не задействована для live — только yt-dlp. Статус ключей и их использование — в Настройках.
«»
Остановленные мониторинги. Данные сохранены — можно открыть, перезапустить, удалить.
Каждая карточка в ленте — отдельное новостное утверждение, которое Claude извлёк из транскрипта одного чанка. Это НЕ пересказ — это попытка зафиксировать конкретный факт, цифру или заявление как публикуемую новость.
«Президент Дональд Трамп занимает максимально жёсткую позицию...»
- headline
- Одна строка, publish-ready. Без кликбейта — конкретно что произошло. Формулируется Claude на целевом языке (из настроек).
- quote
- Прямая цитата из транскрипта. Если исходный язык эфира отличается от целевого — перевод по смыслу, числа/имена сохраняются.
- category
- Одна из: politics · business · tech · markets · macro · sports · culture · science · other.
- confidence
- 0.0–1.0. Цвет индикатора: зелёный ≥0.80 (надёжно), серый 0.50-0.80, оранжевый <0.50 (спорно, проверяй).
- offset_sec
- Секунда от начала чанка, где прозвучало. Абсолютная метка в эфире = chunk.started_at + offset_sec.
- attribution
- Автосборка: «Источник: [канал], [дата/время][, ведущий]». Хранится как готовая строка.
- tags
- 2-5 коротких тегов: компании, люди, страны, инструменты. Для поиска и фильтрации в будущем.
По умолчанию при создании. Видна в ленте, но не «подтверждена». Фильтр draft показывает то, что ещё требует твоего внимания.
Кнопка «✓ одобрить». Готова к публикации/экспорту. Обычно — экспорт в JSON/PDF для ручного рерайта.
Кнопка «✗ отклонить». Остаётся в БД, показывается приглушённой. Не попадёт в экспорт.
Резерв на будущее — когда подключим публикаторы (Telegram, RSS). Пока не используется.
Селекторы стрим и статус применяются на сервере (GET /news-items?stream_id=X&status=Y). Кнопки JSON/PDF экспортируют текущую выборку с учётом фильтров через POST /export. JSON — raw dump со всеми полями. PDF — читаемый отчёт с Cyrillic-шрифтом и группировкой.
«»
AI Editor
Рабочее место для редактирования news items и расшифровок с AI-assist.
5 интеграций — 3 облачные (ключ API) и 2 локальные (установка на машину). Ключи пишутся в .env и сразу применяются без рестарта.
Облачные ключи лежат в .env в корне проекта.
Пресеты для форм + параметры обогащения новостей. Хранятся в БД (AppSetting).
При клике на news-item можно «развернуть» — сгенерировать расширенный текст и иллюстрацию. Картинки дедуплицируются по концепт-фразе: новость про нефть → один раз стягивается стоковое фото «нефтяного барреля», дальше переиспользуется для похожих сюжетов.
Семантическое сравнение headline через локальные embeddings. Дубликаты помечаются бейджем в модерации, можно скрывать одним чекбоксом. Поиск — только в пределах окна последних N часов. Никаких токенов Anthropic не тратится.
Распознавание видео
Закинь ссылку или файл — спишем кредиты по длине видео и токенам ИИ. Движок подключим позже; пока считаем и списываем по тарифу.
Очередь и история
Подписка и баланс
Кредиты тратятся на распознавание и токены ИИ. Тариф даёт скидку и доступ к AI-News.
Подключи ссылки на каналы и получай поток текстовых новостей из новых видео — автоматически.