По состоянию на 2026-03-18 я по этому направлению уже почти полностью проверил все пути, которые можно пройти через официальный API. Сразу вывод: если цель — как на B 站, чтобы бот под любыми YouTube-видео мог обнаруживать триггер-комментарии, затем автоматически суммировать видео, учитывать субтитры и после этого публиковать комментарий, то одним только официальным YouTube Data API v3 это практически не сделать.
Не потому, что YouTube не умеет комментировать, и не потому, что OAuth не работает, а потому что на самом ключевом шаге — обнаружить триггер-комментарий — официальный API не даёт пригодной возможности.
Какой эффект хочется получить
Цель на самом деле очень понятная:
- аккаунт A или аккаунт-бот может работать под любым YouTube-видео
- триггером может быть
@fixcolarили фиксированная фраза активации, например «椰子 结合字幕总结本视频» - как только триггер сработал, система автоматически получает видео, комментарий и контекст
- если есть субтитры — подаёт субтитры в LLM
- затем этот же аккаунт автоматически возвращается в комментарии под этим видео и публикует комментарий
Почему плагин для B 站 вообще возможен: он не «сканирует комментарии под видео», а читает собственную ленту @-упоминаний / ленту ответов аккаунта. Если где угодно по сайту в любом видео вас @-упомянули, B 站 положит это событие в ленту сообщений — поэтому плагин и может работать кросс-видео.
В YouTube с официальным API узкое место ровно на этом шаге.
Почему вариант с официальным API не проходит
1. commentThreads.list не умеет искать по «автору комментария» и нет общесайтовой ленты mention
Официальная документация:
Основные фильтры, которые поддерживает commentThreads.list, — по сути такие:
videoIdallThreadsRelatedToChannelIdid
То есть максимум вы можете:
- получить треды комментариев под конкретным видео
- получить треды комментариев, связанные с конкретным каналом
- получить по известному thread id
Чего он не может:
- найти «под какими видео этот аккаунт недавно комментировал»
- найти «где по всему сайту кто-то @-упомянул меня»
- найти «где по всему сайту встречается моё слово активации»
Это означает: опираясь только на этот метод, вы можете следить лишь за фиксированным каналом или фиксированным видео — «триггер под любым видео» не сделать.
2. comments.list тоже не умеет искать историю по автору
Официальная документация:
Ключевые фильтры, которые поддерживает comments.list:
idparentId
Он скорее про «я уже знаю commentId — верни мне этот комментарий или его ответы», а не про «найди, что этот человек недавно комментировал».
Поэтому он тоже не решает задачу «обнаружить триггер-комментарий под любым видео».
3. activities.list?mine=true тоже не спасает
Официальная документация:
Интуитивно самая похожая идея — взять activity feed самого аккаунта.
Но официально прямо сказано:
- тип
comment«not currently returned» activities.listdoes not currently return resources for new comments
То есть activity feed аккаунта нельзя стабильно использовать, чтобы получить «под каким видео я только что оставил комментарий».
4. Официальные Push Notification тоже не пушат события комментариев
Официальная документация:
Этот механизм пушит изменения в feed канала — по сути, вокруг обновлений контента канала, а не поток событий комментариев/упоминаний.
Значит, он тоже не заменяет «обнаружение комментариев по всему сайту».
5. Email-уведомления Gmail о комментариях нестабильны — это только обходной путь, не подходит как основной
Официальная справка:
В справке даже отдельно предупреждают:
consecutive comments on a video may not lead to notifications for each
То есть последовательные комментарии могут не давать уведомления на каждый. Делать почту основным триггерным каналом — значит неизбежно терять события.
Что это означает
Какая часть официального API всё ещё полезна
YouTube API не полностью бесполезен — во второй половине он ценен:
- когда видео уже известно — можно публиковать верхнеуровневый комментарий:
commentThreads.insert - когда известен parent comment — можно публиковать ответ:
comments.insert - можно получать metadata видео
- в паре с
yt-dlpможно вытаскивать публичные субтитры у открытых видео
То есть:
«Обнаружить комментарий» не получается, но «отправить комментарий» — реально.
По-настоящему отсутствует первая половина
Не хватает:
- обнаружить, под какими видео аккаунт A только что оставил комментарии
- обнаружить, где по всему сайту кто-то @-упомянул бота
- обнаружить, появился ли под любым видео комментарий со словом активации
Без этого вся схема «общесайтовый триггер как на B 站» не держится.
Как тогда понимать позиционирование текущей API-версии openclaw_youtube
Если смотреть только путь через официальный API, он лучше подходит для узких сценариев:
- мониторить комментарии, полученные на своём канале
- мониторить комментарии под фиксированным каналом/фиксированным видео
- при известном
commentId/videoIdавтоматически отвечать - когда пользователь явно просит «с учётом субтитров» — подмешивать публичные субтитры
Но он не подходит для цели:
- под любым видео
@fixcolarсразу триггерит - под любым видео я сам пишу «椰子 结合字幕总结本视频» и это триггерит
Поэтому дальше «накручивать параметры» в официальном Data API смысла мало. Это не вопрос объёма инженерии — интерфейс просто не предоставляет такую возможность обнаружения.
Какие есть «обходные» варианты дальше
Ниже — не фантазии, а направления, которые действительно ещё имеют шанс быть реализованными.
Вариант 1: userscript (Tampermonkey) / браузерное расширение как активный триггер
Это вариант, который я сейчас считаю самым перспективным.
Как это выглядит:
- вы открываете страницу любого YouTube-видео
- userscript или расширение напрямую читает текущий
videoIdсо страницы - вы нажимаете кнопку, или в скрипте зашит фиксированный prompt, например «с учётом субтитров суммируй это видео»
- фронтенд отправляет
videoId + promptна локальный сервис - бэкенд вытаскивает субтитры, прогоняет LLM, затем через API публикует комментарий
Плюсы:
- не нужно обнаруживать «где я комментировал»
- не зависит от того, даёт ли YouTube уведомления
- страница отвечает только за триггер, а не за реальную публикацию
- сама публикация по-прежнему может идти через официальный API, что стабильнее
Если дальше делать «на любом видео я кликаю один раз и автоматом публикуется суммаризирующий комментарий», это самый надёжный путь.
Вариант 2: опрос (polling) YouTube Studio / страницы уведомлений в залогиненном браузере
Этот путь — скорее замена B 站-идее с лентой сообщений.
Как это выглядит:
- на машине поддерживается браузерный профиль с залогиненным YouTube
- расширение или демонический процесс периодически читает страницу комментариев/уведомлений/упоминаний в YouTube Studio
- парсит новые события комментариев / упоминаний / ответов
- передаёт найденные события в OpenClaw и отвечает через официальный API
Плюсы:
- можно приблизиться к опыту «@ под любым видео и сразу триггер»
Минусы:
- по сути это веб-автоматизация, высокая стоимость поддержки
- поменяется структура страницы — может сломаться
- логин-сессия, риск-контроль, капчи — всё сложнее, чем официальный API
Вариант 3: полуавтоматическая передача comment link / commentId
Это самый «деревенский», но самый стабильный способ.
Как это выглядит:
- вы сами сначала оставляете под любым видео триггер-комментарий
- затем вручную кидаете боту ссылку на комментарий или
commentId - бот, получив это, дальше по бэкенд-процессу отвечает / суммирует / подмешивает субтитры
Неэлегантно, зато быстрее всего позволяет прогнать «вторую половину» — генерацию текста комментария.
Вариант 4: гибридная архитектура
Это, пожалуй, наиболее реалистичная долгосрочная архитектура:
- сторона обнаружения: браузерная страница, userscript, расширение, страница уведомлений Studio — неофициальные пути
- сторона исполнения: официальный API для публикации верхнеуровневых комментариев или ответов
То есть:
- первая половина — за счёт веб-контекста
- вторая половина — через официальный API
С инженерной точки зрения сейчас это наиболее защищаемый путь.
Вывод на текущем этапе
Этот вывод стоит чётко проговорить, чтобы не продолжать жечь время в неверном направлении:
- если
openclaw_youtubeупирается в «используем только официальный Data API», то получится лишь бот для фиксированного канала/фиксированного видео - если цель — «как на B 站, триггер под любым видео», нужно отказаться от предпосылки «чистое API-обнаружение»
- реально приземляемое решение — обнаружение в браузере + ответ через API (гибрид)
Иными словами:
С YouTube это не «невозможно», это «невозможно сделать, опираясь только на официальный комментарийный API».
Это и есть самый важный вывод на текущем этапе.