Evitar cookies de YouTube en WordPress


Cumplir la llamada «ley de cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s» parece sencillo, pero hay costumbres y prácticas en Internet que no han sido previstas en ella, y que pueden hacernos cometer más infracciones de las que quisiéramos. Y esto podría conllevar sanciones de hasta 150.000 €. Uno de estos casos, por ejemplo, es la inserción de medios externos en nuestras páginas, que siempre dejan algún archivo en el equipo del usuario, como los vídeos de YouTube.

Antecedentes

La Ley 34/2002 de 11 de Julio, de Servicios de la Sociedad de la Información y de Comercio Electrónico (LSSICE) prohíbe la instalación de cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s en los equipos de los visitantes de nuestro sitio web, a menos que hayan dado su consentimiento expreso, para lo cual deberán realizar una acción que no deje dudas de sus intenciones, como pulsar un botón. Sobre este tema, puedes obtener más información en el artículo Todo sobre la nueva ley de cookies de TreceBits y en la Guía sobre el uso de las cookies, publicada por la Agencia Española de Protección de Datos.

En este blog«web diario», bitácora. Publicación periódica en línea en orden cronológico inverso
web log → weblog, blog
, puesto que tratamos de cumplir la ley, no permitimos al usuario la navegación total a menos que acepte nuestras políticas de privacidad. Por eso, cuando alguien nos visita por primera vez, ningún enlace funciona, y si trata de pulsar sobre alguno, aparece una ventana recordándole que antes de proseguir con la navegación debe dar su consentimiento: 

 

Al hacer clic en el botón Ok, la ventana del navegador se desplazará a la parte superior, donde hay un faldón como este:

 

Quizá lo recuerdes de tu primera visita a este  blog«web diario», bitácora. Publicación periódica en línea en orden cronológico inverso
web log → weblog, blog
. Entonces, para navegar libremente por estas páginas, tuviste que pulsar el botón Acepto, pero solamente una vez, porque después de pulsarlo instalamos en tu sistema una cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
llamada blogapliezCook, que caduca al cabo de un año, y con un contenido tan obvio como poco imaginativo: Acepto+cookies+. Está ahí, en tu disco duro, para que cada vez que vuelvas a visitarnos podamos comprobar que existe, y por tanto no tengamos que mostrarte de nuevo ese faldón, ni tú tengas que volver a aceptar ni rechazar nuestra política de privacidad. Al encontrarla en tu computador, sabemos que podemos instalar las demás. Y, por el contrario, si hubieras pulsado el botón Cancelar, habrías salido de este sitio sin que instalásemos nada en tu ordenador, ni siquiera la cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
blogapliezCook, por supuesto, de manera que no la encontraríamos nunca en tu equipo, y así sabríamos que tampoco debemos instalar ninguna otra.

Claro que si bien en su día puede que aceptaras nuestras políticas, y ahora has borrado esa cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
expresamente, utilizando las opciones que tu navegador ofrece para eso, la próxima vez que pases por estas páginas tendremos que repetir el proceso, ya que no podremos saber si has dado o no tu consentimiento.

El problema de los medios externos

Muchas web utilizan un sistema semejante al nuestro para tratar de cumplir la ley en mayor o menor medida, pero hay ciertas prácticas habituales en Internet que dificultan esta tarea. Por ejemplo, ¿qué sucede cuando insertamos un vídeo de YouTube en nuestra página? Que en el equipo de cada visitante se instalan, invariablemente, y sin que este haya tenido la posibilidad de manifestar su consentimiento o rechazo, 3 cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s de YouTube, llamadas VISITOR_INFO1_LIVE, YSC y PREF, con diferentes fechas de caducidad. Así que, sin quererlo, y a veces sin siquiera saberlo, estamos incumpliendo la ley vigente.

Puedes comprobar que es así, si lo deseas, copiando el siguiente código en un editor de texto y guardando el archivo como pruebacookies.html, o cualquier otro nombre que quieras:

<!DOCTYPE html>
<html lang="es">
   <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <title>Probar cookies de YouTube</title>
   </head>
<body class="main">
       <iframe 
		width="860" 
		height="645" 
		frameborder="0" 
		allowfullscreen="" 
		src="https://www.youtube.com/embed/-GEnuQCEeiE">
</body>
</html>

 

Es un código que ya usamos en un artículo anterior, pero puede servir para ilustrar este tema. Si abres el archivo que has creado en tu navegador, veraś algo como esto:

 

Ahora comprueba las cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s que se han instalado en tu disco, y encontrarás las tres que hemos mencionado, y quizá alguna otra semejante, propiedad de YouTube:

 

La solución fallida

Debido a que esta práctica ponía nerviosos a algunos editores y diseñadores, hace algunos años se propuso una alternativa: cambiar la dirección habitual de los vídeos, https://www.youtube.com/

por esta otra,

 https://www.youtube-nocookies.com/

que, supuestamente, no instalaba nada en los equipos de los visitantes. Con esta solución, el código anterior habría quedado de este modo:

<!DOCTYPE html>
<html lang="es">
   <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <title>Probar cookies de YouTube</title>
   </head>
<body class="main">
       <iframe 
		width="860" 
		height="645" 
		frameborder="0" 
		allowfullscreen="" 
		src="https://www.youtube-nocookies.com/embed/-GEnuQCEeiE">
</body>
</html>

 

No te molestes en comprobarlo: no funcionará. En algunas webs todavía puedes leer las quejas de los editores, que se sentían molestos al comprobar que seguían instalando cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s de YouTube en los equipos de sus visitantes sin poder recabar su consentimiento, a pesar de haber utilizado esa nueva URL«localizador de recursos uniforme» es un identificador de recursos en una red, que coloquialmente llamamos «dirección web» o «dirección de internet»
Uniform Resource Locator → URL
. Como muestra, aunque algo antigua y en inglés, vale esta página:

http://www.cnet.com/news/youtubes-new-nocookie-feature-continues-to-serve-cookies/

 

La solución con WordPress

La primera entrada en el tiempo de nuestro blog«web diario», bitácora. Publicación periódica en línea en orden cronológico inverso
web log → weblog, blog
,  precisamente con la que quisimos inaugurarlo, es la que contiene el videoclip de Siniestro total, almacenado en YouTube, que acabamos de usar como ejemplo. Si estás leyendo este artículo, no tendrás problemas en acceder a ella, por ejemplo pulsando en el enlace correspondiente de la barra lateral izquierda, o en este otro: http://blogaplicacionez.es/p01-160818-1000-quienes-somos-de-donde-venimos-a-donde-vamos/. Tampoco para ver el vídeo, que se mostrará en la parte centro-superior de la entrada.

 

Sin embargo, cuando un nuevo internauta llega a este sitio, ningún enlace funciona, como ya hemos dicho, hasta que no acepta la instalación de cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s, por lo que no puede pulsar en ningún sitio para acceder a dicha entrada. Pero, ¿y si ese visitante se sabe la dirección de esta y la teclea en el navegador? En tal caso, el usuario accede a la entrada, pero seguirá sin tener acceso a los enlaces, y el faldón con la advertencia sobre cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s se mostrará en la parte superior de la página. Aunque —y esto es lo que ahora nos importa— del vídeo no habrá ni rastro:

 

¿Por qué? Sencillamente porque no se ha insertado. Si lo hubiéramos hecho, como ya dijimos, las cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s se instalarían automáticamente, y cometeríamos una infracción. Así que hemos obligado a WordPress a comprobar si el visitante aceptó nuestras políticas de privacidad antes de insertar el vídeo o, por el contrario, si las rechazó, en cuyo caso no lo incrustamos.  En otras palabras: averiguamos si la cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
blogapliezCook existe en el equipo del navegante, y obramos en consecuencia.

¿Cómo se hace?

En WordPress, gracias al soporte para el protocolo oEmbed —consulta la entrada Incrustar vídeos YouTube en WordPress— es muy fácil insertar un vídeo en nuestras publicaciones sin utilizar esa marca <iframe> que vimos en el ejemplo anterior, pues no tenemos más que añadir la dirección en el editor donde queramos que este aparezca. Por ejemplo, el vídeo de Siniestro total se incluye en cualquier entrada en el propio editor simplemente escribiendo esta línea:

https://youtu.be/-GEnuQCEeiE

 

En realidad, no es que no se utilice la marca <iframe>, sino que no la escribimos nosotros, sino WordPress. El sistema se encarga de mostrar el vídeo correspondiente a los visitantes, tras convertir esa simple dirección en la marca <iframe> necesaria. Y ahí está el problema: con este método, si bien es sencillo y rápido, no parece que tengamos mucho control sobre la incrustación o no del videoclip, ya que nuestro trabajo consiste únicamente en escribir una dirección, y WordPress hace el resto.

Pero esta falta de control es solo aparente porque, como ya sabrás, una de las genialidades de WordPress son los llamados hooks, «garfios» o «ganchos». Se trata de pasos intermedios, en las distintas tareas del proceso de servir un sitio web, a los que podemos «engancharnos» para modificar el comportamiento por defecto del CMSsistema de gestión de contenidos: software instalado en un servidor para publicación en la Web
Content Management System
. Y precisamente el protocolo oEmbed, que usamos para insertar medios externos, cuenta con un garfio muy interesante:

embed_oembed_html

Para utilizarlo, empezaremos añadiendo esta línea en el archivo functions.php de nuestro tema:

add_filter('embed_oembed_html', 'prueba_cookies_youtube' );

 

Con este código creamos un filtro (filter) para la función embed_oembed_html del protocolo oEmbed que se ocupe de convertir la dirección del vídeo en la marca <iframe>. El filtro consiste en hacer que WordPress, antes de escribir la marca <iframe> en nuestra entrada, ejecute otra función llamada prueba_cookies_youtube(), que aún no hemos definido, pero que definiremos ahora mismo con este código:

function prueba_cookies_youtube ( $output ) {
    $myStr= '';
        if( isset( $_COOKIE['blogapliezCook'] ) ) { 
            $myStr= $output;
        }
    return $myStr;   
  }

 

El parámetro $output contendrá, puesto que la función ha sido añadida al garfio que antes hemos mencionado, la marca <iframe> generada por WordPress mediante oEmbed, por lo cual si nuestra función devolviera directamente el valor de ese parámetro, el vídeo siempre se incrustaría en la entrada. No queremos que seto suceda si el usuario no ha consentido en la instalación de cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s, así que para evitarlo hemos declarado en la línea 2 una variable $myStr con un valor vacío, variable que devolveremos a WordPress como resultado de la función (línea 6).

function prueba_cookies_youtube ( $output ) {
    $myStr= '';
        if( isset( $_COOKIE['blogapliezCook'] ) ) { 
            $myStr= $output;
        }
    return $myStr;   
  }
 

De este modo nos aseguramos de que en nuestra entrada no se escriba nunca directamente el valor de $output, sino el de la variable $myStr, que estará vacía a menos que la cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
blogapliezCook se encuentre en el sistema del visitante, condición que comprobamos mediante el código de la tercera línea (3)

function prueba_cookies_youtube ( $output ) {
    $myStr= '';
        if( isset( $_COOKIE['blogapliezCook'] ) ) { 
            $myStr= $output;
        }
    return $myStr;   
  }

 

Así, solo en caso afirmativo llenamos la variable $myStr con el valor de $output, (línea 4), que contiene la marca <iframe>, como ya sabemos, y por tanto incrustará el vídeo y las cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s.

Y eso es todo. Aquellos usuarios que no hayan aceptado la instalación de cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
s no podrán ver el vídeo, pero estaremos cumpliendo la ley. En cambio, sí aparecerá en el navegador de quienes hayan consentido.

 

El código completo

A continuación reproducimos lo que debes añadir al archivo functions.php de tu tema, si quieres utilizar este método para insertar vídeos, asumiendo que tienes una instalación de WordPress funcionando, cuentas con un sistema similar al nuestro para recabar el consentimiento del usuario, y almacenas en su equipo una cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
con dicho consentimiento. No olvides cambiar el nombre blogapliezCook por el que corresponda a tu propia cookie«galleta», pequeño archivo de información que envía un sitio web, y que se almacena en tu navegador
cookie
, claro.

function prueba_cookies_youtube ( $output ) {
    $myStr= '';
        if( isset( $_COOKIE['blogapliezCook'] ) ) {
            $myStr= $output;
        }
    return $myStr;   
  }
add_filter('embed_oembed_html', 'prueba_cookies_youtube' );

 

Conclusión

Hemos interceptado una acción de WordPress para eliminar el valor de $output o conservarlo, de manera que solo mostremos vídeo a quienes acepten las cookies. Y habrás deducido que si pudimos hacer eso, también podemos modificarlo en parte, o añadir a este casi cualquier cosa. Por ejemplo, podríamos hacer que el vídeo se mostrase dentro de un contenedor, digamos usando la marca <div>. Para eso, cambiaríamos la línea 4 del código anterior por esta otra:

$myStr= '<div class="divisor_aniadido">' . $output . '</div>'

 

De momento, el resto de posibilidades que ofrecer el garfio embed_oembed_html lo dejamos a tu imaginación. Solamente cabe añadir que esta solución no solo sirve para incrustar vídeos de YouTube, sino cualquier otro medio que soporte el protocolo oEmbed. En la siguiente página puedes ver una lista de los diferentes sitios y medios:

https://codex.wordpress.org/Embeds

 

Hasta la próxima.



Hay un comentario a “Evitar cookies de YouTube en WordPress”

Puedes dejar una respuesta o hacer Trakback para esta entrada.

Escribe una respuesta o un comentario

Tu dirección de correo no será publicada.