Prezados, gostaria de dificultar o download de vídeos html5 a partir da URL, que o usuário poderá inspecionar (examinar com funções de navegadores). Pesquisando na Net vir que, não, à uma maneira 100% de não permitir, o usuário avançado de não fazer download de videos. Estou utilizando a tag do html5 para exibir vídeos de um curso EAD:
O que consegui fazer até o momento foi desabilitar o oncontextmenu (false), para não permitir a opção de salvar o vídeo pelo navegador, porem se o usuário inspecionar (for um usuário esperto consegue ver os vídeos). Alguém tem uma dica de como posso esconder bem, a tag que permite visualizar os vídeos? Se teria esta possibilidade! Se tiver alguma forma de dar mas segurança aos conteúdos será bem vinda.
a resposta curta é não. um browser que vai tocar esse video não é diferente de um programa que pegue o src e imite ser um browser.
o que vc pode fazer? dificultar
por exemplo vc pode verificar o user agent e barar se for o wget…
agora perceba que vc esta fazendo download progressivo do arquivo. o caramada tem que fazer download de todo o video para ver o fim e isso pode ser custoso (isso se vc não usa algum plugin para o seu web server conseguir fazer seek por tempo/segundos). talvez seja interessante vc trocar por HTTP Streaming. com http streaming o player pegar uma playlist e vai ter que baixar cada chunk de video e tocar em sequencia. um usuario medio não consegue juntar todos estes pedaços em um arquivão, vai por mim.
pra http streaming vc precisa segmentar seus arquivos e gerar uma playlist,
tem um programa chamado mediafilesegmenter que pode te ajudar.
existem vantagens em http streaming para VOD. vc pode combinar com um servidor como o Wowza e escrever um plugin de segurança que vai verificar algumas coisas como o user agent, ip, cookie e talvez algum hash de segurança que vc pode gerar em um codigo javascript obscurecido pra deixar ainda mais dificil o acesso.
agora se vc fez isso para o browser e não para uma aplicação mobile (onde vc pode socar uma chave criptografica e fazer streaming do video encriptado) as suas opções são bem reduzidas.
Penso que a melhor forma seja você disponibilizar um login e senha para cada usuario seu autorizado a ver o video, mas se eles tiverem conhecimento poderão inspecionar o codigo e ver a url. A forma de blindar seria não fazer em html e sim atraves de algum plugin java, net, flash, mas essas soluções por motivos de segurança estão entrando ou entrarão aos poucos em desuso dentro dos navegadores.
Em HTML tem 2 noticias, uma boa e outra ruim, a boa e’ que tá tudo ali diante dos seus olhos e a ruim e’ que peca na proteção do codigo.
96% das pessoas fora do mundo de TI nao sabe usar o inspect.
se vc precisa garantir q ninguem vai baixar o video ( e olhe q a galera é criativa, tipo gravar screencast da tela com o video tocando, etc ) talvez seja melhor usar um terceiro como vimeo ou youtube, alguem que vc possa pagar e estabelecer em contrato q eles vão se esforçar para evitar que o cara baixe o video.
Obrigado, meu camarada, por me ajudar. Isso vai dar maior trabalho (irei tentar). Será que existe uma outra forma de validar a sessão na URL do SRC da tag vídeo, por exemplo, se o usuário inspecionar e copiar ou clicar na URL verificar a sessão no Manebean, se sessão não tiver ativa erro 404. Abraços!
Peczenyj, já vi que até vídeos de empresas como facebook é possível burlar e baixar vídeos.
As pessoas são criativas mesmos podendo gravar as aulas com screencast da tela. O camtasia é exemplo!
Acho que é impossível, não permitir que tenha uma pessoa não baixe, ainda mas se o curso for bom.
Não, estou usando serviço de terceiro, onde, os videos ficam em um servidor. Outra coisa que faço para identificar os vídeos é ao renderizar o vídeo adicionar o logo de direito autoral.
J-menezes o sistemas é focado em EAD, e já permite o usuário executar Login e senha para permitir assistir os vídeos. Desabilitei a opção de oncontextmenu, para não permitir o usuário executar dounload pela aplicação, mas se o usuário inspecionar e consegue baixar.
Eu estava trabalhando com a tag media do primeface, mas é muito ruim:
Entendo o que você está passando. Mas vou lhe dar uma sugestão e não sei se ela enquandra no perfil do seu negócio e dos seus clientes.
Em JavaFX você pode usar o WebView com a WebEngine, adaptado as reais necessidades do seu negocio.
Neste caso seus usuarios teriam que baixar mais um navegador, o seu e em JavaFX.
( Eu mesmo fiz um bem especifico aqui pra mim )
Dentro dele você não coloca o recurso em JavaScript de inspeção e tambem ao verificar o login somente acessa o conteudo se for pelo seu navegador.
Penso que a questão levantada por você e’ bastante pertinente e requer um pouco mais de atenção da nossa parte, pois uma hora ou outra agente vai precisar de um recurso desse, o que nos levara’ a um grande quebra cabeça.
Mas como já foi explicado pelo peczenyj, realmente.
Sempre existe uma forma fazer engenharia reversa, ninguem por enquanto está 100% seguro neste caso. Talvez quem sabe um dia com a segurança quântica.
Flash media server + video on demand via RTMP + SWF verification + hash segurança + restrição geográfica
À escalabilidade dependia do flash. O hash garantia que o usuario era do tipo X que podia acessar o video (o “estava logado”). SWF verification “garante” que aquele e so aquele player flash pode tocar o video.
Agora so um detalhe: utilizar uma aplicação j2ee para servir video é algo que eu não faria. Vídeo é arquivo estatico. Usa um
NginX pra servir video. Existem N formas de garantir que o cara so vai ver o video estando logado (cookies, hash segurança, etc).
Video geralmente é grande e isso vai ser um mega gargalo quando várias pessoas forem assistir ao mesmo tempo.
O Google adicionou um novo recurso desde que a última resposta foi postada aqui. Agora você pode adicionar o controlListatributo conforme mostrado aqui: