Добавил:
study@slavapmk.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ВВП

.docx
Скачиваний:
0
Добавлен:
11.05.2026
Размер:
325.49 Кб
Скачать

Министерство Цифрового Развития, Связи И Массовых

Коммуникаций Российской Федерации

Ордена Трудового Красного Знамени Федеральное

Государственное Бюджетное Образовательное Учреждение

Высшего Образования

«Московский Технический Университет Связи и Информатики»

Команда:

  • Петров Вячеслав (капитан)

  • Соболев Егор

  • Симонов Илья

ПРОЕКТНАЯ РАБОТА

«Сервис для прямых трансляций Telegram»

Оглавление

Y

Описание проекта 3

Тема 3

Цель проекта 3

Задачи 3

Актуальность (практическая значимость) 4

Преимущества 4

Для владельцев медиаресурсов 4

Для конечных потребителей 4

Использованные инструменты 5

Описание содержания проекта 5

Обзор аналогов 6

Способ и методы реализации 6

Компонент бота – панели управления 6

Компонент юзер-бота – аккаунта для проведения трансляций 6

Компонент планирования 7

Компонент хранения и обработки видео 7

Команда 8

Риски 8

Программные риски 8

Проектные риски 8

Источники 8

Литература 8

Форумы и официальная документация 9

Выводы 9

Описание проекта

Тема

Тематическое направление:

Выбранный мини-проект: Telegram чат бот

Цель проекта

В ходе работы мы планируем создать систему автоматического показа записанных видео в режиме реального времени в виде трансляций (видеозвонков) в Telegram – в чатах и каналах.

Задачи

  1. Изучить современные паттерны проектирования и разработки Telegram-приложений.

  2. Спроектировать эффективную архитектуру

  3. Реализовать базу данных для хранения планировщика и загруженных видео

  4. Написать панель управления на Telegram Bot API

  5. Написать юзер-бота1 для загрузки видео и проведения автоматических трансляций

  6. Сделать конфигурацию для Docker для удобного переноса на другие сервера

  7. Провести стресс-тесты на разных серверах

Актуальность (практическая значимость)

Из-за блокировки Discord и проблем с YouTube в России возникла острая необходимость в надежных инструментах для анонсирования мероприятий в Telegram. Наш проект предлагает решение: отложенный показ видео с возможностью трансляции в реальном времени. Это позволяет заранее подготовить качественный контент, избежать ошибок и обеспечить стабильную трансляцию.

Преимущества

Для владельцев медиаресурсов

  1. Отсутствие человеческих рисков при проведении трансляций

  2. Возможность предварительного монтажа

Для конечных потребителей

  1. Качество контента – оборудование уже должно быть настроено на проведение трансляций к необходимому моменту

  2. Гарантированность проведений – трансляция будет отменена или перенесена только по техническим причинам, так как сам материал был записан уже некоторое время назад

Использованные инструменты

  • DockerDocker Compose) Универсальный инструмент для разворачивания больших проектов на любом оборудовании посредством контейнеризации

  • Python 3.10

  • TgCrypto Библиотека ускоряющая обмен данными во время звонка с Telegram посредством особых алгоритмов шифрования

  • Pyrogram Асинхронная библиотека для управления юзер-ботами

  • Aiogram Асинхронная библиотека для Bot API в Telegram

  • Py-Tgcalls Библиотека для создания и управления видеозвонками

  • YtDlp Библиотека для скачивания видеороликов с YouTube, используется в проекте удобного рестриминга2 напрямую с YouTube без скачивания на сервер

Описание содержания проекта

  • Telegram-бот для настройки (панель управления трансляциями)

  • Планировщик трансляций

  • Юзер-бот для ведения трансляция и скачивания больших видео (у телеграмма много ограничений на Bot API, исходя из чего требуется использовать человеческий аккаунт в связке с ботом)

Обзор аналогов

  1. На платформе Telegram нет способов (как и от пользователей) отложенного показа, кроме как функции отправить позже для сообщений

  2. На платформе YouTube есть функция «анонсирование» - публикация видео в определённые срок с предварительной публикацией перед сообществом и с обсуждением / чатом, как на трансляциях

  3. На платформе Discord есть средство анонсирование трансляций, но только с обратным отсчётом, саму трансляцию должны проводить администраторы

Подытог – максимально схожий аналог данного функционала присутствует только на платформе YouTube

Способ и методы реализации

Компонент бота – панели управления

Сначала необходимо через @botfather создать бота с необходимым названием. В конфигурации на сервере указать выданный токен для управления. Первый кто запустит его автоматически приобретает статус администратора бота с дальнейшей возможностью добавления людей.

Бот написан на библиотеке Aiogram. Всё управление происходит через него: управление аккаунтом, управление видео и управление планировщиком

Компонент юзер-бота – аккаунта для проведения трансляций

Подключение к аккаунту в Telegram проbсходит через «приложения», его необходимо создать по адресу my.telegram.org/apps. Полученный «api_id» и «api_hash» необходимо отправить нашему боту в Telegram, авторизация в аккаунт происходит так же через него.

Так как видео загружаются то же через аккаунт, нужно разрешить боту отправлять сообщения на него – это можно сделать, нажав кнопку «СТАРТ» в диалоге между юзер-ботом и ботом.

Он написан на 2 основных библиотеках: Pyrogram – для подключения к аккаунту и обработки сообщений, Py-Tgcalls – для потокового вещания (с дальнейшим использованием TgCrypto)

Компонент планирования

Планировщик представляет собой рекурсивную асинхронную задачу, привязанную к юзер-боту, которая раз в минуту запускается и проверяет список, в момент запуска он блокируется и отправляет боту информацию о трансляции (видео, сообщение о анонсировании и остальные необходимые метаданные)

Компонент хранения и обработки видео

Хранение видео происходит в двух режимах:

  1. Локальное хранение видео

  2. Хранение метаданных

Если видео загружено напрямую боту – оно пересылается с метаданными юзер-боту, через которого происходит загрузка, используется локальное хранение. (Бот → Юзер-Бот → Сервер → Юзер-Бот → Telegram)

Если загружена ссылка на YouTube или «*.mp4» ссылку (или другую ссылку ведущую напрямую на видео) – то происходит проверка на корректность видеоролика и последующая его загрузка на сервер для локального хранения и трансляций (Бот → Загрузчик → Сервер → Юзер-Бот → Telegram)

Для отключения нужно отправить ссылку по формату «![ссылка]» – в данном случае все проверки отключаются и все ролики будут транслироваться напрямую с ресурсов (Платформа → Юзер-Бот → Telegram)

Команда

  1. Петров Вячеслав (юзер-бот и планировщик)

  2. Соболев Егор (бот управления)

  3. Симонов Илья (хранение и обработка видео)

Риски

Программные риски

  1. Безопасность – взлом, утечка данных (маловероятно, но всегда стоит учитывать)

  2. Проблема с загруженностью VPS3 и каналом связи (пропускная способность интернета). Для корректной и идеальной работы рекомендуется использовать VDS4

Проектные риски

  1. Доверие пользователей

  2. Нехватка времени

Источники

Литература

Гифт Ной - Python и DevOps Хайнеман Джордж - Алгоритмы. С примерами на Python

Форумы и официальная документация

Pyrogram - docs.pyrogram.org Telegram API - core.telegram.org/bots/api Docker - docs.docker.com Stack Overflow - stackoverflow.com

Выводы

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

Разработка подтвердила свою актуальность в условиях текущих ограничений на популярные платформы и роста популярности Telegram как основной среды для проведения мероприятий. Технические решения, использованные в проекте, обеспечили высокую стабильность работы и удобство для конечных пользователей.

1 Юзер-бот – подключенная программа к аккаунту, представляющая собой бота от имени обычного пользователя Telegram

2 Рестриминг – процесс захвата видео с одной трансляции(видео) напрямую в другую трансляцию

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

4 VDS - виртуальный выделенный сервер, который имеет отведённые ресурсы физического сервера

Москва 2024

Соседние файлы в предмете Введение в профессию