ZP Audio Player Schutz vor Download MP3-Files

  • Servus an alle Technik-Affinen,

    ich habe einen Audio-Player für Zeta Producer programmiert. Wer es schafft, den MP3-File zu "kopieren" oder zu "downloaden", bitte laut "hier" schreien. Dürfte aber unmöglich sein.

    Hier ist der Audio-Player: https://www.deerbrands.com/support.php

    Dann würde ich das eigene Widget nämlich fertig stellen.

    VG Mirco

  • clapier Nichts ist unmöglich ;)

    Gute Idee, bringt aber leider nichts. Sobald der Browser etwas abspielt / anzeigt lässt sich das immer irgendwie abfangen. Hier ist deine Datei: https://dl.phil-dev.net/download.mp3

    Das hat keine Minute gedauert, ich habe einfach beim Download den "Referer"-Header manuell gesetzt:

    curl "https://www.deerbrands.com/stream.php?file=01-bis-ans-ziel-01.mp3" --referer https://www.deerbrands.com -o download.mp3

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • clapier Nichts ist unmöglich ;)

    Gute Idee, bringt aber leider nichts. Sobald der Browser etwas abspielt / anzeigt lässt sich das immer irgendwie abfangen. Hier ist deine Datei: https://dl.phil-dev.net/download.mp3

    Das hat keine Minute gedauert, ich habe einfach beim Download den "Referer"-Header manuell gesetzt:

    curl "https://www.deerbrands.com/stream.php?file=01-bis-ans-ziel-01.mp3" --referer https://www.deerbrands.com -o download.mp3

    Versuch es nochmal :)

  • Glaub mir, das ist ein Kampf gegen Windmühlen. Und selbst wenn es irgendwie gehen würde, den direkten Download zu verhindern, kann man die lokale Audioausgabe am PC natürlich einfach abgreifen und aufnehmen.

    Jetzt prüfst du ja einfach noch, ob es einen User-Agent Header gibt. Als Server kannst du nicht sicher feststellen, ob eine Anfrage wirklich von deiner Seite kommt oder eine externe Anfrage ist.

    curl "https://www.deerbrands.com/stream.php?file=01-bis-ans-ziel-01.mp3" --referer https://www.deerbrands.com/support.html -o download2.mp3 --user-agent "Internet Explorer"

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • Okay die Lücken schließe ich noch. Besten Dank für die Hinweise.
    Klar kann man aufzeichnen, das spielt aber keine Rolle. Es geht darum, dass normale Nutzer die Musikdateien nicht runterladen können.

    Es geht darum, dass man als Website Betreiber technische Umsetzungen macht, dass Musik nicht runtergeladen werden kann.

    VG Mirco

  • Es geht darum, dass normale Nutzer die Musikdateien nicht runterladen können.

    Ich glaube das ist jetzt schon gegeben.

    Okay die Lücken schließe ich noch. Besten Dank für die Hinweise.

    Da bin ich gespannt, gib dann gerne Bescheid wenn du eine Lösung gefunden hast ;)

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • Meine finale Lösung:

    Die stream.php schützt Audiodateien effektiv vor unautorisierten Downloads. Zugriffe sind nur von der eigenen Domain deerbrands-music-media.de mit gültigem Referrer erlaubt. Direkte Aufrufe oder externe Einbettungen werden blockiert. Bekannte Download-Tools wie curl, wget, PowerShell, Postman, python oder httpclient werden über den User-Agent zuverlässig erkannt und abgelehnt. Zusätzlich prüft das Skript wichtige Header wie Accept, Accept-Language, Accept-Encoding, Connection und sec-ch-ua, um echtes Browserverhalten sicherzustellen. Fehlen zwei oder mehr dieser Header, wird der Zugriff unterbunden. Nur Dateien mit den erlaubten Endungen .mp3, .m4a und .mp4 in festgelegten Verzeichnissen werden gestreamt. Pfadmanipulationen werden durch basename() verhindert. Das Streaming erfolgt per Byte-Range-Technik für sauberes HTML5-Audioplayback, ohne vollständige Downloads zu ermöglichen. Alle unzulässigen Zugriffe werden mit IP, Fehlergrund, URL und Dateiname protokolliert.

    Was noch folgen wird: Session-ID.

  • Das wird vermutlich kein Laie aushebeln können, aber technisch ist es natürlich trotzdem noch möglich ;)

    Das beste, was du machen könntest wäre die Inhalte zu verschlüsseln. So funktioniert das bei den Musikstreaming-Diensten oder auch beim Videostreaming üblicherweise.

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • Das wird vermutlich kein Laie aushebeln können, aber technisch ist es natürlich trotzdem noch möglich ;)

    Das beste, was du machen könntest wäre die Inhalte zu verschlüsseln. So funktioniert das bei den Musikstreaming-Diensten oder auch beim Videostreaming üblicherweise.

    Ja aber DRM ist extrem kompliziert, aufwendig und kostspielig und es soll noch als Audio-Widget in Zeta-Producer praktikabel sein.
    Aber ich habe zusätzlich Session ID's setzen lassen, die sich auch immer ändern. Daher wird die Abfrage selbst modular nicht mehr möglich sein und auch wenn man die Session ID stehlen könnte, wird es blockiert. Es sind aktuell alle realistischen Angriffspunkte abgestellt.
    Und zu Letzt kann man auch nicht rekorden. Es läuft im Backend ein Overlay alle 15 Sekunden "Dieser Content ist rechtlich geschützt..." Das habe ich heute umgesetzt. Aber danke für die Hilfe, denn ich hatte das mit den Fake-Referer und Header nicht auf dem Schirm. :)

    MethodeErfolg
    Direktlink aufrufen❌ Blockiert
    Fake-Referer + Fake-Header (curl, PowerShell)❌ Blockiert
    Tool-Signaturen (curl, wget, Python, Powershell etc.)❌ Blockiert
    Browser nachbauen via Header❌ Blockiert (wegen Header-Validierung + Session)
    Zugriff ohne Session❌ Blockiert
    Session klauen und in anderem Tool verwenden❌ Blockiert (nicht übertragbar)
  • Daher wird die Abfrage selbst modular nicht mehr möglich sein und auch wenn man die Session ID stehlen könnte, wird es blockiert.

    Hier ist deine MP3 ohne Copyright-Overlay: https://dl.phil-dev.net/ich-fuehl-mich-freier.mp3

    Einfach im Browser den Network-Tab öffnen, Rechtsklick auf die Anfrage zu stream.php machen und dann "Copy > Copy as cURL". Dann bekommt man den perfekten curl-Befehl fürs Terminal. Wie schon gesagt, du wirst nie mit einem PHP-Skript prüfen können, ob die Anfrage vom Browser oder dem Terminal kommt.

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • clapier

    Schliesse mich phil-web an - auf diese Weise bringt das alles nichts. Das wurde sicherlich wohl schon zig-tausend mal diskutiert - nicht hier natürlich ;) ... Fazit: (viel) Aufwand für keinen wirklichen Schutz. Oder eben - wie Phil schon gesagt hatte: ist es via Browser abruf/-spielbar, kann es auch gedownloadet werden.

    Gruss

    Norbert S.

    Zeta Producer (Premium), Win 11 Pro 26H2 [de-CH]
    Für mich DIE Lösung und bietet vorbildlichen Support!

  • clapier

    Schliesse mich phil-web an - auf diese Weise bringt das alles nichts. Das wurde sicherlich wohl schon zig-tausend mal diskutiert - nicht hier natürlich ;) ... Fazit: (viel) Aufwand für keinen wirklichen Schutz. Oder eben - wie Phil schon gesagt hatte: ist es via Browser abruf/-spielbar, kann es auch gedownloadet werden.

    Gruss

    Ja wer sich auskennt schafft es. Laien nicht. Und da ist schon viel gewonnen, die sich mit rechtsklick aufm Player oder die URL im Quellcode kopieren.
    Ich bin aber soweit damit zufrieden. Besser mit dem Stream. Die Titel im Store bekommen so und so eine 2. Audiospur drüber, fest in der mp3 wie ein Wasserzeichen.
    VG

  • clapier

    Ja, da hast Du natürlich schon recht mit den Laien. Insofern kann sowas dann - meiner Meinung nach - für diesen Zweck schon Sinn machen.

    Mit bestem Gruss

    Norbert S.

    Zeta Producer (Premium), Win 11 Pro 26H2 [de-CH]
    Für mich DIE Lösung und bietet vorbildlichen Support!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!