Альтернативный интерфейс для YouTube
-
Прежде всего для тех у кого слабые ПК.
У меня интерфейс YouTube тормозит достаточно заметно.
Простыми средствами можно заменить интерфейс YouTube на альтернативные варианты, которые не только не тормозят, но и добавляют некоторые фишки.
Для этого необходимо использовать крайне полезное расширение Tampermonkey.
Возможны два варианта:- Сервис Invidious
Для реализации этого варианта следует установить в Tampermonkey следующий скрипт:
// ==UserScript== // @name Redirect video from youtube on Invidious // @name:ru Редирект видео с youtube на Invidious // @description Redirect video from youtube on Invidious // @description:ru Редирект видео с youtube на Invidious // @author kichrot // @version 0.1.3 // @match *://*/* // @run-at document-start // @grant unsafeWindow // ==/UserScript== ///////////// Секция с константами для настройки скрипта ///////////////////// // Данные констаты позволяют настраивать сайт Invidious и плеер Invidious по некоторым параметрам сервиса Invidious // указанным в документации по адресу: https://github.com/iv-org/documentation/blob/master/docs/url-parameters.md const site_Invidious = 'yewtu.be'; // Константа задающая зеркало Invidious. Позволяет подобрать оптимальное зеркало Invidious для своих условий. // Адреса зеркал Invidious можно найти по адресу: https://redirect.invidious.io или самостоятельно в интернете. // Автор скрипта использует зеркала: tube.cthd.icu, yewtu.be, invidious.sethforprivacy.com, invidious.pcgamingfreaks.at const proxy_Invidious = 'true'; // Константа задающая проксирование видеопотоков // Возможные значения: 'false' - проксирование выключено; 'true' - проксирование включено const site_Invidious_localization = 'ru'; // Константа задающая язык локализации сайта Invidious const user_region = 'RU'; // Константа задающая регион расположения пользователя. Влияет на автоматический отбор контекста на сайте Invidious const video_quality = 'medium'; // Константа задающая требования к качеству трансляции видео. // Возможные значения: 'DASH' - автоматическое качество; 'HD720' - высокое качество; 'medium' - среднее качество; const video_autoplay = '0'; // Константа задающая автовоспроизведение видео. // Возможные значения: '0' - автовоспроизведение выключить; '1' - автовоспроизведение включить; const site_Invidious_dark_mode = 'false'; // Константа задающая тему отображения сайта Invidious // Возможные значения: 'false' - светлая тема; 'true' - тёмная тема ///////////// Конец секции с константами для настройки скрипта ///////////////////// (function () { 'use strict'; const URL_parametr_watch = 'quality=' + video_quality + '&autoplay=' + video_autoplay + '&local=' + proxy_Invidious + '&hl=' + site_Invidious_localization + '®ion=' + user_region + '&dark_mode=' + site_Invidious_dark_mode; const regex_paramURL_watch = new RegExp('(quality=' + video_quality + '&autoplay=' + video_autoplay + '&local=' + proxy_Invidious + '&hl=' + site_Invidious_localization + '®ion=' + user_region + '&dark_mode=' + site_Invidious_dark_mode + ')', 'i'); const URL_parametr_embed = 'quality=' + video_quality + '&autoplay=' + video_autoplay + '&local=' + proxy_Invidious; const regex_paramURL_embed = new RegExp('(quality=' + video_quality + '&autoplay=' + video_autoplay + '&local=' + proxy_Invidious + ')', 'i'); const URL_parametr_other = 'region=' + user_region + '&hl=' + site_Invidious_localization + '&dark_mode=' + site_Invidious_dark_mode; const regex_paramURL_other = new RegExp('(region=' + user_region + '&hl=' + site_Invidious_localization + '&dark_mode=' + site_Invidious_dark_mode + ')', 'i'); if (document.location.href.startsWith("https://www.youtube.com")) { if (document.location.href.startsWith("https://www.youtube.com/watch")) { document.location.href = document.location.href.replace('www.youtube.com', site_Invidious) + '&' + URL_parametr_watch; } else { if (document.location.href.startsWith("https://www.youtube.com/embed")) { if (!location.search.match(/\?/)) { document.location.href = document.location.href.replace('www.youtube.com', site_Invidious) + '?' + URL_parametr_embed; } else { document.location.href = document.location.href.replace('www.youtube.com', site_Invidious) + '&' + URL_parametr_embed; } } else { document.location.href = document.location.href.replace('www.youtube.com', site_Invidious); } } } if (document.location.href.startsWith("https://www.youtube-nocookie.com")) { if (document.location.href.startsWith("www.youtube-nocookie.com/embed")) { if (!location.search.match(/\?/)) { document.location.href = document.location.href.replace('www.youtube-nocookie.com', site_Invidious) + '?' + URL_parametr_embed; } else { document.location.href = document.location.href.replace('www.youtube-nocookie.com', site_Invidious) + '&' + URL_parametr_embed; } } else { document.location.href = document.location.href.replace('www.youtube-nocookie.com', site_Invidious); } } if (document.location.href.startsWith("https://" + site_Invidious)) { var redirekt = function () { if (document.location.href.startsWith("https://" + site_Invidious + "/watch")) { if (!location.search.match(regex_paramURL_watch)) { document.location.href += '&' + URL_parametr_watch; } } else { if ((document.location.href.endsWith("https://" + site_Invidious + "/") || document.location.href.startsWith("https://" + site_Invidious + "/channel/") || document.location.href.endsWith("https://" + site_Invidious + "/channel/") || document.location.href.startsWith("https://" + site_Invidious + "/feed/popular") || document.location.href.endsWith("https://" + site_Invidious + "/feed/popular") || document.location.href.startsWith("https://" + site_Invidious + "/feed/trending") || document.location.href.endsWith("https://" + site_Invidious + "/feed/trending") || document.location.href.startsWith("https://" + site_Invidious + "/playlist") || document.location.href.endsWith("https://" + site_Invidious + "/playlist") || document.location.href.startsWith("https://" + site_Invidious + "/preferences") || document.location.href.endsWith("https://" + site_Invidious + "/preferences")) && !location.search.match(regex_paramURL_other)) { document.location.href = document.location.href + '?' + URL_parametr_other; } let regex_paramURL_search = new RegExp('(&hl=' + site_Invidious_localization + '&dark_mode=' + site_Invidious_dark_mode + ')', 'i'); if (document.location.href.startsWith("https://" + site_Invidious + "/search?q=") && !location.search.match(regex_paramURL_search)) { document.location.href = document.location.href + '?' + URL_parametr_other; } if ((document.location.href.startsWith("https://" + site_Invidious + "/feed/trending?type=Music") || document.location.href.startsWith("https://" + site_Invidious + "/feed/trending?type=Gaming") || document.location.href.startsWith("https://" + site_Invidious + "/feed/trending?type=Movies") || document.location.href.startsWith("https://" + site_Invidious + "/feed/trending?type=Default")) && !location.search.match(regex_paramURL_other)) { if (!location.search.match(/(®ion=)/)) { document.location.href = document.location.href + '&' + URL_parametr_other; } else { document.location.href = document.location.href + '&hl=' + site_Invidious_localization + '&dark_mode=' + site_Invidious_dark_mode; } } } /////// скрываем в адресной строке "лишние" параметры URL //////// let paramURL = window.location.search.toString(); var URLparam = function (param) { return paramURL.replace(new RegExp(param, 'i'), ""); }; paramURL = URLparam('(&' + URL_parametr_watch + ')'); paramURL = URLparam('(\\?' + URL_parametr_watch + ')'); paramURL = URLparam('(&' + URL_parametr_other + ')'); paramURL = URLparam('(\\?' + URL_parametr_other + ')'); paramURL = URLparam('(&' + URL_parametr_embed + ')'); paramURL = URLparam('(\\?' + URL_parametr_embed + ')'); history.replaceState(null, null, window.location.protocol + "//" + window.location.host + window.location.pathname + paramURL); ////////////////////////////////////////////////////////////////// }; redirekt(); window.addEventListener('replaceState', function (e) { redirekt(); }); window.addEventListener('pushState', function (e) { redirekt(); }); var _wr = function (type) { var orig = history[type]; return function () { var rv = orig.apply(this, arguments); var e = new Event(type); e.arguments = arguments; window.dispatchEvent(e); return rv; }; }; history.pushState = _wr('pushState'); history.replaceState = _wr('replaceState'); // Установка визуального стиля проигрывателя Invidious if (document.location.href.startsWith("https://" + site_Invidious + "/watch") || document.location.href.startsWith("https://" + site_Invidious + "/embed")) { var css = document.createElement('style'); css.innerHTML += [ `.vjs-control-bar {`, `height: 1.2em !important;`, `}`, `.vjs-control-bar > *:not(.vjs-progress-control.vjs-control) {`, `zoom: 40%;`, `}`, `.vjs-playback-rate.vjs-menu-button.vjs-menu-button-popup.vjs-control.vjs-button {`, `zoom: 60%;`, `display: none;`, `}`, `button.vjs-control.vjs-button.watch-on-invidious {`, `display: none;`, `}`, `button.vjs-big-play-button {`, `zoom: 55% !important;`, `margin: 25% 43%; !important;`, `}`, `.vjs-overlay.vjs-overlay-top.vjs-overlay-background {`, `left: 16.5% !important;`, `top: 0%;`, `width: 100% !important;`, `background-color: rgba(0,0,0,0.5) !important;`, `}`, `.vjs-overlay.vjs-overlay-top.vjs-overlay-background a {`, `color: white !important;`, `font-size: 16px !important;`, `}`, `div#player-container {`, `margin-top: -10px;`, `zoom: 95%;`, `}`, `.pure-g.navbar.h-box {`, `height: 25px;`, `}`, `#player h1:has(>a) {`, `text-align: center;`, `}`, ].join("\n"); document.documentElement.appendChild(css); } } //// изменяем на странице в ссылках youtube.com и youtu.be на Invidious ////////////////////////////////// var redirekt_links = function () { var links = document.querySelectorAll("a[href*='www.youtube.com']"); links.forEach(link => { link.href = link.href.replace('www.youtube.com', site_Invidious); }) links = document.querySelectorAll("a[href*='youtu.be/']"); links.forEach(link => { link.href = link.href.replace('youtu.be/', site_Invidious + '/watch?v='); }) }; if (!document.location.href.startsWith("https://www.youtube.com") && !document.location.href.startsWith("https://" + site_Invidious)) { document.addEventListener('DOMContentLoaded', function () { redirekt_links(); }, false); window.addEventListener('replaceState', function (e) { redirekt_links(); }); window.addEventListener('pushState', function (e) { redirekt_links(); }); var __wr = function (type) { var orig = history[type]; return function () { var rv = orig.apply(this, arguments); var e = new Event(type); e.arguments = arguments; window.dispatchEvent(e); return rv; }; }; history.pushState = __wr('pushState'); history.replaceState = __wr('replaceState'); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////// })();
С этим скриптом на любой странице все ссылки на видео на сайте youtube будут автоматически открываться на сайте зеркала сервиса Invidious, которое указано в переменной var site_Invidious в скрипте. При попытке открытия сайта www.youtube.com будет открываться сервис Invidious.
- Сервис Piped
Для реализации этого варианта следует установить в Tampermonkey следующий скрипт:
// ==UserScript== // @name Редирект видео с youtube на piped // @version 0.0.1 // @description Redirects youtube links to piped.kavin.rocks // @author kichrot // @match *://www.youtube.com/* // @grant unsafeWindow // @run-at document-start // ==/UserScript== // Основной: piped.kavin.rocks // Зеркала: il.ax, var site_piped='piped.kavin.rocks'; (function() { 'use strict'; document.location.href = document.location.href.replace('www.youtube.com/',site_piped+'/'); })();
С этим скриптом на любой странице все ссылки на видео на сайте youtube будут автоматически открываться на сайте зеркала сервиса Piped, которое указано в переменной var site_piped в скрипте. При попытке открытия сайта www.youtube.com будет открываться сервис Piped.
Оба сервиса имеют свои преимущества и недостатки. Например, на большинстве зеркал сервис Invidious позволяет скачивать любое видео, в выбранном формате и разрешении. Сервис Piped такой возможности не дает.
Оба сервиса обходят ограничения youtube.
Но, по моему мнению данные сервисы гораздо удобней для пользователя, чем родной сайт youtube.
Возможно,, что кому либо пригодится.P.S. По прошествии времени я выявил у сервиса Piped неприятный недостаток. При попытке перейти в текущей вкладке, с открытым сервисом Piped, на домашнюю страницу, в виде экспресс-панели, используя штатные средства VIVALDI, происходит переход на пустую страницу. Думаю, что это баг самого VIVALDI, так как в других браузерах такого эффекта нет. Буду отправлять багрепорт, пусть разбираются.
Так, что я рекомендую использовать Invidious, хотя у Piped, по моему менению есть некоторые преимущества в скорости и настройках видео. -
@kichrot А как Youtube будет в итоге выглядеть?
-
Попробуйте и увидите.
Практически все тоже самое, только не тормозит.
Почитайте про эти сервисы в интернете. Материалов и отзывов, особенно по Invidious достаточно много. Piped распространен гораздо меньше, но по моим ощущениям быстрее чем Invidious.
Оба сервиса имеют открытый исходный код, который имеется на гитхабе.
При желании для обоих сервисов можно развернуть свои зеркала на своих серверах и на своем железе. -
@kichrot said in Альтернативный интерфейс для YouTube:
Попробуйте и увидите.
Обязательно попробую, как только найдётся свободная минута
-
Вот и нашлась свободная минутка
Так у меня выглядит ютуб с первым скриптом
А вот так со вторым
-
Доработал скрипт для Invidious.
Реализовал возможность настраивать скрипт под некоторые потребности пользователя. Как и что можно настраивать читайте в комментариях в скрипте. -
@kichrot said in Альтернативный интерфейс для YouTube:
Доработал скрипт для Invidious.
Ух ты! Так это ваш скрипт?
-
@kurai
Что еще пенсионеру делать, когда жена, дети и внуки не дают заданий???
Вот и развлекаюсь помаленьку. -
@kichrot said in Альтернативный интерфейс для YouTube:
Что еще пенсионеру делать, когда жена, дети и внуки не дают заданий???
Запилить альтернативный интерфейс YouTube для Аndroid?
-
@RX21
С андроид все гораздо сложнее, если не использовать крайне узкий круг браузеров для андроид, позволяющих устанавливать расширения.
К большому сожалению VIVALDI для андроид устанавливать расширения не позволяет, хотя это одно из самых поддерживаемых предложений.Но, есть обходные пути.
Самый простой это использование AdGuard для андроид, которое позволяет устанавливать и использовать UserScript-ы на страницах любого браузера: https://kb.adguard.com/en/general/userscripts .
Если Вам этот вариант подходит, то Вы можете установить в AdGuard мой скрипт и пользоваться альтернативным интерфейсом для ютуба в VIVALDI для андроид. AdGuard платное приложение, но найти мод очень легко.
Кроме этого существует замечательное андроид приложение для просмотра ютуба https://github.com/TeamNewPipe/NewPipe/releases, которое использует API сервиса Invidious. Сам этим приложением пользуюсь. Рекомендую. -
Доработал скрипт для Invidious.
-
Обнаружил в скрипте неприятную ошибку, приводящую к повышенной нагрузке на процессор на некоторых сайтах.
Исправил. Изменил код скрипта в предыдущем посте. -
Немного улучшил последний скрипт.
-
Доработал скрипт для Invidious. Скрипт на всех страницах, кроме страниц youtube и Invidious, заменяет все ссылки с youtube на Invidious, что ускоряет загрузку видео, при нажатии на ссылке и уменьшает число записей в истории браузера.
-
@kichrot said in Альтернативный интерфейс для YouTube:
Доработал скрипт для Invidious. Скрипт на всех страницах, кроме страниц youtube и Invidious, заменяет все ссылки с youtube на Invidious, что ускоряет загрузку видео, при нажатии на ссылке и уменьшает число записей в истории браузера.
Вы не могли бы перенести весь актуальный код в первое сообщение? Так будет легче пользователям, им не придётся искать код по всему обсуждению.
-
@kurai
Сделал. -
-
@kichrot said in Альтернативный интерфейс для YouTube:
P.S. По прошествии времени я выявил у сервиса Piped неприятный недостаток. При попытке перейти в текущей вкладке, с открытым сервисом Piped, на домашнюю страницу, в виде экспресс-панели, используя штатные средства VIVALDI, происходит переход на пустую страницу. Думаю, что это баг самого VIVALDI, так как в других браузерах такого эффекта нет. Буду отправлять багрепорт, пусть разбираются.
Так, что я рекомендую использовать Invidious, хотя у Piped, по моему менению есть некоторые преимущества в скорости и настройках видео.Спасибо!
-
This post is deleted!