Journalist – ведём текстовые онлайн трансляции через Telegram

Journalist – ведём текстовые онлайн трансляции через Telegram


Текстовые трансляции всё больше входят в нашу жизнь. Благодаря современным технологиям, они становятся всё более привлекательным способом доносить информацию в реальном времени до большой аудитории. Даже здесь, на Хабре, уже не раз проводились текстовые трансляции различных мероприятий. Реализуют такие трансляции все по разному. Кто-то использует внутренний функционал сайта, другие используют готовые сервисы, третьи – вовсе редактируют обычные текстовые посты, вынуждая своих пользователей постоянно обновлять страницу или делая это за них простейшими скриптами.

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

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

После создания трансляции бот выдаст ссылки на публичную страницу трансляции и на страницу предпросмотра, а также html-код для вставки трансляции на сайт и команду для приглашения других редакторов к ведению трансляции.

Взаимодействие с ботом построено таким образом, чтобы это был действительно удобный способ ведения трансляции. Конечно же, комфортнее всего это будет делать сидя за компьютером, имея под рукой быстрый интернет и неспешно попивая любимый горячий напиток. Но в то же время, для полноценной работы достаточно телефона или планшета и, благодаря нетребовательности Telegram'a к качеству соединения, хоть какого-нибудь интернета. Это даёт возможность работать в полевых условиях и оставаться продуктивным, радуя своих читателей интересным материалом с места события.

В связи с этим я с гордостью могу назвать JournalistBot одним из первых Telegram ботов предназначенных для создания профессионального контента.
 

Возможности


Сервис уже предоставляет весь необходимый функционал для ведения современных текстовых трансляций. В тексте сообщений поддерживается Markdown разметка, соответственно посты можно красиво форматировать. Фотографии можно отправлять непосредственно в чат, как изображение или как ссылку. В обоих случаях оно будет правильно вставлено в трансляцию. Также поддерживаются ссылки на встраиваемые ресурсы: YouTube, Vimeo, Twitter, Instagram и т.п. У редактора нет необходимости идти на сайт целевого сервиса и получать код для вставки, бот берёт эту задачу на себя. Кроме того, у редактора есть возможность отправить в чат голосовое сообщение, видео с камеры, местоположение или даже стикер. Всё это будет мгновенно доставлено читателям трансляции.

Посты собираются из сообщений и не видны читателям до нажатия кнопки «Опубликовать». При этом редакторы могут видеть составляемый пост на странице предпросмотра. Если опечатка всё же осталась незамеченной до самой публикации или опубликовали не то, что хотели – это не беда, можно исправить сообщение, отредактировав его стандартными средствами или удалить его из трансляции, отправив команду «Удалить» в качестве ответа (Reply) на это сообщение. Изменения автоматически отобразятся у всех читателей трансляции.

Для работы в команде есть возможность подключения нескольких редакторов к одной трансляции. Для этого после создания трансляции, бот, вместе с остальной информацией, присылает команду /join <токен>. Отправив эту команду боту, другой редактор присоединится к ведению трансляции. Сообщения от каждого редактора формируют отдельные посты, поэтому, работая параллельно, они не будут мешать друг другу. Для таких трансляций существует возможность отображения автора каждого поста, которая включается в настройках.
 

Целевая аудитория


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

Однако ничего не мешает обычным пользователям, не занимающимся на регулярной основе проведением подобных трансляций, взять и попробовать, ведь у трансляции есть публичная страница (пример), ссылку на которую достаточно распространить среди своих читателей. Поэтому, если взять совершенно противоположный СМИ пример, можно, поехав на отдых, создать трансляцию и отправить ссылку на неё своим друзьям, чтобы держать их в курсе своих приключений.

Бот позволяет одновременно вести несколько трансляций и переключаться между ними через меню.
 

Под капотом


Сервис полностью реализован на node.js и спроектирован таким образом, чтобы его можно было легко горизонтально масштабировать. Это позволяет наложить на него модель: есть аудитория → есть деньги → добавляем сервера. Как показала практика, такой подход очень удобен из-за того, что нет необходимости стартовать на дорогом оборудовании и так и не дождаться своего highload, при этом при росте нагрузки иметь возможность быстро на это отреагировать, без необходимости «переписывать всё с нуля». Вся система развёрнута в Docker-контейнерах, которые автоматически собираются в GitLab CI, это очень сильно упрощает деплой системы и делает её обновление и расширение ещё более тривиальным процессом. Хранилище файлов также реализовано таким образом, чтобы в любой момент можно было легко мигрировать на сервисы вроде Amazon S3 и внедрить CDN. Клиенты получают обновления через Websocket.

Большой упор сделан на производительность. Загружая страницу, пользователь не замечает отдельной подгрузки трансляции, страница выглядит монолитно. Пока это работает не в 100% случаев, но после расширения сети серверов и гео-распределения запросов, всё должно стать ещё намного лучше. Однако уже сейчас задержка минимальна. Это в свою очередь влияет на SEO-оптимизацию. Трансляции, вставленные на сайт, будут индексироваться всеми современными поисковыми системами, т.к. производится лишь необходимый минимум манипуляций с DOM и поисковые системы готовы их дождаться при индексировании страницы.
 

Известные проблемы


Т.к. клавиатуры ботов в Telegram появились относительно не так давно, ещё не все с ними гладко. Например, есть проблема в клиенте под Android – при ответе на сообщение (Reply) клавиатура бота пропадает и нет возможности её вызвать. Это делает затруднительным изменение типа поста и его удаление. Пока в качестве workaround можно отправить эту команду кнопкой в чат, а потом скопировать его в ответ на сообщение. Надеюсь, что в ближайшее время это будет исправлено разработчиками клиента. Под iOS и Mac OS этой проблемы нет.

На данный момент нет возможности использовать бота в групповом чате, что было бы очень удобно для работы в команде. И дело снова в клавиатуре бота. В групповом чате нажатие клавиш отправляет сообщение всегда как ответ на сообщение бота и нет возможности отправить его просто в чат, как новое. Это делает проблематичным реализацию того же функционала, который доступен в приватном чате, так что ждём, пока в Telegram появится соответствующая возможность или пока в голову не придёт хорошая идея, как это ограничение красиво обойти.


 7 советов начинающему ИП, чтобы избежать проблем 7 советов начинающему ИП, чтобы избежать проблем

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

Подробнее
mode_edit
Случайная цитата

Над шрамом шутит тот, кто не был ранен. У. Шекспир