Catcast
[catcast.tv]
Стриминговая платформа, созданная мной.
Что умеет:
- прямые эфиры
- радио (Icecast)
- вещание по расписанию
- загрузка и хранение видео/аудио
- общение со зрителями (чаты, новости, комментарии)
- и многое другое.
История проекта
С чего бы начать...
В общем, существовал когда-то проект yatv.ru - первая российская площадка для онлайн-трансляций.
Это сейчас есть и твитч, и ютуб, и гудгейм, а тогда такие площадки были в новинку.
И вот на этом сайте сформировалась группа друзей, делавшее своё "интернет-телевидение" с передачами и прямыми эфирами - в противовес умирающему официальному (понятия "стриминг" тогда ещё практически не существовало).
Правда получалось так себе, возможно потому, что большинству "телевизионщиков" было по 14-16 лет..)
В 2014 году ЯTV закрыли из-за нерентабельности - никто в РФ не хотел размещать рекламу в контенте, создаваемом простыми пользователями (буквально через год-полтора начался бум стримеров и блогеров, и ситуация изменилась на 180 градусов).
Все постоянные обитателеи сайта разбегаются кто куда, попутно теряя аудиторию. Идут разговоры о создании собственной платформы, которые, впрочем, ничем не окончились.
Весной 2016-го я от скуки достаю из веб-архива сохранившуюся верстку ЯТВ и натягиваю (кхм) ее на самописный движок,
подключаю опенсорсный nginx-модуль для rtmp-трансляций, и...как ни странно, идея заходит - в первые же дни на сайте появляется более 100 каналов от бывших ЯТВшников :D
Изначально я ожидал, что это будет узконаправленный проект для небольшой группы давних друзей, но при этом уже в первые дни на сайте появились пользователи, которых я не знал лично.
Более того, мне написал один из бывших разработчиков ЯТВ, а через несколько лет я попал к нему в команду на новом проекте...но это уже совсем другая история)
Версия 3.0 (catcast.tv)
Дата релиза: июль 2019
Стек: Laravel, Nuxt
Нынешняя итерация сайта, сделанная по современным стандартам. Для этой версии был написан собственный набор компонентов интерфейса Vue (поля ввода, элементы выбора, кнопки и т.д.). Бэкенд же был переписан на Laravel.
- Теперь помимо ТВ можно создавать и радио! (для этих целей проштудированы и успешно прикручены Icecast и Liquidsoap).
- Можно проводить эфиры прямо из браузера, с наложением эффектов и оверлеев. Canvas + WebAudio + MediaRecorder + WS + FFmpeg = magic :)
- Система пользовательских ролей переписана для более гибкой настройки доступа к каждому разделу.
- Уведомления теперь приходят на почту, в ВК или Телеграм.
Версия 2.0 (myowntv.org)
Дата релиза: ноябрь 2016
Стек: простенький MVC-движок на PHP, jQuery
Вечно выезжать на чужом дизайне всё-таки не хотелось, да и на сайт начали приходить новые пользователи - сработало сарафанное радио.
К тому времени я уже немного освоил азы веб-разработки и сваял простенький MVC-движок, а на фронте прикрутил побольше интерактивности и PJAX.
Впоследствии часть страниц была даже переписана на VueJS.
К функционалу добавились:
- Автопилот - линейное вещание по плейлистам ("как на телеке")
- Просмотр и загрузка видео
- Красивая админка для каналов
- Реалтайм-обновление данных по WS
Версия 1.0 (moeitv.ru)
Дата релиза: апрель 2016
Первая версия сайта, написанная на PHP-лапшекоде, в котором SQL-запросы могли соседствовать с CSS и т.д.
Дизайн же был невозбранно стырен у yatv.ru (о причинах - выше).
Как ни странно, эта штука работала и даже умудрялась выдерживать какие-никакие нагрузки, когда на сайт вдруг повалили незнакомые мне юзеры.
Функционал
- Прямые трансляции
- Чат
- Запись эфиров
- Кастомизация страниц каналов