…tornar-se uma caixa transparente:
O DOM mostra:
<img src="" width="480" height="360" title=" - YouTube" style="aspect-ratio: 480 / 360;">
No entanto, eles renderizam quando postados:
…tornar-se uma caixa transparente:
O DOM mostra:
<img src="" width="480" height="360" title=" - YouTube" style="aspect-ratio: 480 / 360;">
No entanto, eles renderizam quando postados:
Confirmado, boa observação, vou colocar um pr-welcome nisso por enquanto e deixar um aviso para a equipe analisar.
Este é um caso interessante, consigo reproduzir os problemas com os links no OP aqui no Meta, mas localmente e em nosso site interno do Discourse eles são buscados e renderizados corretamente:
@rokejulianlockhart esses links não estão renderizando corretamente em seu próprio site, ou apenas não aqui no Meta?
@martin, alguns outros também:
Com https://www.youtube.com/watch?v=Cs3sTnLO6EE&lc=Ugyi1VtrCVd2POTc82N4AaABAg#:~:text=A%20Screencast%20Of%20LinkedIn%20Persona%20Verification%20Failure, isso se reproduz em:
No entanto, em discussion.fedoraproject.org, ele é renderizado:
Com https://youtube.com/shorts/Cs3sTnLO6EE, o seguinte é reproduzido:
…em:
No entanto, como antes, em discussion.fedoraproject.org, ele é renderizado:
O que o Fedora está fazendo tão corretamente?
Este problema foi resolvido? Abri um tópico para um problema semelhante que está ocorrendo atualmente no meu painel.
@hameedacpa, isso é completamente irrelevante para isso, porque isto é sobre o visualizador. Além disso, você pode confirmar que não foi corrigido simplesmente utilizando o visualizador. Sugiro que você instale um tradutor.
@hameedacpa, isso é semelhante, embora eu duvide que seja equivalente. A presença de um ícone de miniatura inválido parece demonstrar isso, juntamente com a proporção diferente da <img>. Se você colocar esses detalhes em 387672/1, eles serão úteis lá. Se forem meramente diferenças causadas pelo navegador, será triado como um duplicado parcial disso.
Nesse sentido, inclua a versão do seu navegador, a versão do Discourse e a marcação real do conteúdo renderizado nesse tópico citado. Atualmente, está desprovido de qualquer coisa, exceto uma captura de tela; você precisa se esforçar para receber assistência não remunerada.
Algo está dando errado em nosso fluxo do Onebox, acho que tem a ver com redirecionamento/FinalDestination. Se eu usar curl assim:
curl -L https://youtube.com/shorts/Cs3sTnLO6EE
Consigo encontrar o title e outras tags meta na resposta:
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>
No entanto, quando recebo a resposta através do nosso código do oneboxer, estas são as únicas tags (exceto as de script + style) que recebo no <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&family=YouTube+Sans:wght@300..900&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">
Pensei que talvez este ignore_redirects estivesse causando isso, mas se eu modificar as opções do FD não fez diferença:
Suspeito que o YouTube provavelmente está reduzindo a raspagem porque eles estão tendo o mesmo problema de raspagem de IA que todo mundo, mas não tenho certeza do que especificamente está fazendo com que obtenhamos a resposta em branco (que parece que obtém as tags meta/title preenchidas via JS da mesma forma que se você visitar no navegador).
Este código aqui para o oneboxing do YouTube é o que espera que as tags de título + imagem sejam preenchidas:
Continuarei investigando ![]()
Pode ser que eles estejam enviando apenas o que parece necessário para economizar largura de banda? Nossos Oneboxes usam um agente de usuário de navegador, então talvez eles apenas honrem isso?
Ok, acho que tenho uma solução aqui, deveríamos usar oEmbed para essas coisas do YouTube em vez disso:
Acho que não, parece que são 2 coisas:
No geral, o URL do oEmbed parece mais seguro, para o vídeo do OP é https://www.youtube.com/oembed?url=https://youtube.com/shorts/Cs3sTnLO6EE&format=json e você obtém este tipo de resposta:
Ok, com essa correção mesclada, isso está funcionando agora ![]()
Observe que as respostas de URLs onebox são armazenadas em cache por 1 dia; precisei executar isso no console: Oneboxer.preview("https://youtube.com/shorts/Cs3sTnLO6EE", invalidate_oneboxes: true) para ver o novo resultado.
Este tópico foi fechado automaticamente após 2 dias. Novas respostas não são mais permitidas.