Logo RetroYT

 




Préface

RetroYT PHP est un portage léger du projet Visual Basic .NET 2022 "RetroYT" par Monokeros. La version actuelle, la alpha, a été publiée le ___. Ce projet est distribué gratuitement (sous la licence "freeware"), sans aucune garantie explicite ou implicite. L'auteur ne pourra être tenu responsable d'éventuels dommages matériels, logiciels, des éventuelles pertes de données, ou dysfonctionnements résultant de son utilisation, y compris dans un cadre normal.
Le projet vise principalement à restaurer la compatibilité de YouTube avec des systèmes d'exploitation, navigateurs web et lecteurs multimédia anciens ou obsolètes, à travers le relais de connexions, formatage vers un code HTML, et l'intégration de formats vidéo historiques, lisible par les navigateurs de toute époque.
Contrairement à mon homologue de chez Monokeros, je vise une bien meilleure clareté ainsi que quelques ajustements par défault selon le navigateur du client. Cela permet entre autre, de ne pas devoir aller farfouiller incessamment dans les paramètres.


Sommaire:
I. Introduction
II. Paramètres
III. Précautions
IV. Configuration
V. Utilisation du paramètre GET
VI. Remerciements
 

I. Introduction


Le nom « RetroYT » provient du terme « rétro », désignant de manière générale quelque chose d'ancien, de classique ou « à l'ancienne ». Le logiciel repose sur un serveur Web codé directement dans l'application (dit « hardcodé »), servant d'intermédiaire entre YouTube et le navigateur client utilisé par l'utilisateur. L'objectif principal du projet est de restaurer un accès fonctionnel à YouTube sur des navigateurs et systèmes d'exploitation devenus trop anciens pour prendre en charge la version moderne du site. Bien que RetroYT puisse également être utilisé depuis un navigateur récent comme un proxy classique, pour fournir une version allégée du site, ce n'est pas sa vocation première. De nombreux proxies YouTube modernes existent déjà et offrent généralement de meilleures performances et une compatibilité plus étendue avec les standards Web actuels.
RetroYT vise avant tout à permettre la recherche et la lecture de vidéos YouTube depuis des environnements anciens ou obsolètes, tels que Windows 3.11, Windows 95, Windows 98, Windows NT 4.0, Windows 2000, certaines anciennes versions de MacOS, ainsi que divers systèmes UNIX/Linux historiques. La solution a également été testée sous Windows XP et Windows 11 avec succès. Étant donné l'identité rétrocompatible de ce projet, il est donc parfaitement normal de retrouver, au sein de ce projet, du code HTML volontairement ancien, des méthodes d'intégration multimédia historiques, ou encore l'utilisation de technologies aujourd'hui abandonnées comme ActiveX, RealPlayer, des anciennes versions de QuickTime, Flash Player, ou les plugins NPAPI. L'ensemble du projet cherche à reproduire, autant que possible, une expérience cohérente avec les capacités techniques du Web des années 1990 et du début des années 2000, tout en offrant une expérience de navigation proche des services Internet actuels.

II. Paramètres


RetroYT propose un ensemble de paramètres permettant d'adapter le fonctionnement du proxy aux capacités matérielles et logicielles du système cible. La méthode de récupération des fichiers depuis YouTube est agnostique. En d'autres termes, le proxy prendra le premier format venu, il peut être en extension MP4, WebM, ou MKV, etc. avec un encodage comme VP8, VP9, AV1, AV2, H.264, etc. Pour le fichier de destination, un second cache existe et permet de convertir dans un autre format compatible avec les anciennes configurations. Ces formats sont entièrement configurables depuis le navigateur client. L'utilisateur peut notamment choisir la taille du lecteur vidéo, le format et les codecs employés pour la conversion, ainsi que le nombre d'images par seconde. Pour les systèmes les plus anciens, comme Windows 95 ou Windows NT 4.0, l'utilisation des codecs MSVideo1 (Microsoft Video 1), MPEG-1 ou WMV1 est fortement recommandée, en raison de leur excellente compatibilité avec les anciennes versions de Windows. Comme beaucoup de codecs historiques, celui-ci produit toutefois des fichiers assez volumineux, en particulier pour les vidéos dépassant plusieurs minutes. Le codec Cinepak est aussi très rétrocompatible, mais peut mettre beaucoup de temps à être encodé. Pour les systèmes Apple, le format MOV avec les codecs RPZA ou Sorenson sont vivement conseillés. Les systèmes Linux étant très compatibles avec les formats PC, je conseille le format AVI MPEG-4 pour la lecture, et le format MP4 pour les systèmes plus récents, y compris ceux de Microsoft et Apple.
Selon la puissance de votre machine, votre quantité de mémoire disponible ou la vitesse de votre connexion réseau, le transfert et la lecture des vidéos peuvent devenir plus difficiles. La résolution vidéo peut être choisie parmi un certain nombre de valeurs prédéfinies (96p, 120p, 144p, 240p, 360p, 480p, 720p et 1080p), ou laissée en mode automatique afin que le serveur sélectionne lui-même le format le plus approprié. Certains codecs anciens possèdent volontairement des limitations de résolution ou de format d'image, principalement pour des raisons de compatibilité avec les anciens lecteurs multimédia ou les contraintes matérielles des systèmes ciblés. Pareil pour le nombre d'images. Sélectionner le mode 60 images par seconde sur un format tel AVI Cinepak va immédiatement ramener à 30 images par seconde.
Le mode d'intégration du lecteur vidéo est également configurable. RetroYT peut utiliser différentes méthodes historiques de lecture multimédia, parmi lesquelles : L'apparence générale de l'interface Web peut également être personnalisée grâce à plusieurs thèmes graphiques : Ces options permettent d'adapter RetroYT aussi bien à des machines très anciennes qu'à des systèmes plus récents, tout en conservant une esthétique cohérente avec les différentes époques du Web. Il est intéressant de noter qu'on peut lire aussi des flux vidéo depuis un lecteur externe, sans passer par l'interface Web. Il suffit pour cela de naviguer sur http://adresse_serveur/stream?v=id_video pour lire directement dans un lecteur externe comme VLC. Vous pouvez aussi chercher et lire la première vidéo trouvée de façon immédiate en naviguant sur http://adresse_serveur/lucky?q=motclef. Par défaut, le format permutera automatiquement sur MP4 si vous utilisez VLC. Notez bien que vous pouvez utiliser les paramètres GET documentés dans la partie V de cette documentation.

III. Précautions


RetroYT est distribué sous licence freeware/open source et ne doit pas être revendu sans l'autorisation explicite de son auteur. Afin de conserver une compatibilité maximale avec les anciens navigateurs Web et systèmes d'exploitation, le proxy ne met volontairement pas en ouvre certaines technologies modernes de sécurisation des communications, notamment SSL/TLS côté client. Les échanges entre RetroYT et YouTube utilisent bien des connexions sécurisées modernes, mais les communications entre le client et le proxy restent, quant à elles, entièrement non chiffrées. En effet, nombre d'anciens navigateurs ne prennent pas en charge SSL/TLS, surtout dans leurs dernières versions. Le HTTP sans chiffrement est une solution universelle pour se connecter au serveur.
Pour cette raison, RetroYT est principalement destiné à une utilisation au sein d'un réseau local (LAN), sur une machine personnelle ou dans un environnement contrôlé. Il est fortement déconseillé d'exposer directement le proxy sur Internet ou de l'utiliser sur un réseau public non sécurisé, sauf si vous utilisez des solutions complémentaires de protection telles qu'un VPN ou un tunnel sécurisé.
RetroYT utilise également un système de cache local afin d'améliorer les performances et limiter les téléchargements répétés. Quatre dossiers principaux sont utilisés : Ces dossiers peuvent être vidés manuellement si l'espace disque disponible devient insuffisant. Normalement, le logiciel gère lui-même la taille du cache et/ou le nombre de fichiers. Le dossier srvlogs contient tous les fichiers de rapport de connexion et des actions du serveur, avec heure et date. Bien que ces fichiers soient facultatifs et aisément supprimables, en revanche, certains fichiers et répertoires sont indispensables au fonctionnement du logiciel et ne doivent pas être supprimés : La suppression de ces éléments empêcherait le démarrage ou le fonctionnement correct du proxy. Si le serveur est fermé pendant la conversion d'un ou plusieurs fichiers vidéo, sachez que des fichiers temporaires nommés output_xxxx.lock (où xxxx est un hash MD5 unique) sont générés avant le début de la conversion. Au cas où vous redémarreriez le logiciel, ces fichiers contiennent le(s) identifiant(s) des processus de ffmpeg.exe dernièrement lancés, ainsi que les fichiers qui étaient en cours de traitement. Ainsi, les processus fantômes de ffmpeg seront coupés, les fichiers temporaires seront supprimés, ainsi que les fichiers vidéo dont les conversions ont été inaccomplies, pour éviter tout fichier corrompu et tout plantage. Idem pour les fichiers en cours de téléchargement avec download_xxxxxx.lock où xxxxxx est un hash MD5 unique.
Si, côté client, les recherches n'affichent aucun résultat quel que soit le mot-clé renseigné, cela peut venir du fait que yt-dlp n'est pas reconnu par YouTube comme un navigateur web classique, mais comme un trafic automatisé (un « bot »). Dans ce cas, YouTube peut limiter ou bloquer les requêtes de recherche effectuées de façon anonyme. Pour contourner ce problème, vous pouvez ajouter un fichier "cookies.txt" dans le dossier de RetroYT. Celui-ci permet à YT-DLP d'utiliser une session YouTube existante afin d'effectuer les recherches comme si elles provenaient d'un utilisateur déjà connecté, plutôt que d'une session anonyme pouvant être plus limitée. Le fichier cookies.txt peut être exporté depuis votre navigateur web (Firefox, Chrome, Edge, etc.) à l'aide d'une extension dédiée comme « Get cookies.txt LOCALLY ». Il ne s'agit pas simplement de copier les fichiers internes du profil Firefox, car leur format n'est pas directement exploitable par YT-DLP. Attention toutefois: si vous partagez ce proxy avec d'autres utilisateurs, ceux-ci n'auront pas accès à votre compte Google ni à vos données personnelles directement, mais les résultats de recherche pourront être influencés par l'activité de votre compte YouTube (historique, préférences, recommandations, personnalisation, etc.). En d'autres termes, les résultats affichés risquent d'être partiellement biaisés par votre propre utilisation préalable de YouTube, et avoir des vidéos adaptées à votre propre activité.

IV. Configuration


Du côté du serveur, il est recommandé d'exécuter RetroYT sur une machine relativement performante. Une connexion Internet stable et rapide est également recommandé. Le transcodage vidéo effectué par FFmpeg peut solliciter fortement le processeur, en particulier lors de l'utilisation de codecs anciens ou peu optimisés comme Cinepak ou MSVideo1. Windows 10 et Windows 11 sont actuellement les systèmes les plus recommandés pour héberger le proxy. Le logiciel nécessite l'environnement .NET 6.0 ou plus, afin de fonctionner correctement. Du côté client, RetroYT a été conçu pour rester accessible à des navigateurs et systèmes beaucoup plus anciens. La navigation sur le proxy ainsi que la lecture vidéo intégrée ont notamment été testées avec succès sur les configurations suivantes :

Veillez à autoriser l'exécution des contrôles ActiveX, si vous utilisez un système d'exploitation de Microsoft. Veillez aussi à avoir un ou plusieurs lecteurs multimédias installés, et les cookies activés sur votre navigateur. En effet, RetroYT fait usage d'un cookie pour mémoriser les paramètres du client. Si ce dernier ne semble pas prendre en charge les cookies, vous pourrez toujours faire usage des paramètres GET dans l'URL de /watch, /lucky, ou /stream. Pour les très anciennes versions de Windows, faire usage du codec AVI MSVideo1 depuis la section "Paramètres" est recommandé, en résolution 240p et en 15 images/s, tout en veillant à ce que les vidéos ne dépassent pas 10 minutes de longueur. Il s'agit d'un codec avec compression intégrée, totalement compatible avec Windows depuis sa version 3.1. Pour les navigateurs compatibles HTML5, vous pouvez activer l'utilisation du format vidéo MP4, et l'intégration multimédia via la balise <video>.
Si vous activez le lecteur Flash Player, seul le format FLV (Flash Video) pourra être lu. Pareil pour Real Player, seul le format Real Media sera lu. Si par malheur aucune de ces options ne fonctionne, vous pouvez également cliquer sur le lien pour lire le flux vidéo directement (lien présent sous le lecteur, si présent). Le navigateur ouvrira un lecteur externe, ou vous proposera de télécharger le fichier pour le lire après. Mais il s'agit d'une option de dernier recours. Concernant le lecteur Windows Media Player, notez bien que l'utilisation des URL n'est prise en charge qu'à partir de la version 6.4.

V. Utilisation du paramètre GET


Si les cookies ne fonctionnent pas sur votre navigateur, et que vous ne pouvez pas enregistrer les paramètres, ceux par défaut seront appliqués. Par conséquent, certaines fonctionnalités seront incompatibles avec votre configuration. Heureusement, RetroYT inclut une fonctionnalité pour remédier à cet éventuel manque. Pour modifier la configuration de la lecture sans passer par les cookies (et la sauvegarde du paramétrage qui utilise une requête POST), vous pouvez ajouter des paramètres GET dans l'URL qui suit le modèle /watch?v=xxxxxxxxxxx. Ce sont les mêmes attributs que ceux utilisés dans la requête POST ou dans le cookie lui-même. Vous pouvez changer le type de lecteur utilisé, la taille du lecteur, le format vidéo utilisé, le nombre d'images par seconde et la résolution.

Le lecteur utilisé se change via l'entête player avec pour paramètre un des éléments suivants :

no_integrationAucune intégration
legacy_wmpLecteur Windows Media Player 6.4
wmpLecteur Windows Media Player 7.0
embedIntégration par la balise HTML <embed>
videoIntégration avec la balise <video> de HTML5
realplayerLecteur Real Player via <embed>
activex_realplayerLecteur Real Player via ActiveX
embed_vlcLecteur VLC via <embed>
vlcLecteur VLC via ActiveX
alt_vlcLecteur VLC via ActiveX (Avec un CLSID alternatif)
quicktimeLecteur QuickTime via ActiveX
embed_quicktimeLecteur QuickTime via <embed>
flashLecteur Flash via Javascript
embed_flashLecteur Flash via <embed>
activex_flashLecteur Flash via ActiveX
objectIntégration via la balise HTML object

La taille du lecteur utilisée se règle avec l'entête size, suivi par un des paramètres suivants :

autoTaille gérée par Javascript (Il doit être disponible et activé)
microTaille 160x120 pixels (Pour les écrans de portables)
ultrasmallTaille 256x192 pixels
smallTaille 320x240 pixels (Pour les écrans VGA de base)
middleTaille 640x480 pixels (Taille par défaut)
largeTaille 854x480 pixels (Format large minimal)
cinemaTaille 1280x720 pixels (Format large standard)
autoheightTaille du lecteur basée sur la taille de la vidéo
fullscreenTaille du lecteur sur toute la fenêtre (avec HTML)
fulljsTaille du lecteur sur toute la zone visible (avec Javascript)

Le format vidéo utilisé pour la lecture a pour entête codec, et est accompagné d'un des paramètres suivants :

mpeg1Format MPEG, codec vidéo MPEG-1, codec audio MP2
avi_mpeg4Format AVI (Microsoft), codec vidéo MPEG-4, codec audio MP3
avi_msvideo1Format AVI (Microsoft), codec vidéo MSVideo1, codec audio PCM
avi_cinepakFormat AVI (Microsoft), codec vidéo Cinepak, codec audio PCM
avi_yuvFormat AVI (Microsoft), vidéo en YUV, codec audio PCM
mp4Format MP4, codec vidéo H.264, codec audio AAC
wmv1Format WMV, codec vidéo WMV1, codec audio WMAv1
wmv2Format WMV, codec vidéo WMV2, codec audio WMAv2
mov_cinepakFormat Apple QuickTime (MOV), codec vidéo Cinepak, codec audio PCM
mov_svq1Format Apple QuickTime (MOV), codec vidéo Sorenson SVQ1, codec audio MP3
mov_mpeg4Format Apple QuickTime (MOV), codec vidéo MPEG-4, codec audio MP3
mov_rpzaFormat Apple QuickTime (MOV), codec vidéo RPZA, codec audio PCM
3gpFormat 3GP (3G Video), codec vidéo H.263, codec audio AMR Narrowband
flvFormat Flash Video, codec vidéo Sorenson Spark, codec audio MP3
rmFormat Real Media, codec vidéo RV10, codec audio AC3

Le nombre d'images est paramétré avec l'entête framerate suivi du nombre d'images voulues UNIQUEMENT parmi cette liste :

autoMeilleur nombre d'images par seconde pour le format vidéo voulu.
1010 images par seconde (Pour vieux ordinateurs)
1212 images par seconde
1515 images par seconde (Bon rapport qualité/quantité pour les vieux ordinateurs)
2020 images par seconde
2424 images par seconde [Par défaut]
2525 images par seconde
3030 images par seconde
6060 images par seconde (Vivement déconseillé sur les anciens PC)

La résolution de la vidéo, intitulée resolution, peut être choisie parmi les paramètres suivants :

autoMeilleure résolution choisie par le serveur, pour chaque format voulu
96pRésolution minimale, surtout utile pour le format 3GP
120pRésolution très faible
144pRésolution faible
240pPetite résolution (Recommandée pour toutes les configurations anciennes)
360pMoyenne résolution
480pRésolution standard
720pHaute résolution [HD]
1080pTrès haute résolution [HD] (Pour les PC de la génération de Windows Vista et plus)

Sacrées listes, n'est-ce pas? Certaines résolutions seront indisponibles sous certains formats. Pareil pour le nombre d'images. Ceci pour des raisons de limitations techniques fixées par les créateurs du codec, ou pour éviter toute saturation de la mémoire. Les paramètres erronés ou inexistants seront ignorés. Pour illustrer un usage concret de cette fonctionnalité :

http://127.0.0.1/watch?v=dQw4w9WgXcQ&player=video&size=auto&codec=mp4&framerate=24&resolution=480p

Visiter cette URL démarrera la lecture de la vidéo indiquée au format MP4 (Résolution 480p @ 24 FPS), via le lecteur vidéo intégré de HTML5. La taille du lecteur sera automatiquement réglée. Cette configuration par défaut est très utile pour les navigateurs prenant en charge le HTML5.
Tous les paramètres ne sont pas obligatoires. Ainsi, pour démarrer, par exemple, une lecture avec le lecteur Flash :

http://127.0.0.1/watch?v=ZyhrYis509A&player=flash&codec=flv&resolution=240p

Le tout en 240p, avec le nombre d'images par seconde par défaut. Le reste des paramètres utiliseront ceux par défaut également. Cette configuration reste assez typique de l'époque de Flash Player, dans les années 2000.
Si vous lisez depuis Windows 3.11 ou Windows NT 3.51, je vous conseille d'installer Real Player 5.0, qui rendra possible la lecture sous Internet Explorer 4 ou 5 via intégration ou ActiveX. Les paramètres à utiliser seront ainsi :

http://127.0.0.1/watch?v=FuOhQZP821o&player=realplayer&codec=rm&resolution=240p&framerate=15

Ce ne sont que des exemples, mais ils vous inspireront probablement pour votre configuration. Faites-en bon usage.

VI. Remerciements


YouTube est une propriété de Google. Il s'agit d'une plateforme de diffusion de vidéos en direct, ou en différé. Ce projet de proxy n'est pas affilié à Google, ni à YouTube. Ce logiciel a été développé sous Microsoft Visual Basic .NET 2022. Il fait usage des librairies et binaires ffmpeg, et du projet yt-dlp, que l'utilisateur doit intégrer manuellement au dossier (ils ne sont pas livrés par défaut pour éviter des conflits d'intérêt avec leurs auteurs respectifs, et pour des raisons d'espace utilisé). En revanche, SWFObject est inclus au projet directement, car sous licence MIT. Il est donc libre de le redistribuer, et permet la lecture des vidéos au format Macromedia Flash lorsque l'utilisateur active cette fonctionnalité. Merci à ceux qui l'ont programmé.
Merci aussi à ChatGPT pour ses astuces de programmation. Sans lui, ce projet n'aurait peut-être jamais vu le jour. Je remercie également LeJarb pour le code d'intégration de Real Player, et son optimisation de l'usage des codecs (en s'aidant de Léo AI). Je le remercie aussi pour ses divers feedbacks, et sa participation active dans l'amélioration du projet. Je remercie aussi Val pour ses tests du logiciel sur des configurations réelles. Merci également à vous, l'utilisateur, pour avoir utilisé RetroYT, en espérant qu'il fonctionnera parfaitement sur votre configuration, et qu'il vous procurera entière satisfaction dans l'usage du service YouTube depuis d'anciens systèmes. Voici la page de débug du projet: Cliquez ici.

L'auteur.

Cliquez ici pour retourner à l'index



RetroYT PHP alpha - Copyright © 2026, tous droits réservés. Fortement inspiré de RetroYT dont le nom est le logo sont propriétés de Monokeros.
YouTube est une propriété de Alphabet Inc. Ce projet n'est en aucun cas affilié ni de près ni de loin à Alphabet Inc.
Plus d'informations sur RetroYT PHP.