aboutsummaryrefslogtreecommitdiffstats
path: root/scripts-greasemonkey/invidio_proxy_mode.user.js
blob: 3747ed0edfd24b3a0cbb45857000c920877fecb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// ==UserScript==
// @name         Invidious - Proxy Mode
// @version      0.1.4
// @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/.*$/
// @include      /^http(s|)://(www[.]|proxy[.]|)invidious[.]snopyta[.]org/.*$/
// @include      /^http(s|)://(www[.]|)vid[.]wxzm[.]sx/.*$/
// @include      /^http(s|)://(www[.]|)invidious[.]kabi[.]tk/.*$/
// @include      /^http(s|)://(www[.]|)invidiou[.]sh/*
// @include      /^http(s|)://(www[.]|)invidious[.]enkirton[.]net/.*$/
// @include      /^http(s|)://(www[.]|)tube[.]poal[.]co/.*$/
// @include      /^http(s|)://(www[.]|)invidious[.]13ad[.]de/.*$/
// @include      /^http(s|)://(www[.]|)invidious[.]drycat[.]fr/.*$/
// @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('Live URL or format M3U8');
            }
        }
    }
    console.log("%cUSERSCRIPT | " + GM_info.script.name + " " + GM_info.script.version + " | successfully initialized", consoleCSS);
})();