Français

Vidéo et sous-titres · Téléchargeur multimédia direct

Comment un navigateur télécharge un fichier à partir d'un lien direct avec fetch et Blob

· Comment ça marche

téléchargements API du navigateur cors

Un fichier multimédia distant diffusé dans un navigateur Blob et téléchargement local
Illustration vectorielle originale de ToolAcre

Parcourt le pipeline qu'un outil de navigateur utilise pour transformer un lien direct en fichier enregistré : récupère les octets, les conserve en tant que Blob et les transmet à l'attribut de téléchargement. Explique pourquoi aucun serveur n'est nécessaire à aucune étape.

Le lien ouvre un lecteur au lieu d'enregistrer un fichier - cliquer sur un lien direct MP4 ou MP3 le lit généralement en ligne, ce qui est le problème qu'un téléchargeur résout

Cliquer sur un lien MP3 direct peut ouvrir un lecteur car le navigateur sait comment lire ce type MIME. Sauvegarder les mêmes octets est une action distincte. Le mot clé est direct : un lien vers une réponse de fichier réelle, et non une page Web contenant un lecteur ou un manifeste répertoriant les segments multimédias. ToolAcre fait cette distinction avant de proposer un téléchargement et ne prétend pas qu'une URL de page est une URL de fichier.

Première étape : fetch() demande les octets à l'hôte – à quoi ressemble une requête GET adressée à l'hôte annoncé et ce qui revient

Après avoir choisi Vérifier le lien, le navigateur peut émettre une requête HEAD à l'URL que vous avez fournie pour inspecter l'état, le type et la longueur. La récupération du fichier utilise une requête GET adressée à cet hôte, et non un proxy ToolAcre. La demande omet délibérément les informations d'identification, de sorte qu'un hôte nécessitant votre connexion peut la refuser. Le serveur distant doit également autoriser les lectures de scripts d'origine croisée ; si CORS bloque l'accès, l'outil explique le refus plutôt que de le contourner via un relais caché. Une redirection peut changer la destination, vérifiez donc l'hôte annoncé.

Deuxième étape : le corps de la réponse devient un Blob – comment les octets sont collectés en mémoire et pourquoi le Blob porte un type MIME

Le corps de la réponse est lu sous forme de flux de blocs d'octets. Progress peut utiliser Content-Length lorsque l'hôte l'expose ; sans longueur connue, l'outil peut afficher les octets reçus mais pas un pourcentage fiable. Il applique un plafond de mémoire lors de la collecte de morceaux, puis assemble un Blob avec le type de contenu renvoyé. C'est plus sûr que d'appeler response.blob() sur un flux illimité, mais il ne s'agit pas d'un streaming sans mémoire sur le disque : le Blob terminé occupe toujours de l'espace dans votre session de navigateur.

Troisième étape : URL.createObjectURL et l'attribut de téléchargement – comment un blob temporaire : une URL plus une ancre déclenche la boîte de dialogue d'enregistrement

Un Blob est une donnée en mémoire, pas une adresse Internet. Le navigateur peut créer une URL d'objet blob: temporaire et l'attacher à une ancre avec un nom de fichier de téléchargement ; cliquer sur cette ancre demande au navigateur de sauvegarder les octets. Le nom de fichier peut provenir d'un en-tête Content-Disposition ou du chemin de l'URL plutôt que du titre de la page. Étant donné que le lien est désormais une URL Blob de même page, le navigateur peut enregistrer le résultat sans l'héberger sur ToolAcre. Il est toujours sage d'inspecter l'extension et le type MIME avant d'ouvrir un fichier provenant d'une source inconnue.

Exemple concret : enregistrement d'un épisode de podcast à partir de son lien d'enceinte – en suivant un MP3 depuis une URL collée vers un fichier sur le disque

Imaginez un éditeur de podcast exposant une URL de pièce jointe autorisée se terminant par épisode.mp3. Collez cette adresse exacte, inspectez l'hôte annoncé et utilisez Vérifier le lien. Si HEAD est autorisé, il peut afficher de l'audio/mpeg et un nombre d'octets attendu ; Fetch demande ensuite à l'éditeur les octets MP3, les diffuse dans un Blob et enregistre l'épisode.mp3. Si l'hôte omet les en-têtes CORS, le navigateur peut lire le lien dans son propre onglet alors que cette page ne peut pas le récupérer par script ; « Enregistrer le lien sous » peut alors être la bonne solution. Le droit de l’utilisateur de sauvegarder le fichier est distinct de la question de savoir si son serveur permet techniquement de le récupérer.

Nettoyage : révocation de l'URL de l'objet et libération de mémoire – pourquoi un téléchargeur bien conçu libère le Blob une fois la sauvegarde terminée

Les URL d’objets temporaires conservent des références à leurs Blobs de support. Un téléchargeur qui laisse chaque URL active peut conserver des fichiers volumineux dans un onglet de longue durée. L'utilitaire de téléchargement partagé de ToolAcre crée une URL locale pour l'action de sauvegarde et la révoque une fois terminée ; l'annulation libère le lecteur de réponse et supprime les fragments partiels. Pour les fichiers très volumineux, un téléchargement ordinaire par le navigateur à partir de l'hôte est plus adapté que la collecte de l'intégralité de la réponse dans la mémoire de la page.

Ce que cela ne couvre pas : URL de pages, manifestes de streaming, DRM et liens nécessitant une connexion

Cet outil ne trouvera pas les médias cachés derrière une page vidéo, n'analysera pas les manifestes HLS/DASH .m3u8 ou .mpd, ne contournera pas les DRM, n'usurpera pas les en-têtes ou n'accédera pas à un flux protégé par session. Il ne télécharge pas de contenu privé pour vous et ne décide pas si une licence autorise la copie d'un fichier. Un 403, une redirection vers une page de connexion ou une erreur CORS est une limite à comprendre, pas un indice pour rechercher un proxy non documenté.

À retenir : trois API de navigateur, pas de serveur – comment Direct Media Downloader applique ce pipeline au lien que vous collez

Le pipeline est récupéré depuis l'hôte fourni → recevoir des morceaux → créer un Blob → déclencher un téléchargement local. Aucun relais ToolAcre n'est impliqué, mais une véritable demande à l'hôte tiers est absolument impliquée ; ses journaux peuvent voir la connexion. Direct Media Downloader annonce ce contact avant de l'établir et vous indique lorsque les règles de sécurité du navigateur refusent une lecture d'origine croisée.