about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/helpers/common.js65
-rw-r--r--src/assets/javascripts/helpers/general.js1
-rw-r--r--src/assets/javascripts/helpers/imgur.js48
-rw-r--r--src/assets/javascripts/helpers/instagram.js41
-rw-r--r--src/assets/javascripts/helpers/lbry.js13
-rw-r--r--src/assets/javascripts/helpers/maps.js19
-rw-r--r--src/assets/javascripts/helpers/medium.js19
-rw-r--r--src/assets/javascripts/helpers/peertube.js26
-rw-r--r--src/assets/javascripts/helpers/reddit.js34
-rw-r--r--src/assets/javascripts/helpers/search.js70
-rw-r--r--src/assets/javascripts/helpers/sendTargets.js29
-rw-r--r--src/assets/javascripts/helpers/speedtest.js2
-rw-r--r--src/assets/javascripts/helpers/spotify.js19
-rw-r--r--src/assets/javascripts/helpers/translate/lingva-preferences.js4
-rw-r--r--src/assets/javascripts/helpers/translate/translate.js159
-rw-r--r--src/assets/javascripts/helpers/twitter.js69
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js36
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js148
-rw-r--r--src/assets/javascripts/helpers/youtubeMusic.js4
19 files changed, 445 insertions, 361 deletions
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index b2a91b20..5d470cf0 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -19,11 +19,12 @@ let cloudflareList = [];
 async function initCloudflareList() {
   return new Promise(resolve => {
     fetch('/instances/cloudflare.json').then(response => response.text()).then(data => {
-      cloudflareList = data;
+      cloudflareList = JSON.parse(data);
       resolve();
     })
   });
 }
+
 async function wholeInit() {
   await youtubeHelper.init();
   await twitterHelper.init();
@@ -98,9 +99,9 @@ function protocolHost(url) {
 }
 
 async function processDefaultCustomInstances(
+  target,
   name,
   protocol,
-  nameHelper,
   document,
 ) {
   function camelCase(str) {
@@ -116,9 +117,38 @@ async function processDefaultCustomInstances(
 
   await initCloudflareList();
 
+
+  let nameDefaultRedirects;
+
+  let redirectsChecks = `${name}${camelCase(protocol)}RedirectsChecks`;
+  let customRedirects = `${name}${camelCase(protocol)}CustomRedirects`;
+  let redirectsKey = `${target}Redirects`;
+
+  let redirects;
+
+  async function getFromStorage() {
+    return new Promise(async resolve => {
+
+      browser.storage.local.get(
+        [
+          redirectsChecks,
+          customRedirects,
+          redirectsKey
+        ],
+        r => {
+          nameDefaultRedirects = r[redirectsChecks];
+          nameCustomInstances = r[customRedirects];
+          redirects = r[redirectsKey];
+          resolve();
+        }
+      )
+    })
+  }
+  await getFromStorage();
+
   function calcNameCheckBoxes() {
     let isTrue = true;
-    for (const item of nameHelper.getRedirects()[name][protocol])
+    for (const item of redirects[name][protocol])
       if (!nameDefaultRedirects.includes(item)) {
         isTrue = false;
         break;
@@ -129,11 +159,6 @@ async function processDefaultCustomInstances(
     nameProtocolElement.getElementsByClassName('toogle-all')[0].checked = isTrue;
   }
 
-  let nameDefaultRedirects;
-
-  let redirectsChecks = `${name}${camelCase(protocol)}RedirectsChecks`;
-  let customRedirects = `${name}${camelCase(protocol)}CustomRedirects`;
-
   async function setRedirectsChecks(val) {
     await browser.storage.local.set({ [redirectsChecks]: val });
   }
@@ -142,24 +167,6 @@ async function processDefaultCustomInstances(
     await browser.storage.local.set({ [customRedirects]: val });
   }
 
-  async function getFromStorage() {
-    return new Promise(async resolve => {
-      nameHelper.init().then(() =>
-        browser.storage.local.get(
-          [
-            redirectsChecks,
-            customRedirects,
-          ],
-          r => {
-            nameDefaultRedirects = r[redirectsChecks];
-            nameCustomInstances = r[customRedirects];
-            resolve();
-          }
-        )
-      )
-    })
-  }
-  await getFromStorage();
 
   nameCheckListElement.innerHTML =
     [
@@ -167,7 +174,7 @@ async function processDefaultCustomInstances(
         <x data-localise="__MSG_toggleAll__">Toggle All</x>
         <input type="checkbox" class="toogle-all"/>
       </div>`,
-      ...nameHelper.getRedirects()[name][protocol].map(
+      ...redirects[name][protocol].map(
         x => {
           let cloudflare = cloudflareList.includes(x) ? ' <span style="color:red;">cloudflare</span>' : '';
 
@@ -185,7 +192,7 @@ async function processDefaultCustomInstances(
   calcNameCheckBoxes();
   nameProtocolElement.getElementsByClassName('toogle-all')[0].addEventListener("change", async event => {
     if (event.target.checked)
-      nameDefaultRedirects = [...nameHelper.getRedirects()[name][protocol]];
+      nameDefaultRedirects = [...redirects[name][protocol]];
     else
       nameDefaultRedirects = [];
 
@@ -236,7 +243,7 @@ async function processDefaultCustomInstances(
     let nameCustomInstanceInput = nameProtocolElement.getElementsByClassName('custom-instance')[0];
     let url = new URL(nameCustomInstanceInput.value);
     let protocolHostVar = protocolHost(url);
-    if (nameCustomInstanceInput.validity.valid && !nameHelper.getRedirects()[name][protocol].includes(protocolHostVar)) {
+    if (nameCustomInstanceInput.validity.valid && !redirects[name][protocol].includes(protocolHostVar)) {
       if (!nameCustomInstances.includes(protocolHostVar)) {
         nameCustomInstances.push(protocolHostVar)
         setCustom(nameCustomInstances);
diff --git a/src/assets/javascripts/helpers/general.js b/src/assets/javascripts/helpers/general.js
index 4a1681e9..56f76d8b 100644
--- a/src/assets/javascripts/helpers/general.js
+++ b/src/assets/javascripts/helpers/general.js
@@ -74,7 +74,6 @@ async function init() {
 
                 popupFrontends = r.popupFrontends ?? [
                     "youtube",
-                    "youtubeMusic",
                     "twitter",
                     "instagram",
                     "tikTok",
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js
index 7a2daa43..f581a75a 100644
--- a/src/assets/javascripts/helpers/imgur.js
+++ b/src/assets/javascripts/helpers/imgur.js
@@ -21,33 +21,35 @@ function setRedirects(val) {
             var index = rimgoNormalRedirectsChecks.indexOf(item);
             if (index !== -1) rimgoNormalRedirectsChecks.splice(index, 1);
         }
-    browser.storage.local.set({rimgoNormalRedirectsChecks});
+    browser.storage.local.set({ rimgoNormalRedirectsChecks });
 
     for (const item of rimgoTorRedirectsChecks)
         if (!redirects.rimgo.tor.includes(item)) {
             var index = rimgoTorRedirectsChecks.indexOf(item);
             if (index !== -1) rimgoTorRedirectsChecks.splice(index, 1);
         }
-    browser.storage.local.set({rimgoTorRedirectsChecks});
+    browser.storage.local.set({ rimgoTorRedirectsChecks });
 
     for (const item of rimgoI2pRedirectsChecks)
         if (!redirects.rimgo.i2p.includes(item)) {
             var index = rimgoI2pRedirectsChecks.indexOf(item);
             if (index !== -1) rimgoI2pRedirectsChecks.splice(index, 1);
         }
-    browser.storage.local.set({rimgoI2pRedirectsChecks});
+    browser.storage.local.set({ rimgoI2pRedirectsChecks });
 
 }
 
-let disable;
-let protocol;
+let
+    disable,
+    protocol;
 
-let rimgoNormalRedirectsChecks;
-let rimgoTorRedirectsChecks;
-let rimgoI2pRedirectsChecks;
-let rimgoNormalCustomRedirects = [];
-let rimgoTorCustomRedirects = [];
-let rimgoI2pCustomRedirects = [];
+let
+    rimgoNormalRedirectsChecks,
+    rimgoTorRedirectsChecks,
+    rimgoI2pRedirectsChecks,
+    rimgoNormalCustomRedirects,
+    rimgoTorCustomRedirects,
+    rimgoI2pCustomRedirects;
 
 function redirect(url, type, initiator) {
     // https://imgur.com/gallery/s4WXQmn
@@ -129,18 +131,23 @@ function switchInstance(url) {
 }
 
 async function initDefaults() {
-    return new Promise(async resolve => {
-        fetch('/instances/data.json').then(response => response.text()).then(async data => {
-            let dataJson = JSON.parse(data);
-            redirects.rimgo = dataJson.rimgo
+    fetch('/instances/data.json').then(response => response.text()).then(async data => {
+        let dataJson = JSON.parse(data);
+        redirects.rimgo = dataJson.rimgo;
+        browser.storage.local.get('cloudflareList', async r => {
+            rimgoNormalRedirectsChecks = [...redirects.rimgo.normal];
+            for (const instance of r.cloudflareList) {
+                let i;
+
+                i = rimgoNormalRedirectsChecks.indexOf(instance);
+                if (i > -1) rimgoNormalRedirectsChecks.splice(i, 1);
+            }
             await browser.storage.local.set({
                 disableImgur: false,
                 imgurProtocol: 'normal',
-                imgurRedirects: {
-                    'rimgo': redirects.rimgo,
-                },
+                imgurRedirects: redirects,
 
-                rimgoNormalRedirectsChecks: [...redirects.rimgo.normal],
+                rimgoNormalRedirectsChecks: rimgoNormalRedirectsChecks,
                 rimgoNormalCustomRedirects: [],
 
                 rimgoTorRedirectsChecks: [...redirects.rimgo.tor],
@@ -149,9 +156,8 @@ async function initDefaults() {
                 rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p],
                 rimgoI2pCustomRedirects: [],
             });
-            resolve();
         });
-    })
+    });
 }
 
 async function init() {
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index 26414070..3277ffda 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -173,27 +173,34 @@ async function initDefaults() {
     fetch('/instances/data.json').then(response => response.text()).then(async data => {
       let dataJson = JSON.parse(data);
       redirects.bibliogram = dataJson.bibliogram;
-      await browser.storage.local.set({
-        disableInstagram: false,
-        instagramRedirects: {
-          'bibliogram': redirects.bibliogram
-        },
+      browser.storage.local.get('cloudflareList', async r => {
+        bibliogramNormalRedirectsChecks = [...redirects.bibliogram.normal];
+        for (const instance of r.cloudflareList) {
+          let i;
 
-        theme: 'DEFAULT',
-        applyThemeToSites: false,
+          i = bibliogramNormalRedirectsChecks.indexOf(instance);
+          if (i > -1) bibliogramNormalRedirectsChecks.splice(i, 1);
+        }
+        await browser.storage.local.set({
+          disableInstagram: false,
+          instagramRedirects: redirects,
 
-        instancesCookies: [],
+          theme: 'DEFAULT',
+          applyThemeToSites: false,
 
-        bibliogramNormalRedirectsChecks: [...redirects.bibliogram.normal],
-        bibliogramTorRedirectsChecks: [],
+          instancesCookies: [],
 
-        bibliogramNormalCustomRedirects: [...redirects.bibliogram.tor],
-        bibliogramTorCustomRedirects: [],
-        instagramProtocol: "normal",
-      })
-      resolve();
-    }
-    )
+          bibliogramNormalRedirectsChecks: bibliogramNormalRedirectsChecks,
+          bibliogramTorRedirectsChecks: [],
+
+          bibliogramNormalCustomRedirects: [...redirects.bibliogram.tor],
+          bibliogramTorCustomRedirects: [],
+          instagramProtocol: "normal",
+        })
+        resolve();
+      }
+      )
+    })
   })
 }
 
diff --git a/src/assets/javascripts/helpers/lbry.js b/src/assets/javascripts/helpers/lbry.js
index 8b0f78a7..b82ae9ad 100644
--- a/src/assets/javascripts/helpers/lbry.js
+++ b/src/assets/javascripts/helpers/lbry.js
@@ -93,14 +93,21 @@ function redirect(url, type, initiator) {
 }
 
 async function initDefaults() {
-    return new Promise(async resolve => {
+    browser.storage.local.get('cloudflareList', async r => {
+        librarianNormalRedirectsChecks = [...redirects.librarian.normal];
+        for (const instance of r.cloudflareList) {
+            let i;
+
+            i = librarianNormalRedirectsChecks.indexOf(instance);
+            if (i > -1) librarianNormalRedirectsChecks.splice(i, 1);
+        }
         await browser.storage.local.set({
             disableLbryTargets: true,
             lbryTargetsRedirects: {
                 'librarian': redirects.librarian
             },
 
-            librarianNormalRedirectsChecks: [...redirects.librarian.normal],
+            librarianNormalRedirectsChecks: librarianNormalRedirectsChecks,
             librarianNormalCustomRedirects: [],
 
             librarianTorRedirectsChecks: [...redirects.librarian.tor],
@@ -108,7 +115,6 @@ async function initDefaults() {
 
             lbryTargetsProtocol: "normal",
         })
-        resolve();
     })
 }
 
@@ -129,7 +135,6 @@ async function init() {
                 "lbryTargetsProtocol"
             ],
             r => {
-
                 disable = r.disableLbryTargets;
 
                 protocol = r.lbryTargetsProtocol;
diff --git a/src/assets/javascripts/helpers/maps.js b/src/assets/javascripts/helpers/maps.js
index 25dcf2c5..86a53b18 100644
--- a/src/assets/javascripts/helpers/maps.js
+++ b/src/assets/javascripts/helpers/maps.js
@@ -17,7 +17,6 @@ let redirects = {
     ]
   }
 };
-const getRedirects = () => redirects;
 
 let disable; // disableMaps
 let frontend; // mapsFrontend
@@ -187,14 +186,14 @@ function redirect(url, initiator) {
 }
 
 async function initDefaults() {
-  return new Promise(async resolve => {
-    await browser.storage.local.set({
-      disableMaps: false,
-      mapsFrontend: 'osm',
-
-      facilNormalRedirectsChecks: [...redirects.facil.normal],
-      facilNormalCustomRedirects: [],
-    })
+  await browser.storage.local.set({
+    disableMaps: false,
+    mapsFrontend: 'osm',
+
+    mapsRedirects: redirects,
+
+    facilNormalRedirectsChecks: [...redirects.facil.normal],
+    facilNormalCustomRedirects: [],
   })
 }
 
@@ -223,8 +222,6 @@ async function init() {
 }
 
 export default {
-  getRedirects,
-
   redirect,
   init,
   initDefaults,
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index beea1a99..99a14cca 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -123,20 +123,27 @@ function switchInstance(url) {
 }
 
 async function initDefaults() {
-  return new Promise(async resolve => {
-    fetch('/instances/data.json').then(response => response.text()).then(async data => {
-      let dataJson = JSON.parse(data);
-      redirects.scribe = dataJson.scribe;
+  fetch('/instances/data.json').then(response => response.text()).then(async data => {
+    let dataJson = JSON.parse(data);
+    redirects.scribe = dataJson.scribe;
+    browser.storage.local.get('cloudflareList', async r => {
+      scribeNormalRedirectsChecks = [...redirects.scribe.normal];
+      for (const instance of r.cloudflareList) {
+        let i = scribeNormalRedirectsChecks.indexOf(instance);
+        if (i > -1) scribeNormalRedirectsChecks.splice(i, 1);
+      }
       await browser.storage.local.set({
         disableMedium: false,
         mediumRedirects: redirects,
-        scribeNormalRedirectsChecks: [...redirects.scribe.normal],
+
+        scribeNormalRedirectsChecks: scribeNormalRedirectsChecks,
         scribeNormalCustomRedirects: [],
+
         scribeTorRedirectsChecks: [...redirects.scribe.tor],
         scribeTorCustomRedirects: [],
+
         mediumProtocol: "normal",
       })
-      resolve();
     })
   })
 }
diff --git a/src/assets/javascripts/helpers/peertube.js b/src/assets/javascripts/helpers/peertube.js
index 17fada2b..14dda0b1 100644
--- a/src/assets/javascripts/helpers/peertube.js
+++ b/src/assets/javascripts/helpers/peertube.js
@@ -94,21 +94,29 @@ function redirect(url, type, initiator) {
 }
 
 async function initDefaults() {
-    console.log('init peertube defaults')
     fetch('/instances/data.json').then(response => response.text()).then(async data => {
         let dataJson = JSON.parse(data);
-        await browser.storage.local.set({
-            peerTubeTargets: ['https://search.joinpeertube.org', ...dataJson.peertube],
+        browser.storage.local.get('cloudflareList', async r => {
+            simpleertubeNormalRedirectsChecks = [...redirects.simpleertube.normal];
+            for (const instance of r.cloudflareList) {
+                let i = simpleertubeNormalRedirectsChecks.indexOf(instance);
+                if (i > -1) simpleertubeNormalRedirectsChecks.splice(i, 1);
+            }
+            await browser.storage.local.set({
+                peerTubeTargets: ['https://search.joinpeertube.org', ...dataJson.peertube],
 
-            disablePeertubeTargets: true,
+                disablePeertubeTargets: true,
 
-            simpleertubeNormalRedirectsChecks: [...redirects.simpleertube.normal],
-            simpleertubeNormalCustomRedirects: [],
+                peertubeRedirects: redirects,
 
-            simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor],
-            simpleertubeTorCustomRedirects: [],
+                simpleertubeNormalRedirectsChecks: simpleertubeNormalRedirectsChecks,
+                simpleertubeNormalCustomRedirects: [],
 
-            peertubeTargetsProtocol: "normal",
+                simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor],
+                simpleertubeTorCustomRedirects: [],
+
+                peertubeTargetsProtocol: "normal",
+            })
         })
     })
 }
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 6e932f6d..7c123797 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -387,12 +387,22 @@ function switchInstance(url) {
 }
 
 async function initDefaults() {
-  console.log('init redditDefault')
-  return new Promise(async resolve => {
-    fetch('/instances/data.json').then(response => response.text()).then(async data => {
-      let dataJson = JSON.parse(data);
-      redirects.teddit = dataJson.teddit;
-      redirects.libreddit = dataJson.libreddit;
+  fetch('/instances/data.json').then(response => response.text()).then(async data => {
+    let dataJson = JSON.parse(data);
+    redirects.teddit = dataJson.teddit;
+    redirects.libreddit = dataJson.libreddit;
+    browser.storage.local.get('cloudflareList', async r => {
+      libredditNormalRedirectsChecks = [...redirects.libreddit.normal];
+      tedditNormalRedirectsChecks = [...redirects.teddit.normal]
+      for (const instance of r.cloudflareList) {
+        let i;
+        
+        i = libredditNormalRedirectsChecks.indexOf(instance);
+        if (i > -1) libredditNormalRedirectsChecks.splice(i, 1);
+
+        i = tedditNormalRedirectsChecks.indexOf(instance);
+        if (i > -1) tedditNormalRedirectsChecks.splice(i, 1);
+      }
       await browser.storage.local.set({
         disableReddit: false,
         redditProtocol: 'normal',
@@ -401,18 +411,15 @@ async function initDefaults() {
         bypassWatchOnReddit: true,
         alwaysUsePreferred: false,
 
-        redditRedirects: {
-          'libreddit': redirects.libreddit,
-          'teddit': redirects.teddit,
-        },
+        redditRedirects: redirects,
 
-        libredditNormalRedirectsChecks: [...redirects.libreddit.normal],
+        libredditNormalRedirectsChecks: libredditNormalRedirectsChecks,
         libredditNormalCustomRedirects: [],
 
         libredditTorRedirectsChecks: [...redirects.libreddit.tor],
         libredditTorCustomRedirects: [],
 
-        tedditNormalRedirectsChecks: [...redirects.teddit.normal],
+        tedditNormalRedirectsChecks: tedditNormalRedirectsChecks,
         tedditNormalCustomRedirects: [],
 
         tedditTorRedirectsChecks: [...redirects.teddit.tor],
@@ -430,9 +437,8 @@ async function initDefaults() {
         redditUseHls: false,
         redditHideHlsNotification: false,
       });
-      resolve();
     });
-  })
+  });
 }
 
 async function init() {
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index e42b05dd..c26eeb29 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -27,7 +27,6 @@ let redirects = {
     "i2p": []
   }
 };
-const getRedirects = () => redirects;
 
 function setSearxRedirects(val) {
   redirects.searx = val;
@@ -283,42 +282,60 @@ async function initDefaults() {
     redirects.searx = dataJson.searx;
     redirects.searxng = dataJson.searxng;
     redirects.whoogle = dataJson.whoogle;
-    await browser.storage.local.set({
-      disableSearch: false,
-      searchFrontend: 'searxng',
-      searchRedirects: redirects,
 
-      whoogleNormalRedirectsChecks: [...redirects.whoogle.normal],
-      whoogleNormalCustomRedirects: [],
+    browser.storage.local.get('cloudflareList', async r => {
+      whoogleNormalRedirectsChecks = [...redirects.whoogle.normal];
+      searxNormalRedirectsChecks = [...redirects.searx.normal];
+      searxngNormalRedirectsChecks = [...redirects.searxng.normal];
+      for (const instance of r.cloudflareList) {
+        let i;
 
-      whoogleTorRedirectsChecks: [...redirects.whoogle.tor],
-      whoogleTorCustomRedirects: [],
+        i = whoogleNormalRedirectsChecks.indexOf(instance);
+        if (i > -1) whoogleNormalRedirectsChecks.splice(i, 1);
 
-      whoogleI2pRedirectsChecks: [...redirects.whoogle.i2p],
-      whoogleI2pCustomRedirects: [],
+        i = searxNormalRedirectsChecks.indexOf(instance);
+        if (i > -1) searxNormalRedirectsChecks.splice(i, 1);
 
-      searxNormalRedirectsChecks: [...redirects.searx.normal],
-      searxNormalCustomRedirects: [],
+        i = searxngNormalRedirectsChecks.indexOf(instance);
+        if (i > -1) searxngNormalRedirectsChecks.splice(i, 1);
+      }
+      await browser.storage.local.set({
+        disableSearch: false,
+        searchFrontend: 'searxng',
+        searchRedirects: redirects,
 
-      searxTorRedirectsChecks: [...redirects.searx.tor],
-      searxTorCustomRedirects: [],
+        whoogleNormalRedirectsChecks: whoogleNormalRedirectsChecks,
+        whoogleNormalCustomRedirects: [],
 
-      searxI2pRedirectsChecks: [...redirects.searx.i2p],
-      searxI2pCustomRedirects: [],
+        whoogleTorRedirectsChecks: [...redirects.whoogle.tor],
+        whoogleTorCustomRedirects: [],
 
-      searxngNormalRedirectsChecks: [...redirects.searxng.normal],
-      searxngNormalCustomRedirects: [],
+        whoogleI2pRedirectsChecks: [...redirects.whoogle.i2p],
+        whoogleI2pCustomRedirects: [],
 
-      searxngTorRedirectsChecks: [...redirects.searxng.tor],
-      searxngTorCustomRedirects: [],
+        searxNormalRedirectsChecks: searxNormalRedirectsChecks,
+        searxNormalCustomRedirects: [],
 
-      searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
-      searxngI2pCustomRedirects: [],
+        searxTorRedirectsChecks: [...redirects.searx.tor],
+        searxTorCustomRedirects: [],
 
-      theme: 'DEFAULT',
-      applyThemeToSites: false,
+        searxI2pRedirectsChecks: [...redirects.searx.i2p],
+        searxI2pCustomRedirects: [],
 
-      searchProtocol: 'normal',
+        searxngNormalRedirectsChecks: searxngNormalRedirectsChecks,
+        searxngNormalCustomRedirects: [],
+
+        searxngTorRedirectsChecks: [...redirects.searxng.tor],
+        searxngTorCustomRedirects: [],
+
+        searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
+        searxngI2pCustomRedirects: [],
+
+        theme: 'DEFAULT',
+        applyThemeToSites: false,
+
+        searchProtocol: 'normal',
+      })
     })
   })
 }
@@ -403,7 +420,6 @@ async function init() {
 }
 
 export default {
-  getRedirects,
 
   setSearxRedirects,
   setSearxngRedirects,
diff --git a/src/assets/javascripts/helpers/sendTargets.js b/src/assets/javascripts/helpers/sendTargets.js
index 1ab2b2e8..f131f5c3 100644
--- a/src/assets/javascripts/helpers/sendTargets.js
+++ b/src/assets/javascripts/helpers/sendTargets.js
@@ -92,17 +92,24 @@ async function initDefaults() {
     fetch('/instances/data.json').then(response => response.text()).then(async data => {
         let dataJson = JSON.parse(data);
         redirects.send = dataJson.send;
-        await browser.storage.local.set({
-            disableSendTarget: false,
-            sendTargetsRedirects: redirects,
-
-            sendNormalRedirectsChecks: [...redirects.send.normal],
-            sendNormalCustomRedirects: [],
-
-            sendTorRedirectsChecks: [...redirects.send.tor],
-            sendTorCustomRedirects: [],
-
-            sendTargetsProtocol: "normal",
+        browser.storage.local.get('cloudflareList', async r => {
+            sendNormalRedirectsChecks = [...redirects.send.normal];
+            for (const instance of r.cloudflareList) {
+                let i = sendNormalRedirectsChecks.indexOf(instance);
+                if (i > -1) sendNormalRedirectsChecks.splice(i, 1);
+            }
+            await browser.storage.local.set({
+                disableSendTarget: false,
+                sendTargetsRedirects: redirects,
+
+                sendNormalRedirectsChecks: sendNormalRedirectsChecks,
+                sendNormalCustomRedirects: [],
+
+                sendTorRedirectsChecks: [...redirects.send.tor],
+                sendTorCustomRedirects: [],
+
+                sendTargetsProtocol: "normal",
+            })
         })
     })
 }
diff --git a/src/assets/javascripts/helpers/speedtest.js b/src/assets/javascripts/helpers/speedtest.js
index 4f59cbb5..00f0a138 100644
--- a/src/assets/javascripts/helpers/speedtest.js
+++ b/src/assets/javascripts/helpers/speedtest.js
@@ -64,6 +64,8 @@ async function initDefaults() {
     await browser.storage.local.set({
         disableSpeedtest: true,
 
+        speedtestRedirects: redirects,
+
         librespeedNormalRedirectsChecks: [...redirects.librespeed.normal],
         librespeedNormalCustomRedirects: [],
 
diff --git a/src/assets/javascripts/helpers/spotify.js b/src/assets/javascripts/helpers/spotify.js
index 6863c108..9ff2c7d5 100644
--- a/src/assets/javascripts/helpers/spotify.js
+++ b/src/assets/javascripts/helpers/spotify.js
@@ -14,7 +14,6 @@ let redirects = {
     }
 }
 
-const getRedirects = () => redirects;
 function setRedirects(val) {
     redirects.soju = val;
     browser.storage.local.set({ spotifyTargetsRedirects: redirects })
@@ -25,20 +24,10 @@ function setRedirects(val) {
             if (index !== -1) sojuNormalRedirectsChecks.splice(index, 1);
         }
     browser.storage.local.set({ sojuNormalRedirectsChecks })
-
-    for (const item of sojuTorRedirectsChecks)
-        if (!redirects.soju.normal.includes(item)) {
-            var index = sojuTorRedirectsChecks.indexOf(item);
-            if (index !== -1) sojuTorRedirectsChecks.splice(index, 1);
-        }
-    browser.storage.local.set({ sojuTorRedirectsChecks })
 }
 
 let sojuNormalRedirectsChecks;
-let sojuTorRedirectsChecks;
-let sojuNormalCustomRedirects = [];
-let sojuTorCustomRedirects = [];
-
+let sojuNormalCustomRedirects;
 let disable; // disableSpotifyTargets
 
 function switchInstance(url) {
@@ -83,6 +72,8 @@ async function initDefaults() {
     await browser.storage.local.set({
         disableSpotifyTargets: true,
 
+        spotifyRedirects: redirects,
+
         sojuNormalRedirectsChecks: [...redirects.soju.normal],
         sojuNormalCustomRedirects: [],
     })
@@ -95,9 +86,6 @@ async function init() {
 
             "sojuNormalRedirectsChecks",
             "sojuNormalCustomRedirects",
-
-            "sojuTorRedirectsChecks",
-            "sojuTorCustomRedirects",
         ],
         r => {
             disable = r.disableSpotifyTargets;
@@ -109,7 +97,6 @@ async function init() {
 }
 
 export default {
-    getRedirects,
     setRedirects,
 
     switchInstance,
diff --git a/src/assets/javascripts/helpers/translate/lingva-preferences.js b/src/assets/javascripts/helpers/translate/lingva-preferences.js
index b63e2876..a9652903 100644
--- a/src/assets/javascripts/helpers/translate/lingva-preferences.js
+++ b/src/assets/javascripts/helpers/translate/lingva-preferences.js
@@ -6,8 +6,8 @@ browser.storage.local.get(
         "applyThemeToSites",
     ],
     r => {
-        let applyThemeToSites = r.applyThemeToSites ?? false;
-        let theme = r.theme ?? "DEFAULT";
+        let applyThemeToSites = r.applyThemeToSites;
+        let theme = r.theme;
 
         if (applyThemeToSites && theme != "DEFAULT") localStorage.setItem("chakra-ui-color-mode", r.theme);
     }
diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js
index 4c4cee79..7ce67433 100644
--- a/src/assets/javascripts/helpers/translate/translate.js
+++ b/src/assets/javascripts/helpers/translate/translate.js
@@ -68,15 +68,13 @@ let lingvaNormalCustomRedirects = [];
 let lingvaTorCustomRedirects = [];
 
 
-let disable; // translateDisable
-let frontend; // translateFrontend
-let protocol; // translateProtocol
-
-let from; // translateFrom
-let to; // translateTo
-
-
-let simplyTranslateEngine;
+let
+  disable, // translateDisable
+  frontend, // translateFrontend
+  protocol, // translateProtocol
+  from, // translateFrom
+  to, // translateTo
+  simplyTranslateEngine;
 
 function isTranslateRedirects(url, type, frontend) {
   let protocolHost = commonHelper.protocolHost(url);
@@ -203,82 +201,91 @@ function switchInstance(url) {
 }
 
 async function initDefaults() {
-
   fetch('/instances/data.json').then(response => response.text()).then(async data => {
     let dataJson = JSON.parse(data);
     redirects.simplyTranslate = dataJson.simplyTranslate;
     redirects.lingva = dataJson.lingva;
-    await browser.storage.local.set({
-      translateDisable: false,
-      translateFrontend: "simplyTranslate",
-      translateProtocol: 'normal',
-      translateRedirects: redirects,
-
-      simplyTranslateNormalRedirectsChecks: [...redirects.simplyTranslate.normal],
-      simplyTranslateNormalCustomRedirects: [],
-      simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
-      simplyTranslateTorCustomRedirects: [],
-
-      lingvaNormalRedirectsChecks: [...redirects.lingva.normal],
-      lingvaNormalCustomRedirects: [],
-      lingvaTorRedirectsChecks: [...redirects.lingva.tor],
-      lingvaTorCustomRedirects: [],
-
-      translateFrom: "auto",
-      translateTo: 'en',
-      simplyTranslateEngine: 'google',
+    browser.storage.local.get('cloudflareList', async r => {
+      simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal];
+      lingvaNormalRedirectsChecks = [...redirects.lingva.normal]
+      for (const instance of r.cloudflareList) {
+        let i;
+        
+        i = simplyTranslateNormalRedirectsChecks.indexOf(instance);
+        if (i > -1) simplyTranslateNormalRedirectsChecks.splice(i, 1);
+
+        i = lingvaNormalRedirectsChecks.indexOf(instance);
+        if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1);
+      }
+      await browser.storage.local.set({
+        translateDisable: false,
+        translateFrontend: "simplyTranslate",
+        translateProtocol: 'normal',
+        translateRedirects: redirects,
+
+        simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks,
+        simplyTranslateNormalCustomRedirects: [],
+        simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
+        simplyTranslateTorCustomRedirects: [],
+
+        lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks,
+        lingvaNormalCustomRedirects: [],
+        lingvaTorRedirectsChecks: [...redirects.lingva.tor],
+        lingvaTorCustomRedirects: [],
+
+        translateFrom: "auto",
+        translateTo: 'en',
+        simplyTranslateEngine: 'google',
+      })
     })
   })
 }
 
 async function init() {
-  fetch('/instances/data.json').then(response => response.text()).then(data => {
-    let dataJson = JSON.parse(data);
-    browser.storage.local.get(
-      [
-        "translateDisable",
-        "translateFrontend",
-        "translateProtocol",
-        "translateRedirects",
-
-        "simplyTranslateNormalRedirectsChecks",
-        "simplyTranslateNormalCustomRedirects",
-        "simplyTranslateTorRedirectsChecks",
-        "simplyTranslateTorCustomRedirects",
-
-        "lingvaNormalRedirectsChecks",
-        "lingvaNormalCustomRedirects",
-        "lingvaTorRedirectsChecks",
-        "lingvaTorCustomRedirects",
-
-        "translateFrom",
-        "translateTo",
-        "simplyTranslateEngine",
-      ],
-      result => {
-        disable = result.translateDisable;
-        frontend = result.translateFrontend;
-        protocol = result.translateProtocol;
-
-        from = result.translateFrom;
-        to = result.translateTo;
-        simplyTranslateEngine = result.simplyTranslateEngine;
-
-        redirects = result.translateRedirects;
-
-        simplyTranslateNormalRedirectsChecks = result.simplyTranslateNormalRedirectsChecks;
-        simplyTranslateNormalCustomRedirects = result.simplyTranslateNormalCustomRedirects;
-
-        simplyTranslateTorRedirectsChecks = result.simplyTranslateTorRedirectsChecks;
-        simplyTranslateTorCustomRedirects = result.simplyTranslateTorCustomRedirects;
-
-        lingvaNormalRedirectsChecks = result.lingvaNormalRedirectsChecks;
-        lingvaNormalCustomRedirects = result.lingvaNormalCustomRedirects;
-
-        lingvaTorRedirectsChecks = result.lingvaTorRedirectsChecks;
-        lingvaTorCustomRedirects = result.lingvaTorCustomRedirects;
-      });
-  });
+  browser.storage.local.get(
+    [
+      "translateDisable",
+      "translateFrontend",
+      "translateProtocol",
+      "translateRedirects",
+
+      "simplyTranslateNormalRedirectsChecks",
+      "simplyTranslateNormalCustomRedirects",
+      "simplyTranslateTorRedirectsChecks",
+      "simplyTranslateTorCustomRedirects",
+
+      "lingvaNormalRedirectsChecks",
+      "lingvaNormalCustomRedirects",
+      "lingvaTorRedirectsChecks",
+      "lingvaTorCustomRedirects",
+
+      "translateFrom",
+      "translateTo",
+      "simplyTranslateEngine",
+    ],
+    result => {
+      disable = result.translateDisable;
+      frontend = result.translateFrontend;
+      protocol = result.translateProtocol;
+
+      from = result.translateFrom;
+      to = result.translateTo;
+      simplyTranslateEngine = result.simplyTranslateEngine;
+
+      redirects = result.translateRedirects;
+
+      simplyTranslateNormalRedirectsChecks = result.simplyTranslateNormalRedirectsChecks;
+      simplyTranslateNormalCustomRedirects = result.simplyTranslateNormalCustomRedirects;
+
+      simplyTranslateTorRedirectsChecks = result.simplyTranslateTorRedirectsChecks;
+      simplyTranslateTorCustomRedirects = result.simplyTranslateTorCustomRedirects;
+
+      lingvaNormalRedirectsChecks = result.lingvaNormalRedirectsChecks;
+      lingvaNormalCustomRedirects = result.lingvaNormalCustomRedirects;
+
+      lingvaTorRedirectsChecks = result.lingvaTorRedirectsChecks;
+      lingvaTorCustomRedirects = result.lingvaTorCustomRedirects;
+    });
 }
 
 export default {
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 250b9050..2a213a80 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -219,37 +219,44 @@ async function initDefaults() {
   await fetch('/instances/data.json').then(response => response.text()).then(async data => {
     let dataJson = JSON.parse(data);
     redirects.nitter = dataJson.nitter;
-    await browser.storage.local.set({
-      disableTwitter: false,
-
-      enableTwitterCustomSettings: false,
-
-      twitterRedirects: redirects,
-      bypassWatchOnTwitter: true,
-
-      nitterNormalRedirectsChecks: [...redirects.nitter.normal],
-      nitterNormalCustomRedirects: [],
-
-      nitterTorRedirectsChecks: [...redirects.nitter.tor],
-      nitterTorCustomRedirects: [],
-
-      twitterProtocol: "normal",
-      alwaysUsePreferred: false,
-
-      nitterTheme: 'Auto',
-      nitterInfiniteScroll: false,
-      nitterStickyProfile: true,
-      nitterBidiSupport: false,
-      nitterHideTweetStats: false,
-      nitterHideBanner: false,
-      nitterHidePins: false,
-      nitterHideReplies: false,
-      nitterSquareAvatars: false,
-      nitterMp4Playback: true,
-      nitterHlsPlayback: false,
-      nitterProxyVideos: true,
-      nitterMuteVideos: false,
-      nitterAutoplayGifs: true,
+    browser.storage.local.get('cloudflareList', async r => {
+      nitterNormalRedirectsChecks = [...redirects.nitter.normal];
+      for (const instance of r.cloudflareList) {
+        let i = nitterNormalRedirectsChecks.indexOf(instance);
+        if (i > -1) nitterNormalRedirectsChecks.splice(i, 1);
+      }
+      await browser.storage.local.set({
+        disableTwitter: false,
+
+        enableTwitterCustomSettings: false,
+
+        twitterRedirects: redirects,
+        bypassWatchOnTwitter: true,
+
+        nitterNormalRedirectsChecks: nitterNormalRedirectsChecks,
+        nitterNormalCustomRedirects: [],
+
+        nitterTorRedirectsChecks: [...redirects.nitter.tor],
+        nitterTorCustomRedirects: [],
+
+        twitterProtocol: "normal",
+        alwaysUsePreferred: false,
+
+        nitterTheme: 'Auto',
+        nitterInfiniteScroll: false,
+        nitterStickyProfile: true,
+        nitterBidiSupport: false,
+        nitterHideTweetStats: false,
+        nitterHideBanner: false,
+        nitterHidePins: false,
+        nitterHideReplies: false,
+        nitterSquareAvatars: false,
+        nitterMp4Playback: true,
+        nitterHlsPlayback: false,
+        nitterProxyVideos: true,
+        nitterMuteVideos: false,
+        nitterAutoplayGifs: true,
+      })
     })
   })
 }
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index 04ba51b9..b11eb1d2 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -141,21 +141,29 @@ async function initDefaults() {
   fetch('/instances/data.json').then(response => response.text()).then(async data => {
     let dataJson = JSON.parse(data);
     redirects.wikiless = dataJson.wikiless;
-    await browser.storage.local.set({
-      disableWikipedia: true,
-      wikipediaRedirects: redirects,
-      wikilessNormalRedirectsChecks: [...redirects.wikiless.normal],
-      wikilessTorRedirectsChecks: [...redirects.wikiless.tor],
-      wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p],
-      wikilessNormalCustomRedirects: [],
-      wikilessTorCustomRedirects: [],
-      wikilessI2pCustomRedirects: [],
-      wikipediaProtocol: "normal",
-
-      theme: 'DEFAULT',
-      applyThemeToSites: false,
+    browser.storage.local.get('cloudflareList', async r => {
+      wikilessNormalRedirectsChecks = [...redirects.wikiless.normal];
+      for (const instance of r.cloudflareList) {
+        let i;
+
+        i = wikilessNormalRedirectsChecks.indexOf(instance);
+        if (i > -1) wikilessNormalRedirectsChecks.splice(i, 1);
+      }
+      await browser.storage.local.set({
+        disableWikipedia: true,
+        wikipediaRedirects: redirects,
+        wikilessNormalRedirectsChecks: wikilessNormalRedirectsChecks,
+        wikilessTorRedirectsChecks: [...redirects.wikiless.tor],
+        wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p],
+        wikilessNormalCustomRedirects: [],
+        wikilessTorCustomRedirects: [],
+        wikilessI2pCustomRedirects: [],
+        wikipediaProtocol: "normal",
+
+        theme: 'DEFAULT',
+        applyThemeToSites: false,
+      })
     })
-
   })
 }
 
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 193a4ec3..7c4ad8c8 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -25,21 +25,8 @@ let redirects = {
     "tor": []
   },
   "piped": {
-    "normal": [
-      "https://piped.kavin.rocks",
-      "https://piped.silkky.cloud",
-      "https://piped.tokhmi.xyz",
-      "https://piped.moomoo.me",
-      "https://il.ax",
-      "https://piped.syncpundit.com",
-      "https://piped.mha.fi",
-      "https://piped.mint.lgbt",
-      "https://piped.privacy.com.de",
-      "https://piped.notyourcomputer.net"
-    ],
-    "tor": [
-      "http://piped2bbch4xslbl2ckr6k62q56kon56ffowxaqzy42ai22a4sash3ad.onion"
-    ]
+    "normal": [],
+    "tor": []
   },
   "pipedMaterial": {
     "normal": [
@@ -52,28 +39,32 @@ let redirects = {
 
 const getRedirects = () => redirects;
 
-let invidiousNormalRedirectsChecks;
-let invidiousNormalCustomRedirects = [];
-let invidiousTorRedirectsChecks;
-let invidiousTorCustomRedirects = [];
-
-let pipedNormalRedirectsChecks;
-let pipedNormalCustomRedirects = [];
-let pipedTorRedirectsChecks;
-let pipedTorCustomRedirects = [];
-
-let pipedMaterialNormalRedirectsChecks;
-let pipedMaterialNormalCustomRedirects = [];
-let pipedMaterialTorRedirectsChecks;
-let pipedMaterialTorCustomRedirects = [];
-
-let disable;
-let protocol;
-let OnlyEmbeddedVideo;
-let frontend;
-let youtubeEmbedFrontend;
-let bypassWatchOnYoutube;
-let alwaysUsePreferred;
+let
+  invidiousNormalRedirectsChecks,
+  invidiousNormalCustomRedirects,
+  invidiousTorRedirectsChecks,
+  invidiousTorCustomRedirects;
+
+let
+  pipedNormalRedirectsChecks,
+  pipedNormalCustomRedirects,
+  pipedTorRedirectsChecks,
+  pipedTorCustomRedirects;
+
+let
+  pipedMaterialNormalRedirectsChecks,
+  pipedMaterialNormalCustomRedirects,
+  pipedMaterialTorRedirectsChecks,
+  pipedMaterialTorCustomRedirects;
+
+let
+  disable,
+  protocol,
+  OnlyEmbeddedVideo,
+  frontend,
+  youtubeEmbedFrontend,
+  bypassWatchOnYoutube,
+  alwaysUsePreferred;
 
 function redirect(url, details, initiator) {
   if (disable) return null;
@@ -309,54 +300,69 @@ function isPipedorInvidious(url, type, frontend) {
 }
 
 async function initDefaults() {
-  console.log('youtube initDefaults')
   return new Promise(async resolve => {
     fetch('/instances/data.json').then(response => response.text()).then(async data => {
       let dataJson = JSON.parse(data);
       redirects.invidious = dataJson.invidious;
-      await browser.storage.local.set({
-        disableYoutube: false,
-        enableYoutubeCustomSettings: false,
-        OnlyEmbeddedVideo: 'both',
+      redirects.piped = dataJson.piped;
+      browser.storage.local.get('cloudflareList', async r => {
 
-        youtubeRedirects: {
-          'invidious': dataJson.invidious,
-          'piped': redirects.piped,
-          'pipedMaterial': redirects.pipedMaterial
-        },
+        invidiousNormalRedirectsChecks = [...redirects.invidious.normal];
+        pipedNormalRedirectsChecks = [...redirects.piped.normal];
+        pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal];
 
-        youtubeFrontend: 'invidious',
+        for (const instance of r.cloudflareList) {
+          let i;
 
-        invidiousNormalRedirectsChecks: [...redirects.invidious.normal],
-        invidiousNormalCustomRedirects: [],
+          i = invidiousNormalRedirectsChecks.indexOf(instance);
+          if (i > -1) invidiousNormalRedirectsChecks.splice(i, 1);
 
-        invidiousTorRedirectsChecks: [...redirects.invidious.tor],
-        invidiousTorCustomRedirects: [],
+          i = pipedNormalRedirectsChecks.indexOf(instance);
+          if (i > -1) pipedNormalRedirectsChecks.splice(i, 1);
 
-        pipedNormalRedirectsChecks: [...redirects.piped.normal],
-        pipedNormalCustomRedirects: [],
+          i = pipedMaterialNormalRedirectsChecks.indexOf(instance);
+          if (i > -1) pipedMaterialNormalRedirectsChecks.splice(i, 1);
+        }
 
-        pipedTorRedirectsChecks: [...redirects.piped.tor],
-        pipedTorCustomRedirects: [],
+        await browser.storage.local.set({
+          disableYoutube: false,
+          enableYoutubeCustomSettings: false,
+          OnlyEmbeddedVideo: 'both',
 
-        pipedMaterialNormalRedirectsChecks: [...redirects.pipedMaterial.normal],
-        pipedMaterialNormalCustomRedirects: [],
+          youtubeRedirects: redirects,
 
-        pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
-        pipedMaterialTorCustomRedirects: [],
+          youtubeFrontend: 'invidious',
 
-        alwaysUsePreferred: false,
-        youtubeEmbedFrontend: 'invidious',
-        youtubeProtocol: 'normal',
-        bypassWatchOnYoutube: true,
-      })
+          invidiousNormalRedirectsChecks: invidiousNormalRedirectsChecks,
+          invidiousNormalCustomRedirects: [],
 
-      await invidious.initDefaults();
-      await piped.initDefaults();
-      await pipedMaterial.initDefaults();
-      resolve();
-    }
-    )
+          invidiousTorRedirectsChecks: [...redirects.invidious.tor],
+          invidiousTorCustomRedirects: [],
+
+          pipedNormalRedirectsChecks: pipedNormalRedirectsChecks,
+          pipedNormalCustomRedirects: [],
+
+          pipedTorRedirectsChecks: [...redirects.piped.tor],
+          pipedTorCustomRedirects: [],
+
+          pipedMaterialNormalRedirectsChecks: pipedMaterialNormalRedirectsChecks,
+          pipedMaterialNormalCustomRedirects: [],
+
+          pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
+          pipedMaterialTorCustomRedirects: [],
+
+          alwaysUsePreferred: false,
+          youtubeEmbedFrontend: 'invidious',
+          youtubeProtocol: 'normal',
+          bypassWatchOnYoutube: true,
+        })
+
+        await invidious.initDefaults();
+        await piped.initDefaults();
+        await pipedMaterial.initDefaults();
+        resolve();
+      })
+    })
   })
 }
 
diff --git a/src/assets/javascripts/helpers/youtubeMusic.js b/src/assets/javascripts/helpers/youtubeMusic.js
index ef707855..0b06bfa3 100644
--- a/src/assets/javascripts/helpers/youtubeMusic.js
+++ b/src/assets/javascripts/helpers/youtubeMusic.js
@@ -68,7 +68,9 @@ function redirect(url, type) {
 
 async function initDefaults() {
     await browser.storage.local.set({
-        disableYoutubeMusic: false,
+        disableYoutubeMusic: true,
+
+        youtubeMusicRedirects: redirects,
 
         beatbumpNormalRedirectsChecks: [...redirects.beatbump.normal],
         beatbumpNormalCustomRedirects: [],