Проект “Автоматический стриминг на YouTube” состоит из трёх модулей: OBS-сервис, телеграм-бот и модуль “Календарь”. Работа сервиса происходит следующим образом: модули бота и календаря взаимодействуют с пользователем и посылают соответствующие запросы в модуль OBS-сервис. Последний выполняет запрошенные функции и взаимодействует с базой данных, в которой хранится информация о пользователях и OBS, добавленных ими.
Приложение развёрнуто на сервере, находящемся в сети Медиацентра.
Обс-сервис разработан на языке Python с использованием библиотек fastapi, simpleobsws, redis, loguru, pydantic. В проекте используется база данных Redis.
Соответствующий модуль состоит из следующих файлов:
main.py — содержит endpoint’ы с помощью которых осуществляется взаимодействие с ботом и календарем
database.py — содержит функции для работы с базой данных
obs_functions.py — содержит функции для взаимодействия с obs при помощи веб сокетов версии 5+
Важно отметить, что компьютеры с обс должны находиться в сети медиацентра.
schemas.py — содержит валидационные модели для обработки полученных значений
utils.py — содержит оставшие вспомогательные функции
requirements.txt — содержит список библиотек
Dockerfile — содержит команды для докера, необходимые для корректной работы модуля
В базе данных определяются связи user - доступные obs и obs_ip - занятые промежутки времени. При добавлении или удалении стенда в базу данных вносятся изменения.
swagger описание доступно по ссылке http://172.18.130.40:8000/docs (использовать вышкинский vpn)
В данной документации описывается процесс разработки чат-бота для автоматического стриминга. Цель данного модуля— создание удобного и простого инструмента для сотрудников Медиацентра МИЭМ ВШЭ, позволяющего автоматизировать процесс стриминга и управления многими трансляциями и устройствами с OBS Studio.
Чат-бот разработан на языке Python версии 3.11 с использованием библиотек aiogram версии 3, requests, loguru.
В настоящее время бот запускается в докере на сервере, находящемся в сети Медиацентра, и работает с устройствами, находящимися в этой же сети.
Соответствующий модуль tg-bot состоит из следующих файлов:
В данной документации описывается процесс разработки модуля календаря системы Odoo для планирования трансляций и автоматического стриминга. Цель данного проекта — создание удобного и простого инструмента для сотрудников Медиацентра МИЭМ ВШЭ, позволяющего автоматизировать процесс стриминга и управления многими трансляциями и устройствами с OBS Studio.
Модуль разработан на языке Python с помощью фреймворка Django с использованием библиотек requests, datetime.
В настоящее время календарь развернут на сервере crm.miem.tv.
Соответствующий модуль calendar-obs состоит из следующих файлов:
Телеграм-бот принимает данные от пользователя и направляет соответствующие запросы в приложение obs-сервис. В свою очередь. это приложение работает с OBS API и базой данных Redis. В ней хранятся данные о пользователях и добавленных ими стендах OBS (с ip, портами и паролями).
Также при планировании трансляций телеграм-бот отправляет запрос в модуль “Odoo календарь”, где создаётся соответствующее событие. Когда наступает время, на которое запланирован стрим, календарь связывается с obs-сервисом, который в свою очередь начинает трансляцию, управляя OBS с помощью WebSocket’ов.
Все листинга приложения представлены по ссылке.