Перезапуск YouTube¶
XC_VM может использовать прямую трансляцию с YouTube в качестве источника потоковой передачи и повторно транслировать ее на свой
строки, как и на любом другом канале. Вы добавляете ссылку на страницу YouTube в качестве источника; панель
превращает его в воспроизводимый поток с помощью встроенного yt-dlp и извлекает его с помощью ffmpeg.
Чтобы это работало на сервере в центре обработки данных, вам нужен HTTP-прокси для каждого Трансляция на YouTube. На этой странице объясняется, почему, как это настроить и как устранить неполадки.
Зачем нужен прокси-сервер¶
YouTube блокирует IP-адреса дата-центров. Без прокси-сервера трансляция с хостинга сервер выходит из строя из-за:
Две вещи определяют, как следует использовать прокси-сервер:
- Воспроизводимая ссылка привязана к одному 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.
Поиск работающих прокси-серверов: Проверка прокси-серверов¶
Инструменты → Проверка прокси-сервера проверяет весь список прокси-серверов таким образом, чтобы YouTube stream использует их, так что вы можете выбрать работающие из сотен или тысяч.
- Вставьте ссылку на трансляцию на YouTube, которая имеет значение живи прямо сейчас.
- Вставьте прокси-серверы, по одному на строку (
ip:portилиhttp://user:password@host:port). - Установите, сколько прокси-серверов нужно проверять одновременно (по умолчанию 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¶
- Открыть Потоки → Добавить поток.
- На вкладке Подробности укажите потоку имя и категорию, как обычно.
-
На вкладке Источники добавьте ссылку на прямую трансляцию на YouTube, например:
Поддерживаемыми формами ссылок являются https://www.youtube.com/watch?v=... и
https://youtu.be/....
-
На вкладке Передовой введите HTTP-прокси-сервер, например, прокси-сервер этого потока:
-
На той же вкладке Передовой оставьте Прямой источник выключенным. При использовании прямого источника панель отсылает зрителей на саму ссылку YouTube, которая не воспроизводится за пределами IP-адрес прокси-сервера.
- Выберите сервер(ы) на вкладке Серверы и сохраните. Запустите трансляцию.
Поток будет разрешен и загружен на сервер, который его запускает. В подсистеме балансировки нагрузки с этого узла используется один и тот же прокси-сервер, поэтому каждый узел, который запускает трансляции 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). Используйте учетные данные, предназначенные для
эта цель.