Я подтвердил, что:
…превращаются в прозрачный прямоугольник:
В DOM отображается:
<img src="" width="480" height="360" title=" - YouTube" style="aspect-ratio: 480 / 360;">
Однако при публикации они отображаются:
Я подтвердил, что:
…превращаются в прозрачный прямоугольник:
В DOM отображается:
<img src="" width="480" height="360" title=" - YouTube" style="aspect-ratio: 480 / 360;">
Однако при публикации они отображаются:
Подтверждено, хорошая находка. Пока добавлю приветствие к PR и оставлю комментарий для команды, чтобы они провели первоначальный анализ.
Это интересный случай: у меня здесь, на Meta, воспроизводится проблема со ссылками из исходного сообщения, но локально и на нашем внутреннем сайте Discourse они загружаются и отображаются корректно:
@rokejulianlockhart, эти ссылки не отображаются корректно на вашем собственном сайте или только здесь, на Meta?
@martin, некоторые другие тоже:
С https://www.youtube.com/watch?v=Cs3sTnLO6EE&lc=Ugyi1VtrCVd2POTc82N4AaABAg#:~:text=A%20Screencast%20Of%20LinkedIn%20Persona%20Verification%20Failure это воспроизводится на:
Однако на discussion.fedoraproject.org это отображается так:
С https://youtube.com/shorts/Cs3sTnLO6EE воспроизводится следующее:
…на:
Однако, как и раньше, на discussion.fedoraproject.org это отображается так:
Что Fedora делает так правильно?
Решена ли эта проблема? Я создал тему по аналогичной проблеме, которая сейчас возникает на моём форуме:
@hameedacpa, это совершенно не имеет отношения к тому, так как речь идет о предпросмотре. Кроме того, вы можете убедиться, что проблема не устранена, просто воспользовавшись предпросмотром. Я предлагаю вам установить переводчик.
Я нашел эту тему, включающую частичную проблему, с которой я тоже столкнулся.
На самом деле все видео на YouTube не работают как раньше, и мои форумы не имеют кастомизации, так как они основаны на оригинальной доске.
@hameedacpa, спасибо. Это похоже, хотя я сомневаюсь, что эквивалентно. Наличие некорректного значка миниатюры, по-видимому, свидетельствует об этом наряду с другим соотношением сторон тега <img. Если вы добавите эти детали в тему 387672/1, они будут там полезны. Если же различия вызваны лишь браузером, это будет классифицировано как частичный дубликат данной темы.
Кстати, укажите версию вашего браузера, версию Discourse и фактическую разметку отрендеренного содержимого в упомянутой теме. В настоящее время там есть только скриншот, а информация разбросана по нескольким последовательным сообщениям; вам нужно приложить усилия, чтобы оформить это прилично, чтобы получить бесплатную помощь.
У нас что-то идёт не так в потоке Onebox, думаю, связано с перенаправлением/FinalDestination. Если я использую curl следующим образом:
curl -L https://youtube.com/shorts/Cs3sTnLO6EE
Я могу найти title и другие meta-теги в ответе:
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>
Однако, когда я получаю ответ через наш код oneboxer, это единственные теги (кроме script и style), которые я получаю в <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">
Думал, возможно, это ignore_redirects вызывает проблему, но если я изменю опции FD, это не внесло никаких изменений:
Подозреваю, что YouTube, вероятно, ограничивает парсинг, так как у них та же проблема с AI-скраперами, что и у всех остальных, но не уверен, что конкретно заставляет нас получать пустой ответ (который выглядит так, будто meta/title-теги заполняются через JS так же, как при посещении в браузере).
Этот код для oneboxing YouTube ожидает, что теги title и image будут заполнены:
Продолжу расследование ![]()
Возможно, они передают только то, что кажется необходимым, чтобы сэкономить трафик? Наши Oneboxes используют агент браузера, поэтому, возможно, они просто учитывают это и говорят: «Круто. Тогда вам не нужен OpenGraph»?
Кажется, у меня есть решение: для таких случаев с YouTube лучше использовать oEmbed:
Я так не думаю. Похоже, проблема в двух вещах:
В целом, URL oEmbed кажется более надёжным. Для видео из оригинального поста это https://www.youtube.com/oembed?url=https://youtube.com/shorts/Cs3sTnLO6EE&format=json, и вы получаете ответ примерно такого вида:
Отлично, после объединения этого исправления всё работает ![]()
Обратите внимание, что ответы URL для onebox кэшируются на 1 день. Чтобы увидеть новый результат, мне пришлось выполнить в консоли команду Oneboxer.preview(“https://youtube.com/shorts/Cs3sTnLO6EE”, invalidate_oneboxes: true).
Эта тема была автоматически закрыта через 2 дня. Новые ответы больше не принимаются.