NOTICE: By continued use of this site you understand and agree to the binding Conditions d'utilisation and Politique de confidentialité.
Install steps: Install a userscript manager, select Install, then open a website matched by the script.
HOWTO pour débutants en script utilisateur Chrome Edge Firefox
The following figures come from the original source and are separate from activity on this site.
Original script: I Hate Waiting
Source version: 3.5.11
Last source check:
Last successful check:
Requests received by this site are not proof that a user completed installation.
Clicking Install records a request on this site; it does not confirm installation. Not working after install? View troubleshooting and issues
Цель: ускорить загрузку страниц: на видеохостингах — приоритет главному видео, на остальных — приоритет видимому контенту.
Ускоряет загрузку и отображение любых сайтов. Работает незаметно в фоне с первой миллисекунды открытия страницы.
Ключевые улучшения по сравнению с серфингом без скрипта:
На видеохостингах (YouTube, Rutube, Twitch, Vimeo, Odysee, Tiktok, Bilibili, Dzen, VK, OK.ru, Rumble, Rambler.ru Платформа и др.) скрипт находит главный плеер на странице и принудительно ставит ему максимальный приоритет загрузки — видео начинает буферизоваться раньше, чем загрузятся баннеры, рекомендации и прочий контент страницы. На YouTube дополнительно отключается внутренняя система сбора метрик ytcsi/ytStats, которая работает в фоне и потребляет CPU; ускоряется загрузка рекомендаций и комментариев через content-visibility:auto. Для ускорения воспроизведения осуществляется «прогрев» CDN соединений: статических — до начала воспроизведения, динамических — в момент начала загрузки видео через PerformanceObserver (определяет реальный CDN-хост первого сегмента). На OK.ru главное видео дополнительно отслеживается через стандартный механизм всплытия событий (W3C MediaEvents) из Shadow DOM плеера.
На портал-агрегаторах с множественными источниками (LordFilm, Zetflix, Kinogo, LiveTV.sx, Smotret.tv и их известные зеркала), где у фильма или канала есть несколько альтернативных источников воспроизведения на выбор пользователя (вкладки-трансляторы, кнопки качества/источника), скрипт отслеживает, какой источник сейчас активен, и заново «прогревает» соединение при каждом переключении — даже если переключение не меняет URL страницы. Если выбранный источник напрямую достижим со страницы — его хост получает динамический preconnect; если реальный поток отдаётся через вложенный same-origin фрейм, внутрь которого скрипт намеренно не заходит (чтобы не запускать свою полную копию в каждом встроенном фрейме на каждом сайте), вместо этого повышается приоритет загрузки самого этого фрейма — чтобы цепочка доставки за ним стартовала раньше.
На обычных сайтах (статьи, новости, блоги, форумы) картинки и iframe вне видимой области экрана не загружаются, пока пользователь до них не доскроллит — браузер направляет весь доступный канал на то, что видно прямо сейчас. Картинки первого экрана грузятся с максимальным приоритетом. На медленном соединении — проактивно, при появлении элемента в DOM; на быстром — реактивно, через LCP Observer после первой отрисовки (флаг LCP_IMAGE_BOOST).
На всех сайтах скрипт блокирует отправку данных популярным трекерам аналитики (Google Analytics, Яндекс.Метрика, Facebook Pixel, Hotjar и др.) и удаляет их элементы из DOM до того как они успевают загрузиться. Внешние веб-шрифты не блокируют рендер текста — страница показывает текст системным шрифтом немедленно, а веб-шрифт догружается в фоне. Плавный скролл (scroll-behavior: smooth) заменяется на мгновенный отклик (кроме чатов, где это важно для UX).
Хост-специфичные оптимизации для VK/OK.ru (скрытие скелетонов и рекламы через CSS), Rutube (изоляция плеера, блокировка рекламы), Яндекс/Dzen (скрытие рекламных меток через ARIA и data-атрибуты), YouTube (расширенный набор блокировок рекламных элементов, endscreen, pause-overlay), а также портал-агрегаторы LordFilm/Zetflix-класса, упомянутые выше.
После загрузки страницы скрипт в фоне резолвит DNS для доменов ссылок на уже просмотренных экранах — переход по ссылке будет быстрее.
Оценка качества соединения происходит как при старте так и в процессе загрузки страницы на некоторых этапах применения различных оптимизаций: через тип соединения ОС, TTFB (с учётом редиректов) и показатели RTT/downlink. На медленном соединении применяются более агрессивные стратегии приоритизации.
Может ставить видео на паузу (кроме PiP «картинка-в-картинке»), если вы переключаетесь на другую вкладку — для экономии трафика и ресурсов (флаг PAUSE_ON_HIDDEN, по умолчанию включено). Если ваш боаузер использует на Mobile функцию продолжения проигрывания активного окна при выключении экрана смартфона, то этот флаг следует выключить: PAUSE_ON_HIDDEN= false
В режиме EXTREME (ON[E]) дополнительно: скрипты сторонних доменов получают низкий приоритет загрузки, при этом собственные модули сайта (Vue/React/Next.js чанки) защищены от занижения приоритета (флаг SAME_ORIGIN_SCRIPT_PROTECT). Собственные динамически созданные preconnect-соединения скрипта всегда защищены от этой очистки, независимо от того, к какому CDN они ведут.
Видеохостинги напрямую: YouTube, Rutube, Twitch, Vimeo, Odysee, TikTok, Bilibili, Dzen, VK, OK.ru, Видео Mail.ru, Кинопоиск, Rambler Платформа и другие, определяемые универсально по структуре URL/страницы (см. ниже) даже без явной записи.
Портал-агрегаторы с множественными источниками: LordFilm (+ зеркала: lordfilm.fi, lordfilms.lt, lordfilm.top, lordfilm.hk, llordfilm.ru), Zetflix, Kinogo (+ зеркала: kinigo.ec, kinogo.pl, kinogo.parts, kinogo.eu, kinogo.la, kinogo.film, kinogo.se, kinogo.net), LiveTV.sx, Smotret.tv.
Список пополняется — точный актуальный перечень смотрите в VIDEO_HOSTS в коде скрипта
VIDEO_HOSTS (покрывает и видеохостинги напрямую, и известные домены/зеркала портал-агрегаторов)VIDEO_PATH_SEGMENTSVIDEO_HOST_EXCEPTIONSCHAT_SKIP_HOSTS (для них отключаются scroll-оптимизации)VIDEO_CDN_MAP (служит и для статического preconnect). Не у каждого видеохостинга есть запись здесь: на портал-агрегаторах именно пользователь выбирает, какой источник использовать, поэтому угадывать его заранее часто означало бы прогреть не то соединение — такие хосты обслуживаются только динамически, срабатывая в момент, когда сам сайт раскрывает, какой источник он реально использует.Если часть страницы не открывается из-за блокировки аналитики — закомментируйте элемент в массиве TRACKERS. Если изменились CDN видеохостинга — обновите VIDEO_CDN_MAP.
При долгом нажатии (4 сек) на кнопку отображаются показатели загрузки страницы:
Кнопка циклически переключает режимы:
ON[A] → OFF → ON → ON[E] → ON[A]…
| Режим | Описание |
|---|---|
| ON[A] | Auto — автоматически выбирает ON для Desktop или ON[E] для Mobile |
| ON | Стандартные оптимизации без изменения визуального оформления сайта |
| ON[E] | Extreme — всё что в ON + деприоритизация сторонних скриптов, упрощение визуального оформления; подходит для медленного интернета или Mobile |
| OFF | Скрипт отключён для этого сайта; используйте если страница отображается некорректно |
DEBUG = false (по умолчанию)
Отображение в консоли (F12) метрик производительности: TTFB, load time, LCP-буст (кто назначил приоритет — браузер или IHW), качество соединения (_isSlow), защита собственных скриптов (SOP), canplay время плеера, а на портал-агрегаторах — ещё и каждое обнаруженное переключение источника с результирующим preconnect. Полезно для оценки эффекта на конкретной странице.
PAUSE_ON_HIDDEN = true (по умолчанию)
При переключении на другую вкладку ставит видео на паузу, при возврате — возобновляет. Не влияет на PiP. Работает на YouTube и Twitch. Отключите если сайт сам управляет паузой.
LCP_IMAGE_BOOST = true (по умолчанию)
На обычных сайтах (Mixed Content) повышает приоритет загрузки главного изображения страницы (LCP-кандидата). Стратегия зависит от скорости соединения: на медленном — проактивно при появлении элемента, на быстром — реактивно через LCP Observer.
SAME_ORIGIN_SCRIPT_PROTECT = true (по умолчанию)
В режиме ON[E] защищает скрипты собственного домена сайта (бандлы Vue/React/Next.js) от занижения приоритета. Без этого гидратация SPA-сайтов в EXTREME режиме могла задерживаться.
DYNAMIC_PRECONNECT_LIMIT = 3
Максимальное количество динамических preconnect-соединений к CDN видео за одну загрузку страницы. Браузер поддерживает ограниченное число параллельных соединений — не превышайте 3. На портал-агрегаторах этот лимит общий на все источники, между которыми пользователь переключается за время просмотра страницы, а не сбрасывается при каждом переключении.
BTN_BOTTOM = '70px'
Расстояние от нижнего края экрана до кнопки режима. Измените если кнопка перекрывает элементы сайта.
VIDEO_CDN_MAP
Словарь CDN-доменов для каждого видеохостинга. Используется для статического preconnect (до начала воспроизведения). Если CDN изменились — обновите здесь. На портал-агрегаторах в этот словарь попадают только те бэкенды, что подтверждённо грузятся автоматически и стабильно (не выбираются пользователем) — всё остальное покрывается только динамически.
STATIC_DELAYS
Задержки (мс) для статического preconnect отдельных хостов или CDN. Например, для TikTok задержка 200мс предотвращает занятие HTTP/2-слотов при старте страницы.
Note: 0