Incorporações do Youtube pararam de funcionar para servidores na Europa

Quando você tenta fazer um one-box de uma URL do YouTube, o YouTube redireciona automaticamente para uma página chamada consent.youtube.com. Esta página não possui tags oEmbed/OpenGraph, então o one-box infelizmente falha.

Isso definitivamente não é um erro do Discourse, mas está relacionado a uma mudança disruptiva (ao que parece) no lado do YouTube. Suspeito que isso ocorra devido a alguma nova regulamentação europeia, pois não consigo reproduzir no meta.

Nosso servidor está na Europa (Alemanha) e você pode ver a URL de redirecionamento aqui.

12 curtidas

Algo aliviado com o Onebox Assistant plugin, mas não totalmente (ele renderizará o embed, mas não retornará mais o Título).

Acho que deve haver uma implementação específica para o YouTube por meio de uma chave de API ou algo assim…

1 curtida

Eu entrei aqui ontem à noite para relatar exatamente esse problema, pois também tem acontecido conosco recentemente, mas quando colei meu exemplo de URL do YouTube, funcionou perfeitamente aqui no meta :roll_eyes:

Meu Discourse é a versão v2.7.0.beta5 (61860098d9)

5 curtidas

Muito provavelmente porque o servidor do meta não está na Europa :sweat_smile:

2 curtidas

O Reino Unido também não está agora :rofl:

1 curtida

O problema está relacionado ao ‘Formulário de Consentimento de Dados’ e o OneBox o captura em vez do conteúdo real.

Se, em vez de usar https://youtube.com/watch?v=XYZ, você mudar para https://youtu.be/XYZ, funciona porque essa é a ‘URL de Compartilhamento’ e ela não abre o Diálogo de Consentimento. (No entanto, isso não é ideal).

A menos que o Discourse/OneBox ‘altere automaticamente’ a URL para a ‘Versão Curta’ ao fazer o oneboxing, talvez, como uma correção rápida? Não sei, apenas dando mais informações/feedback.

10 curtidas

Como uma comunidade rica em mídia, temos milhares e milhares de vídeos do YouTube compartilhados por nossos membros, com várias centenas postados por mês.

Essa mudança do YouTube já está se mostrando um problema real, mas não acho que seja algo que o Discourse possa resolver se o próprio YouTube estiver forçando um redirecionamento para a página de consentimento deles.

5 curtidas

Só estou dando meu +1, pois isso será um grande problema para nossa comunidade também.

5 curtidas

Atualização: O título está funcionando novamente (assim como o embed) com o Onebox Assistant.

1 curtida

Então, se o Discourse reescrevesse a URL como você descreveu, quando o post fosse preparado, isso resolveria?

Se for esse o caso, um plugin poderia corrigir (talvez até um componente de tema?), e eu imagino que um PR seria bem-vindo e/ou que eles corrigiriam isso bem rápido.

Tecnicamente, sim. Fiz vários testes e é consistente: funciona com a URL curta, mas não com a “oficial”.

3 curtidas

Eu não consideraria isso uma solução alternativa estável; há uma boa chance de o Google aplicar a mesma política a esses casos também em um futuro próximo.

2 curtidas

É, não é.

Só acho muito “engraçado” porque tanto https://youtu.be/VIDEO quanto remover o “www” da URL normal, ou seja, https://youtube.com/watch?v=VIDEO, funcionam. Então, o critério para “bloqueio” com o pop-up de consentimento não é muito “lógico” do ponto de vista do usuário.

3 curtidas

Não discordo, mas isso deixa a única solução como não usar o YouTube. :man_shrugging:

1 curtida

Você também precisaria capturar a pré-visualização do editor, para evitar mostrar essa mensagem de falha catastrófica ao usuário:

1 curtida

Ai, com certeza devemos investigar isso! Obrigado pelo relato.

13 curtidas

Só para adicionar, o mesmo problema ocorre para links de conta /user/ também:

6 curtidas

Você poderia testar esses URLs novamente? Isso é o que estou vendo atualmente a partir de um servidor em Frankfurt (saída do wget editada para mostrar apenas os redirecionamentos):

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 [seguindo]

--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 [seguindo]

ou

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 [seguindo]

--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 [seguindo]

(ou seja, esses dois formatos de URL também estão redirecionando agora para a página de consentimento)

3 curtidas

Acabei de testar essa URL para você, no meu servidor baseado no Reino Unido, e ela foi exibida/visualizada corretamente:

E se eu mudá-la para a URL completa/longa, o problema de consentimento aparece novamente:

4 curtidas