Dyrk.org
Do You Really Know

[TF1] – Comment ne plus être dérangé par les publicités des vidéos

Publié le 1 mai 2017 par #Ro0t

Bon début de semaine à tous,

 

Qui d’entre vous n’a pas rêvé de ce bouton magique qui couperait automatiquement le son lorsqu’une publicité passerait à la radio ? ou sur votre téléviseur ?!?
J’étais l’autre jour sur le site de TF1, car un collègue de bureau souhaitait me montrer une vidéo .. et c’était vraiment laborieux  !

Une histoire de pause

Le site de TF1 vous oblige à regarder ses publicités jusqu’au bout …

Et, s’il vous prenait l’envie de changer d’onglet, ou de sortir de votre navigateur pour faire autre chose durant la publicité  !

 …

Malheur à vous

 

La publicité se mettrait alors automatiquement en pause !
Et reprendrait là où elle s’était arrêté lorsque vous reviendrez sur la page !
Impossible pour vous d’y échapper … du moins … si vous tenez à pouvoir regarder votre vidéo !

Pour se mettre en pause, celle-ci utilisera une fonction liée à son lecteur vidéo … la fonction … « pause » …
Oui, je sais ça paraît légèrement implicite, mais la fonction s’appelle vraiment « pause ».

Alors, jusque-là, rien de compliqué …

 

Supprimer la fonction « pause« 

C’est tout bête, mais c’est l’idée …
Si nous remplaçons la fonction d’origine qui met en pause la vidéo, par une autre fonction …
Une fonction qui ne fera rien du tout

Alors lorsque le lecteur vidéo pensera appeller sa fonction « pause« , au moment où nous ne regarderons plus sa publicité  …
Il appellera non pas sa fonction « pause », mais notre fonction … qui elle, ne fera rien !
La publicité continuera son petit bout de chemin et ne sera pas mise en pause !

Et vous pourrez alors vaquer à vos activités …

Couper le son de la « publicité« 

Ne pas être obligé de regarder une publicité c’est cool !
Mais … devoir malgré tout supporter de l’entendre ça devient vite pénible …

« Avez-vous testé le nouveau détachant
rendant votre linge plus blanc que blanc ?!?
Alors rendez-vous dans votre boutique, dépêchez-vous !
Une paire de chaussettes offerte aux 10 premiers clients !« 

Ce que nous aimerions …
C’est la possibilité de couper le son durant la publicité, et de le réactiver lorsque la publicité est finie !
Ce serait en plus un excellent moyen pour savoir lorsque celle-ci est terminée, sans avoir constamment à jeter un œil dessus …

D’autant que la publicité est toujours plus intempestive … vous coupez le son, et hop 15 secondes plus tard, celui-ci se réactive …

Savoir reconnaître une publicité

C’est là que TF1 a pensé à tout !

Ils ont mis en place une « variable » dans la page qui contient votre vidéo.
Cette variable indique si vous regardez une publicité ou non …
Bien entendu, cette variable est surtout utilisée pour vous restreindre l’accès à d’autre fonctions si vous regardez une pub …

Cette variable c’est « isAd » … signifiant probablement « is Advert » => « C’est une publicité »
C’est ce que l’on appelle en programmation un booléen, donc 2 valeurs possible « Vrai » / « Faux » …

Aussi, en analysant un peu cette variable on se rend compte que lorsque nous regardons une publicité cette variable est à « true » (vrai) et lorsque nous regardons la vidéo, celle-ci passe à « false » (faux) …

 

Créer un petit script qui s’occupe de tout automatiquement

 

J’ai donc concocté un script donc le job est simple, celui-ci va donc tourner tranquillement en tâche de fond sur la page où vous consulterez votre contenu vidéo…
Il interrogera la variable isAd pour savoir si vous regardez une publicité ou pas …
Il empêchera la vidéo de se mettre en pause, et coupera le son si c’est une publicité, en remplaçant la fonction pause, par une autre fonction !

Dès que la publicité sera terminée, il réactivera la vraie fonction « pause », pour que vous ayez la possibilité de mettre en pause, et activera le son !

setInterval(()=>{
var vid = this.Murnau.Murnau.videoElement;
if (this.Murnau.Murnau.isAd){
vid.muted = true;
vid.volume = 0;
vid.pause2 = (!vid.pause2)?vid.pause:vid.pause2;
vid.pause = ()=>{return -1;};
}
else if (! this.Murnau.Murnau.isAd && vid.pause2){
vid.muted = false;
vid.volume = 1;
vid.pause = vid.pause2;
delete vid.pause2;
}
},200);

 

Conclusion

Par cet exemple vous aurez appris une forme de raisonnement, qui vous permettra de développer une logique dans des solutions de contournement !