Contao 5: Video herunterladen verhindern

Anleitung für Contao 5.3

Rechtsklick-Schutz für Videos in Contao 5 mit Twig-Template-Override

Videos lassen sich in Contao über das Inhaltselement „Video/Audio“ oder über externe Anbieter wie YouTube und Vimeo einbinden. Standardmäßig besteht jedoch die Möglichkeit, per Rechtsklick das Kontextmenü des Browsers aufzurufen und Inhalte herunterzuladen. Um dies zu unterbinden, kann ein Template-Override in Twig eingesetzt werden.

Warum ein Override notwendig ist

In Contao 5 nutzen die Inhaltselemente Twig-Templates mit einer festen Namenskonvention. Das Video- und Audio-Element basiert auf content_element/player.html.twig. Anpassungen müssen deshalb in einem eigenen Template-Override erfolgen, nicht über die alten ce_*.html5-Dateien.

Die Agentur Zentral GmbH realisiert individuelle Twig-Anpassungen sowie maßgeschneiderte Contao-Programmierungen, um Webseiten funktional zu erweitern und optimal an Kundenbedürfnisse anzupassen.

Template in Contao anlegen

Im Projektverzeichnis wird ein neuer Ordner angelegt: /templates/content_element/player.html.twig

Erweiterung des Core-Templates

Das neue Template erweitert das Core-Template und ergänzt Attribute sowie ein kurzes Script, um das Kontextmenü zu blockieren:

{% extends '@Contao/content_element/player.html.twig' %}

{% block content %}
  {{ parent() }}
  <script>
    (function(){
      var wrapper = document.currentScript.closest('.content-player') || document.currentScript.parentElement;
      if(!wrapper) return;
      var v = wrapper.querySelector('video, audio, iframe');

      if (v) {
        try { v.setAttribute('controlsList', 'nodownload noplaybackrate'); } catch(e){}
        v.setAttribute('disablepictureinpicture','');
        v.addEventListener('contextmenu', function(e){ e.preventDefault(); });
        v.addEventListener('dragstart',  function(e){ e.preventDefault(); });
      }
    })();
  </script>
{% endblock %}

Wirkung der Anpassung

  • controlsList="nodownload noplaybackrate" blendet Download- und Geschwindigkeitsoptionen aus (Browser-abhängig).
  • disablepictureinpicture deaktiviert die PiP-Funktion in Chromium-Browsern.
  • Das JavaScript blockiert das Kontextmenü und verhindert Drag&Drop-Aktionen.

Typische Stolperfallen

  • Der Template-Name muss exakt player.html.twig heißen.
  • Nach Änderungen muss der Cache geleert werden.

Fazit

Mit einem gezielten Template-Override in Contao 5 lassen sich Rechtsklick- und Download-Funktionen bei Video- und Audioelementen zuverlässig unterbinden. Der Schutz ist nicht absolut – im Browser-Cache liegen die Daten weiterhin vor –, aber er erhöht die Hürde erheblich und verhindert das einfache Abspeichern über Standardfunktionen.

Zurück zur Blog-Übersicht