// ==UserScript== // @name Invidious - Proxy Mode // @version 0.1.7 // @author Jesús E. // @license GPL-3.0 // @description This script automatically Proxy-Mode on Invidious and its various public instances. // @namespace InvidiousProxy // @homepageURL https://libregit.org/heckyel/book/src/branch/master/scripts-greasemonkey // @include /(?:(?:http(s|):\/\/)(www[.]|)(?:invidio[.]us)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @include /(?:(?:http(s|):\/\/)(www[.]|proxy[.]|)(?:invidious[.]snopyta[.]org)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @include /(?:(?:http(s|):\/\/)(www[.]|)(?:vid[.]wxzm[.]sx)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @include /(?:(?:http(s|):\/\/)(www[.]|)(?:invidious[.]kabi[.]tk)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @include /(?:(?:http(s|):\/\/)(www[.]|)(?:invidiou[.]sh)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @include /(?:(?:http(s|):\/\/)(www[.]|)(?:yewtu[.]be)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @include /(?:(?:http(s|):\/\/)(www[.]|)(?:invidious[.]ggc-project[.]de)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @include /(?:(?:http(s|):\/\/)(www[.]|)(?:invidious[.]enkirton[.]net)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @include /(?:(?:http(s|):\/\/)(www[.]|)(?:tube[.]poal[.]co)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @include /(?:(?:http(s|):\/\/)(www[.]|)(?:invidious[.]13ad[.]de)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @include /(?:(?:http(s|):\/\/)(www[.]|)(?:invidious[.]drycat[.]fr)\/(watch\?v=|embed\/))([^= &?(\/)\r\n]{8,11})(\S+)?$/ // @grant none // ==/UserScript== function proxyMode() { const consoleCSS = 'background: #000; color: #00FF00; padding: 0px 7px; border: 1px solid #00FF00; line-height: 16px;'; // Set variables let i, j, url; let vids_tags = ["video", "source"]; let vids_elements, proxyURL; // Regex let params=new RegExp(/itag=(18|22|43)$/); for (i = 0; i < vids_tags.length; i++) { vids_elements = document.getElementsByTagName(vids_tags[i]); for (j = 0; j < vids_elements.length; j++) { url = vids_elements.item(j).src; if(params.test(url)) { proxyURL = url + "&local=true"; vids_elements.item(j).src = proxyURL; } else { console.log('Proxy was already applied or Live URL'); } } } console.log("%cUSERSCRIPT | " + GM_info.script.name + " " + GM_info.script.version + " | successfully initialized", consoleCSS); } proxyMode(); // Fix Abrowser window.addEventListener('load', () => { proxyMode(); });