I embedding di Youtube hanno smesso di funzionare per i server in Europa

Quando si tenta di one-boxare un URL di YouTube, YouTube reindirizza automaticamente a una pagina denominata consent.youtube.com. Questa pagina non contiene tag oEmbed/OpenGraph, quindi il oneboxing non riesce purtroppo.

Questo non è sicuramente un difetto di Discourse, ma è legato a un (a quanto sembra) cambiamento di rottura da parte di YouTube. Sospetto che ciò avvenga a causa di una nuova normativa europea, poiché non riesco a riprodurlo su meta.

Il nostro server si trova in Europa (Germania) e puoi vedere l’URL di reindirizzamento qui.

12 Mi Piace

Parzialmente risolto con il Onebox Assistant plugin, ma non completamente (renderizzerà l’embed ma non restituirà più il titolo).

Credo che debba esserci un’implementazione specifica per YouTube tramite una chiave API o qualcosa del genere…

1 Mi Piace

Ieri sera mi sono collegato qui per segnalare esattamente questo problema, dato che sta succedendo anche a noi di recente, ma quando ho incollato il mio esempio di URL di YouTube, ha funzionato perfettamente qui su meta :roll_eyes:

Il mio Discourse è alla versione v2.7.0.beta5 ( 61860098d9 )

5 Mi Piace

Probabilmente perché il server di meta non si trova in Europa :sweat_smile:

2 Mi Piace

Nemmeno il Regno Unito lo è ora :rofl:

1 Mi Piace

Il problema è relativo al modulo di consenso sui dati e OneBox lo intercetta invece del contenuto effettivo.

Se invece di utilizzare https://youtube.com/watch?v=XYZ cambi con https://youtu.be/XYZ, funziona perché si tratta dell’URL di condivisione e non fa apparire la finestra di consenso. (Tuttavia, questa non è una soluzione ideale).

A meno che Discourse/OneBox non modifichi automaticamente l’URL nella versione breve durante l’embedding, forse come soluzione rapida? Non lo so, sto solo fornendo ulteriori informazioni e feedback.

10 Mi Piace

Essendo una comunità ricca di contenuti multimediali, i nostri membri condividono migliaia e migliaia di video YouTube, con diverse centinaia pubblicati ogni mese.

Questo cambiamento da parte di YouTube si sta già rivelando un vero problema, ma non credo che sia qualcosa che Discourse possa risolvere se è lo stesso YouTube a forzare il reindirizzamento alla propria pagina del consenso.

5 Mi Piace

Aggiungo anch’io il mio +1, poiché anche per la nostra comunità questo sarà un grosso problema.

5 Mi Piace

Aggiornamento: Il titolo funziona di nuovo (così come l’embed) con Onebox Assistant.

1 Mi Piace

Quindi, se Discourse riscrivesse l’URL come descrivi quando il post viene elaborato, questo risolverebbe il problema?

Se è così, un plugin potrebbe risolverlo (forse anche un componente del tema?), e immagino che una pull request sarebbe ben accolta e/o che lo risolverebbero molto rapidamente.

Tecnicamente, sì. Ho eseguito molti test ed è costante: funziona con l’URL breve, non con quello “ufficiale”.

3 Mi Piace

Non considererei quella una soluzione alternativa stabile; è molto probabile che Google applichi la stessa politica anche a quelle nel prossimo futuro.

2 Mi Piace

Sì, non lo è.

Lo trovo solo molto “divertente” perché funzionano entrambi: https://youtu.be/VIDEO e rimuovendo “www” dall’URL normale, quindi: https://youtube.com/watch?v=VIDEO. Quindi i criteri per il “blocco” con il popup di consenso non sono molto “logici” dal punto di vista dell’utente.

3 Mi Piace

Non è che non sia d’accordo, ma l’unica soluzione è non usare YouTube. :man_shrugging:

1 Mi Piace

Dovresti anche intercettare l’anteprima del compositore, per evitare di mostrare questo messaggio di errore catastrofico all’utente:

1 Mi Piace

Ouch, dovremmo senz’altro indagare! Grazie per la segnalazione.

13 Mi Piace

Solo per aggiungere, lo stesso problema si verifica anche per i link dell’account /user/:

6 Mi Piace

È possibile che tu riprovi a testare quegli URL? Questo è ciò che vedo attualmente da un server a Francoforte (l’output di wget è stato modificato per mostrare solo i reindirizzamenti):

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

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

oppure

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

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

(cioè, anche questi due formati di URL ora reindirizzano alla pagina del consenso)

3 Mi Piace

Ho appena provato quell’URL per te, sul mio server basato nel Regno Unito, ed è stato visualizzato in anteprima/onebox correttamente:

E se lo modifico nell’URL completo/lungo, riottengo di nuovo il problema del consenso:

4 Mi Piace