Vidéo et sous-titres · Téléchargeur multimédia direct
D'où vient le nom d'un fichier téléchargé : chemin URL vs Content-Disposition
· Comment ça marche
http téléchargements performances de média
Explique comment un navigateur décide comment appeler un fichier enregistré : le dernier segment de l'URL, l'en-tête Content-Disposition du serveur et l'attribut de téléchargement qu'un outil peut définir. Montre pourquoi une URL propre donne parfois un mauvais nom de fichier.
Le fichier est enregistré sous 'file.php' et ne s'ouvrira pas — le problème de nom qu'un lien direct peut cacher
Une URL se terminant par `file.php?id=42` peut fournir des octets vidéo tout en laissant le navigateur avec un nom de chemin inutile. À l’inverse, une adresse se terminant par `.mp4` peut renvoyer du HTML. Un nom de fichier est une étiquette choisie parmi les métadonnées de requête et de réponse, et non une preuve de la charge utile qu'il contient.
Direct Media Downloader calcule un nom suggéré uniquement après l'arrivée d'une réponse GET réussie. Il vérifie d'abord Content-Disposition, puis le dernier segment de chemin non vide, puis une petite solution de secours basée sur MIME. Cet ordre est plus étroit et plus prévisible que de prétendre que le navigateur effectue une négociation universelle. Cette séparation empêche le matériel d'autorisation temporaire de s'infiltrer dans un nom de disque et évite les caractères de nom de fichier illégaux fournis par une chaîne de requête entière.
Le dernier segment de chemin : la supposition par défaut – comment le navigateur lit le nom de fichier à partir de l'URL et où les chaînes de requête le confondent
Le chemin candidat est le segment final après séparation par barre oblique, décodé à partir du codage en pourcentage. Les paramètres de requête ne sont pas inclus car l'API URL les stocke séparément. Ainsi, `/episodes/launch.mp3?token=...` donne `launch.mp3`, tandis qu'une barre oblique finale n'a pas de segment final et nécessite une autre source.
Cette règle de chemin ne décide pas si une extension est honnête. Un itinéraire de livraison signé peut masquer le titre humain dans un paramètre, et cette implémentation n'exploitera pas de clés de requête arbitraires pour les noms. Cette retenue évite de confondre un composant de signature, une valeur de campagne ou un identifiant d'enregistrement avec un nom de fichier. Lorsque les deux formes existent, la forme internationalisée peut conserver plus clairement les noms non-ASCII, tandis que la solution de secours gère des implémentations de serveur plus simples.
Content-Disposition : la suggestion du serveur – comment un en-tête peut remplacer le nom de l'URL et pourquoi certains CDN le définissent et d'autres non
Content-Disposition peut contenir une simple suggestion `filename=` ou un formulaire codé UTF-8 `filename*=`. ToolAcre donne la priorité à la forme d'étoile codée et tente de décoder le pourcentage ; si le décodage échoue, il passe à la forme simple, puis à la logique du chemin plutôt que de faire planter le transfert terminé.
L'en-tête est simplement la suggestion de l'hôte en service. Le code de l'application n'inspecte pas les métadonnées multimédias pour les vérifier, et un serveur trompeur peut fournir un nom trompeur. Examinez les caractères et extensions inhabituels avant d'ouvrir un fichier, en particulier lorsque l'hôte source n'est pas familier. Les URL d'objet sont des références temporaires de navigateur, et non des adresses distantes, et leur utilisation ne crée pas d'autre téléchargement ou requête HTTP pour le corps du média.
L'attribut de téléchargement : ce qu'un outil peut définir lui-même – comment un téléchargeur côté navigateur peut choisir un nom pour le Blob qu'il enregistre
Une fois le Blob prêt, l'interface utilisateur transmet le Blob et le nom de fichier sélectionné à l'utilitaire de téléchargement partagé. Cet utilitaire déclenche le comportement de sauvegarde du navigateur avec une URL d'objet et un nom de téléchargement. L’entête du serveur n’est plus consulté lors de ce dernier clic car sa suggestion a déjà été résolue.
Ce mécanisme ne renomme pas un fichier disque existant ni ne choisit un dossier. Les paramètres du navigateur déterminent toujours si une boîte de dialogue apparaît et comment les noms en double sont traités. ToolAcre fournit un candidat ; le navigateur et le visiteur restent responsables du résultat final du système de fichiers. Les utilisateurs doivent éviter de « corriger » une inadéquation en renommant uniquement ; inspectez le conteneur et les codecs réels avant de décider si les métadonnées ou le contenu doivent être corrigés.
Extensions et types MIME : les garder cohérents – pourquoi un fichier appelé .mp4 qui est en réalité WebM confond les lecteurs
Un nom `.mp4` associé à `video/webm` peut confondre les logiciels qui acheminent par extension, même si un lecteur compétent peut inspecter les octets. ToolAcre préserve un chemin ou un nom d'en-tête plutôt que de réécrire son extension pour qu'elle corresponde à Content-Type. Il préserve également la valeur MIME du serveur sur le Blob.
S'il n'existe aucun en-tête ni segment de chemin, la solution de secours reconnaît un Content-Type contenant WebM ou MP4 et renvoie `download.webm` ou `download.mp4` ; tout autre type devient `download.bin`. Les valeurs audio MIME ne reçoivent actuellement pas d’extension spéciale via cette branche de dernier recours. Si une signature expire entre HEAD et GET, aucun nom de fichier ne gagne car la requête de corps échoue ; la dénomination ne commence qu’après une réponse lisible réussie.
Exemple concret : un lien CDN signé et trois noms de fichiers possibles – en indiquant quel nom gagne et pourquoi
Prenez une adresse CDN signée dont le chemin se termine par `asset`, dont la réponse indique `filename*=UTF-8''approved%20cut.mp4` et dont le type est `video/mp4`. L'en-tête codé l'emporte, produisant `approved cut.mp4`. Supprimez l'en-tête et le chemin donne `asset` ; supprimez également ce segment et la solution de secours MIME donne `download.mp4`.
Un simple `filename="review.webm"` gagnerait lorsqu'aucune valeur d'étoile utilisable n'existe, même si le chemin indique `clip.mp4`. L'exemple montre la priorité, pas la validation. L'inspection du type de contenu et l'ouverture du résultat enregistré dans un logiciel fiable restent des vérifications distinctes une fois le nom choisi. Un catalogue peut en outre enregistrer une somme de contrôle après l'enregistrement, mais le hachage est en dehors de ce téléchargeur et ne doit pas être impliqué par le nombre d'octets affichés.
Ce que cela ne couvre pas : renommer après le téléchargement, nommer par lots ou lire les métadonnées à l'intérieur du fichier pour le nommer
Le téléchargeur ne numérote pas les fichiers par lots, ne lit pas les balises de titre d'un conteneur multimédia, ne nettoie pas un catalogue d'archives ou ne répare pas une extension trompeuse après l'enregistrement. Il ne peut pas non plus promettre que chaque variation grammaticale Content-Disposition correspondra à ses expressions régulières ciblées.
Renommer ultérieurement est une tâche du système d'exploitation. Si le nom des archives est important, enregistrez l'URL source, le type de réponse, le nombre d'octets et le nom descriptif approuvé dans votre propre catalogue. Ne traitez pas un en-tête pratique comme une provenance ou une extension de nom de fichier comme une identité cryptographique. Un pourcentage de codage mal formé dans un chemin est un autre problème de qualité de l'hôte ; la solution de secours actuelle ne prétend pas nettoyer chaque nom fourni par le serveur dans les règles de chaque système d'exploitation.
À retenir : le nom est une négociation entre l'URL, l'en-tête et l'outil – que vérifier dans le nom et l'extension du fichier enregistré après avoir utilisé Direct Media Downloader
La priorité implémentée est concrète : nom de fichier étoile UTF-8 valide, nom de fichier brut, segment de chemin final décodé, puis `download.webm`, `download.mp4` ou `download.bin`. Les chaînes de requête peuvent autoriser la livraison sans faire partie du nom enregistré. Cela explique de nombreuses surprises en matière de « téléchargement » et d’« index ».
Après avoir utilisé Direct Media Downloader, comparez le nom, l'extension, le type de contenu, la source attendue et la jouabilité réelle. Ces observations répondent à différentes questions. Un nom de fichier propre améliore la gestion, mais seuls les octets de l’hôte et l’application réceptrice déterminent ce que contient réellement le fichier. La sélection du nom de fichier améliore la convivialité, tandis que la provenance provient toujours de la source autorisée, de la demande enregistrée et de l'inspection indépendante des octets complétés.