Доработка кода под изменения текущего дизайн сайта YouTube.
Оптимизация функций исходника, изменение позиции панели загрузки.
Исправлена проблема с работой скрипта в строгом режиме.
Проверено в браузерах:
Firefox 52ESR + SRWare Iron 49* + 360 Extreme Explorer 9/11/12/13 (CR63/69/78/86) + Chromium 87.
* В браузере SRWare Iron более старых версий (31-36) не тестировалось из-за некорректной работы в них сервиса YouTube.
Основные изменения:
- решена проблема работы скрипта в строгом режиме (strict-mode);
В публичной версии добавлен "костыль", предложенный ранее в качестве временного решения.
- изменена функция определения прямых ссылок на файлы доступных форматов;
Немного изменено регулярное выражение для расчёта ссылок и сигнатур файлов. Доработка сделана по аналогии с оригиналом версии 2.44 от 16.12.2021.
- изменено позиционирование блока ссылок для текущей страницы, теперь всегда под "шапкой";
Связано с изменением текущего дизайна сайта YouTube. Предыдущий метод создания "плавающей" панели ссылок мог работать некорректно в зависимости от текущего режима страницы (обычный/"кинотеатр"), что приводило к "подлезанию" панели под верхнюю часть страницы ("шапку").
Исправлено. Теперь панель ссылок жёстко фиксирована непосредственно под шапкой. При этом панель загрузок не перекрывает (при её включении) окно плейера и не мешает просмотру ролика.
- добавлена автосдвижка позиции плейера на страницах роликов вниз относительно шапки на высоту панели;
Сдвижка выполняется для всей основной части страниц, независимо от режима плейера (обычный/"кинотеатр"). Эта сдвижка переменная, вычисляется автоматически и зависит от размеров экрана и количества "кнопок" загрузки файлов в разных форматах для каждого конкретного ролика. При скрытии панели страница снова "поднимается" под шапку.
- добавлены атрибуты //@exclude… – теперь скрипт НЕ будет* запускаться на части страниц.
* В частности, на страницах мобильной версии сайта YouTube и для страниц и фреймов в режиме embedded-плейера. Сделано для исключения "лишних" попыток запуска там, где прямые ссылки на загрузку текущего просматриваемого ролика всё равно не могут** быть отображены. Соответственно, при этом на указанных страницах также не будет панелей ссылок и на миниатюрах.
** В общем-то, на таких страницах можно сделать "адаптивное" место отрисовки кнопки и/или панели загрузчика, но на текущий момент автор не видит практической целесообразности усложнения кода ради достаточно редко используемых случаев загрузки, намного проще открыть "обычную" страницу ролика и скачать с неё.)
Проверки допустимых URL в коде (пока) оставлены, как дополнительная гарантия от ошибок, поэтому, если данное ограничение вам "мешает", можно самостоятельно удалить его из кода.
Прочие изменения:
- изменён и упрощён код бо́льшей части функций, повышена скорость работы скрипта;
Изменены названия части переменных и функций. Также изменён порядок их выполнения и общий подход к их определению (теперь все они сведены в логически обобщённые структурные объекты).
В целом повышена скорость работы скрипта за счёт существенного уменьшения его размера (-10%), оптимизации и упрощения проверок условий с заменой сравнивающих операторов на более быстрые.
- небольшие косметические изменения стиля панели загрузок, упрощение CSS.
Известные проблемы:
Пока отсутствуют, но если вдруг что – не стесняемся и пишем баг‑репорты в комментариях…:)
Примечания по установке и обновлению:
Если вы уже используете этот скрипт – в любом из менеджеров скриптов достаточно запустить автообновление и установленный скрипт автоматически обновится до текущей публичной версии.
При этом следует помнить, что все изменения кода, сделанные вами вручную, будут утрачены.
В продвинутых менеджерах скриптов в редакторе кода скрипта могут отображаться предупреждения. Это нормально, связано с "неклассичностью" отдельных решений, такие предупреждения не влияют на работоспособность скрипта.
Если "это немного напрягает", можно самостоятельно заменить все "типа проблемные" запятые и расставить фигурные скобки и прочие точки с запятыми в концах строк. Но, естественно, при этом "продукт снимается с гарантии", а любые возможные неисправности не рассматриваются автором в качестве "ошибок в вашем скрипте"…))
Скриншоты:
Фиксированное положение панели с кнопками загрузок медиа-файлов:
История и обсуждение
Общие технические сведения
- Технологии и API:
Чистый JavaScript (ES5), автономный код без подгрузки библиотек
- Запрашиваемые разрешения:
[ "*://*.youtube.com/*" ]
Загрузка и установка
Дополнительно
|