Bloquear download

Boa tarde! Gostaria de saber se seria possível bloquear os áudios de uma coleção? Gostariamos de permitir somente a reprodução.

Olá @Joao_Luiz_Solano_Cardia, tudo bem?

Você pode dificultar um pouco o download desabilitando botão de download na galeria de mídias (algo que temas como o Tainacan Interface o Blocksy com o plugin de integração oferecem através do menu personalizar). Porém isso não impedirá os usuários um pouco mais experientes de clicarem com o botão direito no player de áudio e fazer o download mesmo assim.

Isso é uma característica padrão da web… se algo está público, você vai poder baixá-la. De certa forma, dar o play para reproduzir já é baixar para o seu computador, ele só está indo para uma pasta temporária que depois é apagada. Por isso não implementamos muita coisa além disso, mas via código sei que tem algumas “gambiarras” que podem ser feitas, tem gente que usa Javascript para esconder este menu de download, o que não resolve exatamente se você souber inspecionar o código pelo próprio navegador.

Outro caminho é subir o áudio para alguma plataforma terceira que faça o streaming da música (como soundcloud, mixcloud). Neste caso na plataforma pode ser que seja possível o bloqueio do download e você vai colocar como documento o link para o conteúdo incorporado da plataforma ao invés do áudio direto no seu site.

Boa tarde @ mateus.m.luna!

Humm, você poderia me explicar um pouco melhor essa solução do Blocksy, acho que no nosso caso já seria sufuciente.

Caso tenha instalados:

  • Plugin Tainacan
  • Tema Blocksy (ou tema filho do Blocksy)
  • Plugin de Suporte Tainacan para o Blocksy

Vá no menu “Personalizar” → “Item de - Nome da sua coleção” → Documentos e anexos" → “Esconder botão de baixar documento”.

Não esqueça de apertar “Publicar” lá em cima para sair do menu Personalizar.

Nós estamos usando o tema do Taicanan, teriamos que parar de usá-lo? Isso teria algum impacto na nossa página?

De maneira alguma, só dei este caminho porque você tinha comentado aqui que queria a solução para o Blocksy:

Para o tema Tainacan Interface o caminho será similar:
“Menu Personalizar” → “Página de um item Tainacan” → “Documentos e anexos do item” → Desça até chegar no seguinte checkbox: “Esconder o botão de baixar documento”

Eu fui lá e fiz, ele bloqueia a setinha no meio do tocador, mas ele não bloqueia a opção de baxar nos três botôes. Vc saberia a opção via Javascript para esconder este menu de download?

Hello @Joao_Luiz_Solano_Cardia

I used thid code to hide the download attribute of the browser. I think it can help you.

function hide_download() {
    echo '<script type="text/javascript">
        document.addEventListener("DOMContentLoaded", function() {
            var audios = document.getElementsByTagName("audio");
            for (var i = 0; i < audios.length; i++) {
                audios[i].setAttribute("controlsList", "nodownload");
            }
        });
    </script>';
}
add_action('wp_footer', 'hide_download');

@ erickml, Thank you!
Where do I apply this code?

In your file functions.php

Ive been revisiting this, and I believe there is a more official way for doing it. Internally our media gallery component calls an instance of the Tainacan embed class, which actually use a WordPress filter to create the HTML <audio> tag. This means you could do something even more specific like:

add_filter('wp_embed_handler_audio', function($audio, $attr, $url, $rawattr) {
	if ( ! empty( $attr['width'] ) ) {
	     $dimensions = sprintf( 'width="%d" ', (int) $attr['width'] );
    }	
    $audio = sprintf('<audio controls="" controlslist="nodownload" src="%s" %s></audio>', esc_url( $url ), $dimensions);	
    return $audio;
}, 9, 4);

You might wanna play with the ‘9’ value there, which is the priority of the filter, maybe 11 instead of 9 since our own code uses 10.

Olá @ mateus.m.luna! Você pode me detalhar mais um pouco onde é realizada essa aplicação, pois como sou leigo preciso passar essas informações para a nossa equipe de TI.

Você pode colocá-la no código de um tema, tema filho, plugin… na prática qualquer código que vá ser executado no seu site. Tem alguns plugins que ajudam na inserção de pequenos trechos de código como este:

Só recomendo usar com cuidado, lembre-se de que qualquer código inserido assim pode ter efeitos colaterais e quebrar coisas no seu site. É importante entender o que o código faz.

A sugestão feita acima de colocar no functions.php do código do tema faz sentido eu só complementaria que é melhor fazer isso em um tema filho do que no tema original, pois após atualizações o tema original sobrescreveria sua alteração.

@mateus.m.luna , coseguimos aplicar a primeira opção proposta pelo @erickml , funcionou no documento. Porém, nos anexos o botão download permaneceu.

Possivelmente porque são carregados em momentos diferentes…

Pode tentar o filtro que passei? Se ele não funcionar de imediato, experimente alterar o valor da prioridade.

Ok, obrigado! Vou tentar

Olá @mateus.m.luna, instalamos o filtro e funcionou. Agora o botão download não esta mais aparecendo no documento e anexos. Muito obrigado pela ajuda!