Los embeddings de Youtube han dejado de funcionar para servidores en Europa

Cuando intentas hacer one-box de una URL de YouTube, esta redirige automáticamente a una página llamada consent.youtube.com. Esta página no tiene etiquetas oEmbed/OpenGraph, por lo que el one-box falla, lamentablemente.

Esto definitivamente no es un fallo de Discourse, sino que se debe a un cambio disruptivo (al parecer) por parte de YouTube. Sospecho que esto ocurre debido a alguna nueva regulación europea, ya que no puedo reproducirlo en meta.

Nuestro servidor está en Europa (Alemania) y puedes ver la URL de redirección aquí.

12 Me gusta

Ligeramente aliviado con el plugin Onebox Assistant, pero no por completo (se renderizará la inserción, pero ya no devolverá el título).

Creo que debe haber una implementación específica para YouTube mediante una clave de API o algo así…

1 me gusta

Me conecté anoche para reportar exactamente este problema, ya que también nos ha estado ocurriendo recientemente, pero al pegar mi ejemplo de URL de YouTube, funcionó perfectamente aquí en Meta :roll_eyes:

Mi Discourse es la versión v2.7.0.beta5 ( 61860098d9 )

5 Me gusta

Lo más probable es que sea porque el servidor de Meta no está en Europa :sweat_smile:

2 Me gusta

Tampoco lo es ahora el Reino Unido :rofl:

1 me gusta

El problema está relacionado con el “Formulario de consentimiento de datos” y OneBox lo detecta en lugar del contenido real.

Si en lugar de usar https://youtube.com/watch?v=XYZ cambias a https://youtu.be/XYZ, funciona porque esa es la “URL de compartir” y no muestra el cuadro de diálogo de consentimiento. (Sin embargo, esto no es ideal).

A menos que Discourse/OneBox “cambie automáticamente” la URL a la “versión corta” al generar el OneBox, ¿quizás como solución rápida? No lo sé, solo doy más información/comentarios.

10 Me gusta

Como comunidad con un alto volumen de contenido multimedia, nuestros miembros comparten miles y miles de videos de YouTube, con varios cientos publicados cada mes.

Este cambio por parte de YouTube ya está resultando ser un verdadero problema, pero no creo que sea algo que Discourse pueda resolver si los propios YouTube están forzando una redirección a su página de consentimiento.

5 Me gusta

Solo quiero sumar mi +1, ya que esto será un gran problema para nuestra comunidad también.

5 Me gusta

Actualización: El título vuelve a funcionar (al igual que la incrustación) con Onebox Assistant.

1 me gusta

¿Entonces, si Discourse reescribiera la URL como describes al cocinar la publicación, eso lo solucionaría?

En ese caso, un plugin podría arreglarlo (quizás incluso un componente de tema). Supongo que recibirían una PR con gusto y/o que lo solucionarían bastante rápido.

Técnicamente, sí. He realizado muchas pruebas y es constante: funciona con la URL corta, pero no con la «oficial».

3 Me gusta

No consideraría eso una solución estable; es muy probable que Google aplique la misma política a esos casos en un futuro próximo.

2 Me gusta

Sí, no lo es.

Simplemente me parece muy “gracioso” que tanto https://youtu.be/VIDEO como eliminar “www” de la URL normal, es decir, https://youtube.com/watch?v=VIDEO, funcionen. Por lo tanto, los criterios para “bloquear” con la ventana emergente de consentimiento no son muy “lógicos” desde la perspectiva del usuario.

3 Me gusta

No lo niego, pero eso deja como única solución no usar YouTube. :man_shrugging:

1 me gusta

También sería necesario interceptar la vista previa del editor para evitar mostrarle al usuario este mensaje de fallo catastrófico:

1 me gusta

¡Vaya! Definitivamente deberíamos investigar esto. Gracias por el informe.

13 Me gusta

Solo para añadir, el mismo problema ocurre también con los enlaces de cuenta /user/:

6 Me gusta

¿Sería posible que vuelvas a probar esas URLs? Esto es lo que estoy viendo actualmente desde un servidor en Fráncfort (la salida de wget editada para mostrar solo las redirecciones):

wget 'https://youtu.be/KCyIfcevExE'

--2021-04-06 19:03:39--  https://youtu.be/KCyIfcevExE
Location: https://www.youtube.com/watch?v=KCyIfcevExE&feature=youtu.be [siguiendo]

--2021-04-06 19:03:39--  https://www.youtube.com/watch?v=KCyIfcevExE&feature=youtu.be
Location: https://consent.youtube.com/m?continue=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DKCyIfcevExE%26feature%3Dyoutu.be&gl=DE&m=0&pc=yt&uxe=23983172&hl=de&src=1 [siguiendo]

o

wget 'https://youtube.com/watch?v=KCyIfcevExE'

--2021-04-06 19:05:45--  https://youtube.com/watch?v=KCyIfcevExE
Location: https://consent.youtube.com/m?continue=https%3A%2F%2Fyoutube.com%2Fwatch%3Fv%3DKCyIfcevExE&gl=DE&m=0&pc=yt&uxe=23983172&hl=de&src=1 [siguiendo]

--2021-04-06 19:05:45--  https://consent.youtube.com/m?continue=https%3A%2F%2Fyoutube.com%2Fwatch%3Fv%3DKCyIfcevExE&gl=DE&m=0&pc=yt&uxe=23983172&hl=de&src=1
Location: https://consent.youtube.com/ml?continue=https://youtube.com/watch?v%3DKCyIfcevExE&gl=DE&hl=de&pc=yt&uxe=23983172&src=1 [siguiendo]

(es decir, estos dos formatos de URL también están redirigiendo ahora a la página de consentimiento)

3 Me gusta

Acabo de probar esa URL para ti en mi servidor ubicado en el Reino Unido y se visualizó/previó correctamente en un solo cuadro:

Y si la cambio a la URL completa/larga, vuelvo a obtener el problema de consentimiento:

4 Me gusta