Beaucoup d’entre vous ont probablement déjà utilisé des sites de téléchargement et conversion de contenu vidéo (depuis YouTube, Facebook, ou autre), mais est-ce que vous vous êtes déjà demandés comment fonctionnent ces sites ? Comment peuvent-ils, en une fraction de seconde, vous proposer un téléchargement instantané d’une vidéo, avec conversion qui plus est (mp4, mp3, …) de n’importe quelle vidéo, alors que ces plateformes tentent justement d’empêcher ce genre de téléchargements abusifs en fortifiant la sécurité ?
Si nous devions répondre à quelqu’un qui possède déjà de solides bases en développement web et en programmation, la réponse ne tiendrait que sur quelques lignes, mais comme il s’agit de circonstances plutôt rares, la réponse n’est pas si courte et simple. Il convient donc de l’aborder en différentes étapes. Pour l’exemple, nous avons choisis YouTube. Que ce soit pour un convertisseur youtube mp4 (ou autre format vidéo) ou un convertisseur youtube mp3 (ou autre format audio), le principe reste le même.
Comment est diffusée une vidéo sur YouTube ?
Lorsque vous accédez à une vidéo YouTube, que ce soit directement sur la plateforme ou depuis un lecteur intégré à tout autre site web, un lien est créé entre vous (l’utilisateur) et la vidéo (serveur Youtube).
Ce qu’il faut savoir, c’est que le lien vidéo que vous utilisez d’habitude (de type « youtube.com/watch?v=XXX.. ») n’est pas direct, il permet simplement de faire le lien, par le biais du lecteur Youtube, vers la source vidéo véritable disponible sur les serveurs. Le fichier vidéo source est normalement au format .flv, et il n’est donc pas possible de trouver le lien vers ce dernier en regardant directement dans le code source de la page (HTML). Inutile donc de le faire.
Comment est-ce donc possible de récupérer le lien direct vers la vidéo ?
Comme les sites de téléchargement le font, il faut déterminer l’emplacement du fichier FLV utilisé par le lecteur YouTube. Il s’agit de repérer le flux de streaming en provenance de ce dernier, et de remonter à sa source en analysant le fonctionnement du lecteur.
Pour se faire une idée des processus actifs, et de la complexité du système mis en place lors de la lecture d’une vidéo, il suffit de lancer la console développeur d’un navigateur (sur Chrome par exemple) et d’accéder à l’onglet « Network ».
Une liste de flux et de liens (très longs et complexes pour la plupart) vont apparaître lorsque vous inspectez le lecteur vidéo.
Comment fonctionnent donc ces convertisseurs ?
Ces sites agissent en effectuant « l’ingénierie inverse » sur le code Javascript (et maintenant HTML5 d’ailleurs) qui se charge de servir la vidéo, afin d’obtenir le lien direct vers la source. Le but étant donc de repérer le flux vidéo afin de remonter au fichier source, pour finalement le télécharger puis le convertir.
Il existe un grand nombre de convertisseurs de ce type, certains proposent toutes sortes de conversions, tandis que d’autres sont spécialisés dans certains formats (et donc souvent plus performants), surtout lorsqu’il s’agit de conversion audio de type youtube mp3.
Le site invite ensuite votre navigateur à débuter le téléchargement du fichier, avec ou sans conversion au préalable (effectuée par le site), pour que vous puissiez obtenir la vidéo ou l’audio dans le format de votre choix. Tout cela est généralement programmé en Javascript (un langage de programmation très adapté au web).
Par contre, pour tenter de palier (en partie seulement) à ce problème, les plateformes de contenu telles que YouTube mettent régulièrement leurs lecteurs, méthodes et liens à jour, afin de compliquer la tâche. C’est bien pour cela qu’actuellement, ces convertisseurs sont devenus bien plus performants, et remontent à la source rapidement, en analysant le flux streaming, un peu comme un poisson remonterait un cours d’eau.