Envios retomáveis
Envios em blocos que sobrevivem a uma quebra de ligação, com o limite de tamanho definido por si e não por uma plataforma.
Auto-hospedado · PHP 8.2+ · sem passo do Composer
O VideoHub é um site completo de partilha de vídeo que instala no seu próprio servidor: envios, transcodificação, streaming adaptativo, canais e moderação.
Nenhuma plataforma fica com parte das suas receitas, ninguém escreve as regras por si e não há um terceiro entre o seu público e os seus vídeos. A base de dados e o disco são seus.
O que inclui
Não é um kit inicial para construir por cima. O que se espera de uma plataforma de vídeo já cá está.
Envios em blocos que sobrevivem a uma quebra de ligação, com o limite de tamanho definido por si e não por uma plataforma.
Cada envio é recodificado numa escada de qualidades, com miniaturas e sprites de navegação gerados ao mesmo tempo.
O stream acompanha a largura de banda de quem vê em vez de parar, e é possível fixar uma qualidade à mão.
Um feed vertical e deslizável para vídeo curto, ao lado do leitor normal em vez de o substituir.
Banners, avatares, número de subscritores e um feed personalizado, para o público ter onde se juntar.
Comentários em tópicos com fixação e ordenação, publicações de comunidade, mensagens diretas e notificações na aplicação e por e-mail.
Carregue VTT ou SRT por vídeo, ou deixe o Whisper gerar uma primeira versão automática e edite-a.
Uma API REST em JSON com tokens de programador por utilizador, e um leitor incorporável noutros sites.
Do envio à reprodução
A parte genuinamente difícil de um site de vídeo é a que corre depois de o envio terminar. O VideoHub trata dela por si.
O armazenamento vai para disco local ou para qualquer bucket compatível com S3, comutável nas definições de administração.
No dia a dia
Um site de vídeo público vale o que valem as ferramentas que tem quando alguém abusa dele.
Quem vê denuncia vídeos, as denúncias chegam a um só lugar e você age sem passar pela base de dados.
Acesso por funções com predefinições prudentes, para que uma conta de moderador não se torne administrador sem se dar por isso.
Público, não listado ou privado, publicação agendada, restrição de idade e interruptores de comentários e transferências por vídeo.
Registo de atividade e ferramentas de cópia no painel: um incidente deixa rasto e um mau dia tem caminho de volta.
TOTP com códigos de recuperação, política de palavras-passe configurável, bloqueio por tentativas e suporte de CAPTCHA.
Entrada com Google e GitHub com verificação por e-mail, e terminar sessão em todos os dispositivos a partir de um ecrã.
Gostos, subscrições e playlists privados, número de subscritores oculto e pausa do histórico de reprodução e pesquisa.
Um pequeno CMS para as páginas de termos, privacidade e sobre, e gestão de categorias que dispensa um programador.
Aspeto e idioma
Tema, logótipo, favicon e imagem para redes são definições e não um fork do código, e a interface fala mais do que uma língua de origem.
A direção da direita para a esquerda é tratada como direção de pleno direito e não como um espelho acrescentado no fim - o mesmo critério que aplicamos a este site.
Requisitos
Modestos, e verificados por si no primeiro ecrã do instalador antes de se comprometer com o que quer que seja.
| Componente | Necessário | Notas |
|---|---|---|
| PHP | 8.2 ou mais recente | Extensões: pdo_mysql, mbstring, openssl, json, ctype |
| Base de dados | MySQL 5.7+ ou MariaDB 10.4+ | Uma base de dados vazia e um utilizador com todos os privilégios sobre ela |
| Servidor web | Apache ou Nginx | O Apache precisa de mod_rewrite e AllowOverride All; o Nginx precisa de PHP-FPM |
| FFmpeg | Recomendado | Sem ele, os envios são servidos apenas no formato original |
| Armazenamento | Disco local ou compatível com S3 | A pasta storage/ tem de ter permissões de escrita |
| Também recomendadas | gd, curl, fileinfo | Processamento de imagem, início de sessão social e S3, deteção do tipo de ficheiro enviado |
| Composer | Não é preciso | Sem passo de compilação e sem serviço externo para começar |
Confortável num VPS; um servidor dedicado compensa quando a transcodificação corre sem parar.
FAQ
As perguntas que vale a pena responder antes de gerir uma plataforma de vídeo sua.
PHP 8.2 ou mais recente com as extensões pdo_mysql, mbstring, openssl, json, ctype, além de MySQL 5.7+ ou MariaDB 10.4+. O Apache precisa de mod_rewrite com AllowOverride All; o Nginx precisa de uma configuração PHP-FPM. O instalador verifica todos os requisitos, e se a pasta storage/ tem permissões de escrita, logo no primeiro ecrã - por isso vê qualquer problema antes de se comprometer.
Não. O VideoHub corre em PHP normal, sem passo do Composer e sem se registar em nada antes do primeiro envio. É deliberado: o pacote que transfere é o software que executa, e um alojamento partilhado sem acesso a shell também o consegue instalar.
Fortemente recomendado, mais do que obrigatório. Com o FFmpeg tem a escada de qualidades, o empacotamento HLS, as miniaturas e os sprites. Sem ele o VideoHub continua a funcionar, mas cada envio é servido apenas no formato original: sem streaming adaptativo, e o que a pessoa enviou é o que cada espectador transfere.
Em disco local ou em qualquer armazenamento de objetos compatível com S3, definido na administração. O disco local é a forma mais simples de começar; o armazenamento de objetos faz sentido quando a biblioteca ultrapassa o servidor ou quer servir os ficheiros mais perto do seu público.
Existe um modo só HLS que serve streams segmentados em vez de um único ficheiro transferível, e as transferências podem ser desativadas por vídeo. Isso aumenta muito o esforço necessário, bem para lá do clique direito e guardar. Mas não é DRM: nenhum leitor no navegador consegue tornar impossível capturar um stream, por isso encare-o como dissuasão e não como garantia.
Sim. Junto ao catálogo inglês vem uma tradução árabe completa, com verdadeiro suporte da direita para a esquerda em toda a interface e não uma folha de estilos espelhada acrescentada no fim. Há também modo claro e escuro, e um tema que personaliza sem mexer nos templates.
Carregue ficheiros VTT ou SRT por vídeo, ou deixe o Whisper gerar automaticamente uma primeira versão. As legendas geradas são um ponto de partida e não uma transcrição final: vale a pena revê-las antes de contar com elas para acessibilidade.
Sim. Uma API REST em JSON com tokens de programador por utilizador cobre os mesmos dados que a interface web usa, por isso pode automatizar envios, ler metadados, gerir utilizadores ou construir um front end seu por cima. Cada vídeo tem ainda um leitor incorporável noutros sites.
Através de um instalador web. Verifica os requisitos, recebe as credenciais da base de dados, importa o esquema e cria a primeira conta de administrador. Sem linha de comandos, sem processo de compilação e sem compilar recursos.
Obter o VideoHub
Uma instalação, em hardware que controla, com a base de dados e o disco nas suas mãos.
Falta-lhe onde o correr? Os nossos VPS e servidores dedicados já cumprem todos os requisitos acima.