Найти в Дзене

Эта эволюция за 24 часа

Изначальная задача - подготовиться к сертификации Anthropic (CCA-F) — для этого нужно извлечь транскрипты из 9 курсов Anthropic Academy и собрать их в структурированную базу знаний. Как это было? В конце вас ждет неожиданный вывод. Я только задавал вопросы. Остальное все ИИ. Теперь понимаете, почему когда кто-то мне пишет, что, дескать, "ИИ - тупой", я совершенно точно знаю - кто здесь тупой. 100% автономия, фоном, сотни задач параллельно. Итак, как я потратил часы, чтобы потом сэкономить дни. История про AI, браузеры и архитектурное прозрение. Представьте задачу: нужно скачать транскрипты (расшифровки) из ~400 видеолекций с онлайн-курсов. Вручную это займёт недели. Значит, автоматизируем. Вот как это шло — от наивного начала до смены всей парадигмы. По сути это — умный парсер. Но с одним важным отличием от обычного парсера: он адаптивен. Обычный скрипт-парсер ломается, когда структура сайта меняется, когда появляется капча, когда контент загружается динамически. Здесь же LLM-сло

Эта эволюция за 24 часа. Изначальная задача - подготовиться к сертификации Anthropic (CCA-F) — для этого нужно извлечь транскрипты из 9 курсов Anthropic Academy и собрать их в структурированную базу знаний. Как это было? В конце вас ждет неожиданный вывод.

Я только задавал вопросы. Остальное все ИИ. Теперь понимаете, почему когда кто-то мне пишет, что, дескать, "ИИ - тупой", я совершенно точно знаю - кто здесь тупой. 100% автономия, фоном, сотни задач параллельно.

Итак, как я потратил часы, чтобы потом сэкономить дни. История про AI, браузеры и архитектурное прозрение. Представьте задачу: нужно скачать транскрипты (расшифровки) из ~400 видеолекций с онлайн-курсов. Вручную это займёт недели. Значит, автоматизируем.

Вот как это шло — от наивного начала до смены всей парадигмы. По сути это — умный парсер. Но с одним важным отличием от обычного парсера: он адаптивен.

Обычный скрипт-парсер ломается, когда структура сайта меняется, когда появляется капча, когда контент загружается динамически. Здесь же LLM-слой (Claude Code) выступает как "мозг", который понимает контекст, обрабатывает нештатные ситуации и генерирует осмысленные саммари — то, что скрипту недоступно.

Но фундаментально — да: берём данные с одной платформы, трансформируем, кладём в структурированном виде на диск. Классический ETL: Extract (Playwright) → Transform (Python) → Load (Markdown на диск). Просто с LLM на этапе обогащения. Поехали.

ФАЗА 1. "Просто кликаем на кнопочку"

Первый инструмент CoWork — это связка AI-агента с браузером (называется Chrome MCP). Агент заходит на страницу лекции, нажимает кнопку "Transcript", ждёт загрузки, копирует текст, сохраняет файл, переходит к следующей лекции.

Звучит разумно. Работает. Но — строго по одной лекции за раз. Курс из 20 лекций = 1-2 часа реального времени. Восемь курсов — так и прошли.

———

ФАЗА 2. Находим лазейку

Выяснилось, что платформа хранит видео через сервис JWPlayer. У каждого видео есть короткий идентификатор (8 символов), по которому можно напрямую обратиться к CDN (это сеть серверов, которая раздаёт файлы) и получить субтитры в формате SRT — текстовый файл с расшифровкой.

Казалось бы — просто делаем запрос и получаем всё автоматически, без кликания по кнопкам!

Но тут столкнулись с первым ограничением: sandbox (изолированная среда, в которой работает AI-агент) не пускает запросы на внешние серверы — это мера безопасности. Пришлось делать обходной манёвр: запросы шли через браузер на машине пользователя, у которого полный доступ к сети.

———

ФАЗА 3. Главный кризис: данные есть, а передать их некуда

Данные — 476 тысяч символов транскриптов — оказались в памяти браузера. А нужно их сохранить на диск, чтобы потом обработать.

И тут обнаружилась фундаментальная проблема: между браузером (который работает на вашем компьютере) и виртуальной машиной AI-агента нет прямого канала. Всё должно проходить через сам AI — он читает данные, а потом записывает их в файл. Но AI — это "бутылочное горлышко":

— Ограничен размер вывода (не может выдать больше ~32 тысяч символов за раз)

— Данные легко повреждаются при передаче (особенно если использовать кодирование, например Base64)

— Всё строго последовательно — один кусок за раз

Попробовали несколько подходов:

— Запись через bash-скрипты → специальные символы в тексте ломали JSON

— Сжатие + кодирование → один изменённый символ = вся порция данных испорчена

— Передача кусками → те же проблемы при сборке обратно

— Запуск нескольких агентов → путаница с индексами, лимиты токенов

Рабочее решение нашлось, но оно было медленным: браузер выводил данные на страницу, агент их читал, записывал в файл, повторял. 18 итераций, ~25 минут работы, ~3 часа реального времени.

———

ФАЗА 4. Математика пробуждает

Курс 9 (самый большой) — 3 часа. Осталось ещё 7 курсов. Итого: 7-20 часов только на парсинг. И это ещё до генерации summary и обновления индексов.

Именно в этот момент прозвучал вопрос, который изменил всё:

"Могу ли я запустить сотню параллельных агентов?"

———

ФАЗА 5. Правильный инструмент

Ответ: не сотню, но можно принципиально переосмыслить архитектуру.