Добавить в корзинуПозвонить
Найти в Дзене
kuz_getcourse

Когда ты любишь нестандартные задачи

🤪 Кейс: как записать live‑чат YouTube‑стрима в Google Таблицу Задача: автоматически сохранять все сообщения из чата прямой трансляции YouTube в Google Sheets, чтобы потом анализировать, фильтровать, строить отчёты и т.п. Запрос к API примерно раз в минуту, без потерь сообщений. Что понадобится - Канал YouTube с доступом к прямым трансляциям. - Google Таблица. - Google Apps Script с включённым YouTube Data API (Advanced Service). Шаг 1. Подготовка таблицы и скрипта 1. Создаём Google Таблицу. 2. В меню: Расширения → Apps Script. 3. В редакторе слева в блоке Services нажимаем + и добавляем YouTube Data API. Шаг 2. Вставляем код В Код.gs вставляем три функции (дам в комментариях к посту - не влезают)🤪 Идея: - initLiveChat ищет активный стрим на канале и сохраняет LIVE_CHAT_ID (id чата) в Script Properties. - logLiveChatFetch ходит напрямую в YouTube API liveChat/messages и записывает все новые сообщения в лист ChatLog. - NEXT_PAGE_TOKEN гарантирует, что следующие вызовы забирают

Когда ты любишь нестандартные задачи 🤪

Кейс: как записать live‑чат YouTube‑стрима в Google Таблицу

Задача: автоматически сохранять все сообщения из чата прямой трансляции YouTube в Google Sheets, чтобы потом анализировать, фильтровать, строить отчёты и т.п. Запрос к API примерно раз в минуту, без потерь сообщений.

Что понадобится

- Канал YouTube с доступом к прямым трансляциям.

- Google Таблица.

- Google Apps Script с включённым YouTube Data API (Advanced Service).

Шаг 1. Подготовка таблицы и скрипта

1. Создаём Google Таблицу.

2. В меню: Расширения → Apps Script.

3. В редакторе слева в блоке Services нажимаем + и добавляем YouTube Data API.

Шаг 2. Вставляем код

В Код.gs вставляем три функции (дам в комментариях к посту - не влезают)🤪

Идея:

- initLiveChat ищет активный стрим на канале и сохраняет LIVE_CHAT_ID (id чата) в Script Properties.

- logLiveChatFetch ходит напрямую в YouTube API liveChat/messages и записывает все новые сообщения в лист ChatLog.

- NEXT_PAGE_TOKEN гарантирует, что следующие вызовы забирают только новые сообщения.

Шаг 3. Один раз авторизовать доступ к YouTube

1. В выпадающем списке функций выбираем authorizeYouTube.

2. Нажимаем ▶ (Run).

3. В окне авторизации даём скрипту доступ к YouTube и таблицам.

Если всё ок — в логах будет JSON с id канала.

Шаг 4. Перед каждым новым стримом

Для каждого эфира это повторяется:

1. Запускаем стрим на YouTube (он должен быть уже “в эфире”, не только запланирован).[6]

2. В Apps Script выбираем initLiveChat → ▶.

3. В логах должна появиться строка LIVE_CHAT_ID сохранён: ....

Это значит, скрипт “привязался” к чату именно этого стрима.

Шаг 5. Проверка записи чата

Во время стрима:

1. В Apps Script запускаем logLiveChatFetch вручную.

2. В логах видим HTTP 200 и JSON с items (сообщения чата).

3. В Google Таблице появляется лист ChatLog со строками:

- time — время сообщения;

- author — ник в чате;

- message — текст сообщения;

- messageId — id сообщения;

- type — тип события (обычно `textMessageEvent`).

Шаг 6. Автоматизация (триггер раз в минуту)

Чтобы не запускать вручную:

1. В Apps Script открываем “Триггеры”.

2. Добавляем новый триггер:

- функция: logLiveChatFetch;

- запуск: “По времени”;

- интервал: “Каждую минуту”.

Пока стрим идёт и LIVE_CHAT_ID актуален, триггер раз в минуту вытаскивает все новые сообщения (`maxResults=200`, nextPageToken`) и дописывает их в `ChatLog. Так можно спокойно логировать даже потоки на ~10 000 сообщений, не превышая квоту API.

#kuz_getcourse #YouTube #kuz_полезности

-2