Перейти к содержанию

Перезапуск YouTube

XC_VM может использовать прямую трансляцию с YouTube в качестве источника потоковой передачи и повторно транслировать ее на свой строки, как и на любом другом канале. Вы добавляете ссылку на страницу YouTube в качестве источника; панель превращает его в воспроизводимый поток с помощью встроенного yt-dlp и извлекает его с помощью ffmpeg.

Чтобы это работало на сервере в центре обработки данных, вам нужен HTTP-прокси для каждого Трансляция на YouTube. На этой странице объясняется, почему, как это настроить и как устранить неполадки.


Зачем нужен прокси-сервер

YouTube блокирует IP-адреса дата-центров. Без прокси-сервера трансляция с хостинга сервер выходит из строя из-за:

ERROR: [youtube] ...: Sign in to confirm you're not a bot.

Две вещи определяют, как следует использовать прокси-сервер:

  • Воспроизводимая ссылка привязана к одному IP-адресу. Ссылка, по которой YouTube раздает воспроизведения только с IP, который запрашивал это. Таким образом, панель отправляет оба шага одним и тем же прокси-сервер: получение ссылки (yt-dlp) и загрузка видео (ffmpeg).
  • YouTube ограничивает каждый IP-адрес. При каждом запуске, перезапуске и проверке исходного кода YouTube запрашивается повторно, а само видео загружается через прокси. Несколько потоков на одном IP-адресе являются достаточно, чтобы заблокировать этот IP-адрес. Укажите у каждой трансляции на YouTube есть свой собственный прокси-IP.

Требования к прокси-серверу

Требование Почему?
HTTP-прокси-сервер (http://) ffmpeg не может использовать прокси-серверы SOCKS. Прокси-сервер socks5:// позволяет панели получать ссылку, но затем загрузка видео напрямую прекращается и завершается ошибкой.
Not a hosting / data-center IP YouTube блокирует доступ к сетям центров обработки данных. Используйте домашний или мобильный прокси-сервер или сервер, подключенный к домашней сети.
One IP per stream Это увеличивает лимит YouTube на количество IP-адресов. Если вы работаете с местным провайдером, используйте отдельный дополнительный сеанс для каждой трансляции.
Sticky, not rotating per request Ссылка должна быть загружена с того IP-адреса, с которого она была получена, на все время трансляции (срок действия ссылки составляет около 6 часов).
Enough traffic Все видео передается через прокси-сервер: скорость передачи 1080p составляет около 3-6 Мбит/с. Плата за использование локальных прокси-серверов обычно взимается за гигабайт.

Допустимые форматы для значения прокси-сервера:

ip:port
http://ip:port
http://user:password@host:port

Значение без схемы (ip:port) рассматривается как http://ip:port.


Поиск работающих прокси-серверов: Проверка прокси-серверов

Инструменты → Проверка прокси-сервера проверяет весь список прокси-серверов таким образом, чтобы YouTube stream использует их, так что вы можете выбрать работающие из сотен или тысяч.

  1. Вставьте ссылку на трансляцию на YouTube, которая имеет значение живи прямо сейчас.
  2. Вставьте прокси-серверы, по одному на строку (ip:port или http://user:password@host:port).
  3. Установите, сколько прокси-серверов нужно проверять одновременно (по умолчанию 5, максимум 20) и нажмите Начать.

Каждый прокси-сервер получает один из этих результатов:

Результат Значение
OK Прокси-сервер отвечает, YouTube принимает его, и видео воспроизводится через него. Готово к использованию.
Blocked by YouTube Прокси-сервер работает, но YouTube отказывается указывать его IP ("Войдите в систему, чтобы подтвердить, что вы не бот").
Does not play YouTube дал ссылку, но видео не воспроизводится через прокси-сервер, обычно потому, что это SOCKS-прокси или он меняет IP-адрес при каждом запросе.
Not responding Прокси-сервер не ответил в течение 10 секунд, или был введен неправильный логин.

В столбце ip-адрес указан выходной IP-адрес каждого прокси-сервера. Несколько прокси-серверов с одинаковым выходным IP-адресом учитывается как один IP-адрес для YouTube, поэтому такие прокси помечаются (дублируются). Работа с копиями (по одному на IP-адрес) копирует по одному рабочему прокси-серверу на каждый выходной IP-адрес, готовый к вводу в ваш потоки. Поверх обычного http, где браузер не имеет доступа к буферу обмена, помещается список вместо этого перейдите в поле прокси-сервер.

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


Настройка трансляции на YouTube

  1. Открыть Потоки → Добавить поток.
  2. На вкладке Подробности укажите потоку имя и категорию, как обычно.
  3. На вкладке Источники добавьте ссылку на прямую трансляцию на YouTube, например:

    https://www.youtube.com/watch?v=rFZHOHl-L8A
    

Поддерживаемыми формами ссылок являются https://www.youtube.com/watch?v=... и https://youtu.be/....

  1. На вкладке Передовой введите HTTP-прокси-сервер, например, прокси-сервер этого потока:

    http://user:password@proxy.example.com:8080
    
  2. На той же вкладке Передовой оставьте Прямой источник выключенным. При использовании прямого источника панель отсылает зрителей на саму ссылку YouTube, которая не воспроизводится за пределами IP-адрес прокси-сервера.

  3. Выберите сервер(ы) на вкладке Серверы и сохраните. Запустите трансляцию.

Поток будет разрешен и загружен на сервер, который его запускает. В подсистеме балансировки нагрузки с этого узла используется один и тот же прокси-сервер, поэтому каждый узел, который запускает трансляции YouTube, должен быть может подключиться к прокси-серверу. Чтобы проверить трансляцию перед запуском, используйте команду в Устранение неполадок на сервере, на котором он будет запущен.


Что поддерживается

  • Прямые трансляции на YouTube: поддерживается. Панель выбирает один поток, который несет как видео, так и аудио (до 1080p).
  • Обычные (не в прямом эфире) Видеоролики на YouTube: пока не поддерживается. YouTube отказывается от их загружайте ссылки на панель yt-dlp без использования среды выполнения JavaScript, даже через полномочие.
  • Другие платформы решили проблему таким же образом: Twitch, Vimeo, Dailymotion, Facebook, Ссылки на прямую трансляцию, Ustream и CNN также проходят через yt-dlp и используют прокси-сервер для трансляции точно так же.

yt-dlp автоматически обновляется на каждом сервере раз в день, поэтому изменения на YouTube боковые панели обычно выбираются без обновления панели.


Диагностика

Самая быстрая проверка - это запустить yt-dlp на сервере так, как это делает панель, так как xc_vm пользователь и прокси-сервер потока:

sudo -u xc_vm /home/xc_vm/bin/yt-dlp \
  --proxy 'http://user:password@proxy.example.com:8080' \
  --extractor-args 'youtube:player_client=default,android_vr' \
  -q --get-url --skip-download -f best \
  'https://www.youtube.com/watch?v=VIDEO_ID'

Рабочая установка печатает одну ссылку https://manifest.googlevideo.com/....

Симптом Причина Чинить
Sign in to confirm you're not a bot В потоке нет прокси-сервера, или IP-адрес прокси-сервера заблокирован или помечен как хостинг. Установите HTTP-прокси-сервер для потока; используйте локальный/домашний IP-адрес; дайте потоку IP-адрес, который не используется другими потоками.
Requested format is not available Версия панели появилась раньше, чем поддержка YouTube restream. Обновите панель.
Ссылка найдена, но поток не запускается или сегменты не работают (403 Forbidden, Failed to open segment) Видео загружается с другого IP-адреса, отличного от того, с которого была получена ссылка, обычно потому, что прокси-сервер SOCKS. Используйте HTTP-прокси.
Работает некоторое время, затем останавливается сразу для нескольких потоков Несколько стримов YouTube используют один IP-адрес прокси-сервера, и скорость их передачи была ограничена. Один IP-адрес прокси-сервера на поток.
Unable to connect to proxy / тайм-ауты Прокси-сервер недоступен с этого сервера или введен неправильный логин. Протестируйте его с помощью curl -x 'http://user:password@host:port' https://api.ipify.org на сервере; он должен вывести IP-адрес прокси-сервера.

Обратите

Логин и пароль прокси-сервера хранятся в настройках стрима и отображаются в командная строка ffmpeg на сервере (отображается в ps). Используйте учетные данные, предназначенные для эта цель.