У меня проблема с встраиванием видео с YouTube — ошибка YouTube 153

У меня проблема с встраиванием видео с YouTube

Вот ссылка на мою тему

В чём ваша проблема?

Есть ли решение этой проблемы? Есть ли настройки, которые напрямую связаны с этим?

Происходит ли это в безопасном режиме? Есть ли ошибки в браузере? Спасибо.

Я перепробовал всё, но ничего не работает. Все видео с YouTube на моём сайте не воспроизводятся и выдают эту ошибку.

@hameedacpa, вы ещё не… Чтобы проиллюстрировать, похоже, что эта проблема уже решена в другом месте:

Вы уже пробовали какие-либо онлайн-решения?

Я не думаю, что это имеет отношение к моему случаю

@hameedacpa, почему? Это тот же код ошибки.

К сожалению, я попробовал рекомендованное решение, но оно не сработало. Я думаю, что проблема внутренняя.

Не уверен, связано ли это с этим, но я вижу, что блокируется огромное количество файлов cookie.

Также в консоли нет ошибок, и проблема сохраняется даже в безопасном режиме…

@hameedacpa, а что насчет добавления https://youtube.com/ в настройку allowed_iframes? Не уверен, что это поможет, но стоит попробовать.

Я сделал это, но пользы нет

Надеюсь, это поможет +1 к жалобе OP. Без каких-либо изменений (я на стабильной ветке) у меня тоже возникает та же ошибка, даже когда вы нажимаете «Воспроизвести» на существующем видео, которое раньше работало:

Я пробовал через мобильное устройство, обходя офисный фаервол, отключая Cloudflare. Пока ничего не помогло.

Тестирование здесь показывает ошибку в редакторе, но в форуме всё отображается корректно:

Обновление:

YouTube недавно ужесточил свои политики, поэтому новые коды встраивания теперь включают referrerpolicy=“strict-origin-when-cross-origin” вместе с обновлёнными атрибутами allow. Я нашёл эту статью:

Без этих параметров YouTube отклоняет запросы конфигурации из iframe, и вы видите ошибку 153.

Также см.:

Мне удалось решить эту проблему с помощью Cloudflare до официального исправления.

Для тех, кто столкнулся с той же проблемой: причина в том, что YouTube теперь отклоняет запросы на встраивание, в которых отсутствует корректный заголовок политики реферера.

Я добавил заголовок Referrer-Policy через Transform Rules в Cloudflare (Workers не требуются).

Вот что я сделал:

  1. В Cloudflare перейдите в Rules → Transform Rules → HTTP Response Header Modification.

  2. Создайте новое правило, выберите All incoming requests и добавьте статический заголовок:

    Header name: Referrer-Policy
    Value: strict-origin-when-cross-origin
    
  3. Разверните правило.

Удалю это после официального исправления.

Огромное спасибо всем вам!

Я обнаружил проблему, которая связана со следующим изменением, которое необходимо внести в файл vhost:

Ниже приведено решение от ChatGPT:

хм :thinking:

Как я понимаю, в Discourse внесённые вами изменения в Nginx внутри этого контейнера будут удалены при следующей команде ./launcher rebuild app или при обновлении через интерфейс.

Если вы хотите, чтобы изменение сохранилось, не редактируйте работающий контейнер Discourse напрямую. Вместо этого внесите изменение в файл /var/discourse/containers/app.yml, чтобы оно сохранялось при пересборках и обновлениях.

После добавления вы можете выполнить пересборку:

./launcher rebuild app

Не все используют Cloudflare, но именно поэтому я выбрал его для этого исправления. Не пришлось пересобирать, это лишь временное решение.

Так как заголовки безопасности применяются по принципу «последний полученный заголовок имеет приоритет», это работает.

Это был самый быстрый и наименее инвазивный способ заставить всё работать. Но если вы вносите изменения внутри контейнера, имейте в виду, что вам придётся повторять их каждый раз при пересборке или обновлении Discourse. :slight_smile:

Я использую CloudPanel с Vhost и изменил предыдущее решение на основе рекомендации ChatGPT следующим образом:

У нас была такая же проблема несколько месяцев назад, но только у 3 пользователей. Наш администратор хостинга был в отъезде, и никто не имел доступа к настройкам хостинга, поэтому мы поступили так:

Отредактируйте тему и добавьте это в секцию «head»:

<meta name="referrer" content="strict-origin-when-cross-origin">

Ваше решение работает с этим мета-тегом