YouTube Media Direct : 2022.11.10
Опубликовано: Бармалей · 10.11.2022 · 00:01 ••• Обновление: 10.11.2022 · 00:01 0

Доработка кода под изменения текущего дизайн сайта 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/*" ]

Загрузка и установка

Дополнительно

Официальные версии Документация
Бармалей 10.11.2022 10.11.2022 154 0.0

Поделиться

Всего комментариев: 0
close