Ленивый Onebox видео не загружается корректно для некоторых видео на YouTube

Недавно пользователи сообщили о проблеме с встраиванием видео YouTube. Некоторые ссылки на YouTube работают как раньше, некоторые отображаются частично, а некоторые полностью не работают.

Примеры:
(Полностью работает)

(Есть изображение — нет заголовка)

(Нет изображения, нет заголовка)

Кажется, что ссылка для встраивания YouTube https://www.youtube.com/embed/{video_id} не работает для видео, у которых есть частичные одноблочные элементы.

4 лайка

Для меня общей проблемой были «Shorts», которые регулярно ломаются вот таким образом.

Интересно, связано ли это с тем, что эскиз на стороне YouTube генерируется с существенной задержкой?

Кажется, это часто исправляется пересозданием поста, но согласен, было бы неплохо, если бы это вообще не происходило.

3 лайка

Если я правильно понимаю, система получает миниатюру по этому адресу: discourse/lib/onebox/engine/youtube_onebox.rb at main · discourse/discourse · GitHub

Я проверил это вручную: миниатюры иногда загружаются немного медленнее, но не настолько критично. На данный момент результаты стабильны. Если onebox не работает для какого-то видео, он больше никогда не будет работать.

По моим тестам, пересборка поста каждый раз даёт один и тот же результат. Добавлю, что meta.discourse.org ведёт себя точно так же, как моя установка Discourse.

1 лайк

На видео, которое вы поделили, критически важным URL является мета-тег og:image, который выглядит так:


https://i.ytimg.com/vi/XdU2mwcUzcg/hqdefault.jpg

Похоже, что он валиден.

Так что да, это действительно похоже на проблему с OneBox?

4 лайка

+1 к этой проблеме.

В моей установке наблюдаются все различные поведения YT oneboxing, описанные выше.

Первый инцидент был зафиксирован пользователями 26 июля 2024 года.

Только что обновил Discourse и Docker, и теперь всё, кажется, исправлено. Потому что, конечно же, всё работает после того, как вы поставите +1 к багу!

Не уверен, что это тот же баг
Вставка https://www.youtube.com/watch?v=RCSQlmUnMFs

Дает очень странное предварительное отображение в редакторе

2 лайка

Сообщаем вам, что мы отслеживаем эту ситуацию и постараемся решить её в течение примерно следующих 4 недель.

Если кто-то из участников сообщества выяснит, в чём проблема, pr-welcome

8 лайков

Было ли обнаружено что-то ещё об этой ошибке?

Снова получаю жалобы — я также сейчас на канале -dev (но жду, чтобы вернуться на tests-passed)

Извините, пока больше нечего сообщить, но это уже в нашем списке.

Кажется, YouTube отправляет разный контент в зависимости от IP-адреса, с которого происходит обращение, и это может быть причиной проблемы.

1 лайк

Привет, @WaitroseCarpark. Как отметил Сэм, проблема, похоже, связана с IP-адресом сервера, пытающегося получить доступ к этим видео, вероятно, из-за изменений, внесённых YouTube для защиты от ботов. Тем не менее мы всё ещё расследуем этот вопрос.

Тем временем я объединил этот PR, что должно помочь в случаях, когда метаданные видео недоступны:

Продолжаете ли вы сталкиваться с этими проблемами после применения этого патча?

3 лайка

Спасибо @jancernik — я попытался попросить Discourse выбрать это исправление, используя ChatGPT в качестве руководства (как указано выше, я всё ещё жду перехода с dev-канала), но это немного выше моих возможностей. Надеюсь, кто-то ещё, кто сталкивается с этой проблемой, сможет попробовать?

На самом деле — я думаю, что применил исправление. Попробовал видео с YouTube, у которого есть известные проблемы, и происходит то же самое. Хотя было бы приятно услышать то же самое от другого человека, так как я не очень хорошо разбираюсь в Docker/CLI, это меня пугает до смерти.

Исправление, похоже, работает. Я протестировал его на нескольких видеоссылках.

2 лайка

Эта тема была автоматически закрыта через 4 дня. Новые ответы больше не допускаются.