Re: [Spip-zone-commit] [tarteaucitron ↪ services_video] Mise en place des services pour le plugins oembed avec (...)

Hello,

j’ai comme un doute avec ce commit :

• si j’ai pas le commit, oembed ne charge pas de video youtube dans la page par défaut, on a juste une background de preview et aucun pistage, ET quand je clic sur la vidéo il utilise youtube-nocookie cf spip-contrib-extensions/oembed - oembed/input/posttraite_youtube_video.php at master - oembed - SPIP on GIT donc PERSONNE n’a de cookie youtube
• avec ce commit, l’affichage de la vidéo se fait donc via un script js, on a perdu l’async si je ne m’abuse, et soit on a la vidéo avec des cookies, soit on a pas de vidéo. Je me trompe ?

Et donc de manière générale on a perdu le chargement async et le fait qu’aucune vidéo n’est chargée avec la page mais uniquement quand un utilisateur clic dessus
Bref, il me semble que c’est pas du tout une amélioration…


Cédric
Le 11 mai 2021 à 08:10 +0200, Pierre KUHN noreply@spip-contrib.net, a écrit :

spip-contrib-extensions/tarteaucitron

Par Pierre KUHN, le 11 mai 2021 à 08h08min :

Mise en place des services pour le plugins oembed avec : issuu, youtube, vimedo et dailymotion. Surcharge des modeles pour que les services soit bien géré.

Ajouté
modeles/oembed.html
modeles/oembed_video.html
modeles/video.html
services/dailymotion.html
services/issuu.html
services/vimeo.html
services/youtube.html
Modifié
formulaires/configurer_tarteaucitron_services.html

Détails : Mise en place des services pour le plugins oembed avec : issuu, youtube, vimedo et dailymotion. Surcharge des modeles pour que les services soit bien géré. · 46884d7f33 - tarteaucitron - SPIP on GIT


Spip-zone-commit@rezo.net - Spip-zone-commit

1 J'aime

Bonjour,

Oui j’ai fais un commit pour supprimer les modèles car ne sont plus utile.

Merci

La tarte au citron … ce message doit arriver dans la boite email de Cédric (test)

Bonjour,
Avec ce commit, j’utilise les modèles fournis par TarteAuCitron. J’ai essayé avec Youtube, Dailymotion et Vimeo et ça marche parfaitement. Par contre cela oblige à écrire <vimeo|id=226053498> ou <youtube|id=U1qbHaLCQNU> dans les articles.

Avec ce commit https://git.spip.net/spip-contrib-extensions/tarteaucitron/src/branch/dev/services_video_modeles, j’utilise les modèles fournis par TarteAuCitron. J’ai essayé avec Youtube, Dailymotion et Vimeo et ça marche parfaitement. Par contre cela oblige à écrire |<vimeo|id=226053498>| ou |<youtube|id=U1qbHaLCQNU>| dans les articles.

Mais quel intérêt (en plus de compliquer justement pour rien les rédacteurices), puisque par ex pour youtube, Oembed utilise un appel qui ne pose pas de cookies, en mode privacy ?


RastaPopoulos

J’ai repris la maintenance et le développement de notre site web il y a 2 ans. J’ai découvert SPIP en même temps et j’ai appris l’existence du plugin Oembed cette semaine. Notre site web, qui a été mis en place il y a 7 ans, comporte plus de 77 000 articles. Jusqu’alors, nos rédacteurices inséraient leurs vidéos via les iframes fournis par Youtube. Donc, d’une manière ou d’une autre, il va falloir qu’ils revoient la manière dont ils insèrent leurs vidéos dans les articles et il va falloir faire une requête en BDD pour mettre à jour les articles qui contiennent des vidéos. Utiliser les modèles fournis par TarteAucitron me paraissait pertinent plutôt que d’installer un ènième plugin. Je vais voir avec certains de mes collègues ce qui seraient le plus pratique (nous avons déjà presque une vingtaine de plugins d’installés).

Mais avant tout, j’aurais une question : « Est-ce que le plugin oEmbed empêche le dépôt des cookies pour tous les providers ou seulement pour Youtube ? » car la doc n’en parle que pour Youtube.

Pour information oEmbed contient une action pour convertir les iframes placées dans le contenu éditorial

Elle s’appelle avec l’URL spip.php?action=oembed_nettoyer_iframes et il faut être webmestre.
L’interface est brute mais ça fait le job et ça peut être adapté si besoin.

L’avantage du plugin oembed est qu’il est naturellement respectueux des utilisateurs car les vidéos ne sont jamais chargées au chargement de la page mais uniquement quand l’utilisateur clique sur la vidéo pour la lire. Par ailleurs les vidéos sont dans la mesure du possible lues en évitant les cookies utilisateurs.

Enfin l’utilisation par les utilisateurs est simplisimme puisque ils ont juste à coller le l’url de la vidéo dans le texte pour que celle-ci soit automatiquement insérée à la place.

C’est donc le plugin recommandé pour ce besoin !

3 J'aime

C’est ce que je commence à me dire.

Ha super, je l’avais oublié celle là, faudra qu’on pense à la documenter: )

2 J'aime

Du coup, à quoi pourrait servir le plugin TarteAuCitron si le plugin Oembed bloque déjà les cookies ? Juste à prévenir le visiteur qu’il n’y a aucun cookie ? Ou pour les services non couverts par Oembed ?

Le 08/09/2021 à 11:11, paidge via Discuter de SPIP a écrit :

Du coup, à quoi pourrait servir le plugin TarteAuCitron si le plugin Oembed bloque déjà les cookies ? Juste à prévenir le visiteur qu’il n’y a aucun cookie ? Ou pour les services non couverts par Oembed ?

Non, les libs de gestion d’autorisation de cookie (CMP, Cookie Management Platform dans le jargon pubard), ça doit être mis… seulement quand il y a des cookies tiers. Si ton site n’a aucun cookie tiers (ni service tiers comme YT, ni Google Analytics) : tu n’en as pas besoin et c’est justement super.

Il y en a besoin seulement si du javascript pose un ou des cookies pour des trucs tiers. Et dans ce cas, il faut utiliser le « wrapper » de Tarteaucitron (par ex), son JS doit entourer celui du service, qui ne doit être lancé que si la personne a coché telle autorisation.

Mais ça ne marche pas pour certaines utilisations, par exemple les régies de pub. Ça marche pour des services clairement définies, genre Google, Xiti, etc. Mais si t’as une régie pub qui t’injecte mille choses différentes venant de fournisseurs différents, bah impossible de bloquer ça à l’autorisation de tel truc précis dans Tarteaucitron… :frowning:
J’ai le problème pour un site justement, et généralement les grosses régies ont en fait un contrat directement avec des services de CMP payants (genre Quantcast) : les choix de l’utilisateur sont alors enregistrés chez ce service de CMP, et la régie pub requête directement ce service pour savoir si le visiteur accepte ou pas, et sinon elle envoie même pas la pub du tout.

Bref ça dépend ce qu’on veut bloquer quoi, au cas par cas. :slight_smile:


RastaPopoulos

Justement :wink: Vu que nous n’avons pas installé le plugin oEmbed, j’ai des cookies pour Youtube, Facebook, Google Agenda et Canal-U.tv et je suis donc à la recherche du ou des outils qui vont me permettre d’être conforme à la réglementation. En effet, nos rédacteurices utilisent parfois des iframes pour intégrer du contenu.

Au départ, j’étais sur CookieChoices. Puis j’ai découvert TarteAuCitron. Seulement, pour que TarteAuCitron fonctionne avec un service, il faut que ce service soit intégré dans l’article sous un format HTML bien précis. Par exemple :
<div class="vimeo_player" videoID="**video_id**" width="**width**" height="**height**"></div>

J’ai donc commencé à faire des modèles pour les services vidéos mais on m’a dit que le plugin oEmbed empêchait le dépôt de cookies et que ce n’était donc pas nécessaire.

Alors j’ai testé le plugin oEmbed et son action pour remplacer les iframes dans le contenu éditorial (génial !). C’est là que j’ai découvert que ça ne fonctionnait plus pour Facebook/Instagram et que canal-u.tv n’était pris en charge ni par TarteAuCitron ni par oEmbed. Donc, pour le moment, je n’ai aucune solution à mon problème :confused: J’essaierais bien de rajouter le service canal-u à TarteAuCitron mais il faut que je modifie des fichiers de la lib apparemment et j’ai peur qu’ils soient écrasés lors d’une future MAJ du plugin.

J’ai réussi à ajouter le service Canal-U à TarteAuCitron. J’ai fait une pull request sur Github et on verra si c’est pris en compte.

Sinon, j’ai poussé un peu mes tests avec le plugin oEmbed et je remarque qu’au chargement des vidéos Dailymotion et Vimeo, par ex, un cookie est déposé sans le consentement utilisateur. Ca ne fonctionne que pour Youtube car il requête sur https://www.youtube-nocookie.com donc la solution d’utiliser le plugin oEmbed pour éviter le dépôt des cookies n’est pas la bonne. Pour l’instant, la solution que je trouve la plus pratique, ce sont les modèles SPIP intégrant les modèles TarteAuCitron.

J’ai pas mal avancé sur la branche dev/services_video_modeles et j’aimerais savoir si il serait possible de merger sur la branche master. Il n’y a aucune obligation d’utiliser les modèles mais sans ça, je ne vois pas comment la librairie JS TarteAuCitron pourrait bloquer les cookies des services tiers.

De ce que j’ai compris, j’ai l’impression que c’est une solution de rapidité, qui ne peut marcher que sur un tout nouveau site à zéro.

Or si l’idée est que Tarteaucitron est un plugin qui permet de mettre en conformité des sites avec la (plus vraiment nouvelle) loi RGPD, faudrait que ça marche sur les sites existants, qui peuvent avoir moult insertions déjà là, il me semble. D’autant plus que pour être raccord avec la loi, on peut très bien imaginer que d’autres plugins que Tarteaucitron le permettent aussi, ou que Tarteaucitron ne soit plus maintenu un jour prochain, etc, et donc les contenus du site (les articles avec des médias insérés dedans) ne devraient pas être liés pour la vie à un plugin particulier.

Ça n’a pas l’air facile, mais j’ai l’impression que le vrai truc propre serait de capturer quand il y a des médias dont on ne veut pas qu’ils s’affichent sans consentement (agenda, daily, etc), et de les remplacer par un entourage de Tarteaucitron qui ne va les réafficher que si on a accepté.

Je ne sais pas si ça peut se faire en JS, ce serait le plus simple mais je ne sais pas si c’est possible car si ya déjà une iframe générée dans le HTML, l’idée est bien que Tarteaucitron arrive à capturer ça AVANT que le JS du service tiers n’arrive à se lancer et à poser quoique ce soit comme traceur. Et ça en JS, je ne sais pas si on peut s’en assurer à 100%… (mais peut être qu’il y a moyen hein j’y connais pas grand chose). Du coup si c’est pas en JS, faudrait que ce soit en PHP, par du pipeline « pre_propre » ou ce genre, arriver à capturer ces contenus, et les remplacer par un truc de la lib en amont.

Si c’est trop compliqué ou trop long pour l’instant : dans tous les cas, si des modèles sont fournis pour des sites qui accepteraient de les utiliser, ça ne devrait pas être des noms génériques « modeles/youtube.html » etc, car c’est vraiment propre à Tarteaucitron, il faudrait plutôt des noms avec un préfixe ou ce genre, pour ne pas être en conflit avec d’autres choses. Ou un suffixe. <tac_youtube|params> ou bien <youtube|nocookie|param=truc> (avec modeles/youtube_nocookie.html), je sais pas… Mais un moyen de pas avoir des noms génériques alors que c’est vraiment lié que à cette lib.


RastaPopoulos

Je me suis fait aussi cette réflexion. Et pour parer à cela, je me suis demandé si une solution ne serait pas de faire comme le plugin oEmbed avec l’action oembed_nettoyer_iframes. C’est-à-dire parcourir l’ensemble des articles à la recherche de chaînes de caractères à remplacer (les iframes).
Une solution complémentaire pourrait être des raccourcis ajoutés dans markitup (comme le fait le couteau-suisse) pour ajouter facilement du contenu venant d’éditeur Tiers (je ne sais pas si c’est possible) afin de faciliter la vie des rédacteurs.

En JS, pour moi c’est clairement impossible puisque le JS s’exécute sur le PC du visiteur et ne peut agir sur le DOM qu’une fois celui-ci chargé. Peut-être au moment de la génération du cache côté serveur à la rigueur mais je ne connais pas son fonctionnement.

Je suis d’accord avec cette remarque. Je vais les renommer et voir ce que je peux faire de plus.

J’ai implémenté ces 2 fonctionnalités sur ma branche. Tout a l’air OK. J’aimerais bien avoir des retours.