Второй день наблюдаются проблемы с просмотром видео на YouTube.
Новостные агрегаторы уже окрестили это «масштабным сбоем» — Масштабный сбой YouTube.
Некоторые высказывают предположения, что это всевидящий «Роскомнадзор» чего-то там заблокировал, и не смотреть нам больше любимых котиков:)
Стало интересно (к тому же проблема наблюдалась еще вчера). Решил немного покопаться.
Все оказалось до банальности просто — проблема в проценте. Да, именно один процент не позволяет нам смотреть любимые видосики.
Перед некоторыми видео вставляется реклама. И один такой ролик (как минимум) убивает плеер ютюба.
Как удалось выяснить по минифицированному коду
www.youtube.com/yts/jsbin/player-vflGoYKgz/ru_RU/base.js
function(a,b){return a?b?(0,window.decodeURI)(a.replace(/%25/g,"%2525")):(0,window.decodeURIComponent)(a):""};
— каждый урл (возможно не каждый, но часть точно) обрабатываются стандартной функцией window.decodeURI.
Она не переваривает процент в конце (20%). А именно обработка урла
домен_одного_ритейлера/%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C_CashBack_20%
приводит к падению с ошибкой «URIError: malformed URI sequence».
Решается просто — дополнительная проверка или вырезание процентов.
Ждем исправления от Google :)
Комментариев нет:
Отправить комментарий