I video di YouTube con embedding onebox hanno smesso di funzionare

Mi farebbe molto piacere ricevere dei consigli su cosa fare in questa situazione, ma ho anche alcune idee su come potrebbe essere gestita meglio.

Cosa potrebbe star succedendo

Una teoria è che il nostro server sia stato identificato da YouTube come potenzialmente coinvolto nel farming di video musicali e che stiamo subendo limitazioni o blocchi.

Siamo un forum davvero insignificante nel Regno Unito con un traffico esiguo, ma abbiamo un paio di thread (in realtà uno diviso in due a causa delle dimensioni) con 10.000 + 2.000 post di video musicali. È una catena musicale in cui il prossimo utente pubblica semplicemente una canzone correlata, spesso in modo tangenziale, al post precedente.

Abbiamo naturalmente altri thread con link a YouTube, ma questo è particolarmente denso di musica (~100%).

Dopo un rifacimento (rebake) nel weekend, ipotizzo che YouTube abbia analizzato l’attività dell’Oneboxer che cercava di recuperare gli header per molti video musicali e il suo algoritmo ci abbia messo sul “banco degli imputati”.

Successivamente, ho riprovato a rifare il baking dei post, il che presumibilmente ha confermato i sospetti di YouTube che da questo indirizzo IP tentiamo solo di scaricare video musicali.

Potrebbe essere correlato a Digital Ocean

Quindi, cercando su Google gli errori 429 su YouTube e ignorando tutti i risultati relativi all’API di YouTube, si arriva a un gruppo di problemi simili che affermano tutti che i loro indirizzi IP sono stati inseriti in liste grigie/nerre o bannati a causa dell’uso di server virtuali; il nome di Digital Ocean è stato menzionato specificamente.

La suggerenza è che YouTube potrebbe “bannare” una serie di indirizzi IP e che altri server legittimi vengono spesso coinvolti come danni collaterali.

Ecco un esempio di tale problema e una potenziale soluzione.

https://support.google.com/youtube/thread/21697789?hl=en

E un altro da uno sviluppatore su medium.com che lavora sull’API embed.ly.

https://support.google.com/youtube/thread/21939228?hl=en

La soluzione suggerita nel primo post era disabilitare IPv6 sul droplet.

Qualcuno sa se questo sembra plausibile o se potrebbe causare problemi?

Ho aspettato per ora di farlo, in modo da poter raccogliere altri dati che potrebbero essere necessari per facilitare la risoluzione.

Cosa dovrebbe accadere?

Innanzitutto, capisco che la reazione qui sia probabilmente che la mia esperienza sia un caso limite e che non siano necessari cambiamenti.

Posso capirlo. Ma se io e @marcozambi abbiamo riscontrato lo stesso problema in un periodo relativamente breve, ciò suggerisce che potrebbe essere qualcosa che altri potrebbero vedere. Forse YouTube è diventato recentemente più severo nel controllo dell’embedding?

Vi chiedo di ricordare che al momento il mio forum è in completo limbo. Ho decine di migliaia di link che non sono stati Oneboxed, ma non so dove si trovino e posso pensare solo a un rifacimento totale per trovarli tutti, il che quasi certamente attirerebbe un’attenzione negativa da parte di YouTube.

Almeno, Onebox non può fallire silenziosamente quando incontra un errore di limite di frequenza (rate-limit). Deve portare la cosa all’attenzione degli amministratori e, dove possibile, fermare il processo che ha innescato il problema del limite di frequenza.

Opzioni per portare questo all’attenzione del proprietario del forum

Non penso che sia facile. Nemmeno un po’.

Vedo Onebox come avente diversi ruoli distintamente diversi:

a) costruisce Onebox in tempo reale mentre i post vengono composti,
b) risponde ai rifacimenti di post vecchi (spesso con link già noti) in background e senza interfaccia (headless)
c) viene richiesto di gestire masse di post di job in background durante una migrazione / rifacimento

Se si verificasse un errore di limite di frequenza durante lo scenario a), l’autore riconoscerebbe che l’Onebox non si è espanso e potrebbe lamentarsi con gli amministratori del forum: potrebbe essere notato. Immagino sia anche possibile catturare il singolo errore durante la composizione e inviare un errore o un messaggio agli amministratori?

Nello scenario b), il fallimento potrebbe avvenire durante l’elaborazione in background del post e quindi dovrebbe essere riprovato o, se il numero di tentativi è stato raggiunto, potrebbe dover fallire e notificare gli amministratori del forum.

Nello scenario c), sarebbe necessario conoscere il contesto più ampio di molti fallimenti che accadono contemporaneamente. Al momento, non credo esista alcun controllo complessivo del processo di rifacimento dei post tale per cui 10.000 errori 429 restituiti da Onebox potrebbero essere riconosciuti come un problema più grande rispetto all’invio di 10.000 messaggi individuali agli amministratori.

In realtà, un fallimento del genere significherebbe che tutte le chiamate a Onebox per l’espansione di video YouTube (potrebbero esserlo anche altri provider) dovrebbero essere messe in pausa finché non saremo più limitati nella frequenza.

Approcci alternativi

Limitare le richieste in uscita

Immagino che l’assioma “prevenire è meglio che curare” potrebbe dettare che un limitatore di frequenza di Discourse possa essere posto davanti alle richieste, in modo che Discourse trattenga le richieste su una base configurata tramite impostazioni.

Questo creerebbe caos con i rifacimenti e le migrazioni.

Onebox Assistant

Forse abbiamo tutti bisogno di relazioni commerciali con organizzazioni che memorizzano e proxyano gli embed, come quella utilizzata da @merefield nel suo plugin Onebox Assistant?

Mettere in whitelist il ‘bot’

Potremmo forse trovare un modo per mettere in whitelist il ‘bot’ di Discourse su YouTube? Probabilmente troppo aperto ad abusi.

API di YouTube

Proprio come Onebox fa con Twitter, forse potremmo usare l’API di YouTube se i limiti di frequenza sono superiori?

Buone ricerche, grazie.

Non so se l’hai notato, ma ho già segnalato che anche Signal Messenger ha problemi con YouTube e si tratta ancora di una questione aperta:

https://meta.discourse.org/t/onebox-assistant-crawl-for-those-previews-reliably/107405/9?u=merefield

Accade anche su WhatsApp.

Volevo solo aggiungere che veniamo regolarmente “bannati” da YT ogni 2 o 3 settimane; restiamo bannati per circa una settimana e poi veniamo sbannati. Poi il ciclo si ripete.
Abbiamo solo alcune centinaia di link a video di YouTube; i nostri utenti ne pubblicano non più di una manciata al giorno…

Quindi, senza utilizzare il plugin OneBox Assistant, non esiste una soluzione per visualizzare in anteprima i link youtu.be nella versione base di Discourse?

Tutti i formati di link di YouTube dovrebbero essere espansi da Onebox.

Non funziona per te?

Se no, quali problemi stai riscontrando?

Sono sulla versione più recente di Discourse e ho appena creato un post con un link youtu.be, ma non ha mostrato l’anteprima. I normali link di YouTube funzionano.

Vediamo

https://youtu.be/gLCduDJVksc mi sembra a posto

Sì, funziona su meta.discourse. Sto cercando di capire perché non funziona sul mio. Ci sono impostazioni da configurare dal pannello di amministrazione?

Come discusso sopra, YouTube ha probabilmente bannato il tuo server o il tuo intervallo di indirizzi IP.

Ma i normali link di YouTube funzionano. Se fossero stati bannati, non funzionerebbero tutti quanti?

Non è così, @AntiMetaman.

Come suggerito da @codinghorror sopra, YouTube sembra limitare la velocità o bannare determinati formati di link YouTube, mentre altri continuano a funzionare.

Nel mio caso, il formato ‘/embed’ funziona, ma gli altri no.

Sembra che YouTube applichi limiti di velocità diversi a seconda del formato. Quello ‘/embed’ sembra permettere numeri più elevati. È puramente aneddotico e non ho dati concreti a supporto.

Alcune domande:

Stai ospitando su Digital Ocean?

Stai usando IPv6?

Hai verificato che l’ID del video sia formato correttamente (11 caratteri)? Domanda stupida, ma ci si stupirebbe.

Per un dato video YouTube, hai provato ciascuno dei tre formati supportati? Ovvero:

Quale ha funzionato e quale no?

Mi sono battuto contro questo problema per settimane, ma sono riuscito a trovare una soluzione funzionante, anche se non capisco davvero perché funzioni.

Assumendo che tu stia riscontrando lo stesso problema, prova a installare Onebox Assistant, abilitalo ma non configurarlo.

Ho scoperto che è necessario riavviare il server dopo averlo abilitato per assicurarsi che funzioni.

In questa configurazione, che in realtà non dovrebbe funzionare affatto, i miei video YouTube altrimenti limitati (in qualsiasi formato) vengono espansi da Onebox, ma non ho idea di come funzioni.

Ho discusso della questione con @merefield (l’autore) qui…

https://meta.discourse.org/t/onebox-assistant-crawl-for-those-previews-reliably/107405/36?u=bletch

SE, ed è un grosso SE, questo funziona anche per te, non è una soluzione definitiva, poiché si tratta solo di una stranezza nei valori di ritorno del metodo e non dovrebbe essere affidata a lungo termine.

A parte questo, ho anche utilizzato il plugin Onebox Assistant come previsto, iscrivendomi a embed.rocks, e funziona alla perfezione.

Puoi definire i link di YouTube regolari e non regolari, per favore?

In tal caso, perché Onebox non può convertire nel formato funzionante prima di eseguire il polling dei dati?

Potrebbe, immagino, ma non è una ‘soluzione’.

Tutti i formati sembrano essere soggetti a limitazioni di frequenza e alla fine falliscono. Anche il formato ‘/embed’ ha fallito per me dopo aver provato a rigenerare tutti gli embed di YouTube che avevano fallito durante una precedente rigenerazione.

Inoltre, ho visto solo due casi condivisi qui in cui la via ‘/embed’ ha funzionato quando altre hanno fallito, incluso il mio.

Non ci sono ancora prove sufficienti, né abbastanza ‘interessati’ da suggerire un cambiamento.

Anche tu stai riscontrando il problema, @Terrapop, o sei semplicemente un osservatore interessato?

Sono un soggetto interessato mentre stiamo per spostare la nostra popolare community su Discourse a breve. Al momento siamo in fase di staging e funziona, ma vogliamo avere una configurazione sicura fin dall’inizio. Pertanto, probabilmente configureremo Onebox Assistant con il nostro endpoint, che inoltrerà e memorizzerà nella cache le risposte da embeds.rock; in caso di fallimento, utilizzeremo Iframely.

Ok, allora stavo solo sperimentando e sono riuscito a riprodurlo qui su meta.discourse! Credo che abbia a che fare con il markdown. I miei link youtu.be funzionano effettivamente nel mio forum come previsto, ma non negli esempi qui sotto. YouTube non sta bloccando affatto il mio host.

  1. Questo non funzionerà nemmeno su meta.discourse: https://youtu.be/MLpyi-oVoI

Vedi? Non c’è nulla di sbagliato nel link del video. Se inserisci il link sulla riga successiva, non funzionerà comunque.

  1. Anche questo non funzionerà:
    https://youtu.be/MLpyi-oVoIY

Vedi? Ora se incollo lo stesso link qui, funzionerà:

Sono contento che tu non sia bloccato da YouTube. Penso che tutto funzioni come dovrebbe: è un problema di formattazione.

Credo che l’espansione di Onebox richieda che il link sia a) all’inizio di una riga, da solo, e b) se si trova nel mezzo di un elenco, richieda un ulteriore ritorno a capo / newline prima di esso.

Se guardi la versione grezza del tuo post

https://meta.discourse.org/raw/153748/36

Ok, quindi stavo solo sperimentando e sono riuscito a riprodurlo qui su meta.discourse! Credo che abbia a che fare con il markdown. I miei link youtu.be funzionano effettivamente nel mio forum come previsto, ma non negli esempi seguenti. YouTube non sta bloccando affatto il mio host.

1. Questo non funzionerà nemmeno su meta.discourse: https://youtu.be/MLpyi-oVoI

Vedi? Non c'è nulla di sbagliato nel link del video. Se metti il link sulla riga successiva, non funzionerà comunque.

2. Questo non funzionerà nemmeno:
https://youtu.be/MLpyi-oVoIY

Vedi? Ora, se incollo lo stesso link qui, funzionerà:

https://youtu.be/MLpyi-oVoIY

Puoi vedere che nel primo elemento 1. - il link appare nel mezzo della riga, quindi non si espanderà. Il link deve essere la prima cosa sulla riga.

E nell’elemento 2. c’è solo un ritorno a capo / newline prima del link di YouTube, quindi non si espanderà nemmeno.

Se guardi la versione formattata del tuo post, potresti notare che il link di YouTube ha un rientro sospeso…

…il che significa che il markdown sta ancora trattando il link come parte del punto elenco 2, quindi non lo espanderà.

Potresti fare così.

  1. Questo è un testo di riempimento
  2. Questo link funzionerà perché ho lasciato due ritorni a capo / newline dopo questa riga e prima del link di YouTube

Sì, dovrò solo imparare a lavorare con il Markdown e inserire i link di YouTube su una riga separata. I miei utenti si stanno ancora abituando e c’è stato un post di un utente che ha attirato la mia attenzione: il suo link youtu.be non funzionava, ed è stato questo che ha dato origine a tutto questo.

Ciao, ho iniziato a ricottare oltre 1 milione di post due giorni fa, e da oggi le anteprime di YouTube non funzionano più, quindi immagino che il mio IP sia stato bannato.
Cosa si consiglia in questo caso? Dovrei semplicemente aspettare che la ricottura finisca e contattare YouTube per vedere se posso essere sbloccato?
O usare "Onebox Assistant", crawl for those previews reliably!?

È certamente un’opzione, se puoi permettertelo.