Skip to content

Hexlet/hexlet-zoom-youtube-uploader

Repository files navigation

Actions status

zoom-youtube-uploader

Загрузчик записей из Zoom на YouTube.

Как это работает:

Zoom:

  • Кто-то провёл и завершил мероприятие под запись в Zoom
  • Zoom обрабатывает запись и посылает событие как Webhook в App, где содержит ссылку на скачивание
  • Ссылка позволяет скачать запись только в первые 24 часа, поэтому событие записывается базу App
  • App по cron опрашивает базу данных и скачивает новые записи на виртуальную машину, если они соответствуют условиям. Об условиях написано ниже.

YouTube:

  • YouTube API предоставляет "квоту" на 10 000 баллов в сутки. Каждое действие в API списывает несколько баллов. Например, получение плейлистов, загрузка видео, добавление видео в плейлист.
  • Квоты в итоге позволяют загрузить на YouTube в сутки не более 6 видео и добавить их в плейлист.
  • Все загруженные из Zoom записи сортируются по дате загрузки и в порядке очереди загружаются на YouTube. Поэтому запись может оказаться на Youtube уже через час после окончания, или через день-два. Всё зависит от очереди.

Отчёт:

Приложение умеет формаировать отчёт, где видно:

  • какие события приходили
  • какие были приняты
  • какие были отклонены и по каким причинам
  • какие записи были загружены и списки на ютуб
  • названия, плейлисты и спикеры, которые удалось приложению разобрать

Общее:

  • Если запись была загружена на ютуб, она хранится на виртуальной машине неделю, а затем удаляется.
  • Если App отклонил запись по какой-то причине, а её надо добавить на YouTube, то через App этого уже не сделать. Придётся такую запись загрузить вручную.
  • App не удаляет записи из Zoom. Сотрудники должны сами следить за количеством свободного места в Zoom и удалять записи при уверенности, что их можно удалить.

Условия для скачивания записи

  1. Имя соответствует шаблону: Тема;Спикер;Плейлист. Пример: Участие в OpenSource;Николай Гагаринов;common-activities. Правильное именование записей в Zoom -- ответственность сотрудников, которые им пользуются. Этот процесс организовывается вручную и требует контроля.
  2. Продолжительность записи более X минут. Например, записи продолжительность 5 минут и меньше игнорируются.
  3. Запись разрешено скачивать от этого аккаунта. Когда в Zoom есть 10 и более аккаунтов, то приложение работает через мастер-аккаунт. При этом на одном или нескольких аккаунтах могут быть встречи только рабочие, которые не стоит выгружать на YouTube. Такие аккаунты можно исключить по почте.
  4. Плейлист в списке разрешённых. Когда все записи в Zoom названы по одному шаблону, можно исключать записи с определёнными словами. Эти слова должны быть в названии плейлиста. Например, если на YouTube не нужно выгружать все записи со словом "техчек", то они должны называться так: Что-то;Кто-то;техчек. Вокруг слова "техчек" могут находиться любые другие слова, это не влияет на проверку. Например: что_угодно-техчек_любое_слово

Участие в проекте

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