Возобновляемая загрузка
Загрузка по частям, которая переживает обрыв связи, с ограничением размера, которое задаёте вы, а не платформа.
На своём сервере · PHP 8.2+ · без шага Composer
VideoHub - полноценный видеохостинг, который вы устанавливаете на собственный сервер: загрузка, перекодирование, адаптивный стриминг, каналы и модерация.
Никакая платформа не забирает долю вашего дохода, правила пишете не вы для кого-то другого, и между вашей аудиторией и вашими видео нет посредника. База данных и диск - ваши.
Что входит
Не заготовка, которую надо достраивать. То, чего ждут от видеоплатформы, здесь уже есть.
Загрузка по частям, которая переживает обрыв связи, с ограничением размера, которое задаёте вы, а не платформа.
Каждая загрузка перекодируется в лестницу качеств, а вместе с ней создаются миниатюры и спрайты для перемотки.
Поток следует за скоростью зрителя, а не замирает, и качество можно зафиксировать вручную.
Вертикальная лента с пролистыванием для коротких видео - рядом с обычным плеером, а не вместо него.
Баннеры, аватары, число подписчиков и персональная лента, чтобы аудитории было где собираться.
Ветки комментариев с закреплением и сортировкой, посты сообщества, личные сообщения и уведомления в приложении и по почте.
Загружайте VTT или SRT к каждому видео либо позвольте Whisper сделать первый черновик и отредактируйте его.
REST API в JSON с токенами разработчика для каждого пользователя и плеер для встраивания на другие сайты.
От загрузки до воспроизведения
По-настоящему сложная часть видеосайта начинается после того, как загрузка закончилась. VideoHub берёт её на себя.
Файлы хранятся на локальном диске или в любом хранилище, совместимом с S3, - переключается в настройках администратора.
В работе
Публичный видеосайт стоит ровно столько, сколько стоят инструменты, которые у вас есть, когда им злоупотребляют.
Зрители жалуются на видео, жалобы приходят в одно место, и вы действуете, не заходя в базу данных.
Доступ по ролям с осторожными значениями по умолчанию, чтобы аккаунт модератора незаметно не стал администратором.
Открытое, по ссылке или приватное, отложенная публикация, возрастное ограничение и переключатели комментариев и скачивания для каждого видео.
Журнал действий и инструменты резервного копирования в панели: инцидент оставляет след, а у плохого дня есть путь назад.
TOTP с кодами восстановления, настраиваемая парольная политика, блокировка после попыток входа и поддержка CAPTCHA.
Вход через Google и GitHub с подтверждением почты и выход со всех устройств с одного экрана.
Скрытые лайки, подписки и плейлисты, скрытое число подписчиков и пауза истории просмотров и поиска.
Небольшая CMS для страниц условий, конфиденциальности и «о нас» и управление категориями, для которого не нужен разработчик.
Вид и язык
Тема, логотип, фавиконка и картинка для соцсетей - это настройки, а не форк кода, и интерфейс изначально говорит больше чем на одном языке.
Направление справа налево считается полноценным направлением, а не зеркалом, добавленным напоследок, - тот же стандарт, которого мы держимся на этом сайте.
Требования
Скромные - и проверяются за вас на первом экране установщика, прежде чем вы на что-то согласитесь.
| Компонент | Требуется | Примечания |
|---|---|---|
| PHP | 8.2 или новее | Расширения: pdo_mysql, mbstring, openssl, json, ctype |
| База данных | MySQL 5.7+ или MariaDB 10.4+ | Пустая база данных и пользователь с полными правами на неё |
| Веб-сервер | Apache или Nginx | Apache нужен mod_rewrite и AllowOverride All; Nginx нужен PHP-FPM |
| FFmpeg | Рекомендуется | Без него загруженные файлы отдаются только в исходном формате |
| Хранилище | Локальный диск или совместимое с S3 | Папка storage/ должна быть доступна для записи |
| Также рекомендуются | gd, curl, fileinfo | Обработка изображений, вход через соцсети и S3, определение типа загружаемого файла |
| Composer | Не нужен | Ни шага сборки, ни внешнего сервиса для старта |
Комфортно на VPS; выделенный сервер оправдан, когда перекодирование идёт постоянно.
FAQ
Вопросы, на которые стоит ответить, прежде чем вести собственную видеоплатформу.
PHP 8.2 или новее с расширениями pdo_mysql, mbstring, openssl, json, ctype, а также MySQL 5.7+ или MariaDB 10.4+. Apache нужен mod_rewrite с AllowOverride All; Nginx нужна конфигурация PHP-FPM. Установщик проверяет каждое требование и доступность storage/ для записи прямо на первом экране - так что вы увидите любую проблему заранее.
Нет. VideoHub работает на обычном PHP, без шага Composer и без регистрации где-либо до первой загрузки. Это сделано намеренно: скачанный пакет и есть та программа, которую вы запускаете, и установить его может даже виртуальный хостинг без доступа к консоли.
Настоятельно рекомендуется, но строго не обязателен. С FFmpeg вы получаете лестницу качеств, упаковку в HLS, миниатюры и спрайты. Без него VideoHub работает, но каждый файл отдаётся только в исходном формате: без адаптивного стриминга, и что залил автор, то и скачивает каждый зритель.
На локальном диске или в любом объектном хранилище, совместимом с S3, - задаётся в настройках администратора. С локального диска проще начать; объектное хранилище становится оправданным, когда библиотека перерастает сервер или вы хотите отдавать файлы ближе к аудитории.
Есть режим «только HLS», который отдаёт сегментированные потоки вместо одного скачиваемого файла, а скачивание отключается для каждого видео отдельно. Это сильно поднимает планку по сравнению с «правой кнопкой и сохранить». Но это не DRM: ни один плеер в браузере не сделает захват потока невозможным, так что считайте это сдерживающей мерой, а не гарантией.
Да. Вместе с английским каталогом идёт полный арабский перевод и настоящая поддержка направления справа налево во всём интерфейсе, а не зеркальная таблица стилей, добавленная в конце. Есть также тёмная и светлая темы и тема оформления, которую можно настроить, не трогая шаблоны.
Загружайте файлы VTT или SRT к каждому видео либо позвольте Whisper автоматически сделать первый черновик. Автоматические субтитры - это отправная точка, а не готовая расшифровка: их стоит отредактировать, прежде чем полагаться на них в вопросах доступности.
Да. REST API в JSON с токенами разработчика для каждого пользователя работает с теми же данными, что и веб-интерфейс, так что вы можете автоматизировать загрузку, читать метаданные, управлять пользователями или построить поверх собственный интерфейс. У каждого видео есть и плеер для встраивания на другие сайты.
Через веб-установщик. Он проверяет требования, принимает данные вашей базы, импортирует схему и создаёт первую учётную запись администратора. Без командной строки, без сборки и без компиляции ресурсов.
Получить VideoHub
Одна установка, на оборудовании, которым управляете вы, с базой данных и диском в ваших руках.
Негде запустить? Наши VPS и выделенные серверы уже отвечают всем требованиям выше.