Deutsch

Video und Untertitel · Direct Media Downloader

Wie ein Browser mit Fetch und Blob eine Datei über einen direkten Link herunterlädt

· Wie es funktioniert

Downloads Browser-APIs kors

Eine Remote-Mediendatei, die in einen Browser-Blob gestreamt und lokal heruntergeladen wird
Originale ToolAcre-Vektorillustration

Durchläuft die Pipeline, die ein Browser-Tool verwendet, um einen direkten Link in eine gespeicherte Datei umzuwandeln: Bytes abrufen, als Blob speichern und an das Download-Attribut übergeben. Erklärt, warum zu keinem Zeitpunkt ein Server benötigt wird.

Der Link öffnet einen Player, anstatt eine Datei zu speichern – wenn man auf einen direkten MP4- oder MP3-Link klickt, wird diese normalerweise inline abgespielt, was das Problem ist, das ein Downloader löst

Wenn Sie auf einen direkten MP3-Link klicken, wird möglicherweise ein Player geöffnet, da der Browser weiß, wie dieser MIME-Typ abgespielt wird. Das Speichern derselben Bytes ist eine separate Aktion. Das Schlüsselwort ist direkt: ein Link zu einer tatsächlichen Dateiantwort, nicht zu einer Webseite mit einem Player oder einem Manifest, das Mediensegmente auflistet. ToolAcre macht diese Unterscheidung, bevor es einen Download anbietet, und gibt nicht vor, eine Seiten-URL eine Datei-URL zu sein.

Schritt eins: fetch() fragt den Host nach den Bytes – wie eine GET-Anfrage an den angekündigten Host aussieht und was zurückkommt

Nachdem Sie „Link prüfen“ ausgewählt haben, sendet der Browser möglicherweise eine HEAD-Anfrage an die von Ihnen angegebene URL, um Status, Typ und Länge zu überprüfen. Zum Abrufen der Datei wird eine GET-Anfrage an diesen Host verwendet, kein ToolAcre-Proxy. Bei der Anfrage werden Anmeldeinformationen bewusst weggelassen, sodass ein Host, der Ihre Anmeldung benötigt, diese möglicherweise ablehnen kann. Der Remote-Server muss auch ursprungsübergreifende Skript-Lesevorgänge zulassen; Wenn CORS den Zugriff blockiert, erklärt das Tool die Ablehnung, anstatt sie über ein verstecktes Relais zu umgehen. Eine Weiterleitung kann das Ziel ändern, überprüfen Sie daher den angekündigten Host.

Schritt zwei: Der Antworttext wird zu einem Blob – wie die Bytes im Speicher gesammelt werden und warum der Blob einen MIME-Typ trägt

Der Antworttext wird als Strom von Byteblöcken gelesen. Progress kann Content-Length verwenden, wenn der Host es verfügbar macht; Ohne eine bekannte Länge kann das Tool die empfangenen Bytes anzeigen, jedoch keinen zuverlässigen Prozentsatz. Beim Sammeln von Chunks wird eine Speicherobergrenze erzwungen und dann ein Blob mit dem zurückgegebenen Inhaltstyp zusammengestellt. Dies ist sicherer als der Aufruf von response.blob() für einen unbegrenzten Stream, es handelt sich jedoch nicht um ein speicherloses Streaming auf die Festplatte: Der fertige Blob belegt immer noch Speicherplatz in Ihrer Browsersitzung.

Schritt drei: URL.createObjectURL und das Download-Attribut – wie ein temporärer Blob: URL plus Anker den Speicherdialog auslöst

Bei einem Blob handelt es sich um Daten im Speicher, nicht um eine Internetadresse. Der Browser kann eine temporäre Blob:-Objekt-URL erstellen und diese mit einem Download-Dateinamen an einen Anker anhängen; Wenn Sie auf diesen Anker klicken, wird der Browser aufgefordert, die Bytes zu speichern. Der Dateiname kann aus einem Content-Disposition-Header oder dem URL-Pfad und nicht aus dem Seitentitel stammen. Da es sich bei dem Link nun um eine Blob-URL auf derselben Seite handelt, kann der Browser das Ergebnis speichern, ohne es auf ToolAcre zu hosten. Es ist dennoch ratsam, die Erweiterung und den MIME-Typ zu überprüfen, bevor Sie eine Datei aus einer unbekannten Quelle öffnen.

Bearbeitetes Beispiel: Speichern einer Podcast-Episode über ihren Anhangslink – Verfolgen einer MP3-Datei von der eingefügten URL in eine Datei auf der Festplatte

Stellen Sie sich einen Podcast-Herausgeber vor, der eine autorisierte Anlage-URL mit der Endung „episode.mp3“ offenlegt. Fügen Sie genau diese Adresse ein, überprüfen Sie den angekündigten Host und verwenden Sie den Link „Prüfen“. Wenn HEAD zulässig ist, werden möglicherweise Audio/MPEG und eine erwartete Byteanzahl angezeigt. Fetch fragt dann den Herausgeber nach den MP3-Bytes, streamt sie in einen Blob und speichert die Episode.mp3. Wenn der Host CORS-Header weglässt, kann der Browser den Link in seinem eigenen Tab abspielen, während diese Seite ihn nicht per Skript abrufen kann; „Link speichern unter“ könnte dann der richtige Weg sein. Das Recht des Benutzers, die Datei zu speichern, ist unabhängig davon, ob sein Server den Abruf der Datei technisch zulässt.

Aufräumen: Widerrufen der Objekt-URL und Freigeben von Speicher – warum ein gut entwickelter Downloader den Blob nach Abschluss des Speichervorgangs freigibt

Temporäre Objekt-URLs behalten Verweise auf ihre zugrunde liegenden Blobs. Ein Downloader, der jede URL am Leben lässt, kann große Dateien in einem langlebigen Tab behalten. Das gemeinsame Download-Dienstprogramm von ToolAcre erstellt eine lokale URL für die Speicheraktion und widerruft sie, wenn sie abgeschlossen ist. Beim Abbruch wird der Antwortleser freigegeben und Teilblöcke werden verworfen. Bei sehr großen Dateien ist ein gewöhnlicher Browser-Download vom Host besser geeignet, als die gesamte Antwort im Seitenspeicher zu sammeln.

Was hiervon nicht abgedeckt ist: Seiten-URLs, Streaming-Manifeste, DRM und Links, für die eine Anmeldung erforderlich ist

Dieses Tool findet keine Medien, die hinter einer Videoseite versteckt sind, analysiert keine HLS/DASH-Manifeste .m3u8 oder .mpd, umgeht DRM, fälscht keine Header und greift nicht auf einen sitzungsgeschützten Stream zu. Es lädt keine privaten Inhalte für Sie herunter und entscheidet nicht, ob eine Lizenz die Erlaubnis zum Kopieren einer Datei gewährt. Ein 403-Fehler, eine Weiterleitung zu einer Anmeldeseite oder ein CORS-Fehler sind eine Grenze, die es zu verstehen gilt, und kein Hinweis darauf, nach einem undokumentierten Proxy zu suchen.

Fazit: Drei Browser-APIs, kein Server – wie der Direct Media Downloader diese Pipeline auf den von Ihnen eingefügten Link anwendet

Die Pipeline wird vom bereitgestellten Host abgerufen → Blöcke empfangen → einen Blob erstellen → einen lokalen Download auslösen. Es ist kein ToolAcre-Relay beteiligt, aber eine echte Anfrage an den Drittanbieter-Host ist unbedingt erforderlich; Seine Protokolle können die Verbindung sehen. Direct Media Downloader kündigt diesen Kontakt an, bevor er ihn herstellt, und teilt Ihnen mit, wenn die Sicherheitsregeln des Browsers ein ursprungsübergreifendes Lesen verweigern.