about summary refs log tree commit diff stats
path: root/src/pages/options/youtube
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/options/youtube')
-rw-r--r--src/pages/options/youtube/invidious.js38
-rw-r--r--src/pages/options/youtube/piped.js55
-rw-r--r--src/pages/options/youtube/pipedMaterial.js54
-rw-r--r--src/pages/options/youtube/youtube.html1302
4 files changed, 1424 insertions, 25 deletions
diff --git a/src/pages/options/youtube/invidious.js b/src/pages/options/youtube/invidious.js
index d390ef87..af94c531 100644
--- a/src/pages/options/youtube/invidious.js
+++ b/src/pages/options/youtube/invidious.js
@@ -118,6 +118,7 @@ function init() {
         feed_menu0.value = youtubeHelper.getInvidiousFeedMenuList()[0];
         feed_menu1.value = youtubeHelper.getInvidiousFeedMenuList()[1];
 
+        browser.storage.local.get("invidiousLatency").then(r => {
         commonHelper.processDefaultCustomInstances(
             'invidious',
             'normal',
@@ -126,8 +127,10 @@ function init() {
             youtubeHelper.getInvidiousNormalRedirectsChecks,
             youtubeHelper.setInvidiousNormalRedirectsChecks,
             youtubeHelper.getInvidiousNormalCustomRedirects,
-            youtubeHelper.setInvidiousNormalCustomRedirects
-        );
+            youtubeHelper.setInvidiousNormalCustomRedirects,
+            r.invidiousLatency
+          );
+        })
 
         commonHelper.processDefaultCustomInstances(
             'invidious',
@@ -142,4 +145,33 @@ function init() {
     });
 }
 
-init()
\ No newline at end of file
+init()
+
+let latencyInvidiousElement = document.getElementById("latency-invidious");
+let latencyInvidiousLabel = document.getElementById("latency-invidious-label");
+latencyInvidiousElement.addEventListener("click",
+  async () => {
+    let reloadWindow = () => location.reload();
+    latencyInvidiousElement.addEventListener("click", reloadWindow);
+    await youtubeHelper.init();
+    let redirects = youtubeHelper.getRedirects();
+    const oldHtml = latencyInvidiousLabel.innerHTML;
+    latencyInvidiousLabel.innerHTML = '...';
+    commonHelper.testLatency(latencyInvidiousLabel, redirects.invidious.normal).then(r => {
+      browser.storage.local.set({ invidiousLatency: r });
+      latencyInvidiousLabel.innerHTML = oldHtml;
+      commonHelper.processDefaultCustomInstances(
+        'invidious',
+        'normal',
+        youtubeHelper,
+        document,
+        youtubeHelper.getInvidiousNormalRedirectsChecks,
+        youtubeHelper.setInvidiousNormalRedirectsChecks,
+        youtubeHelper.getInvidiousNormalCustomRedirects,
+        youtubeHelper.setInvidiousNormalCustomRedirects,
+        r,
+      );
+      latencyInvidiousElement.removeEventListener("click", reloadWindow);
+    });
+  }
+);
\ No newline at end of file
diff --git a/src/pages/options/youtube/piped.js b/src/pages/options/youtube/piped.js
index bb851ba0..a0bc45a7 100644
--- a/src/pages/options/youtube/piped.js
+++ b/src/pages/options/youtube/piped.js
@@ -110,16 +110,20 @@ function init() {
         volume.value = youtubeHelper.getVolume();
         volumeValue.textContent = `${youtubeHelper.getVolume()}%`;
 
-        commonHelper.processDefaultCustomInstances(
-            'piped',
-            'normal',
-            youtubeHelper,
-            document,
-            youtubeHelper.getPipedNormalRedirectsChecks,
-            youtubeHelper.setPipedNormalRedirectsChecks,
-            youtubeHelper.getPipedNormalCustomRedirects,
-            youtubeHelper.setPipedNormalCustomRedirects
-        );
+        browser.storage.local.get("pipedLatency").then(r => {
+            commonHelper.processDefaultCustomInstances(
+                'piped',
+                'normal',
+                youtubeHelper,
+                document,
+                youtubeHelper.getPipedNormalRedirectsChecks,
+                youtubeHelper.setPipedNormalRedirectsChecks,
+                youtubeHelper.getPipedNormalCustomRedirects,
+                youtubeHelper.setPipedNormalCustomRedirects,
+                r.pipedLatency,
+            );
+        });
+
         commonHelper.processDefaultCustomInstances(
             'piped',
             'tor',
@@ -132,4 +136,33 @@ function init() {
         );
     });
 }
-init();
\ No newline at end of file
+init();
+
+let latencyPipedElement = document.getElementById("latency-piped");
+let latencyPipedLabel = document.getElementById("latency-piped-label");
+latencyPipedElement.addEventListener("click",
+  async () => {
+    let reloadWindow = () => location.reload();
+    latencyPipedElement.addEventListener("click", reloadWindow);
+    await youtubeHelper.init();
+    let redirects = youtubeHelper.getRedirects();
+    const oldHtml = latencyPipedLabel.innerHTML;
+    latencyPipedLabel.innerHTML = '...';
+    commonHelper.testLatency(latencyPipedLabel, redirects.piped.normal).then(r => {
+      browser.storage.local.set({ pipedLatency: r });
+      latencyPipedLabel.innerHTML = oldHtml;
+      commonHelper.processDefaultCustomInstances(
+        'piped',
+        'normal',
+        youtubeHelper,
+        document,
+        youtubeHelper.getPipedNormalRedirectsChecks,
+        youtubeHelper.setPipedNormalRedirectsChecks,
+        youtubeHelper.getPipedNormalCustomRedirects,
+        youtubeHelper.setPipedNormalCustomRedirects,
+        r,
+      );
+      latencyPipedElement.removeEventListener("click", reloadWindow);
+    });
+  }
+);
diff --git a/src/pages/options/youtube/pipedMaterial.js b/src/pages/options/youtube/pipedMaterial.js
index 60b2c424..bc31289a 100644
--- a/src/pages/options/youtube/pipedMaterial.js
+++ b/src/pages/options/youtube/pipedMaterial.js
@@ -86,19 +86,22 @@ function init() {
 
         volumeElement.value = youtubeHelper.getVolume();
         volumeValueElement.textContent = `${youtubeHelper.getVolume()}%`;
+        browser.storage.local.get("pipedMaterialLatency").then(r => {
+            commonHelper.processDefaultCustomInstances(
+                'pipedMaterial',
+                'normal',
+                youtubeHelper,
+                document,
+                youtubeHelper.getPipedMaterialNormalRedirectsChecks,
+                youtubeHelper.setPipedMaterialNormalRedirectsChecks,
+                youtubeHelper.getPipedMaterialNormalCustomRedirects,
+                youtubeHelper.setPipedMaterialNormalCustomRedirects,
+                r.pipedMaterialLatency,
+            );
+        });
 
         commonHelper.processDefaultCustomInstances(
             'pipedMaterial',
-            'normal',
-            youtubeHelper,
-            document,
-            youtubeHelper.getPipedMaterialNormalRedirectsChecks,
-            youtubeHelper.setPipedMaterialNormalRedirectsChecks,
-            youtubeHelper.getPipedMaterialNormalCustomRedirects,
-            youtubeHelper.setPipedMaterialNormalCustomRedirects
-        );
-        commonHelper.processDefaultCustomInstances(
-            'pipedMaterial',
             'tor',
             youtubeHelper,
             document,
@@ -109,4 +112,33 @@ function init() {
         );
     });
 }
-init();
\ No newline at end of file
+init();
+
+let latencyPipedMaterialElement = document.getElementById("latency-pipedMaterial");
+let latencyPipedMaterialLabel = document.getElementById("latency-pipedMaterial-label");
+latencyPipedMaterialElement.addEventListener("click",
+  async () => {
+    let reloadWindow = () => location.reload();
+    latencyPipedMaterialElement.addEventListener("click", reloadWindow);
+    await youtubeHelper.init();
+    let redirects = youtubeHelper.getRedirects();
+    const oldHtml = latencyPipedMaterialLabel.innerHTML;
+    latencyPipedMaterialLabel.innerHTML = '...';
+    commonHelper.testLatency(latencyPipedMaterialLabel, redirects.pipedMaterial.normal).then(r => {
+      browser.storage.local.set({ pipedMaterialLatency: r });
+      latencyPipedMaterialLabel.innerHTML = oldHtml;
+      commonHelper.processDefaultCustomInstances(
+        'pipedMaterial',
+        'normal',
+        youtubeHelper,
+        document,
+        youtubeHelper.getPipedMaterialNormalRedirectsChecks,
+        youtubeHelper.setPipedMaterialNormalRedirectsChecks,
+        youtubeHelper.getPipedMaterialNormalCustomRedirects,
+        youtubeHelper.setPipedMaterialNormalCustomRedirects,
+        r,
+      );
+      latencyPipedMaterialElement.removeEventListener("click", reloadWindow);
+    });
+  }
+);
\ No newline at end of file
diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html
new file mode 100644
index 00000000..67c86786
--- /dev/null
+++ b/src/pages/options/youtube/youtube.html
@@ -0,0 +1,1302 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="icon" type="image/x-icon" href="../../../assets/images/libredirect.svg">
+    <link href="../../stylesheets/styles.css" rel="stylesheet">
+    <title>Document</title>
+  </head>
+</html>
+<script type="module" src="../../../assets/javascripts/localise.js"></script>
+<body class="option" dir="auto">
+    <section class="links">
+      <div class="title">
+        <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor">
+          <path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"></path>
+        </svg><a href="../general/general.html" data-localise="__MSG_general__">General</a>
+      </div>
+      <div class="title"> <img src="../../../assets/images/youtube-icon.png"><a class="selected" href="../youtube/youtube.html" data-localise="__MSG_youtube__">YouTube </a></div>
+      <div class="title"> <img src="../../../assets/images/youtube-music-icon.png"><a href="../youtubeMusic/youtubeMusic.html" data-localise="__MSG_ytmusic__">YT Music</a></div>
+      <div class="title"> <img src="../../../assets/images/twitter-icon.png"><a href="../twitter/twitter.html" data-localise="__MSG_twitter__">Twitter</a></div>
+      <div class="title"> <img src="../../../assets/images/instagram-icon.png"><a href="../instagram/instagram.html" data-localise="__MSG_instagram__">Instagram</a></div>
+      <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
+      <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
+      <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
+      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
+      <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
+      <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
+      <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
+      <div class="title"> 
+        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
+          <circle cx="500" cy="500" r="500"></circle>
+          <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
+          <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
+        </svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
+      </div>
+      <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
+      <div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
+      <div class="title"> 
+        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
+          <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
+        </svg><a href="../search/search.html" data-localise="__MSG_search__">Search</a>
+      </div>
+      <div class="title"> 
+        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+          <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
+        </svg><a href="../translate/translate.html" data-localise="__MSG_translate__">Translate</a>
+      </div>
+      <div class="title"> 
+        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+          <path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path>
+        </svg><a href="../maps/maps.html" data-localise="__MSG_maps__">Maps</a>
+      </div>
+      <div class="title"> 
+        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+          <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
+        </svg><a href="../sendTargets/sendTargets.html" data-localise="__MSG_sendFiles__">Send Files</a>
+      </div>
+    </section>
+  <section class="option-block">
+    <div class="some-block option-block">
+      <h4 data-localise="__MSG_enable__">Enable</h4>
+      <input id="disable-invidious" type="checkbox">
+    </div>
+    <div class="some-block option-block">
+      <h4 data-localise="__MSG_frontend__">Frontend</h4>
+      <select id="youtube-frontend">
+        <option value="invidious">Invidious</option>
+        <option value="piped">Piped</option>
+        <option value="pipedMaterial">Piped-Material</option>
+        <option value="freetube">FreeTube</option>
+        <option value="yatte">Yattee</option>
+      </select>
+    </div>
+    <hr>
+    <div id="freetube-yatte">
+      <div class="some-block option-block">
+        <h4 data-localise="__MSG_embeddedVids__">Embedded Videos Frontend</h4>
+        <select id="youtube-embed-frontend">
+          <option value="invidious">Invidious</option>
+          <option value="piped">Piped</option>
+          <option value="pipedMaterial">Piped-Material</option>
+          <option value="youtube">Youtube</option>
+        </select>
+      </div>
+      <hr>
+    </div>
+    <div id="invidious-piped-pipedMaterial">
+      <div class="some-block option-block">
+        <h4 data-localise="__MSG_protocol__">Protocol</h4>
+        <select id="protocol">
+          <option value="normal" data-localise="__MSG_normal__">Normal</option>
+          <option value="tor" data-localise="__MSG_tor__">Tor</option>
+        </select>
+      </div>
+      <div class="some-block option-block">
+        <h4 data-localise="__MSG_redirectType">Redirect Type</h4>
+        <select id="only-embed">
+          <option value="both" data-localise="__MSG_both__">both</option>
+          <option value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__">Only Embedded</option>
+          <option value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option>
+        </select>
+      </div>
+      <div class="some-block option-block">
+        <h4 data-localise="__MSG_bypassYoutube__">Bypass "Watch On YouTube"</h4>
+        <input id="bypass-watch-on-youtube" type="checkbox">
+      </div>
+      <div class="some-block option-block">
+        <h4 data-localise="__MSG_enableCustom__">Enable Custom Settings (will use cookies and localStorage)</h4>
+        <input id="enable-youtube-custom-settings" type="checkbox">
+      </div>
+    </div>
+    <div id="invidious">
+      <div class="custom-settings">
+        <hr>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_alwaysLoop__">Always loop</h4>
+          <input class="video_loop" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_autoplayVid__">Autoplay Video</h4>
+          <input class="youtubeAutoplay" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_playNext__">Play next by default</h4>
+          <input class="continue" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_autoplayNext__">Autoplay next video</h4>
+          <input class="continue_autoplay" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_alwaysProxy__">Always proxy videos</h4>
+          <input class="local" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_listenByDefault__">Listen by default</h4>
+          <input class="listen" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_defaultSpeed__">Default speed</h4>
+          <select class="speed">
+            <option>2.0</option>
+            <option>1.75</option>
+            <option>1.5</option>
+            <option>1.25</option>
+            <option>1.0</option>
+            <option>0.75</option>
+            <option>0.5</option>
+            <option>0.25</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_prefQuality__">Preferred video quality</h4>
+          <select class="quality">
+            <option value="hd720">720p</option>
+            <option value="medium">480p</option>
+            <option value="dash" data-localise="__MSG_dash__">DASH (adaptive quality)</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_prefDashQuality__">Preferred DASH video quality</h4>
+          <select class="quality_dash">
+            <option value="auto" data-localise="__MSG_auto__">Auto</option>
+            <option value="best" data-localise="__MSG_best__">Best</option>
+            <option value="4320p">4320p</option>
+            <option value="2160p">2160p</option>
+            <option value="1440p">1440p</option>
+            <option value="1080p">1080p</option>
+            <option value="720p">720p</option>
+            <option value="480p">480p</option>
+            <option value="360p">360p</option>
+            <option value="240p">240p</option>
+            <option value="144p">144p</option>
+            <option value="worst" data-localise="__MSG_worst__">Worst</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4>
+            <x data-localise="__MSG_volume__">Volume:</x><span class="volume-value">--%</span>
+          </h4>
+          <input class="volume" type="range" min="0" max="100" step="1">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_prefDashQuality__">Default comments</h4>
+          <select class="comments[0]">
+            <option value="" data-localise="__MSG_none__">none</option>
+            <option value="youtube">YouTube</option>
+            <option value="reddit">Reddit</option>
+          </select>&nbsp;
+          <select class="comments[1]">
+            <option value="" data-localise="__MSG_none__">none</option>
+            <option value="youtube">YouTube</option>
+            <option value="reddit">Reddit</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_defaultCaptions__">Default captions</h4>
+          <select class="captions[0]">
+            <option value="" data-localise="__MSG_none__">none</option>
+            <option value="English">English</option>
+            <option value="English (auto-generated)">English (auto-generated)</option>
+            <option value="English (United Kingdom)">English (United Kingdom)</option>
+            <option value="English (United States)">English (United States)</option>
+            <option value="Afrikaans">Afrikaans</option>
+            <option value="Albanian">Albanian</option>
+            <option value="Amharic">Amharic</option>
+            <option value="Arabic">Arabic</option>
+            <option value="Armenian">Armenian</option>
+            <option value="Azerbaijani">Azerbaijani</option>
+            <option value="Bangla">Bangla</option>
+            <option value="Basque">Basque</option>
+            <option value="Belarusian">Belarusian</option>
+            <option value="Bosnian">Bosnian</option>
+            <option value="Bulgarian">Bulgarian</option>
+            <option value="Burmese">Burmese</option>
+            <option value="Cantonese (Hong Kong)">Cantonese (Hong Kong)</option>
+            <option value="Catalan">Catalan</option>
+            <option value="Cebuano">Cebuano</option>
+            <option value="Chinese">Chinese</option>
+            <option value="Chinese (China)">Chinese (China)</option>
+            <option value="Chinese (Hong Kong)">Chinese (Hong Kong)</option>
+            <option value="Chinese (Simplified)">Chinese (Simplified)</option>
+            <option value="Chinese (Taiwan)">Chinese (Taiwan)</option>
+            <option value="Chinese (Traditional)">Chinese (Traditional)</option>
+            <option value="Corsican">Corsican</option>
+            <option value="Croatian">Croatian</option>
+            <option value="Czech">Czech</option>
+            <option value="Danish">Danish</option>
+            <option value="Dutch">Dutch</option>
+            <option value="Dutch (auto-generated)">Dutch (auto-generated)</option>
+            <option value="Esperanto">Esperanto</option>
+            <option value="Estonian">Estonian</option>
+            <option value="Filipino">Filipino</option>
+            <option value="Finnish">Finnish</option>
+            <option value="French">French</option>
+            <option value="French (auto-generated)">French (auto-generated)</option>
+            <option value="Galician">Galician</option>
+            <option value="Georgian">Georgian</option>
+            <option value="German">German</option>
+            <option value="German (auto-generated)">German (auto-generated)</option>
+            <option value="Greek">Greek</option>
+            <option value="Gujarati">Gujarati</option>
+            <option value="Haitian Creole">Haitian Creole</option>
+            <option value="Hausa">Hausa</option>
+            <option value="Hawaiian">Hawaiian</option>
+            <option value="Hebrew">Hebrew</option>
+            <option value="Hindi">Hindi</option>
+            <option value="Hmong">Hmong</option>
+            <option value="Hungarian">Hungarian</option>
+            <option value="Icelandic">Icelandic</option>
+            <option value="Igbo">Igbo</option>
+            <option value="Indonesian">Indonesian</option>
+            <option value="Indonesian (auto-generated)">Indonesian (auto-generated)</option>
+            <option value="Interlingue">Interlingue</option>
+            <option value="Irish">Irish</option>
+            <option value="Italian">Italian</option>
+            <option value="Italian (auto-generated)">Italian (auto-generated)</option>
+            <option value="Japanese">Japanese</option>
+            <option value="Japanese (auto-generated)">Japanese (auto-generated)</option>
+            <option value="Javanese">Javanese</option>
+            <option value="Kannada">Kannada</option>
+            <option value="Kazakh">Kazakh</option>
+            <option value="Khmer">Khmer</option>
+            <option value="Korean">Korean</option>
+            <option value="Korean (auto-generated)">Korean (auto-generated)</option>
+            <option value="Kurdish">Kurdish</option>
+            <option value="Kyrgyz">Kyrgyz</option>
+            <option value="Lao">Lao</option>
+            <option value="Latin">Latin</option>
+            <option value="Latvian">Latvian</option>
+            <option value="Lithuanian">Lithuanian</option>
+            <option value="Luxembourgish">Luxembourgish</option>
+            <option value="Macedonian">Macedonian</option>
+            <option value="Malagasy">Malagasy</option>
+            <option value="Malay">Malay</option>
+            <option value="Malayalam">Malayalam</option>
+            <option value="Maltese">Maltese</option>
+            <option value="Maori">Maori</option>
+            <option value="Marathi">Marathi</option>
+            <option value="Mongolian">Mongolian</option>
+            <option value="Nepali">Nepali</option>
+            <option value="Norwegian Bokmål">Norwegian Bokmål</option>
+            <option value="Nyanja">Nyanja</option>
+            <option value="Pashto">Pashto</option>
+            <option value="Persian">Persian</option>
+            <option value="Polish">Polish</option>
+            <option value="Portuguese">Portuguese</option>
+            <option value="Portuguese (auto-generated)">Portuguese (auto-generated)</option>
+            <option value="Portuguese (Brazil)">Portuguese (Brazil)</option>
+            <option value="Punjabi">Punjabi</option>
+            <option value="Romanian">Romanian</option>
+            <option value="Russian">Russian</option>
+            <option value="Russian (auto-generated)">Russian (auto-generated)</option>
+            <option value="Samoan">Samoan</option>
+            <option value="Scottish Gaelic">Scottish Gaelic</option>
+            <option value="Serbian">Serbian</option>
+            <option value="Shona">Shona</option>
+            <option value="Sindhi">Sindhi</option>
+            <option value="Sinhala">Sinhala</option>
+            <option value="Slovak">Slovak</option>
+            <option value="Slovenian">Slovenian</option>
+            <option value="Somali">Somali</option>
+            <option value="Southern Sotho">Southern Sotho</option>
+            <option value="Spanish">Spanish</option>
+            <option value="Spanish (auto-generated)">Spanish (auto-generated)</option>
+            <option value="Spanish (Latin America)">Spanish (Latin America)</option>
+            <option value="Spanish (Mexico)">Spanish (Mexico)</option>
+            <option value="Spanish (Spain)">Spanish (Spain)</option>
+            <option value="Sundanese">Sundanese</option>
+            <option value="Swahili">Swahili</option>
+            <option value="Swedish">Swedish</option>
+            <option value="Tajik">Tajik</option>
+            <option value="Tamil">Tamil</option>
+            <option value="Telugu">Telugu</option>
+            <option value="Thai">Thai</option>
+            <option value="Turkish">Turkish</option>
+            <option value="Turkish (auto-generated)">Turkish (auto-generated)</option>
+            <option value="Ukrainian">Ukrainian</option>
+            <option value="Urdu">Urdu</option>
+            <option value="Uzbek">Uzbek</option>
+            <option value="Vietnamese">Vietnamese</option>
+            <option value="Vietnamese (auto-generated)">Vietnamese (auto-generated)</option>
+            <option value="Welsh">Welsh</option>
+            <option value="Western Frisian">Western Frisian</option>
+            <option value="Xhosa">Xhosa</option>
+            <option value="Yiddish">Yiddish</option>
+            <option value="Yoruba">Yoruba</option>
+            <option value="Zulu">Zulu</option>
+          </select>&nbsp;
+          <select class="captions[1]">
+            <option value="" data-localise="__MSG_none__">none</option>
+            <option value="English">English</option>
+            <option value="English (auto-generated)">English (auto-generated)</option>
+            <option value="English (United Kingdom)">English (United Kingdom)</option>
+            <option value="English (United States)">English (United States)</option>
+            <option value="Afrikaans">Afrikaans</option>
+            <option value="Albanian">Albanian</option>
+            <option value="Amharic">Amharic</option>
+            <option value="Arabic">Arabic</option>
+            <option value="Armenian">Armenian</option>
+            <option value="Azerbaijani">Azerbaijani</option>
+            <option value="Bangla">Bangla</option>
+            <option value="Basque">Basque</option>
+            <option value="Belarusian">Belarusian</option>
+            <option value="Bosnian">Bosnian</option>
+            <option value="Bulgarian">Bulgarian</option>
+            <option value="Burmese">Burmese</option>
+            <option value="Cantonese (Hong Kong)">Cantonese (Hong Kong)</option>
+            <option value="Catalan">Catalan</option>
+            <option value="Cebuano">Cebuano</option>
+            <option value="Chinese">Chinese</option>
+            <option value="Chinese (China)">Chinese (China)</option>
+            <option value="Chinese (Hong Kong)">Chinese (Hong Kong)</option>
+            <option value="Chinese (Simplified)">Chinese (Simplified)</option>
+            <option value="Chinese (Taiwan)">Chinese (Taiwan)</option>
+            <option value="Chinese (Traditional)">Chinese (Traditional)</option>
+            <option value="Corsican">Corsican</option>
+            <option value="Croatian">Croatian</option>
+            <option value="Czech">Czech</option>
+            <option value="Danish">Danish</option>
+            <option value="Dutch">Dutch</option>
+            <option value="Dutch (auto-generated)">Dutch (auto-generated)</option>
+            <option value="Esperanto">Esperanto</option>
+            <option value="Estonian">Estonian</option>
+            <option value="Filipino">Filipino</option>
+            <option value="Finnish">Finnish</option>
+            <option value="French">French</option>
+            <option value="French (auto-generated)">French (auto-generated)</option>
+            <option value="Galician">Galician</option>
+            <option value="Georgian">Georgian</option>
+            <option value="German">German</option>
+            <option value="German (auto-generated)">German (auto-generated)</option>
+            <option value="Greek">Greek</option>
+            <option value="Gujarati">Gujarati</option>
+            <option value="Haitian Creole">Haitian Creole</option>
+            <option value="Hausa">Hausa</option>
+            <option value="Hawaiian">Hawaiian</option>
+            <option value="Hebrew">Hebrew</option>
+            <option value="Hindi">Hindi</option>
+            <option value="Hmong">Hmong</option>
+            <option value="Hungarian">Hungarian</option>
+            <option value="Icelandic">Icelandic</option>
+            <option value="Igbo">Igbo</option>
+            <option value="Indonesian">Indonesian</option>
+            <option value="Indonesian (auto-generated)">Indonesian (auto-generated)</option>
+            <option value="Interlingue">Interlingue</option>
+            <option value="Irish">Irish</option>
+            <option value="Italian">Italian</option>
+            <option value="Italian (auto-generated)">Italian (auto-generated)</option>
+            <option value="Japanese">Japanese</option>
+            <option value="Japanese (auto-generated)">Japanese (auto-generated)</option>
+            <option value="Javanese">Javanese</option>
+            <option value="Kannada">Kannada</option>
+            <option value="Kazakh">Kazakh</option>
+            <option value="Khmer">Khmer</option>
+            <option value="Korean">Korean</option>
+            <option value="Korean (auto-generated)">Korean (auto-generated)</option>
+            <option value="Kurdish">Kurdish</option>
+            <option value="Kyrgyz">Kyrgyz</option>
+            <option value="Lao">Lao</option>
+            <option value="Latin">Latin</option>
+            <option value="Latvian">Latvian</option>
+            <option value="Lithuanian">Lithuanian</option>
+            <option value="Luxembourgish">Luxembourgish</option>
+            <option value="Macedonian">Macedonian</option>
+            <option value="Malagasy">Malagasy</option>
+            <option value="Malay">Malay</option>
+            <option value="Malayalam">Malayalam</option>
+            <option value="Maltese">Maltese</option>
+            <option value="Maori">Maori</option>
+            <option value="Marathi">Marathi</option>
+            <option value="Mongolian">Mongolian</option>
+            <option value="Nepali">Nepali</option>
+            <option value="Norwegian Bokmål">Norwegian Bokmål</option>
+            <option value="Nyanja">Nyanja</option>
+            <option value="Pashto">Pashto</option>
+            <option value="Persian">Persian</option>
+            <option value="Polish">Polish</option>
+            <option value="Portuguese">Portuguese</option>
+            <option value="Portuguese (auto-generated)">Portuguese (auto-generated)</option>
+            <option value="Portuguese (Brazil)">Portuguese (Brazil)</option>
+            <option value="Punjabi">Punjabi</option>
+            <option value="Romanian">Romanian</option>
+            <option value="Russian">Russian</option>
+            <option value="Russian (auto-generated)">Russian (auto-generated)</option>
+            <option value="Samoan">Samoan</option>
+            <option value="Scottish Gaelic">Scottish Gaelic</option>
+            <option value="Serbian">Serbian</option>
+            <option value="Shona">Shona</option>
+            <option value="Sindhi">Sindhi</option>
+            <option value="Sinhala">Sinhala</option>
+            <option value="Slovak">Slovak</option>
+            <option value="Slovenian">Slovenian</option>
+            <option value="Somali">Somali</option>
+            <option value="Southern Sotho">Southern Sotho</option>
+            <option value="Spanish">Spanish</option>
+            <option value="Spanish (auto-generated)">Spanish (auto-generated)</option>
+            <option value="Spanish (Latin America)">Spanish (Latin America)</option>
+            <option value="Spanish (Mexico)">Spanish (Mexico)</option>
+            <option value="Spanish (Spain)">Spanish (Spain)</option>
+            <option value="Sundanese">Sundanese</option>
+            <option value="Swahili">Swahili</option>
+            <option value="Swedish">Swedish</option>
+            <option value="Tajik">Tajik</option>
+            <option value="Tamil">Tamil</option>
+            <option value="Telugu">Telugu</option>
+            <option value="Thai">Thai</option>
+            <option value="Turkish">Turkish</option>
+            <option value="Turkish (auto-generated)">Turkish (auto-generated)</option>
+            <option value="Ukrainian">Ukrainian</option>
+            <option value="Urdu">Urdu</option>
+            <option value="Uzbek">Uzbek</option>
+            <option value="Vietnamese">Vietnamese</option>
+            <option value="Vietnamese (auto-generated)">Vietnamese (auto-generated)</option>
+            <option value="Welsh">Welsh</option>
+            <option value="Western Frisian">Western Frisian</option>
+            <option value="Xhosa">Xhosa</option>
+            <option value="Yiddish">Yiddish</option>
+            <option value="Yoruba">Yoruba</option>
+            <option value="Zulu">Zulu</option>
+          </select>&nbsp;
+          <select class="captions[2]">
+            <option value="" data-localise="__MSG_none__">none</option>
+            <option value="English">English</option>
+            <option value="English (auto-generated)">English (auto-generated)</option>
+            <option value="English (United Kingdom)">English (United Kingdom)</option>
+            <option value="English (United States)">English (United States)</option>
+            <option value="Afrikaans">Afrikaans</option>
+            <option value="Albanian">Albanian</option>
+            <option value="Amharic">Amharic</option>
+            <option value="Arabic">Arabic</option>
+            <option value="Armenian">Armenian</option>
+            <option value="Azerbaijani">Azerbaijani</option>
+            <option value="Bangla">Bangla</option>
+            <option value="Basque">Basque</option>
+            <option value="Belarusian">Belarusian</option>
+            <option value="Bosnian">Bosnian</option>
+            <option value="Bulgarian">Bulgarian</option>
+            <option value="Burmese">Burmese</option>
+            <option value="Cantonese (Hong Kong)">Cantonese (Hong Kong)</option>
+            <option value="Catalan">Catalan</option>
+            <option value="Cebuano">Cebuano</option>
+            <option value="Chinese">Chinese</option>
+            <option value="Chinese (China)">Chinese (China)</option>
+            <option value="Chinese (Hong Kong)">Chinese (Hong Kong)</option>
+            <option value="Chinese (Simplified)">Chinese (Simplified)</option>
+            <option value="Chinese (Taiwan)">Chinese (Taiwan)</option>
+            <option value="Chinese (Traditional)">Chinese (Traditional)</option>
+            <option value="Corsican">Corsican</option>
+            <option value="Croatian">Croatian</option>
+            <option value="Czech">Czech</option>
+            <option value="Danish">Danish</option>
+            <option value="Dutch">Dutch</option>
+            <option value="Dutch (auto-generated)">Dutch (auto-generated)</option>
+            <option value="Esperanto">Esperanto</option>
+            <option value="Estonian">Estonian</option>
+            <option value="Filipino">Filipino</option>
+            <option value="Finnish">Finnish</option>
+            <option value="French">French</option>
+            <option value="French (auto-generated)">French (auto-generated)</option>
+            <option value="Galician">Galician</option>
+            <option value="Georgian">Georgian</option>
+            <option value="German">German</option>
+            <option value="German (auto-generated)">German (auto-generated)</option>
+            <option value="Greek">Greek</option>
+            <option value="Gujarati">Gujarati</option>
+            <option value="Haitian Creole">Haitian Creole</option>
+            <option value="Hausa">Hausa</option>
+            <option value="Hawaiian">Hawaiian</option>
+            <option value="Hebrew">Hebrew</option>
+            <option value="Hindi">Hindi</option>
+            <option value="Hmong">Hmong</option>
+            <option value="Hungarian">Hungarian</option>
+            <option value="Icelandic">Icelandic</option>
+            <option value="Igbo">Igbo</option>
+            <option value="Indonesian">Indonesian</option>
+            <option value="Indonesian (auto-generated)">Indonesian (auto-generated)</option>
+            <option value="Interlingue">Interlingue</option>
+            <option value="Irish">Irish</option>
+            <option value="Italian">Italian</option>
+            <option value="Italian (auto-generated)">Italian (auto-generated)</option>
+            <option value="Japanese">Japanese</option>
+            <option value="Japanese (auto-generated)">Japanese (auto-generated)</option>
+            <option value="Javanese">Javanese</option>
+            <option value="Kannada">Kannada</option>
+            <option value="Kazakh">Kazakh</option>
+            <option value="Khmer">Khmer</option>
+            <option value="Korean">Korean</option>
+            <option value="Korean (auto-generated)">Korean (auto-generated)</option>
+            <option value="Kurdish">Kurdish</option>
+            <option value="Kyrgyz">Kyrgyz</option>
+            <option value="Lao">Lao</option>
+            <option value="Latin">Latin</option>
+            <option value="Latvian">Latvian</option>
+            <option value="Lithuanian">Lithuanian</option>
+            <option value="Luxembourgish">Luxembourgish</option>
+            <option value="Macedonian">Macedonian</option>
+            <option value="Malagasy">Malagasy</option>
+            <option value="Malay">Malay</option>
+            <option value="Malayalam">Malayalam</option>
+            <option value="Maltese">Maltese</option>
+            <option value="Maori">Maori</option>
+            <option value="Marathi">Marathi</option>
+            <option value="Mongolian">Mongolian</option>
+            <option value="Nepali">Nepali</option>
+            <option value="Norwegian Bokmål">Norwegian Bokmål</option>
+            <option value="Nyanja">Nyanja</option>
+            <option value="Pashto">Pashto</option>
+            <option value="Persian">Persian</option>
+            <option value="Polish">Polish</option>
+            <option value="Portuguese">Portuguese</option>
+            <option value="Portuguese (auto-generated)">Portuguese (auto-generated)</option>
+            <option value="Portuguese (Brazil)">Portuguese (Brazil)</option>
+            <option value="Punjabi">Punjabi</option>
+            <option value="Romanian">Romanian</option>
+            <option value="Russian">Russian</option>
+            <option value="Russian (auto-generated)">Russian (auto-generated)</option>
+            <option value="Samoan">Samoan</option>
+            <option value="Scottish Gaelic">Scottish Gaelic</option>
+            <option value="Serbian">Serbian</option>
+            <option value="Shona">Shona</option>
+            <option value="Sindhi">Sindhi</option>
+            <option value="Sinhala">Sinhala</option>
+            <option value="Slovak">Slovak</option>
+            <option value="Slovenian">Slovenian</option>
+            <option value="Somali">Somali</option>
+            <option value="Southern Sotho">Southern Sotho</option>
+            <option value="Spanish">Spanish</option>
+            <option value="Spanish (auto-generated)">Spanish (auto-generated)</option>
+            <option value="Spanish (Latin America)">Spanish (Latin America)</option>
+            <option value="Spanish (Mexico)">Spanish (Mexico)</option>
+            <option value="Spanish (Spain)">Spanish (Spain)</option>
+            <option value="Sundanese">Sundanese</option>
+            <option value="Swahili">Swahili</option>
+            <option value="Swedish">Swedish</option>
+            <option value="Tajik">Tajik</option>
+            <option value="Tamil">Tamil</option>
+            <option value="Telugu">Telugu</option>
+            <option value="Thai">Thai</option>
+            <option value="Turkish">Turkish</option>
+            <option value="Turkish (auto-generated)">Turkish (auto-generated)</option>
+            <option value="Ukrainian">Ukrainian</option>
+            <option value="Urdu">Urdu</option>
+            <option value="Uzbek">Uzbek</option>
+            <option value="Vietnamese">Vietnamese</option>
+            <option value="Vietnamese (auto-generated)">Vietnamese (auto-generated)</option>
+            <option value="Welsh">Welsh</option>
+            <option value="Western Frisian">Western Frisian</option>
+            <option value="Xhosa">Xhosa</option>
+            <option value="Yiddish">Yiddish</option>
+            <option value="Yoruba">Yoruba</option>
+            <option value="Zulu">Zulu</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_showRelated__">Show related videos</h4>
+          <input class="related_videos" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_showAnnotations__">Show annotations by default</h4>
+          <input class="annotations" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_autoExtendDesc__">Automatically extend video description</h4>
+          <input class="extend_desc" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_interactive360__">Interactive 360 degree videos (requires WebGL)</h4>
+          <input class="vr_mode" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_savePlaybackPos__">Save playback position</h4>
+          <input class="save_player_pos" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_region__">Select country</h4>
+          <select class="region">
+            <option value="AE">AE</option>
+            <option value="AR">AR</option>
+            <option value="AT">AT</option>
+            <option value="AU">AU</option>
+            <option value="AZ">AZ</option>
+            <option value="BA">BA</option>
+            <option value="BD">BD</option>
+            <option value="BE">BE</option>
+            <option value="BG">BG</option>
+            <option value="BH">BH</option>
+            <option value="BO">BO</option>
+            <option value="BR">BR</option>
+            <option value="BY">BY</option>
+            <option value="CA">CA</option>
+            <option value="CH">CH</option>
+            <option value="CL">CL</option>
+            <option value="CO">CO</option>
+            <option value="CR">CR</option>
+            <option value="CY">CY</option>
+            <option value="CZ">CZ</option>
+            <option value="DE">DE</option>
+            <option value="DK">DK</option>
+            <option value="DO">DO</option>
+            <option value="DZ">DZ</option>
+            <option value="EC">EC</option>
+            <option value="EE">EE</option>
+            <option value="EG">EG</option>
+            <option value="ES">ES</option>
+            <option value="FI">FI</option>
+            <option value="FR">FR</option>
+            <option value="GB">GB</option>
+            <option value="GE">GE</option>
+            <option value="GH">GH</option>
+            <option value="GR">GR</option>
+            <option value="GT">GT</option>
+            <option value="HK">HK</option>
+            <option value="HN">HN</option>
+            <option value="HR">HR</option>
+            <option value="HU">HU</option>
+            <option value="ID">ID</option>
+            <option value="IE">IE</option>
+            <option value="IL">IL</option>
+            <option value="IN">IN</option>
+            <option value="IQ">IQ</option>
+            <option value="IS">IS</option>
+            <option value="IT">IT</option>
+            <option value="JM">JM</option>
+            <option value="JO">JO</option>
+            <option value="JP">JP</option>
+            <option value="KE">KE</option>
+            <option value="KR">KR</option>
+            <option value="KW">KW</option>
+            <option value="KZ">KZ</option>
+            <option value="LB">LB</option>
+            <option value="LI">LI</option>
+            <option value="LK">LK</option>
+            <option value="LT">LT</option>
+            <option value="LU">LU</option>
+            <option value="LV">LV</option>
+            <option value="LY">LY</option>
+            <option value="MA">MA</option>
+            <option value="ME">ME</option>
+            <option value="MK">MK</option>
+            <option value="MT">MT</option>
+            <option value="MX">MX</option>
+            <option value="MY">MY</option>
+            <option value="NG">NG</option>
+            <option value="NI">NI</option>
+            <option value="NL">NL</option>
+            <option value="NO">NO</option>
+            <option value="NP">NP</option>
+            <option value="NZ">NZ</option>
+            <option value="OM">OM</option>
+            <option value="PA">PA</option>
+            <option value="PE">PE</option>
+            <option value="PG">PG</option>
+            <option value="PH">PH</option>
+            <option value="PK">PK</option>
+            <option value="PL">PL</option>
+            <option value="PR">PR</option>
+            <option value="PT">PT</option>
+            <option value="PY">PY</option>
+            <option value="QA">QA</option>
+            <option value="RO">RO</option>
+            <option value="RS">RS</option>
+            <option value="RU">RU</option>
+            <option value="SA">SA</option>
+            <option value="SE">SE</option>
+            <option value="SG">SG</option>
+            <option value="SI">SI</option>
+            <option value="SK">SK</option>
+            <option value="SN">SN</option>
+            <option value="SV">SV</option>
+            <option value="TH">TH</option>
+            <option value="TN">TN</option>
+            <option value="TR">TR</option>
+            <option value="TW">TW</option>
+            <option value="TZ">TZ</option>
+            <option value="UA">UA</option>
+            <option value="UG">UG</option>
+            <option value="US">US</option>
+            <option value="UY">UY</option>
+            <option value="VE">VE</option>
+            <option value="VN">VN</option>
+            <option value="YE">YE</option>
+            <option value="ZA">ZA</option>
+            <option value="ZW">ZW</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_playerStyle__">Player Style</h4>
+          <select class="player_style">
+            <option value="invidious" data-localise="__MSG_invidious__">Invidious</option>
+            <option value="youtube" data-localise="__MSG_youtube__">YouTube</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_theme__">Theme</h4>
+          <select class="dark_mode">
+            <option value="">auto</option>
+            <option value="light">light</option>
+            <option value="dark">dark</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_thin_mode__">Thin mode</h4>
+          <input class="thin_mode" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_default_home__">Default homepage</h4>
+          <select class="default_home">
+            <option value="">Search</option>
+            <option value="Popular">Popular</option>
+            <option value="Trending">Trending</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_feedMenu__">Feed menu</h4>
+          <select class="feed_menu[0]">
+            <option value="">Search</option>
+            <option value="Popular">Popular</option>
+            <option value="Trending">Trending</option>
+          </select>&nbsp;
+          <select class="feed_menu[1]">
+            <option value="">Search</option>
+            <option value="Popular">Popular</option>
+            <option value="Trending">Trending</option>
+          </select>
+        </div>
+      </div>
+      <hr>
+      <div class="normal">
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
+                </div>
+                <div class="checklist"></div>
+                <hr>
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
+                </div>
+                <form class="custom-instance-form">
+                  <div class="some-block option-block">
+                    <input class="custom-instance" placeholder="https://invidious.com" type="url">
+                    <button class="add add-instance" type="submit"></button>
+                    <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
+                      <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
+                    </svg>
+                  </div>
+                </form>
+                <div class="checklist custom-checklist"></div>
+                <label class="button button-inline" id="latency-invidious-label" for="latency-invidious"> 
+                  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+                    <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path>
+                  </svg>&nbsp;
+                  <x data-localise="__MSG_testInstancesLatency__">Test Instances Latency</x>
+                </label>
+                <input class="button button-inline" id="latency-invidious" style="display:none;">
+      </div>
+      <div class="tor">
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
+                </div>
+                <div class="checklist"></div>
+                <hr>
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
+                </div>
+                <form class="custom-instance-form">
+                  <div class="some-block option-block">
+                    <input class="custom-instance" placeholder="https://invidious.onion" type="url">
+                    <button class="add add-instance" type="submit"></button>
+                    <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
+                      <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
+                    </svg>
+                  </div>
+                </form>
+                <div class="checklist custom-checklist"></div>
+      </div>
+    </div>
+    <div id="piped">
+      <hr>
+      <div class="custom-settings"> 
+        <hr>
+        <div class="some-block option-block">
+          <h4>
+            <x data-localise="__MSG_volume__">Volume:</x><span class="volume-value">--%</span>
+          </h4>
+          <input class="volume" type="range" min="0" max="100" step="1">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_enableSponsorBlock__">Enable Sponsorblock</h4>
+          <input class="sponsorblock" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipSponsors__">Skip Sponsors</h4>
+          <input class="selectedSkip-sponsor" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipIntermission__">Skip Intermission/Intro Animation</h4>
+          <input class="selectedSkip-intro" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skripEndcars__">Skip Endcards/Credits</h4>
+          <input class="selectedSkip-outro" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skripPreview__">Skip Preview/Recap</h4>
+          <input class="selectedSkip-preview" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipReminder__">Skip Interaction Reminder (Subscribe)</h4>
+          <input class="selectedSkip-interaction" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipUnpaidPromo__">Skip Unpaid/Self Promotion(Subscribe)</h4>
+          <input class="selectedSkip-selfpromo" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipMusic__">Skip Music: Non-Music Section(Subscribe)</h4>
+          <input class="selectedSkip-music_offtopic" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipHighlight__">Skip Highlight(Subscribe)</h4>
+          <input class="selectedSkip-poi_highlight" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipFiller__">Skip Filler Tangent</h4>
+          <input class="selectedSkip-filler" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_theme__">Theme</h4>
+          <select class="ddlTheme">
+            <option value="auto">Auto</option>
+            <option value="dark">Dark</option>
+            <option value="light">Light</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_autoplayVid__">Autoplay Video</h4>
+          <input class="youtubeAutoplay" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_audioOnly__">Audio Only</h4>
+          <input class="listen" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_defaultQuality__">Default Quality</h4>
+          <select class="quality">
+            <option value="0">Auto</option>
+            <option value="144">144p</option>
+            <option value="240">240p</option>
+            <option value="360">360p</option>
+            <option value="480">480p</option>
+            <option value="720">720p</option>
+            <option value="1080">1080p</option>
+            <option value="1440">1440p</option>
+            <option value="2160">2160p</option>
+            <option value="4320">4320p</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_bufferingGoal__">Buffering Goal (in seconds)</h4>
+          <input class="bufferGoal" type="number" min="10">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_countrySelection__">Country Selection</h4>
+          <select class="region">
+            <option value="AF">Afghanistan</option>
+            <option value="AL">Albania</option>
+            <option value="DZ">Algeria</option>
+            <option value="AD">Andorra</option>
+            <option value="AO">Angola</option>
+            <option value="AG">Antigua and Barbuda</option>
+            <option value="AR">Argentina</option>
+            <option value="AM">Armenia</option>
+            <option value="AU">Australia</option>
+            <option value="AT">Austria</option>
+            <option value="AZ">Azerbaijan</option>
+            <option value="BS">Bahamas</option>
+            <option value="BH">Bahrain</option>
+            <option value="BD">Bangladesh</option>
+            <option value="BB">Barbados</option>
+            <option value="BY">Belarus</option>
+            <option value="BE">Belgium</option>
+            <option value="BZ">Belize</option>
+            <option value="BJ">Benin</option>
+            <option value="BT">Bhutan</option>
+            <option value="BO">Bolivia (Plurinational State of)</option>
+            <option value="BA">Bosnia and Herzegovina</option>
+            <option value="BW">Botswana</option>
+            <option value="BR">Brazil</option>
+            <option value="BN">Brunei Darussalam</option>
+            <option value="BG">Bulgaria</option>
+            <option value="BF">Burkina Faso</option>
+            <option value="BI">Burundi</option>
+            <option value="CV">Cabo Verde</option>
+            <option value="KH">Cambodia</option>
+            <option value="CM">Cameroon</option>
+            <option value="CA">Canada</option>
+            <option value="CF">Central African Republic</option>
+            <option value="TD">Chad</option>
+            <option value="CL">Chile</option>
+            <option value="CN">China</option>
+            <option value="CO">Colombia</option>
+            <option value="KM">Comoros</option>
+            <option value="CG">Congo</option>
+            <option value="CD">Congo, Democratic Republic of the</option>
+            <option value="CR">Costa Rica</option>
+            <option value="CI">Côte d'Ivoire</option>
+            <option value="HR">Croatia</option>
+            <option value="CU">Cuba</option>
+            <option value="CY">Cyprus</option>
+            <option value="CZ">Czechia</option>
+            <option value="DK">Denmark</option>
+            <option value="DJ">Djibouti</option>
+            <option value="DM">Dominica</option>
+            <option value="DO">Dominican Republic</option>
+            <option value="EC">Ecuador</option>
+            <option value="EG">Egypt</option>
+            <option value="SV">El Salvador</option>
+            <option value="GQ">Equatorial Guinea</option>
+            <option value="ER">Eritrea</option>
+            <option value="EE">Estonia</option>
+            <option value="SZ">Eswatini</option>
+            <option value="ET">Ethiopia</option>
+            <option value="FJ">Fiji</option>
+            <option value="FI">Finland</option>
+            <option value="FR">France</option>
+            <option value="GA">Gabon</option>
+            <option value="GM">Gambia</option>
+            <option value="GE">Georgia</option>
+            <option value="DE">Germany</option>
+            <option value="GH">Ghana</option>
+            <option value="GR">Greece</option>
+            <option value="GD">Grenada</option>
+            <option value="GT">Guatemala</option>
+            <option value="GN">Guinea</option>
+            <option value="GW">Guinea-Bissau</option>
+            <option value="GY">Guyana</option>
+            <option value="HT">Haiti</option>
+            <option value="HN">Honduras</option>
+            <option value="HU">Hungary</option>
+            <option value="IS">Iceland</option>
+            <option value="IN">India</option>
+            <option value="ID">Indonesia</option>
+            <option value="IR">Iran (Islamic Republic of)</option>
+            <option value="IQ">Iraq</option>
+            <option value="IE">Ireland</option>
+            <option value="IL">Israel</option>
+            <option value="IT">Italy</option>
+            <option value="JM">Jamaica</option>
+            <option value="JP">Japan</option>
+            <option value="JO">Jordan</option>
+            <option value="KZ">Kazakhstan</option>
+            <option value="KE">Kenya</option>
+            <option value="KI">Kiribati</option>
+            <option value="KP">Korea (Democratic People's Republic of)</option>
+            <option value="KR">Korea, Republic of</option>
+            <option value="KW">Kuwait</option>
+            <option value="KG">Kyrgyzstan</option>
+            <option value="LA">Lao People's Democratic Republic</option>
+            <option value="LV">Latvia</option>
+            <option value="LB">Lebanon</option>
+            <option value="LS">Lesotho</option>
+            <option value="LR">Liberia</option>
+            <option value="LY">Libya</option>
+            <option value="LI">Liechtenstein</option>
+            <option value="LT">Lithuania</option>
+            <option value="LU">Luxembourg</option>
+            <option value="MG">Madagascar</option>
+            <option value="MW">Malawi</option>
+            <option value="MY">Malaysia</option>
+            <option value="MV">Maldives</option>
+            <option value="ML">Mali</option>
+            <option value="MT">Malta</option>
+            <option value="MH">Marshall Islands</option>
+            <option value="MR">Mauritania</option>
+            <option value="MU">Mauritius</option>
+            <option value="MX">Mexico</option>
+            <option value="FM">Micronesia (Federated States of)</option>
+            <option value="MD">Moldova, Republic of</option>
+            <option value="MC">Monaco</option>
+            <option value="MN">Mongolia</option>
+            <option value="ME">Montenegro</option>
+            <option value="MA">Morocco</option>
+            <option value="MZ">Mozambique</option>
+            <option value="MM">Myanmar</option>
+            <option value="NA">Namibia</option>
+            <option value="NR">Nauru</option>
+            <option value="NP">Nepal</option>
+            <option value="NL">Netherlands</option>
+            <option value="NZ">New Zealand</option>
+            <option value="NI">Nicaragua</option>
+            <option value="NE">Niger</option>
+            <option value="NG">Nigeria</option>
+            <option value="MK">North Macedonia</option>
+            <option value="NO">Norway</option>
+            <option value="OM">Oman</option>
+            <option value="PK">Pakistan</option>
+            <option value="PW">Palau</option>
+            <option value="PA">Panama</option>
+            <option value="PG">Papua New Guinea</option>
+            <option value="PY">Paraguay</option>
+            <option value="PE">Peru</option>
+            <option value="PH">Philippines</option>
+            <option value="PL">Poland</option>
+            <option value="PT">Portugal</option>
+            <option value="QA">Qatar</option>
+            <option value="RO">Romania</option>
+            <option value="RU">Russian Federation</option>
+            <option value="RW">Rwanda</option>
+            <option value="KN">Saint Kitts and Nevis</option>
+            <option value="LC">Saint Lucia</option>
+            <option value="VC">Saint Vincent and the Grenadines</option>
+            <option value="WS">Samoa</option>
+            <option value="SM">San Marino</option>
+            <option value="ST">Sao Tome and Principe</option>
+            <option value="SA">Saudi Arabia</option>
+            <option value="SN">Senegal</option>
+            <option value="RS">Serbia</option>
+            <option value="SC">Seychelles</option>
+            <option value="SL">Sierra Leone</option>
+            <option value="SG">Singapore</option>
+            <option value="SK">Slovakia</option>
+            <option value="SI">Slovenia</option>
+            <option value="SB">Solomon Islands</option>
+            <option value="SO">Somalia</option>
+            <option value="ZA">South Africa</option>
+            <option value="SS">South Sudan</option>
+            <option value="ES">Spain</option>
+            <option value="LK">Sri Lanka</option>
+            <option value="SD">Sudan</option>
+            <option value="SR">Suriname</option>
+            <option value="SE">Sweden</option>
+            <option value="CH">Switzerland</option>
+            <option value="SY">Syrian Arab Republic</option>
+            <option value="TJ">Tajikistan</option>
+            <option value="TZ">Tanzania, United Republic of</option>
+            <option value="TH">Thailand</option>
+            <option value="TL">Timor-Leste</option>
+            <option value="TG">Togo</option>
+            <option value="TO">Tonga</option>
+            <option value="TT">Trinidad and Tobago</option>
+            <option value="TN">Tunisia</option>
+            <option value="TR">Turkey</option>
+            <option value="TM">Turkmenistan</option>
+            <option value="TV">Tuvalu</option>
+            <option value="UG">Uganda</option>
+            <option value="UA">Ukraine</option>
+            <option value="AE">United Arab Emirates</option>
+            <option value="GB">United Kingdom of Great Britain and Northern Ireland</option>
+            <option value="US">United States of America</option>
+            <option value="UY">Uruguay</option>
+            <option value="UZ">Uzbekistan</option>
+            <option value="VU">Vanuatu</option>
+            <option value="VE">Venezuela (Bolivarian Republic of)</option>
+            <option value="VN">Viet Nam</option>
+            <option value="YE">Yemen</option>
+            <option value="ZM">Zambia</option>
+            <option value="ZW">Zimbabwe</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_defaultHomepage__">Default Homepage</h4>
+          <select class="homepage">
+            <option value="trending" data-localise="__MSG_trending__">Trending</option>
+            <option value="feed" data-localise="__MSG_feed__">Feed</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_showComments__">Show Comments</h4>
+          <input class="comments" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_minimizeDesc__">Minimize Description by default</h4>
+          <input class="minimizeDescription" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_storeHistory__">Store Watch History</h4>
+          <input class="watchHistory" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_enabledCodecs__">Enabled Codecs (Multiple)</h4>
+          <select class="enabledCodecs">
+            <option value="av1">AV1</option>
+            <option value="vp9">VP9</option>
+            <option value="avc">AVC (h.264)</option>
+          </select>
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_disableLBRY__">Disable LBRY for Streaming</h4>
+          <input class="disableLBRY" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_enableProxyLBRY__">Enable Proxy for LBRY</h4>
+          <input class="proxyLBRY" type="checkbox">
+        </div>
+      </div>
+      <div class="normal">
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
+                </div>
+                <div class="checklist"></div>
+                <hr>
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
+                </div>
+                <form class="custom-instance-form">
+                  <div class="some-block option-block">
+                    <input class="custom-instance" placeholder="https://piped.com" type="url">
+                    <button class="add add-instance" type="submit"></button>
+                    <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
+                      <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
+                    </svg>
+                  </div>
+                </form>
+                <div class="checklist custom-checklist"></div>
+                <label class="button button-inline" id="latency-piped-label" for="latency-piped"> 
+                  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+                    <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path>
+                  </svg>&nbsp;
+                  <x data-localise="__MSG_testInstancesLatency__">Test Instances Latency</x>
+                </label>
+                <input class="button button-inline" id="latency-piped" style="display:none;">
+      </div>
+      <div class="tor">
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
+                </div>
+                <div class="checklist"></div>
+                <hr>
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
+                </div>
+                <form class="custom-instance-form">
+                  <div class="some-block option-block">
+                    <input class="custom-instance" placeholder="https://piped.onion" type="url">
+                    <button class="add add-instance" type="submit"></button>
+                    <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
+                      <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
+                    </svg>
+                  </div>
+                </form>
+                <div class="checklist custom-checklist"></div>
+      </div>
+    </div>
+    <div id="pipedMaterial">
+      <hr>
+      <div class="custom-settings">
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_autoplayVid__">Autoplay Video</h4>
+          <input class="youtubeAutoplay" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4>
+            <x data-localise="__MSG_volume__">Volume:</x><span class="volume-value">--%</span>
+          </h4>
+          <input class="volume" type="range" min="0" max="100" step="1">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_audioOnly__">Audio Only</h4>
+          <input class="listen" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_disableLBRY__">Disable LBRY</h4>
+          <input class="disableLBRY" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_proxyLBRY__">Proxy LBRY videos</h4>
+          <input class="proxyLBRY" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_enableSponsorBlock__">Enable Sponsorblock</h4>
+          <input class="sponsorblock" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipNote__">Skip to the last watched point when encountering a video already seen</h4>
+          <input class="skipToLastPoint" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipSponsors__">Skip Sponsors</h4>
+          <input class="selectedSkip-sponsor" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipIntermission__">Skip Intermission/Intro Animation</h4>
+          <input class="selectedSkip-intro" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skripEndcars__">Skip Endcards/Credits</h4>
+          <input class="selectedSkip-outro" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skripPreview__">Skip Preview/Recap</h4>
+          <input class="selectedSkip-preview" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipReminder__">Skip Interaction Reminder (Subscribe)</h4>
+          <input class="selectedSkip-interaction" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipUnpaidPromo__">Skip Unpaid/Self Promotion</h4>
+          <input class="selectedSkip-selfpromo" type="checkbox">
+        </div>
+        <div class="some-block option-block">
+          <h4 data-localise="__MSG_skipMusic__">Skip Music: Non-Music Section</h4>
+          <input class="selectedSkip-music_offtopic" type="checkbox">
+        </div>
+        <hr>
+      </div>
+      <div class="normal">
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
+                </div>
+                <div class="checklist"></div>
+                <hr>
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
+                </div>
+                <form class="custom-instance-form">
+                  <div class="some-block option-block">
+                    <input class="custom-instance" placeholder="https://piped-material.com" type="url">
+                    <button class="add add-instance" type="submit"></button>
+                    <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
+                      <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
+                    </svg>
+                  </div>
+                </form>
+                <div class="checklist custom-checklist"></div>
+                <label class="button button-inline" id="latency-pipedMaterial-label" for="latency-pipedMaterial"> 
+                  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+                    <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path>
+                  </svg>&nbsp;
+                  <x data-localise="__MSG_testInstancesLatency__">Test Instances Latency</x>
+                </label>
+                <input class="button button-inline" id="latency-pipedMaterial" style="display:none;">
+      </div>
+      <div class="tor">
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
+                </div>
+                <div class="checklist"></div>
+                <hr>
+                <div class="some-block option-block">
+                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
+                </div>
+                <form class="custom-instance-form">
+                  <div class="some-block option-block">
+                    <input class="custom-instance" placeholder="https://piped-material.onion" type="url">
+                    <button class="add add-instance" type="submit"></button>
+                    <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
+                      <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
+                    </svg>
+                  </div>
+                </form>
+                <div class="checklist custom-checklist"></div>
+      </div>
+    </div>
+  </section>
+  <script type="module" src="../init.js"></script>
+  <script type="module" src="./youtube.js"></script>
+  <script type="module" src="./invidious.js"></script>
+  <script type="module" src="./piped.js"></script>
+  <script type="module" src="./pipedMaterial.js"></script>
+</body>
\ No newline at end of file