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

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 !

 

Partagez ce contenu

6 comments

  • Bonjour,

    Sympa ton script. Mais je l’utilise comment ? . Avec un truc style Greasemonkey ?

    De toute façon c’est tjrs agréable et instructif de lire tes TRUCS :) , mème si mes connaissances WEB date de l’époque Amiga (ANews). Car depuis je trouve chiant tous ces ‘ langages ‘ que l’ont trouve dans toutes les pages WEB.

    Continu comme ça, Cordialement.
    Patrick

    • Dans Chrome tu tapes F12, puis tu vas dans console, tu colles le script, après 2 ou 3 pubs tu auras ta vidéo.

      Une extension qui la bypass directement ça serait plus sympa, mais ils ont blindé le truc à cause du foot je pense.

  • Sait tu comment faire pour éxécuter ton code automatiquement sur mytf1 au lieu d’avoir à chaque fois le chercher et le coller?

  • Salut, j’ai une petite amélioration pour ton script :

    setInterval(()=>{
    var vid = this.Murnau.Murnau.videoElement;

    if (vid == null)
    return;

    if (this.Murnau.Murnau.isAd){
    vid.muted = true;
    vid.currentTime = vid.duration;
    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.playbackRate = 1;
    vid.pause = vid.pause2;
    delete vid.pause2;
    }
    },200);

    Avec cette petite modif ça finit les pubs directement plutôt que d’attendre qu’elles passent.

    J’aurai juste une question, comment tu as su que l’objet vidéo était stocké dans Murnau. (qu’est ce que c’est que ce Murnau ?)

  • Ouah, merci c’est fabuleux

  • Merci, rien à dire ! Fonction à 100% sur automator sur mac.

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *