Las URI de YouTube no muestran miniaturas cuando se incrustan

  1. https://youtube.com/shorts/Cs3sTnLO6EE

  2. https://www.youtube.com/watch?v=Cs3sTnLO6EE\u0026lc=Ugyi1VtrCVd2POTc82N4AaABAg#:~:text=A%20Screencast%20Of%20LinkedIn%20Persona%20Verification%20Failure

…se convierte en una caja transparente:

El DOM muestra:

<img src="" width="480" height="360" title=" - YouTube" style="aspect-ratio: 480 / 360;">

Sin embargo, se renderizan cuando se publican:

1 me gusta

Confirmado, buena observación, voy a poner un pr-welcome en esto por ahora y dejar una nota para que el equipo lo clasifique.

1 me gusta

Este es uno interesante, puedo reproducir los problemas con los enlaces en el OP aquí en Meta, pero localmente y en nuestro sitio interno de Discourse se obtienen y renderizan bien:

@rokejulianlockhart ¿estos enlaces no se renderizan correctamente en tu propio sitio, o solo aquí en Meta?

1 me gusta

@martin, algunos otros también:

No abreviados

Con https://www.youtube.com/watch?v=Cs3sTnLO6EE&lc=Ugyi1VtrCVd2POTc82N4AaABAg#:~:text=A%20Screencast%20Of%20LinkedIn%20Persona%20Verification%20Failure, esto se reproduce en:

  1. discuss.kde.org/new-topic

    [1]

  2. forum.fairphone.com/new-topic

    [1:1]

Sin embargo, en discussion.fedoraproject.org, se muestra correctamente:

[1:2]

Abreviados

Con https://youtube.com/shorts/Cs3sTnLO6EE, se reproduce lo siguiente:

…en:

  1. discuss.kde.org/new-topic

    [1:3]

  2. forum.fairphone.com/new-topic

    [1:4]

Sin embargo, como antes, en discussion.fedoraproject.org, se muestra correctamente:

[1:5]

¿Qué hacen bien Fedora?


  1. bugs.kde.org/show_bug.cgi?id=511477#c1 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

2 Me gusta

¿Se resolvió este problema? Abrí un tema para un problema similar que ocurre actualmente en mi tablero.

@hameedacpa, esto es completamente irrelevante para eso, porque se trata del previsualizador. Además, puedes confirmar que no se ha remediado simplemente utilizando el previsualizador. Te sugiero que instales un traductor.

1 me gusta

Encontré este tema que incluye un problema parcial que también estoy experimentando

1 me gusta

@hameedacpa, eso es similar, aunque dudo que sea equivalente. La presencia de un icono de miniatura no válido parece demostrarlo, junto con la diferente relación de aspecto de la <img>. Si pones esos detalles en 387672/1, serán de utilidad allí. Si son meramente diferencias causadas por el navegador, se clasificará como un duplicado parcial de este.

En ese sentido, incluye la versión de tu navegador, la versión de Discourse y el marcado real del contenido renderizado en ese hilo citado. Actualmente, está desprovisto de cualquier cosa excepto una captura de pantalla; necesitas esforzarte para recibir ayuda no remunerada.

Algo está fallando en nuestro flujo de Onebox, creo que tiene que ver con la redirección/FinalDestination. Si uso curl de esta manera:

curl -L https://youtube.com/shorts/Cs3sTnLO6EE

Puedo encontrar las etiquetas title y otras meta en la respuesta:

curl -L https://youtube.com/shorts/Cs3sTnLO6EE | htmlq 'head > meta'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0   0     0   0     0     0     0  --:--:-- --:--:-- --:--:--     0
100 947221   0 947221   0     0 406174     0  --:--:--  0:00:02 --:--:-- 504109
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta content="ApvK67ociHgr2egd6c2ZjrfPuRs8BHcvSggogIOPQNH7GJ3cVlyJ1NOq/COCdj0+zxskqHt9HgLLETc8qqD+vwsAAABteyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJQcml2YWN5U2FuZGJveEFkc0FQSXMiLCJleHBpcnkiOjE2OTUxNjc5OTksImlzU3ViZG9tYWluIjp0cnVlfQ==" http-equiv="origin-trial">
<meta content="rgba(255, 255, 255, 0.98)" name="theme-color">
<meta content="A Screencast Of LinkedIn Persona Verification Failure" name="title">
<meta content="For https://www.linkedin.com/help/linkedin/cases/73171318#:~:text=Thanks%20for%20contacting%20us%20about,to%20troubleshoot%20any%20additional%20causes." name="description">
...
 curl -L https://youtube.com/shorts/Cs3sTnLO6EE | htmlq 'head > title'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0   0     0   0     0     0     0  --:--:-- --:--:-- --:--:--     0
100 992110   0 992110   0     0 445530     0  --:--:--  0:00:02 --:--:-- 739941
<title>A Screencast Of LinkedIn Persona Verification Failure - YouTube</title>

Sin embargo, cuando obtengo la respuesta a través de nuestro código de oneboxer, estas son las únicas etiquetas (excepto las de script + style) que obtengo en el <head>:

uri = FinalDestination.new("https://youtube.com/shorts/Cs3sTnLO6EE", Oneboxer.get_final_destination_options("https://youtube.com/shorts/Cs3sTnLO6EE")).resolve
doc2 = Onebox::Helpers.fetch_response(uri)
Nokogiri.HTML(doc2).css("head").children.each do |headel|
  next if headel.name == "script" || headel.name == "style"
  puts headel.to_s
end; nil;

<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="origin-trial" content="ApvK67ociHgr2egd6c2ZjrfPuRs8BHcvSggogIOPQNH7GJ3cVlyJ1NOq/COCdj0+zxskqHt9HgLLETc8qqD+vwsAAABteyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJQcml2YWN5U2FuZGJveEFkc0FQSXMiLCJleHBpcnkiOjE2OTUxNjc5OTksImlzU3ViZG9tYWluIjp0cnVlfQ==">
<link rel="shortcut icon" href="https://www.youtube.com/s/desktop/ace6261e/img/favicon.ico" type="image/x-icon">
<link rel="icon" href="https://www.youtube.com/s/desktop/ace6261e/img/favicon_32x32.png" sizes="32x32">
<link rel="icon" href="https://www.youtube.com/s/desktop/ace6261e/img/favicon_48x48.png" sizes="48x48">
<link rel="icon" href="https://www.youtube.com/s/desktop/ace6261e/img/favicon_96x96.png" sizes="96x96">
<link rel="icon" href="https://www.youtube.com/s/desktop/ace6261e/img/favicon_144x144.png" sizes="144x144">
<link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;family=YouTube+Sans:wght@300..900&amp;display=swap" nonce="kFtYVVw9wWKkoPdOJkO9xQ">
<link rel="stylesheet" href="/s/player/65578ad1/www-player.css" nonce="kFtYVVw9wWKkoPdOJkO9xQ">
<link rel="stylesheet" href="https://www.youtube.com/s/desktop/ace6261e/cssbin/www-main-desktop-player-skeleton.css" nonce="kFtYVVw9wWKkoPdOJkO9xQ">
<link rel="stylesheet" href="https://www.youtube.com/s/desktop/ace6261e/cssbin/www-onepick.css" nonce="kFtYVVw9wWKkoPdOJkO9xQ">
<link rel="stylesheet" href="https://www.youtube.com/s/_/ytmainappweb/_/ss/k=ytmainappweb.kevlar_base.dsnGl9m3_bM.L.X.O/am=AAAgAAgk/d=0/rs=AGKMywEVyAGSU99VwQpoLFio5FrCvZ1WpA" nonce="kFtYVVw9wWKkoPdOJkO9xQ">
<meta name="theme-color" content="rgba(255, 255, 255, 0.98)">
<link rel="search" type="application/opensearchdescription+xml" href="https://www.youtube.com/opensearch?locale=en_US" title="YouTube">
<link rel="manifest" href="/manifest.webmanifest" crossorigin="use-credentials">
<link rel="canonical" href="undefined">
<link rel="alternate" media="handheld" href="https://m.youtube.com/shorts/Cs3sTnLO6EE">
<link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.youtube.com/shorts/Cs3sTnLO6EE">
<title> - YouTube</title>
<meta name="title" content="">
<meta name="description" content="Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.">
<meta name="keywords" content="video, sharing, camera phone, video phone, free, upload">
<link rel="alternate" href="android-app://com.google.android.youtube/http/www.youtube.com/shorts/Cs3sTnLO6EE">
<link rel="alternate" href="ios-app://544007664/vnd.youtube/www.youtube.com/shorts/Cs3sTnLO6EE">

Pensé que tal vez ignore_redirects estaba causando esto, pero si modifico las opciones de FD no hizo ninguna diferencia:

Sospecho que YouTube probablemente está reduciendo el scraping porque está teniendo el mismo problema de scraper de IA que todos los demás, pero no estoy seguro de qué está causando específicamente que obtengamos la respuesta en blanco (que parece que obtiene las etiquetas meta/título pobladas a través de JS de la misma manera que si visitas en el navegador).

Este código para el oneboxing de YouTube es lo que espera que se llenen las etiquetas de título e imagen:

Seguiré investigando :ojos:

2 Me gusta

Podría ser que solo estén enviando lo que parece necesario para ahorrar ancho de banda? Nuestros Oneboxes usan un agente de usuario de navegador, así que tal vez solo lo respetan?

2 Me gusta

De acuerdo, creo que tengo una solución aquí, deberíamos usar oEmbed para estas cosas de YouTube en su lugar:

No lo creo, parece que son 2 cosas:

  1. Algún tipo de limitación de velocidad/redirección de IP extraña, porque a veces para diferentes sitios en nuestro hosting el enlace OP funciona
  2. Este código ya no funciona, porque el JSON que esperamos ya no está allí discourse/lib/onebox/engine/youtube_onebox.rb at e144ec07c8c17ad0f73427524bccc10c074d5a19 · discourse/discourse · GitHub

En general, la URL de oEmbed parece más segura, para el video OP es https://www.youtube.com/oembed?url=https://youtube.com/shorts/Cs3sTnLO6EE&format=json y obtienes este tipo de respuesta:

2 Me gusta

De acuerdo, con esa corrección fusionada, ahora esto funciona :slight_smile:

Ten en cuenta que las respuestas de URL de onebox se almacenan en caché durante 1 día; tuve que ejecutar esto en la consola: Oneboxer.preview(“https://youtube.com/shorts/Cs3sTnLO6EE”, invalidate_oneboxes: true) para ver el nuevo resultado.

3 Me gusta

Este tema se cerró automáticamente después de 2 días. Ya no se permiten nuevas respuestas.