Автопост в Telegram о начале стрима на VK Видео Live (ex.VKPlayLive) – Mikulski
Наложение сайта

Автопост в Telegram о начале стрима на VK Видео Live (ex.VKPlayLive)

Предисловие

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

VKPlayLive_Telegram_Alert_Bot

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

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

Ограничения

  • Погрешность срабатывания, т.е. публикации/удаления составляет +/- 5 минут!
  • Указать можно только по одному каналу. Т.е. один канал для VK Видео Live (ex.VKPlayLive) и один Telegram-канал/чат.
  • Премиум-эмодзи Telegram не поддерживаются!
  • К сожалению, для VK Видео Live (ex.VKPlayLive) все еще нет официального API, поэтому есть доля вероятности, что в какой-то момент бот не сможет осуществлять свои функции.

Настройка

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

Для начала нужно открыть бота по ссылке:
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 (ex.VKPlayLive)-канала.
Можно отправить ссылку целиком, например:
https://live.vkvideo.ru/mikulski
Или только идентификатор(название) канала:
mikulski

Соответственно, всегда можно сюда вернуться и ввести идентификатор заново, если вы допустили ошибку или нужно поменять адрес отслеживаемого канала.

📝Пост

Здесь нужно написать текст сообщения, которое будет публиковаться в Telegram-канале/чате.
Учтите, что поле нельзя оставлять пустым – иначе бот ничего не отправит!
Предусмотрены подставляемые значения, которые подтянутся из заголовка вашего стрима:
${title} – название стрима;
${game} – категория;
${link} – ссылка на ваш VK Видео Live (ex.VKPlayLive)-канал.
Вы можете также прописать любые другие ссылки. Только учитывайте, что Telegram в качестве превью подтянет первую по очереди ссылку.

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

⚠️ВКЛ-ВЫКЛ-Оповещений

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

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

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

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

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

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

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

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

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

Результат

После того как все настройки совершены и вы запустите стрим, то с погрешностью в 5 минут, бот отправит в ваш Telegram канал/чат сообщение.

В примере на скриншоте текст поста указан так (превью отключено):
Стрим!
${title}
${game}
${link}

Превью включено:
Но с большей вероятностью будет подтягиваться оффлайн обложка канала, имейте в виду.

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

Технические особенности и дальнейшее развитие

Как было замечено почти в самом начале этой статьи: бот обращается к серверам VK Видео Live (ex.VKPlayLive) по неофициальному API, поэтому сложно предсказать срок службы приложения, как и прочие неприятные ситуации с этим связанные. Однако, я настроен оптимистично и если не будет большого наплыва пользователей (это маловероятно), то бот будет работать долго и стабильно. Я намерен поддерживать его работу, пока имею такую возможность.
На текущем этапе логика заключается в интервальном опросе сервера каждые 5 минут и с задержкой в одну секунду между запросами на каждого пользователя, чтобы минимизировать “палево” частых обращений к серверу.

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии