Les URI YouTube ne parviennent pas à afficher les miniatures lorsqu'elles sont intégrées

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

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

…devient une boîte transparente :

Le DOM montre :

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

Cependant, ils s’affichent lorsqu’ils sont publiés :

1 « J'aime »

Confirmé, bonne trouvaille, je vais mettre un pr-welcome là-dessus pour l’instant et laisser une note à l’équipe pour le triage.

1 « J'aime »

C’est intéressant, je peux reproduire les problèmes avec les liens dans le message d’origine ici sur Meta, mais localement et sur notre site Discourse interne, ils sont récupérés et rendus correctement :

@rokejulianlockhart ces liens ne s’affichent pas correctement sur votre propre site, ou juste pas ici sur Meta ?

1 « J'aime »

@martin, certains autres aussi :

Non-Shorts

Avec https://www.youtube.com/watch?v=Cs3sTnLO6EE&lc=Ugyi1VtrCVd2POTc82N4AaABAg#:~:text=A%20Screencast%20Of%20LinkedIn%20Persona%20Verification%20Failure, cela se reproduit sur :

  1. discuss.kde.org/new-topic

    [1]

  2. forum.fairphone.com/new-topic

    [1:1]

Cependant, sur discussion.fedoraproject.org, cela s’affiche correctement :

[1:2]

Shorts

\u003cdetails open\u003e

Avec https://youtube.com/shorts/Cs3sTnLO6EE, ce qui suit se reproduit :

…sur :

  1. discuss.kde.org/new-topic

    [1:3]

  2. forum.fairphone.com/new-topic

    [1:4]

Cependant, comme précédemment, sur discussion.fedoraproject.org, cela s’affiche correctement :

[1:5]

\u003c/details\u003e

Qu’est-ce que Fedora fait si bien ?


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

2 « J'aime »

Ce problème est-il résolu ? J’ai ouvert un sujet pour un problème similaire qui se produit actuellement sur mon tableau.

@hameedacpa, ceci est complètement sans rapport avec cela, car il s’agit de l’aperçu. De plus, vous pouvez confirmer qu’il n’a pas été corrigé en utilisant simplement l’aperçu. Je vous suggère d’installer un traducteur.

1 « J'aime »

J’ai trouvé ce sujet qui inclut un problème partiel auquel je suis également confronté

1 « J'aime »

@hameedacpa, c’est similaire, bien que je doute que ce soit équivalent. La présence d’une icône de miniature invalide semble le démontrer, ainsi que le rapport d’aspect différent de l’<img>. Si vous mettez ces détails dans 387672/1, ils seront utiles là-bas. S’il s’agit simplement de différences causées par le navigateur, cela sera classé comme un doublon partiel de celui-ci.

Sur ce, incluez la version de votre navigateur, la version de Discourse et le balisage réel du contenu rendu dans ce fil de discussion cité. Actuellement, il n’y a rien d’autre qu’une capture d’écran ; vous devez faire l’effort pour recevoir une assistance non rémunérée.

Un problème survient dans notre flux Onebox, je pense qu’il est lié à la redirection/FinalDestination. Si j’utilise curl comme ceci :

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

Je suis capable de trouver les balises title et autres meta dans la réponse :

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>

Cependant, lorsque j’obtiens la réponse via notre code oneboxer, ce sont les seules balises (à l’exception des balises script + style) que j’obtiens dans le <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">

Je pensais que ignore_redirects pouvait en être la cause, mais modifier les options FD n’a fait aucune différence :

Je suspecte que YouTube réduit le scraping car ils ont le même problème de “AI scraper” que tout le monde, mais je ne suis pas sûr de ce qui cause spécifiquement l’obtention d’une réponse vide (qui semble avoir les balises meta/title remplies via JS, comme lorsque vous visitez dans le navigateur).

Ce code pour le oneboxing YouTube est celui qui s’attend à ce que les balises title + image soient remplies :

Je continue d’enquêter :eyes:

2 « J'aime »

Il se pourrait qu’ils n’expédient que ce qui semble nécessaire pour économiser de la bande passante ? Nos Oneboxes utilisent un agent utilisateur de navigateur, alors peut-être qu’ils le respectent simplement ?

2 « J'aime »

D’accord, je pense avoir une solution ici, nous devrions utiliser oEmbed pour ces éléments de YouTube à la place :

Je ne pense pas, il semble y avoir 2 problèmes :

  1. Une sorte de limitation de débit IP bizarre/redirection, car parfois pour différents sites sur notre hébergement, le lien OP fonctionne
  2. Ce code ne fonctionne plus, car le JSON que nous attendons n’est plus là discourse/lib/onebox/engine/youtube_onebox.rb at e144ec07c8c17ad0f73427524bccc10c074d5a19 · discourse/discourse · GitHub

Dans l’ensemble, l’URL oEmbed semble plus sûre, pour la vidéo OP c’est https://www.youtube.com/oembed?url=https://youtube.com/shorts/Cs3sTnLO6EE&format=json et vous obtenez ce type de réponse :

2 « J'aime »

D’accord, avec cette correction fusionnée, cela fonctionne maintenant :slight_smile:

Notez que les réponses des URL onebox sont mises en cache pendant 1 jour. J’ai dû exécuter ceci dans la console : Oneboxer.preview("https://youtube.com/shorts/Cs3sTnLO6EE", invalidate_oneboxes: true) pour voir le nouveau résultat.

3 « J'aime »

Ce sujet a été automatiquement fermé après 2 jours. Les nouvelles réponses ne sont plus autorisées.