Автопост в Telegram о начале стрима на VK Видео Live — Mikulski
Наложение сайта

Автопост в Telegram о начале стрима на VK Видео Live

Предисловие

Пару лет назад я опубликовал на этом сайте пост, в котором подробно рассказал о том как настроить автопостинг в канал Telegram о начале стрима на Twitch, с помощью сервиса-автоматизатора Make.
Метод рабочий, но все же имеет некоторые неудобства: надо самому создавать своего бота Telegram через BotFather; нельзя захватывать название/категорию; а также нет очевидного способа, чтобы удалять пост с оповещением по окончанию стрима (во всяком случае, на бесплатном тарифе сервиса Make).
С тех пор утекло много воды, а я увлекся программированием. В основном, нацеленного на облегчение ведения соцсетей и разностороннее развитие проекта Mikulski_Radio. Конечно, мои навыки в кодинге, по-прежнему, представляют собой весьма любительский уровень, однако, научившись некоторым трюкам, я все же смог создать Telegram-бота, который умеет автоматически постить оповещения и даже чуть более того.
Как бы то ни было это мой первый опыт в создании общественно полезного приложения, — если что, не судите строго 😉

VKPlayLive_Telegram_Alert_Bot

27.11.2024
VK Play Live переименовались в VK Видео Live
Так как боту нельзя поменять адрес ссылки (нужно создавать нового), то было решено название оставить прежним.

Бот следит за началом/концом стрима заданного канала на VK Видео Live, а затем постит/закрепляет/удаляет оповещение в нужном Telegram-канале/чате.
Содержимое поста обновляется, если в настройках указаны превью стрима и/или переменные для названия/категории.
Подойдет всем, кто стримит на VK Видео Live или рестримит туда (в тексте поста-оповещения можно указать любые другие ссылки).

Особенности и Ограничения

⚠️ ВНИМАНИЕ! Хост другого канала воспринимается ботом как будто ВЫ вышли в прямой эфир!
Потому как на данный момент в официальном API VK Видео Live нет возможности различать эти два статуса — онлайн / хост.
Чтобы избежать ложных срабатываний отключите автоматический хост после рейда — для этого в чате вашего VK Видео Live канала введите команду /restream off

  • Боту не требуется ваша авторизация на VK Видео Live, т.к. все нужные данные доступны публично;
  • Погрешность срабатывания, т.е. публикации/обновления/удаления поста составляет +/- 1 минуту!
  • Информация в опубликованном посте автоматически обновляется (т.е. редактируется ботом) при использовании переменных (название, категория стрима и т.д.) и/или превью.
  • Указать можно только по одному каналу. Т.е. один канал для VK Видео Live и один Telegram-канал/чат.
  • Для Telegram-чатов с разделением на темы (трэды) можно указать нужную «ветку» для публикаций.
  • Премиум-эмодзи Telegram не поддерживаются!
  • Для оформления поста можно использовать HTML-разметку, включать превью (кадр с текущей трансляции), добавлять собственное изображение и дополнительные url-кнопки.
  • Бот умеет автоматически закреплять и откреплять посты, а также «подчищать» системные сообщения об этих действиях.
  • Бот бесплатный и не имеет никаких дополнительных функций «за деньги».
    Однако, посильная донатная поддержка категорически приветствуется и расходуется на оплату сервера, где размещен бот.

Настройка

В целом, настройка проста и интуитивна понятна. Единственное, что нужно обязательно ввести все основные данные (по умолчанию, все графы пустые, постинг и авто-удаление отключены).

Для наглядности пройдемся по всем шагам:

Для начала нужно открыть бота по ссылке:
https://t.me/VKPlayLive_Telegram_Alert_Bot
и запустить его.
Первым сообщением он выдаст приветствие, а также отобразится меню с кнопками через которое и будут происходить все манипуляции с ботом.

Добавление бота в ▶️Telegram-канал/чат

Чтобы бот мог публиковать оповещения в заданном Telegram-канале/чате, нужно его туда добавить в качестве администратора и разрешить постить сообщения. Все остальные разрешения можно смело убрать (для чатов — вообще все).

Исключение функция Авто-закрепа. Для ее корректной работы нужны дополнительные флаги:
Для чатов — «Закрепление сообщений» и «Удаление сообщений»
Для каналов — «Редактирование чужих публикаций»

После того, как вы это сделаете, то Id-канала/чата автоматически привяжется к боту и отобразится в строке «Telegram канал» (кнопка «Проверить настройки»).
Имейте в виду, что бот привязывается к Id последнего канала/чата, где вы его назначили администратором, и обнуляет Id, когда его удаляют или снимают с должности админа.

Для чатов с разделением на темы нужно дополнительно обозначить номер желаемой ветки с помощью команды
/thread или через меню ⚠️ВКЛ-ВЫКЛ.
Этот номер можно найти в ссылке на тему чата (например, в t.me/mikulski_rocks/5 — идентификатор темы это 5).
По умолчанию, значение равно 0, что является корректным для обычных каналов и чатов, а для чатов с разделением на темы, оповещения в этом случае будут публиковаться в первом созданном топике.

В любой момент вы можете исключить бота из канала/чата или забрать разрешение на публикацию.
Единственное, что тут важно добавить именно этого бота, если вдруг появятся притворяющиеся им другие боты злоумышленников. Поэтому рекомендую в поисковой запрос вбивать полную ссылку и убедиться, что в результате поиска у бота адрес совпадает c @VKPlayLive_Telegram_Alert_Bot

Для каналов это делается следующим образом:
Управление каналом -> Администраторы -> Добавить администратора -> Вставить ссылку на этого бота -> OK -> Отключить все тумблеры, кроме Управление сообщений -> Публикация сообщений (+ «Редактирование чужих публикаций«, если планируете использовать авто-закреп)
*Для чатов можно убрать все разрешения (кроме «Закрепление сообщений» и «Удаление сообщений», если планируете использовать авто-закреп).


Теперь нужно пройтись по всем кнопкам и прописать необходимые данные:

Будьте внимательны, когда переходите в меню, где требуется ввести данные: любая нажатая кнопка интерфейса воспринимается как ввод текста!
Чтобы выйти из такого меню не внося изменений, пользуйтесь кнопкой «Отмена».

🔵VK Видео Live

Нажав на эту кнопку, бот попросит вас отправить ему сообщение с идентификатором вашего канала VK Видео Live.

Можно отправить ссылку целиком, например:
https://live.vkvideo.ru/mikulski
Или только идентификатор(название) канала:
mikulski

📝Пост

Здесь нужно написать текст сообщения, которое будет публиковаться в Telegram-канале/чате.

Предусмотрены переменные (подставляемые значения), которые подтянутся из данных вашего стрима/канала:
${title} — название стрима;
${game} — категория;
${link} — ссылка на ваш канал VK Видео Live;
${viewers} — кол-во текущих зрителей;
${views} — кол-во просмотров стрима;
${likes} — кол-во лайков под стримом;
${uptime} — время в эфире;
${followers} — кол-во подписчиков (фолловеров) на канале.
Вы также можете прописать любые текст и ссылки.

Доступна HTML-разметка (все тэги, которые поддерживает Telegram).

⚠️ВКЛ-ВЫКЛ

Эта кнопка вызывает меню, в котором можно включить/выключить 🔔публикацию, 🗑️авто-удаление и 📌авто-закреп постов с оповещениями.

А также активировать 🖼️Превью: прикрепление к посту изображения — скриншота трансляции (обновляется раз в минуту).
Если стрим оффлайн или превью не успело сгенерироваться (на это требуется несколько минут), то в качестве картинки сперва подтянется оффлайн обложка канала или аватарка.
Вы также можете установить собственное изображение, указав ссылку на него (загружать изображения в бота напрямую нельзя).
Ну и указать ID-трэда для тематических чатов.

По умолчанию, все отключено.
Желательно отключать оповещения, если вы планируете длительный перерыв в стриминге.

⚠️Для кастомных изображений: обнаружилось, что в некоторых случаях и спустя время Telegram может перестать «подтягивать» изображение, несмотря на то, что в браузере эта же ссылка открывается корректно.
Если при публикации оповещения вы получаете ошибку:
[400: Bad Request: wrong type of the web page content]
То залейте изображение на хостинг заново, либо сбросьте настройку /image до дефолтной.

⚙️Проверить-настройки

Кнопка, которая позволяет посмотреть текущие настройки и убедиться,что все настроено верно.
Также можно отправить тестовое оповещение — бот подтянет информацию с канала и укажет на ошибки, если таковые будут.
И затем удалить это сообщение кнопкой тестового удаления.
В том числе эти кнопки можно использовать как аварийные рычаги — для отправки/удаления оповещений вручную.

«Проверить Оформление Поста» отправляет пост прямо в диалоге с ботом. Данные берутся из памяти (поэтому могут быть неактуальными), чтобы ускорить процесс проверки и сократить количество запросов к серверам.

🔗URL-кнопки

Под каждым постом всегда будет отображаться кнопка-ссылка (Url-кнопка) ведущая на ваш канал VK Видео Live. Но можно добавить такие кнопки и для других площадок через это меню.
Жмете на нужную кнопку из перечня и отправляете полную ссылку.
Чтобы удалить кнопку — нажмите «Сброс в ее настройках».

Первая строка с кнопкой VK Видео Live всегда активна и неизменна!
Вторая строка будет дробиться в зависимости от количества указанных площадок.
Рекомендуется добавлять не более 2-3х ссылок для более лаконичного вида.

❓️Помощь/Справка

Кнопка вызывает меню, в котором можно ознакомиться с инструкцией, найти способы связаться со мной и поcмотреть список действующих пользователей.

❌Удаление учетных данных

Бот хранит только ваши Telegram-id и id-канала/чата для идентификации нужного профиля при отправке репоста и те данные, которые вы вводите сами в настройках.
Чтобы удалить все хранимые данные и прекратить использование бота, то достаточно в диалоге с ним нажать на верхнюю панель с его названием, чтобы вызвать меню «Информация о боте» и в самом низу нажать «Остановить и блокировать«.
Чтобы снова его активировать и начать все с нуля, нажмите «Перезапустить«.

Результат

После того как все настройки совершены и вы запустите стрим, то с погрешностью в минуту, бот отправит в ваш Telegram канал/чат сообщение.
Если включен «Закреп», то еще попытается его закрепить и удалить системное сообщение «..закрепил(а)..».

В примере на скриншоте текст поста указан так:
${title}
${game}
😳${viewers} 👀${views} ❤️${likes}
Цель по подписчикам: ${followers} / 150
В эфире: ${uptime}
${link}

Включено превью и добавлены две доп. Url-кнопки (Twitch, Youtube, GoodGame).

Когда вы завершите стрим и у вас включено «Авто-удаление постов», то с той же погрешностью бот удалит сообщение.
Если включен «Закреп», то бот попытается открепить пост.
Примечательно, что Telegram убирает собственное уведомление после удаления сообщения, то есть оно перестает «висеть» непрочитанным у пользователя.