Задача
Стандартные вставки YouTube (youtube-nocookie.com/embed/) ненадежны для воспроизведения на 100% без рекламы, так как реклама (особенно прероллы или в середине роликов в прямых трансляциях) по-прежнему можно обслуживать через iframe или загружать через API YouTube.
Я наблюдал конкретную реализацию — например, на таких сайтах, как lofimusic.app (который транслирует канал Lofi Girl), — которая успешно загружает поток YouTube и воспроизводит его в специальном минимальном пользовательском интерфейсе.
Моя гипотеза состоит в том, что этот подход полностью обходит официальный проигрыватель путем поиска и загрузки. базовый URL-адрес манифеста HLS/DASH, фильтрация сегментов рекламы на уровне манифеста и воспроизведение потока контента непосредственно в библиотеке, например video.js.
Что я пробовал
- Стандартное встраивание youtube-nocookie.com: это уменьшает отслеживание, но по-прежнему позволяет показывать рекламу из видео создатель/YouTube.
- API YouTube IFrame Player: использование официального API дает контроль, но учитывает все настройки рекламы, что делает невозможным блокировку предварительной и средней части роликов на стороне клиента.
- Прослушивание потока на стороне клиента (консоль разработчика): попытка мониторинга сети трафик для файлов манифеста .m3u8 или .mpd при загрузке потока, но проигрыватель скрывает URL-адрес, и первоначальный запрос манифеста часто подписан/эфемерен.
Основной вопрос
Для существующего канала YouTube с прямой трансляцией (например, Lofi Girl) какой наиболее надежный и современный метод на стороне клиента — в первую очередь использование JavaScript и/или специальной медиа-библиотеки — чтобы: - Получить текущий идентификатор видео с истекающим сроком действия (или идентификатор потока) со страницы канала прямой трансляции.
- Создать или получить конкретный URL-адрес манифеста HLS (.m3u8) или DASH (.mpd) для потока необработанного мультимедиа.
- Фильтровать/проксировать этот манифест на стороне клиента (например, в Service Worker или компоненте WebAssembly), чтобы отделить сегменты, связанные с рекламой (маркеры SSAI или CSAI), перед началом воспроизведения в пользовательском проигрывателе (например, Video.js или hls.js)?
Мне конкретно нужны сведения о первых двух шагах: как программно получить URL-адрес необработанного потока из живое видео YouTube на стороне клиента без постоянного прокси-сервера.
Подробнее здесь: https://stackoverflow.com/questions/797 ... ith-no-ads
Мобильная версия