Рестриминг (практика трансляции чужого потока на собственном сайте ради доходов от рекламы без оплаты за пропускную способность) — проблема не новая, но она становится всё более масштабной и сложной, как мы могли убедиться во время чемпионата мира 2026 года.
Для крупных или ценных прямых трансляций многие из таких пиратских сайтов достигли масштабов, когда они функционируют как полноценные стриминговые сервисы: у них есть короткое окно для успешной трансляции события и платящая аудитория, которая ожидает того же уровня качества и надежности, что и от легального сервиса.
Это открывает новую интересную динамику, которую мы можем использовать в рамках нашего арсенала против пиратства: вместо того чтобы просто блокировать пиратские потоки и запускать игру в кошки-мышки, в ходе которой пираты меняют домены, IP-адреса и учетные записи пользователей для запуска новых версий, мы можем применять более недетерминированные способы ухудшения качества просмотра и делать трансляцию несмотрибельной так, чтобы владельцы сайтов не сразу догадались о происходящем.
Выявление пиратов
Мы подробнее рассмотрим способы обнаружения рестриминга и выявления конкретных учетных записей пользователей, стоящих за ним, в одной из будущих публикаций, но к числу распространенных методов относятся комбинации следующих:
- Токенизация URL-адресов, например, с помощью токенов CAT
Токенизация URL-адресов, например, с помощью токенов
- Ограничение скорости на периферии (Edge Rate Limiting) с использованием счетчиков для обнаружения избыточных запросов с определенного IP-адреса, ASN и т. д.
Ограничение скорости на периферии (Edge Rate Limiting) с использованием счетчиков для обнаружения избыточных запросов с определенного IP-адреса, ASN и т. д.
- Снятие отпечатков JA4 в сочетании с управлением ботами (Bot Management) для обнаружения автоматизированных инструментов, пытающихся маскироваться под обычных пользователей
Снятие отпечатков JA4 в сочетании с управлением ботами (Bot Management) для обнаружения автоматизированных инструментов, пытающихся маскироваться под обычных пользователей
- Анализ логов в реальном времени и обнаружение аномалий, например, для выявления необычно большого объема трафика из неожиданного региона с учетом авторских прав или поиска общих черт у подозрительных клиентов
Анализ логов в реальном времени и обнаружение аномалий, например, для выявления необычно большого объема трафика из неожиданного региона с учетом авторских прав или поиска общих черт у подозрительных клиентов
Предположим, у вас есть способ с высокой степенью уверенности обнаруживать весь трафик рестриминга или его часть. Теперь мы можем перейти к самой интересной части — порче трансляций!
Тактика 1: Режим «Черепаха»
В нашей обычной работе мы помогаем стриминговым сервисам масштабироваться по всему миру и устранять любые источники буферизации при воспроизведении видео. Однако сегодня мы займемся противоположным.
Fastly предлагает переменную VCL client.socket.pace, которая позволяет задать скорость потоковой передачи данных обратно конечному пользователю. Это позволяет сделать следующее:
Внезапно зритель переносится обратно в 1995 год, получая по несколько фрагментов видео каждую минуту и надеясь, что никто не попытается воспользоваться домашним телефоном и не прервет соединение.
В следующем примере замедление применяется к каждому третьему фрагменту видео. Проверьте это и представьте, что это напряженный боксерский матч, а не большой анимированный кролик.
Вы также можете открыть вкладку «Сеть» (Network) в своем браузере и увидеть периодические задержки в действии:
Тактика 2: Проявление творчества
Подобно вызову буферизации, мы также можем визуально ухудшать видео теми способами, которых обычно стараемся избегать.
В стриминге ABR мы создаем несколько копий видео с разным качеством, а затем позволяем плееру выбрать наивысшее качество, с которым справится соединение зрителя. Этот выбор качества может меняться в ходе трансляции вверх и вниз, чтобы попытаться избежать буферизации и поддержать оптимальное качество по мере изменения условий.
Но что, если намеренно выдавать пиратским потокам максимально низкое качество? Что, если пойти дальше и создать еще более низкокачественную версию, которая будет транслироваться исключительно пиратам?
Прежде чем погрузиться в наше путешествие к видео качества «картошка», давайте сделаем краткий экскурс в то, как работают URL-адреса сегментов видео и CDN.
Обычно видеопровайдер создает похожие URL-адреса для каждого видеосегмента / уровня качества, например:
- /video/1080p/segment-2.ts
- /video/720p/segment-2.ts
- /video/480p/segment-2.ts
- /video/1080p/segment-3.ts
- /video/720p/segment-3.ts
- /video/480p/segment-3.ts
Хотя они часто соответствуют аналогичной структуре файлов в каком-либо хранилище, это не обязательно так: они могут указывать, например, на службу транскодирования на лету (on-the-fly), которая быстро кодирует нужный сегмент в момент запроса, помогая избежать затрат на предварительное транскодирование сегментов или видео, которые никто никогда не смотрит.
Нет даже никакой гарантии, что URL-адрес вроде /video/1080p/segment-2.ts должен ссылаться на один и тот же файл для каждого пользователя! Мы можем проявитьхитрость на бэкенде и направить этот же URL к версиям сегмента с разными дорожками аудиоязыка на основе определения кода страны пользователя на CDN (кстати: пожалуйста, не делайте так!).
Мы можем использовать это в своих интересах: во-первых, мы просим ffmpeg создать один вариант в разрешении 1080p и еще один дополнительный в непригодном для просмотра низком разрешении:
Теперь нам нужен лишь простой переключатель VCL, чтобы решить, какую версию подавать
Теперь URL-адреса для зрителей всегда будут выглядеть как /video/1080p/segment-<number>.ts, но для пиратских зрителей они будут отправляться на бэкенд как запрос на /video/potato/segment-<number>.ts.
Чтобы увидеть это в действии, посмотрите следующее видео: для имитации обнаружения пиратства я задействовал условие случайности 50/50 вместо реальной проверки на пиратство, поэтому вы должны видеть примерно половину сегментов в нормальном качестве, а половину — в ухудшенном.
Все примеры в этой службе работают в реальном времени на реальных сервисах Fastly. Мы использовали случайность вместо проверки на пиратство, так что вы можете перезагрузить страницу или открыть две страницы рядом и увидеть, как фрагменты видео с ухудшенным качеством меняются каждый раз, и всё это без необходимости дополнительных обращений к источнику.
Кроме того, невозможно определить происходящее из манифеста, который выглядит одинаково для всех зрителей (не стесняйтесь открыть вкладку «Сеть» в вашем браузере и проверить!):
Тактика 3: Манипуляция с манифестом
Если создание дополнительных вариантов или модификация источника невозможны, альтернативным вариантом, который можно выполнить полностью на уровне CDN, является манипуляция с манифестами с помощью Fastly Edge Compute для показа какого-либо альтернативного контента пиратским пользователям.
Существует много способов достичь этого, например путем перенаправления плеера с помощью манифеста-вставки Server Guided Ad Insertion, но в примере ниже мы используем тег HLS #EXT-X-DISCONTINUITY для периодической вставки нашего контента непосредственно в поток. Зеленый текст — это то, что видят плееры большинства пользователей, а красный — то, что будет вставлено только для пиратов:
Здесь открывается широкий простор для творчества — вы можете просто транслировать клипы Рика Эстли, но в целом мы заметили, что пользователи Fastly успешно транслируют контент, максимально приближенный к реальному, например:
- Матч между теми же футбольными командами, но прошлогодней давности
Матч между теми же футбольными командами, но прошлогодней давности
- Бесконечная петля боев андеркарда по боксу, но никогда — главный бой
Бесконечная петля боев андеркарда по боксу, но никогда — главный бой
- Бесконечная пре-ролл реклама
Бесконечная пре-ролл реклама
- Для услуг потокового аудио — другую песню того же исполнителя. Это особенно эффективно против скрапинга, когда подмену могут заметить лишь спустя долгое время
Для услуг потокового аудио — другую песню того же исполнителя
- Это особенно эффективно против скрапинга, когда подмену могут заметить лишь спустя долгое время
Это особенно эффективно против скрапинга, когда подмену могут заметить лишь спустя долгое время
Расширенный режим: Случайный выбор
Еще один метод продления времени до обнаружения описанных выше техник при одновременном максимальном увеличении оттока пользователей-пиратов заключается в добавлении некоторой недетерминированности, например, путем воздействия только на определенный процент сегментов, устройств, регионов и т. д. в любой заданный момент времени.
Если объединить все это воедино, мы получим следующее проклятое видео — насладитесь этим пиршеством случайной деградации видео, буферизации и нелогичных переходов, от которых заплакал бы даже самый закаленный пират:
Делаем пиратство мучительным (и невыгодным)
Пиратство прямых трансляций — это сложное пересечение экономики, психологии и технологий, и борьба с ним может включать воздействие на любое из этих направлений и на все они сразу. Для высокоценного пиратского живого видео плохое качество просмотра может означать пропуск ключевых моментов в разовом событии. Чем чаще это происходит и чем досаднее опыт, тем выше вероятность того, что зрители «уйдут» обратно к легитимным сервисам.
Готовы защитить свои прямые трансляции с помощью более умных и креативных средств защиты? Пообщайтесь с нашими экспертами, чтобы узнать, как Fastly может помочь вам остановить пиратов на лету.







