Aujourd’hui nous allons découvrir comment le système de vues YouTube fonctionne.

Comprendre le système de vues YouTube

Pour simuler un visonnage de videos via mobile, utilisez Chrome et l’extension User-Agent Switcher. Ensuite téléchargez Fiddler, lancez-le et allez sur YouTube avec un user agent d’iPhone (ou Android). Regardez une vidéo entièrement et analysons les requêtes présentent dans Fiddler.

Comme vous pourrez le constatez, lorsque vous regardez une vidéo vous envoyez de nombreuses requêtes à “s.youtube.com”. Pour ceux qui l’ignore, c’est le “Youtube Video Stats Server”, soit le serveur de statistiques YouTube. C’est via ce serveur que sont comptées toutes les stats.

Maintenant regardons les paramètres envoyés par votre navigateur aux serveurs de stats :

Requêtes Youtube Server Stats

on3g=0 // Paramètre de visonnage via 3G : 1 = Oui, 0 = Non.

app=youtube_mobile // Ceci est l’une des plus importantes requête : en disant aux serveurs de stats youtube que vous regardez une vidéo via mobile cela vous permet de contourner les restrictions telles que le nombre de vues par IP/24h

preq=%2Fwatch%3Fajax%3D1%26feature%3Dm-trends%26layout%3Dmobile%26tsp%3D1%26v%3Dyk_7ol-bSU8 // Ceci est la fin de l’URL vers laquelle vous naviguez.

reloadCount=0 // Nombre de fois que vous avez relancer la vidéo.

rdm=m4vdvn22r // Les 3 derniers caractères change aléatoirement (sans aucun pattern reconnaissable), pour la créationd d’un BOT je vous suggère de les générer à la volée de manière aléatoire (testé et approuvé).

html5=1 // Ce paramètre confirme à YouTUbe que vous utilisez bien un lecture mobile HTML5. Aucune idée de l’intérêt de ce paramètre. Laissez le tel quel.

ns=yt // Le paramètre “ns” veux dire “namespace” et la valeur est toujours “yt”. Je n’ai pas encore vu de vidéo avec une valeur différente.

ps=blazer // Le paramètre “ps” signifie “player-syle” et le nom du lecteur mobile est “blazer”, ne me demandez pas pourquoi. Peut-être un easter eggs made in Google 🙂

el=detailpage // Le paramètre “el” signifie “Event Label” (nom de l’événement) et “detailpage” fait référence à la page de visionnage par defaut de la vidéo (sur Youtube).

hl=en // “hl” fait référence à la langue de l’interface Youtube, dans le cas présent la langue anglaise.

cr=US // “cr” fait référence au pays et dans le cas présent “US” fait référence aux USA. En changeant ce paramètre vous pouvez modifier la provenance des vues que vous envoyées et ainsi créer des “geo-targeting views”. Celles-ci sont bien plus intérréssantes et coutent plus chères car l’acheteur (ou Vous) peut choisir depuis quelle pays proviennet ces vues. Ce système ne fonctionne pas toujours : les IPs sont généralement utilisées pour geo-targeter les vues, mais lorsque les filtres de base sont inactif c’est via ce système que vous pouvez modifier la provenance de vos vues.

docid=yk_7ol-bSU8 // “docid” fait référence à l’ID de la vidéo et ce retrouve à la fin de l’URL classique /watch?v=ID

plid=h306l6771pavjfv1u // Le “plid” signifie “Playback ID token value” et peut être scrappé depuis la page de la vidéo.
Le PLID est aujourd’hui plus ciompliqué à génrer car ils ont rajouter les caractères suivants “_- ” insérées au hasard . De plus ils ont intégré un changement des 4 premiers caractères sur une base mensuelle (Le mois dernier c’etait “AAUk”, encore avant c’était “AAUa”).

Il semblerait que les 3 premiers caractères fasse référence à l’année en cours. Soit AAU pour l’année 2015 (en 2014 le PLID commencait par AAT). Les 4 chiffres suivants semble faire référence au mois de l’année, et est bien sur renouvelé chaque mois en suivant l’ordre de l’alphabet. Puis viens le jour et ensuite l’heure. Les derniers caractères étant aléatoire.

fmt=18 // Ce paramètre indique le format de la vidéo (si vous avez déjà codé un downloader vidéo, vous savez de quoi je parle). Vous pouvez trouver ce paramètre en visionnant la vidéo 1 fois avec Chrome et un User-Agent spoofé. Ce paramètre est propre à chaque vidéo.

fs=0 // La vidéo est-elle en plein écran ? 1 = OUI, 0 = NON.

screenw=320  // Signifie “Screen width” soit la largeur de l’écran de lecture.

screenh=533 // Signifie “Screen height”, soit la hauteur de l’écran de lecture.

vw=0 // Largeur de la vidéo

vh=0 // Hauteur de la vidéo

playerw=316 // Largeur du lecteur vidéo

playerh=2 // Hauteur de lecteur vidéo

rt=30.252 // Voici comment calculer ce paramètre :

rt = ((getTimer() – playbackStartTime) / 1000).toFixed(3); // Soit : heure actuelle en temps Unix à laquelle on soustrait la date de mise en ligne  de la vidéo (en temps Unix aussi, vous devez stocker ce paramètre) divisé par mille et arrondi à 3 décimales.

sw=1 // Signifie “sampling weight”, aucune idée de son utilité/signification.

len=218.635 // Longueur de la vidéo en secondes. Ce paramètre doit être exact, vous pouvez le récupérer en regardant la vidéo une fois et en analysant les requêtes avec Fiddler (ou tout autre outil d’analyse HTTP).

st=17.643 // Signifie “Start time”, cette valeur représente le temps de la vidéo auquel est envoyé la DERNIERE requete. Lors de votre premier visionnage les paramètres “et” et “st” seront les mêmes.

et=27.65 // Signifie “End Time”, cette valeur représente le temps de la vidéo auquel est envoyé la requête EN COURS. Lors de votre premier visionnage les paramètres “et” et “st” seront les mêmes.

rt= // Signifie “retention”. On parle de retention vidéo pour exprimer le nombre de minutes visionné par l’internaute. La première requête de retention débute entre 1 et 10.
Ex : Après avoir analyser les requêtes d’une vidéo la première requete “rt” commence à 6 (soit “rt=6’, la deuxième requête sera peut être “rt=14” puis la troisième “rt=28”… Apres quelques requetes cela passera certainement à 34 voir 72 ou plus (tout dépend du temps de la vidéo que vous visionnez).

cpn= // Pourrait être “Channel Privacy Number (?)”. Aucune idée de ce que cela désigne, vous pouvez le générer de manière aléatoire.

Comment ajouter un Referrer à une vue YouTube ?

C’est très simple : lorsque vous regardez une vidéo YouTube sur votre PC et que vous provenez d’un site comme Facebook, Twitter… deux nouveaux paramètre font leurs apparitions “sdetail” et “referrer”.

Il vous suffit donc de simplement ajouter : “referrer= http%3A%2F%2Ffacebook.com%2F” à la liste des paramètres et vos vues proviendront de Facebook.

Bien que le rendu de cette opération soit parfait ceci n’a aucune valeur SEO puisque je vous le rappelle nous n’envoyons pas de véritables vues depuis Facebook, mais nous faisons juste croire au serveur de stats que la vidéo a été vue depuis Facebook.

C’est pour cela que s’octroyer 100.000 vues sur une vidéo par ce moyen ne vous offrira même pas 1$ en publicité. En effet, la vidéo ne sera jamais jouée, vous avez simplement fait croire cela au serveur de stats YouTube.

Retention Time.

En ajoutant simplement les paramètres “et” (end time) et “st” (start time) vos vues seront capables d’envoyer une durée de visionnage aux serveurs YouTube.

La retention est un élément extrêmement important.

Vous pouvez trouver quelques un de ces paramètres en lançant n’importe quelle vidéo sur YouTube depuis votre desktop et en faisant un simple clic droit puis “voir le code source” ou “inspecter l’élément” et ensuite “network”.

En espérant vous avoir éclaircie la voix pour votre prochain projet.