image

Независимый исследователь обнаружил, как можно украсть чужое приватное видео с YouTube. Для этого он использовал Google Ads.

При загрузке ролика на YouTube пользователь выбирает одну из трех настроек конфиденциальности: общедоступный, частный (только для пользователей, знающих URL видео), и приватный (доступ для учетных записей, которым дали разрешение).

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

Тогда автор поста решил использовать Google Ads. Он предназначен для создания рекламы во всех сервисах Google, включая YouTube. После создания учетной записи в Google Ads он разместил новую рекламу, которая включала целевое видео. В процессе создания объявления пользователь также пытался использовать идентификатор целевого частного видео, но безуспешно.

После размещения объявления исследователь начал изучать различные функции рекламы Google. Он обнаружил вкладку «Видео», где мог видеть список роликов, использованных в рекламе. Во вкладке обнаружился раздел «Аналитика» для целевого видео. В нем содержался встроенный проигрыватель, статистика и функция под названием Moments, которая позволяет рекламодателям «отмечать» определенные моменты видео, чтобы видеть, к примеру, когда появится метка логотипа компании.

image

В журналах прокси при проставлении отметок отправлялся POST-запрос с телом, включающим идентификатор видео:

POST /aw_video/_/rpc/VideoMomentService/GetThumbnails HTTP/1.1
Host: ads.google.com
User-Agent: Internet-Explorer-6
Cookie: [redacted]

__ar={"1":"kCTeqs1F4ME","2":"12240","3":"387719230"}

Где в параметре __ar 1 — это идентификатор видео, а 2 — время момента в миллисекундах.

Ответом было изображение в кодировке base64, которое представляло собой миниатюру, отображаемую Ads.

Тогда исследователь заменил идентификатор в параметре на URL своего видео.

После этого он загуглил «base64 to image» и вставил base64 в первый найденный декодер. Тот отобразил кадр из целевого видео.

Затем исследователь использовал скрипт Python, который генерирует видео из полученных изображений. Он загрузил кадры первых 3 секунд видео, декодировал их, а затем сгенерировал GIF.

Стоит отметить, что при таком способе кражи приватных видео есть несколько ограничений:

  • нужно знать идентификатор целевого видео,
  • отсутствие в новом ролике звука,
  • низкое разрешение.

А здесь можно найти информацию о том, как просматривать YouTube-видео по фрагментам и циклически.