aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages/options/youtube
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-05-15 18:44:28 +0300
committerManeraKai <manerakai@protonmail.com>2022-05-15 18:44:28 +0300
commitab44fd04ffa1055bd17a3da02017e8de3da88af2 (patch)
tree31480d540bcedd00c74ede926449af3ed34856bb /src/pages/options/youtube
parentMerge branch 'master' of https://github.com/libredirect/libredirect (diff)
downloadlibredirect-ab44fd04ffa1055bd17a3da02017e8de3da88af2.zip
Complete on supporting Unify #234
Diffstat (limited to 'src/pages/options/youtube')
-rw-r--r--src/pages/options/youtube/invidious.js177
-rw-r--r--src/pages/options/youtube/piped.js152
-rw-r--r--src/pages/options/youtube/pipedMaterial.js125
-rw-r--r--src/pages/options/youtube/youtube.html1092
-rw-r--r--src/pages/options/youtube/youtube.js231
-rw-r--r--src/pages/options/youtube/youtube.pug647
6 files changed, 167 insertions, 2257 deletions
diff --git a/src/pages/options/youtube/invidious.js b/src/pages/options/youtube/invidious.js
deleted file mode 100644
index fb1ddff7..00000000
--- a/src/pages/options/youtube/invidious.js
+++ /dev/null
@@ -1,177 +0,0 @@
-import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
-
-let invidious = document.getElementById('invidious');
-let alwaysProxy = invidious.getElementsByClassName("local")[0];
-let playerStyle = invidious.getElementsByClassName("player_style")[0];
-let quality = invidious.getElementsByClassName("quality")[0];
-let videoLoop = invidious.getElementsByClassName("video_loop")[0];
-let continueAutoplay = invidious.getElementsByClassName("continue_autoplay")[0];
-let invidiousContinue = invidious.getElementsByClassName("continue")[0];
-let youtubeListen = invidious.getElementsByClassName("listen")[0];
-let speed = invidious.getElementsByClassName("speed")[0];
-let qualityDash = invidious.getElementsByClassName("quality_dash")[0];
-let relatedVideo = invidious.getElementsByClassName("related_videos")[0];
-let annotations = invidious.getElementsByClassName("annotations")[0];
-let extendDesc = invidious.getElementsByClassName("extend_desc")[0];
-let vrMode = invidious.getElementsByClassName("vr_mode")[0];
-let savePlayerPos = invidious.getElementsByClassName("save_player_pos")[0];
-let comments0 = invidious.getElementsByClassName("comments[0]")[0];
-let comments1 = invidious.getElementsByClassName("comments[1]")[0];
-let captions0 = invidious.getElementsByClassName("captions[0]")[0];
-let captions1 = invidious.getElementsByClassName("captions[1]")[0];
-let captions2 = invidious.getElementsByClassName("captions[2]")[0];
-let autoplay = invidious.getElementsByClassName("youtubeAutoplay")[0];
-let volume = invidious.getElementsByClassName("volume")[0];
-let volumeValue = invidious.getElementsByClassName("volume-value")[0];
-let region = invidious.getElementsByClassName("region")[0];
-let darkMode = invidious.getElementsByClassName("dark_mode")[0];
-let thin_mode = invidious.getElementsByClassName("thin_mode")[0];
-let default_home = invidious.getElementsByClassName("default_home")[0];
-let feed_menu0 = invidious.getElementsByClassName("feed_menu[0]")[0];
-let feed_menu1 = invidious.getElementsByClassName("feed_menu[1]")[0];
-
-volume.addEventListener("input", () => volumeValue.textContent = `${volume.value}%`);
-
-invidious.addEventListener("change", async _ => {
- browser.storage.local.get(
- [
- "invidiousComments",
- "invidiousCaptions",
- "invidiousFeedMenuList",
- ],
- async r => {
- let commentsList = r.invidiousComments;
- commentsList[0] = comments0.value;
- commentsList[1] = comments1.value;
-
- let captionsList = r.invidiousCaptions;
- captionsList[0] = captions0.value;
- captionsList[1] = captions1.value;
- captionsList[2] = captions2.value;
-
- let feedMenuList = r.invidiousFeedMenuList;
- feedMenuList[0] = feed_menu0.value;
- feedMenuList[1] = feed_menu1.value;
-
- await browser.storage.local.set({
- invidiousAlwaysProxy: alwaysProxy.checked,
- youtubeAutoplay: autoplay.checked,
- invidiousPlayerStyle: playerStyle.value,
- invidiousQuality: quality.value,
- invidiousVideoLoop: videoLoop.checked,
- invidiousContinueAutoplay: continueAutoplay.checked,
- invidiousContinue: invidiousContinue.checked,
- youtubeListen: youtubeListen.checked,
- invidiousSpeed: speed.value,
- invidiousQualityDash: qualityDash.value,
- youtubeVolume: volume.value,
- invidiousComments: commentsList,
- invidiousCaptions: captionsList,
- invidiousRelatedVideos: relatedVideo.checked,
- invidiousAnnotations: annotations.checked,
- invidiousExtendDesc: extendDesc.checked,
- invidiousVrMode: vrMode.checked,
- invidiousSavePlayerPos: savePlayerPos.checked,
-
- invidiousRegion: region.value,
- invidiousDarkMode: darkMode.value,
- invidiousThinMode: thin_mode.checked,
- invidiousDefaultHome: default_home.value,
- invidiousFeedMenuList: feedMenuList,
- });
- }
- )
-});
-
-browser.storage.local.get(
- [
- "youtubeListen",
- "youtubeVolume",
- "youtubeAutoplay",
- "invidiousQuality",
- "invidiousAlwaysProxy",
- "invidiousQuality",
- "invidiousPlayerStyle",
- "invidiousVideoLoop",
- "invidiousContinueAutoplay",
- "invidiousContinue",
- "invidiousSpeed",
- "invidiousQualityDash",
- "invidiousComments",
- "invidiousCaptions",
- "invidiousRelatedVideos",
- "invidiousAnnotations",
- "invidiousExtendDesc",
- "invidiousVrMode",
- "invidiousSavePlayerPos",
- "invidiousRegion",
- "invidiousDarkMode",
- "invidiousThinMode",
- "invidiousDefaultHome",
- "invidiousFeedMenuList",
- ],
- r => {
- videoLoop.checked = r.invidiousVideoLoop;
- autoplay.checked = r.youtubeAutoplay;
- playerStyle.value = r.invidiousPlayerStyle;
-
- continueAutoplay.checked = r.invidiousContinueAutoplay;
- invidiousContinue.checked = r.invidiousContinue;
- alwaysProxy.checked = r.invidiousAlwaysProxy;
- youtubeListen.checked = r.youtubeListen;
-
- speed.value = r.invidiousSpeed;
- quality.value = r.invidiousQuality;
- qualityDash.value = r.invidiousQualityDash;
-
- volume.value = r.youtubeVolume;
- volumeValue.textContent = `${r.youtubeVolume}%`;
-
- comments0.value = r.invidiousComments[0];
- comments1.value = r.invidiousComments[1];
-
- captions0.value = r.invidiousCaptions[0];
- captions1.value = r.invidiousCaptions[1];
- captions2.value = r.invidiousCaptions[2];
-
- relatedVideo.checked = r.invidiousRelatedVideos;
- annotations.checked = r.invidiousAnnotations;
- extendDesc.checked = r.invidiousExtendDesc;
- vrMode.checked = r.invidiousVrMode;
- savePlayerPos.checked = r.invidiousSavePlayerPos;
-
- region.value = r.invidiousRegion;
- darkMode.value = r.invidiousDarkMode;
- thin_mode.checked = r.invidiousThinMode;
- default_home.value = r.invidiousDefaultHome;
-
- feed_menu0.value = r.invidiousFeedMenuList[0];
- feed_menu1.value = r.invidiousFeedMenuList[1];
-
-
- }
-)
-
-commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document);
-commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'tor', document);
-
-
-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('youtube', 'invidious', 'normal', document);
- 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
deleted file mode 100644
index d8ebe2a4..00000000
--- a/src/pages/options/youtube/piped.js
+++ /dev/null
@@ -1,152 +0,0 @@
-import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
-
-let piped = document.getElementById('piped');
-
-let pipedListen = piped.getElementsByClassName("listen")[0];
-let pipedQuality = piped.getElementsByClassName("quality")[0];
-let pipedBufferGoal = piped.getElementsByClassName("bufferGoal")[0];
-let pipedRegion = piped.getElementsByClassName("region")[0];
-let pipedHomepage = piped.getElementsByClassName("homepage")[0];
-let pipedComments = piped.getElementsByClassName("comments")[0];
-let pipedMinimizeDescription = piped.getElementsByClassName("minimizeDescription")[0];
-let pipedWatchHistory = piped.getElementsByClassName("watchHistory")[0];
-let pipedDisableLBRY = piped.getElementsByClassName("disableLBRY")[0];
-let pipedProxyLBRY = piped.getElementsByClassName("proxyLBRY")[0];
-
-let pipedSelectedSkipSponsor = piped.getElementsByClassName("selectedSkip-sponsor")[0];
-let pipedSelectedSkipIntro = piped.getElementsByClassName("selectedSkip-intro")[0];
-let pipedSelectedSkipOutro = piped.getElementsByClassName("selectedSkip-outro")[0];
-let pipedSelectedSkipPreview = piped.getElementsByClassName("selectedSkip-preview")[0];
-let pipedSelectedSkipInteraction = piped.getElementsByClassName("selectedSkip-interaction")[0];
-let pipedSelectedSkipSelfpromo = piped.getElementsByClassName("selectedSkip-selfpromo")[0];
-let pipedSelectedSkipMusicOfftopic = piped.getElementsByClassName("selectedSkip-music_offtopic")[0];
-let pipedSelectedSkipPoiHighlight = piped.getElementsByClassName("selectedSkip-poi_highlight")[0];
-let pipedSelectedSkipFiller = piped.getElementsByClassName("selectedSkip-filler")[0];
-
-let pipedDdlTheme = piped.getElementsByClassName("ddlTheme")[0];
-let pipedSponsorblock = piped.getElementsByClassName("sponsorblock")[0];
-let pipedEnabledCodecs = piped.getElementsByClassName("enabledCodecs")[0];
-let autoplay = piped.getElementsByClassName("youtubeAutoplay")[0];
-
-let volume = piped.getElementsByClassName("volume")[0];
-let volumeValue = piped.getElementsByClassName("volume-value")[0];
-
-volume.addEventListener("input", () => volumeValue.textContent = `${volume.value}%`);
-function selectSkipModify(value, boolean) {
- if (boolean && !selectSkip.includes(value)) {
- selectSkip.push(value);
- }
- else if (!boolean) {
- let i = selectSkip.indexOf(value);
- if (i > -1) selectSkip.splice(i, 1);
- }
-}
-let selectSkip = [];
-piped.addEventListener("change", async () => {
- let pipedEnabledCodecsResult = [];
- for (const opt of pipedEnabledCodecs.options)
- if (opt.selected) pipedEnabledCodecsResult.push(opt.value);
-
- selectSkipModify('sponsor', pipedSelectedSkipSponsor.checked);
- selectSkipModify('intro', pipedSelectedSkipIntro.checked);
- selectSkipModify('outro', pipedSelectedSkipOutro.checked);
- selectSkipModify('preview', pipedSelectedSkipPreview.checked);
- selectSkipModify('interaction', pipedSelectedSkipInteraction.checked);
- selectSkipModify('selfpromo', pipedSelectedSkipSelfpromo.checked);
- selectSkipModify('music_offtopic', pipedSelectedSkipMusicOfftopic.checked);
- selectSkipModify('poi_highlight', pipedSelectedSkipPoiHighlight.checked);
- selectSkipModify('filler', pipedSelectedSkipFiller.checked);
-
- await browser.storage.local.set({
- pipedQuality: pipedQuality.value,
- pipedBufferGoal: pipedBufferGoal.value,
- pipedRegion: pipedRegion.value,
- pipedHomepage: pipedHomepage.value,
- pipedComments: pipedComments.checked,
- pipedMinimizeDescription: pipedMinimizeDescription.checked,
- youtubeAutoplay: autoplay.checked,
- pipedWatchHistory: pipedWatchHistory.checked,
- pipedDisableLBRY: pipedDisableLBRY.checked,
- pipedProxyLBRY: pipedProxyLBRY.checked,
- youtubeVolume: volume.value,
- pipedSponsorblock: pipedSponsorblock.checked,
- pipedDdlTheme: pipedDdlTheme.value,
- pipedEnabledCodecs: pipedEnabledCodecsResult,
- youtubeListen: pipedListen.checked,
- pipedSelectedSkip: selectSkip,
- });
-});
-
-await browser.storage.local.get(
- [
- "youtubeVolume",
- "youtubeAutoplay",
- "youtubeListen",
-
- "pipedBufferGoal",
- "pipedComments",
- "pipedDisableLBRY",
- "pipedEnabledCodecs",
- "pipedHomepage",
- "pipedMinimizeDescription",
- "pipedProxyLBRY",
- "pipedQuality",
- "pipedRegion",
- "pipedSelectedSkip",
- "pipedSponsorblock",
- "pipedDdlTheme",
- "pipedWatchHistory",
- ],
- r => {
- pipedSponsorblock.checked = r.pipedSponsorblock;
- pipedDdlTheme.value = r.pipedDdlTheme;
- selectSkip = r.pipedSelectedSkip;
- pipedSelectedSkipSponsor.checked = selectSkip.includes('sponsor');
- pipedSelectedSkipIntro.checked = selectSkip.includes('intro');
- pipedSelectedSkipOutro.checked = selectSkip.includes('outro');
- pipedSelectedSkipPreview.checked = selectSkip.includes('preview');
- autoplay.checked = r.youtubeAutoplay;
- pipedSelectedSkipInteraction.checked = selectSkip.includes('interaction');
- pipedSelectedSkipSelfpromo.checked = selectSkip.includes('selfpromo');
- pipedSelectedSkipMusicOfftopic.checked = selectSkip.includes('music_offtopic');
- pipedSelectedSkipPoiHighlight.checked = selectSkip.includes('poi_highlight');
- pipedSelectedSkipFiller.checked = selectSkip.includes('filler');
- pipedListen.checked = r.youtubeListen;
- pipedQuality.value = r.pipedQuality;
- pipedBufferGoal.value = r.pipedBufferGoal;
- pipedRegion.value = r.pipedRegion;
- pipedHomepage.value = r.pipedHomepage;
- pipedComments.checked = r.pipedComments;
- pipedMinimizeDescription.checked = r.pipedMinimizeDescription;
- pipedWatchHistory.checked = r.pipedWatchHistory;
- pipedEnabledCodecs.value = r.pipedEnabledCodecs;
- pipedDisableLBRY.checked = r.pipedDisableLBRY;
- pipedProxyLBRY.checked = r.pipedProxyLBRY;
-
- volume.value = r.youtubeVolume;
- volumeValue.textContent = `${r.youtubeVolume}%`;
- }
-);
-
-commonHelper.processDefaultCustomInstances('youtube', 'piped', 'normal', document);
-commonHelper.processDefaultCustomInstances('youtube', 'piped', 'tor', document);
-
-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('youtube', 'piped', 'normal', document);
- latencyPipedElement.removeEventListener("click", reloadWindow);
- });
- }
-);
diff --git a/src/pages/options/youtube/pipedMaterial.js b/src/pages/options/youtube/pipedMaterial.js
deleted file mode 100644
index 3dc0e677..00000000
--- a/src/pages/options/youtube/pipedMaterial.js
+++ /dev/null
@@ -1,125 +0,0 @@
-import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
-
-let pipedMaterialElement = document.getElementById('pipedMaterial');
-let listenElement = pipedMaterialElement.getElementsByClassName("listen")[0];
-let disableLBRYElement = pipedMaterialElement.getElementsByClassName("disableLBRY")[0];
-let proxyLBRYElement = pipedMaterialElement.getElementsByClassName("proxyLBRY")[0];
-let sponsorblockElement = pipedMaterialElement.getElementsByClassName("sponsorblock")[0];
-let skipToLastPointElement = pipedMaterialElement.getElementsByClassName("skipToLastPoint")[0];
-
-let selectedSkipSponsorElement = pipedMaterialElement.getElementsByClassName("selectedSkip-sponsor")[0];
-let selectedSkipIntroElement = pipedMaterialElement.getElementsByClassName("selectedSkip-intro")[0];
-let selectedSkipOutroElement = pipedMaterialElement.getElementsByClassName("selectedSkip-outro")[0];
-let selectedSkipPreviewElement = pipedMaterialElement.getElementsByClassName("selectedSkip-preview")[0];
-let selectedSkipInteractionElement = pipedMaterialElement.getElementsByClassName("selectedSkip-interaction")[0];
-let selectedSkipSelfpromoElement = pipedMaterialElement.getElementsByClassName("selectedSkip-selfpromo")[0];
-let selectedSkipMusicOfftopicElement = pipedMaterialElement.getElementsByClassName("selectedSkip-music_offtopic")[0];
-
-let autoplayElement = pipedMaterialElement.getElementsByClassName("youtubeAutoplay")[0];
-
-let volumeElement = pipedMaterialElement.getElementsByClassName("volume")[0];
-let volumeValueElement = pipedMaterialElement.getElementsByClassName("volume-value")[0];
-
-volumeElement.addEventListener("input", () => volumeValueElement.textContent = `${volumeElement.value}%`);
-
-let selectSkip = [];
-function selectSkipModify(value, boolean) {
- if (boolean && !selectSkip.includes(value)) {
- selectSkip.push(value);
- }
- else if (!boolean) {
- let i = selectSkip.indexOf(value);
- if (i > -1) selectSkip.splice(i, 1);
- }
-}
-pipedMaterialElement.addEventListener("change", async () => {
- console.log("changed piped settings");
-
- selectSkipModify('sponsors', selectedSkipSponsorElement.checked);
- selectSkipModify('intro', selectedSkipIntroElement.checked);
- selectSkipModify('outro', selectedSkipOutroElement.checked);
- selectSkipModify('preview', selectedSkipPreviewElement.checked);
- selectSkipModify('interaction', selectedSkipInteractionElement.checked);
- selectSkipModify('selfpromo', selectedSkipSelfpromoElement.checked);
- selectSkipModify('music_offtopic', selectedSkipMusicOfftopicElement.checked);
-
- await browser.storage.local.set({
- youtubeListen: listenElement.checked,
- pipedDisableLBRY: disableLBRYElement.checked,
- pipedProxyLBRY: proxyLBRYElement.checked,
- pipedSponsorblock: sponsorblockElement.checked,
- pipedSkipToLastPoint: skipToLastPointElement.checked,
- pipedSelectedSkipSponsor: selectedSkipSponsorElement.checked,
- pipedSelectedSkipIntro: selectedSkipIntroElement.checked,
- pipedSelectedSkipOutro: selectedSkipOutroElement.checked,
- youtubeAutoplay: autoplayElement.checked,
- youtubeVolume: volumeElement.value,
- pipedSelectedSkipPreview: selectedSkipPreviewElement.checked,
- pipedSelectedSkipInteraction: selectedSkipInteractionElement.checked,
- pipedSelectedSkipSelfpromo: selectedSkipSelfpromoElement.checked,
- pipedSelectedSkipMusicOfftopic: selectedSkipMusicOfftopicElement.checked,
-
- pipedSponsorblock: sponsorblockElement.checked,
- pipedMaterialSkipToLastPoint: skipToLastPointElement.checked,
- pipedSelectedSkip: selectSkip,
- });
- init();
-});
-
-browser.storage.local.get(
- [
- "youtubeAutoplay",
- "youtubeVolume",
- "youtubeListen",
-
- "pipedDisableLBRY",
- "pipedProxyLBRY",
- "pipedSelectedSkip",
- "pipedSponsorblock",
-
- "pipedMaterialSkipToLastPoint",
- ],
- r => {
- autoplayElement.checked = r.youtubeAutoplay;
-
- listenElement.checked = r.youtubeListen;
- disableLBRYElement.checked = r.pipedDisableLBRY;
- proxyLBRYElement.checked = r.pipedProxyLBRY;
- sponsorblockElement.checked = r.pipedSponsorblock;
- skipToLastPointElement.checked = r.pipedMaterialSkipToLastPoint;
-
- selectSkip = r.pipedSelectedSkip;
- selectedSkipSponsorElement.checked = selectSkip.includes('sponsors');
- selectedSkipIntroElement.checked = selectSkip.includes('intro');
- selectedSkipOutroElement.checked = selectSkip.includes('outro');
- selectedSkipPreviewElement.checked = selectSkip.includes('preview');
- selectedSkipInteractionElement.checked = selectSkip.includes('interaction');
- selectedSkipSelfpromoElement.checked = selectSkip.includes('selfpromo');
- selectedSkipMusicOfftopicElement.checked = selectSkip.includes('music_offtopic');
-
- volumeElement.value = r.youtubeVolume;
- volumeValueElement.textContent = `${r.youtubeVolume}%`;
- });
-
-commonHelper.processDefaultCustomInstances('youtube' ,'pipedMaterial', 'normal', document);
-commonHelper.processDefaultCustomInstances('youtube' ,'pipedMaterial', 'tor', document);
-
-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('youtube' ,'pipedMaterial', 'normal', document);
- 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
index 04d6df46..6dfb9f7f 100644
--- a/src/pages/options/youtube/youtube.html
+++ b/src/pages/options/youtube/youtube.html
@@ -12,9 +12,9 @@
<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>
+ <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>
@@ -25,33 +25,33 @@
<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/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>
+ <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>
+ <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>
+ <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>
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
+ <path d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"></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>
+ <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">
@@ -69,7 +69,6 @@
<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>
@@ -80,7 +79,6 @@
<option value="youtube">Youtube</option>
</select>
</div>
- <hr>
</div>
<div id="invidious-piped-pipedMaterial">
<div class="some-block option-block">
@@ -98,680 +96,8 @@
<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_defaultComments__">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>
- </div>
- <div class="some-block option-block">
- <h4> </h4>
- <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>
- </div>
- <div class="some-block option-block">
- <h4></h4>
- <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>
- </div>
- <div class="some-block option-block">
- <h4></h4>
- <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">
@@ -825,323 +151,6 @@
</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>
@@ -1194,67 +203,6 @@
</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>
diff --git a/src/pages/options/youtube/youtube.js b/src/pages/options/youtube/youtube.js
index 71ae4777..07d9ba1d 100644
--- a/src/pages/options/youtube/youtube.js
+++ b/src/pages/options/youtube/youtube.js
@@ -1,79 +1,80 @@
import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js";
+import commonHelper from "../../../assets/javascripts/helpers/common.js";
-let disableYoutubeElement = document.getElementById("disable-invidious");
-let youtubeFrontendElement = document.getElementById("youtube-frontend");
-let invidiousDivElement = document.getElementById("invidious");
-let pipedDivElement = document.getElementById("piped");
-let pipedMaterialDivElement = document.getElementById("pipedMaterial");
-let freetubeYatteeDivElement = document.getElementById("freetube-yatte");
-let customSettingsDivElement = document.getElementsByClassName("custom-settings");
-let youtubeEmbedFrontendElement = document.getElementById("youtube-embed-frontend");
-let enableYoutubeCustomSettingsElement = document.getElementById("enable-youtube-custom-settings");
-let OnlyEmbeddedVideoElement = document.getElementById("only-embed");
-let bypassWatchOnYoutubeElement = document.getElementById("bypass-watch-on-youtube");
-let protocolElement = document.getElementById("protocol");
+let disableYoutube = document.getElementById("disable-invidious");
+let youtubeFrontend = document.getElementById("youtube-frontend");
+let invidiousDiv = document.getElementById("invidious");
+let pipedDiv = document.getElementById("piped");
+let pipedMaterialDiv = document.getElementById("pipedMaterial");
+let freetubeYatteeDiv = document.getElementById("freetube-yatte");
+let youtubeEmbedFrontend = document.getElementById("youtube-embed-frontend");
+let OnlyEmbeddedVideo = document.getElementById("only-embed");
+let protoco = document.getElementById("protocol");
function changeFrontendsSettings() {
- let frontend = youtubeFrontendElement.value;
-
- if (enableYoutubeCustomSettingsElement.checked)
- for (const item of customSettingsDivElement) item.style.display = 'block';
- else
- for (const item of customSettingsDivElement) item.style.display = 'none';
+ let frontend = youtubeFrontend.value;
if (frontend == 'invidious') {
- invidiousDivElement.style.display = 'block';
- pipedDivElement.style.display = 'none';
- pipedMaterialDivElement.style.display = 'none';
- freetubeYatteeDivElement.style.display = 'none';
+ invidiousDiv.style.display = 'block';
+ pipedDiv.style.display = 'none';
+ pipedMaterialDiv.style.display = 'none';
+ freetubeYatteeDiv.style.display = 'none';
}
else if (frontend == 'piped') {
- invidiousDivElement.style.display = 'none';
- pipedDivElement.style.display = 'block';
- pipedMaterialDivElement.style.display = 'none';
- freetubeYatteeDivElement.style.display = 'none';
+ invidiousDiv.style.display = 'none';
+ pipedDiv.style.display = 'block';
+ pipedMaterialDiv.style.display = 'none';
+ freetubeYatteeDiv.style.display = 'none';
}
else if (frontend == 'pipedMaterial') {
- invidiousDivElement.style.display = 'none';
- pipedDivElement.style.display = 'none';
- pipedMaterialDivElement.style.display = 'block';
- freetubeYatteeDivElement.style.display = 'none';
+ invidiousDiv.style.display = 'none';
+ pipedDiv.style.display = 'none';
+ pipedMaterialDiv.style.display = 'block';
+ freetubeYatteeDiv.style.display = 'none';
}
else if (frontend == 'freetube' || frontend == 'yatte') {
- invidiousDivElement.style.display = 'none';
- pipedDivElement.style.display = 'none';
- pipedMaterialDivElement.style.display = 'none';
- freetubeYatteeDivElement.style.display = 'block';
- changeYoutubeEmbedFrontendsSettings(youtubeHelper.getYoutubeEmbedFrontend());
+ invidiousDiv.style.display = 'none';
+ pipedDiv.style.display = 'none';
+ pipedMaterialDiv.style.display = 'none';
+ freetubeYatteeDiv.style.display = 'block';
+ changeYoutubeEmbedFrontendsSettings();
}
}
-function changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend) {
- if (youtubeEmbedFrontend == 'invidious') {
- pipedDivElement.style.display = 'none';
- invidiousDivElement.style.display = 'block';
+function changeYoutubeEmbedFrontendsSettings() {
+ if (youtubeEmbedFrontend.value == 'invidious') {
+ pipedDiv.style.display = 'none';
+ pipedMaterialDiv.style.display = 'none';
+ invidiousDiv.style.display = 'block';
+ }
+ if (youtubeEmbedFrontend.value == 'piped') {
+ pipedDiv.style.display = 'block';
+ pipedMaterialDiv.style.display = 'none';
+ invidiousDiv.style.display = 'none';
}
- if (youtubeEmbedFrontend == 'piped') {
- pipedDivElement.style.display = 'block';
- invidiousDivElement.style.display = 'none';
+ if (youtubeEmbedFrontend.value == 'pipedMaterial') {
+ pipedDiv.style.display = 'none';
+ pipedMaterialDiv.style.display = 'block';
+ invidiousDiv.style.display = 'none';
}
- else if (youtubeEmbedFrontend == 'youtube') {
- pipedDivElement.style.display = 'none';
- invidiousDivElement.style.display = 'none';
+ else if (youtubeEmbedFrontend.value == 'youtube') {
+ pipedDiv.style.display = 'none';
+ pipedMaterialDiv.style.display = 'none';
+ invidiousDiv.style.display = 'none';
}
}
-function changeProtocolSettings(protocol) {
- let normalPipedDiv = document.getElementById('piped').getElementsByClassName("normal")[0];
- let torPipedDiv = document.getElementById('piped').getElementsByClassName("tor")[0];
+function changeProtocolSettings() {
+ const normalPipedDiv = document.getElementById('piped').getElementsByClassName("normal")[0];
+ const torPipedDiv = document.getElementById('piped').getElementsByClassName("tor")[0];
- let normalPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("normal")[0];
- let torPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("tor")[0];
+ const normalPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("normal")[0];
+ const torPipedMaterialDiv = document.getElementById('pipedMaterial').getElementsByClassName("tor")[0];
- let normalInvidiousDiv = document.getElementById('invidious').getElementsByClassName("normal")[0];
- let torInvidiousDiv = document.getElementById('invidious').getElementsByClassName("tor")[0];
+ const normalInvidiousDiv = document.getElementById('invidious').getElementsByClassName("normal")[0];
+ const torInvidiousDiv = document.getElementById('invidious').getElementsByClassName("tor")[0];
- if (protocol == 'normal') {
+ if (protoco.value == 'normal') {
normalInvidiousDiv.style.display = 'block';
torInvidiousDiv.style.display = 'none';
@@ -83,7 +84,7 @@ function changeProtocolSettings(protocol) {
normalPipedMaterialDiv.style.display = 'block';
torPipedMaterialDiv.style.display = 'none';
}
- else if (protocol == 'tor') {
+ else if (protoco.value == 'tor') {
normalInvidiousDiv.style.display = 'none';
torInvidiousDiv.style.display = 'block';
@@ -97,56 +98,118 @@ function changeProtocolSettings(protocol) {
document.addEventListener("change", async () => {
await browser.storage.local.set({
- disableYoutube: !disableYoutubeElement.checked,
- youtubeFrontend: youtubeFrontendElement.value,
- youtubeEmbedFrontend: youtubeEmbedFrontendElement.value,
- enableYoutubeCustomSettings: enableYoutubeCustomSettingsElement.checked,
- OnlyEmbeddedVideo: OnlyEmbeddedVideoElement.value,
- bypassWatchOnYoutube: bypassWatchOnYoutubeElement.checked,
- youtubeProtocol: protocolElement.value,
+ disableYoutube: !disableYoutube.checked,
+ youtubeFrontend: youtubeFrontend.value,
+ youtubeEmbedFrontend: youtubeEmbedFrontend.value,
+ OnlyEmbeddedVideo: OnlyEmbeddedVideo.value,
+ youtubeProtocol: protoco.value,
})
- changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontendElement.value);
- changeProtocolSettings(protocolElement.value);
+ changeProtocolSettings();
+ changeYoutubeEmbedFrontendsSettings();
changeFrontendsSettings();
})
browser.storage.local.get(
[
"disableYoutube",
- "enableYoutubeCustomSettings",
"OnlyEmbeddedVideo",
"youtubeRedirects",
"youtubeFrontend",
- "alwaysUsePreferred",
"youtubeEmbedFrontend",
"youtubeProtocol",
- "bypassWatchOnYoutube",
],
r => {
- disableYoutubeElement.checked = !r.disableYoutube;
- enableYoutubeCustomSettingsElement.checked = r.enableYoutubeCustomSettings;
+ disableYoutube.checked = !r.disableYoutube;
+ OnlyEmbeddedVideo.value = r.OnlyEmbeddedVideo;
+ youtubeFrontend.value = r.youtubeFrontend;
+ protoco.value = r.youtubeProtocol;
- OnlyEmbeddedVideoElement.value = r.OnlyEmbeddedVideo;
- bypassWatchOnYoutubeElement.checked = r.bypassWatchOnYoutube;
-
- let frontend = r.youtubeFrontend;
- youtubeFrontendElement.value = frontend;
changeFrontendsSettings();
+ changeProtocolSettings();
+
+ youtubeEmbedFrontend.value = youtubeEmbedFrontend.value
+ if (r.youtubeFrontend == "freetube" || r.youtubeFrontend == "yatte") changeYoutubeEmbedFrontendsSettings()
+ }
+);
+
+const invidiousForm = invidiousDiv.getElementsByTagName('form')[0];
+const invidiousCookies = invidiousForm.getElementsByTagName('input')[0];
+invidiousForm.addEventListener('submit', async event => {
+ event.preventDefault();
+ const url = new URL(invidiousCookies.value);
+ youtubeHelper.initInvidiousCookies(url);
+});
- let protocol = r.youtubeProtocol;
- protocolElement.value = protocol;
- changeProtocolSettings(protocol);
+// const pipedForm = pipedDiv.getElementsByTagName('form')[0];
+// const pipedCookies = pipedForm.getElementsByTagName('input')[0];
+// pipedForm.addEventListener('submit', async event => {
+// event.preventDefault();
+// const url = new URL(pipedCookies.value);
+// youtubeHelper.initPipedLocalStorage(url);
+// });
- let youtubeEmbedFrontend = r.youtubeEmbedFrontend;
- youtubeEmbedFrontendElement.value = youtubeEmbedFrontend
- if (frontend == "freetube" || frontend == "yatte") {
- changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend)
- };
+commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'normal', document);
+commonHelper.processDefaultCustomInstances('youtube', 'invidious', 'tor', document);
+commonHelper.processDefaultCustomInstances('youtube', 'pipedMaterial', 'normal', document);
+commonHelper.processDefaultCustomInstances('youtube', 'pipedMaterial', 'tor', document);
+commonHelper.processDefaultCustomInstances('youtube', 'piped', 'normal', document);
+commonHelper.processDefaultCustomInstances('youtube', 'piped', 'tor', document);
+
+
+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('youtube', 'invidious', 'normal', document);
+ latencyInvidiousElement.removeEventListener("click", reloadWindow);
+ });
}
);
+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('youtube', 'pipedMaterial', 'normal', document);
+ latencyPipedMaterialElement.removeEventListener("click", reloadWindow);
+ });
+ }
+);
-window.onblur = () => {
- youtubeHelper.initInvidiousCookies();
-} \ No newline at end of file
+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('youtube', 'piped', 'normal', document);
+ latencyPipedElement.removeEventListener("click", reloadWindow);
+ });
+ }
+);
diff --git a/src/pages/options/youtube/youtube.pug b/src/pages/options/youtube/youtube.pug
index be88aac8..45c7f173 100644
--- a/src/pages/options/youtube/youtube.pug
+++ b/src/pages/options/youtube/youtube.pug
@@ -21,8 +21,6 @@ body.option(dir="auto")
option(value="freetube") FreeTube
option(value="yatte") Yattee
- hr
-
#freetube-yatte
.some-block.option-block
h4(data-localise="__MSG_embeddedVids__") Embedded Videos Frontend
@@ -31,7 +29,6 @@ body.option(dir="auto")
option(value="piped") Piped
option(value="pipedMaterial") Piped-Material
option(value="youtube") Youtube
- hr
#invidious-piped-pipedMaterial
.some-block.option-block
@@ -47,278 +44,7 @@ body.option(dir="auto")
option(value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__") Only Embedded
option(value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__") Only Not Embedded
- .some-block.option-block
- h4(data-localise="__MSG_bypassYoutube__") Bypass "Watch On YouTube"
- input#bypass-watch-on-youtube(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_enableCustom__") Enable Custom Settings (will use cookies and localStorage)
- input#enable-youtube-custom-settings(type="checkbox")
-
#invidious
- .custom-settings
- hr
- .some-block.option-block
- h4(data-localise="__MSG_alwaysLoop__") Always loop
- input.video_loop(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_autoplayVid__") Autoplay Video
- input.youtubeAutoplay(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_playNext__") Play next by default
- input.continue(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_autoplayNext__") Autoplay next video
- input.continue_autoplay(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_alwaysProxy__") Always proxy videos
- input.local(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_listenByDefault__") Listen by default
- input.listen(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_defaultSpeed__") Default speed
- select.speed
- option 2.0
- option 1.75
- option 1.5
- option 1.25
- option 1.0
- option 0.75
- option 0.5
- option 0.25
-
- .some-block.option-block
- h4(data-localise="__MSG_prefQuality__") Preferred video quality
- select.quality
- option(value="hd720") 720p
- option(value="medium") 480p
- option(value="dash" data-localise="__MSG_dash__") DASH (adaptive quality)
-
- .some-block.option-block
- h4(data-localise="__MSG_prefDashQuality__") Preferred DASH video quality
- select.quality_dash
- option(value="auto" data-localise="__MSG_auto__") Auto
- option(value="best" data-localise="__MSG_best__") Best
- option(value="4320p") 4320p
- option(value="2160p") 2160p
- option(value="1440p") 1440p
- option(value="1080p") 1080p
- option(value="720p") 720p
- option(value="480p") 480p
- option(value="360p") 360p
- option(value="240p") 240p
- option(value="144p") 144p
- option(value="worst" data-localise="__MSG_worst__") Worst
-
- .some-block.option-block
- h4
- x(data-localise="__MSG_volume__") Volume:
- span.volume-value --%
- input.volume(type="range" min="0" max="100" step="1")
-
- .some-block.option-block
- h4(data-localise="__MSG_defaultComments__") Default comments
- select(class="comments[0]")
- option(value="" data-localise="__MSG_none__") none
- option(value="youtube") YouTube
- option(value="reddit") Reddit
- .some-block.option-block
- h4
- select(class="comments[1]")
- option(value="" data-localise="__MSG_none__") none
- option(value="youtube") YouTube
- option(value="reddit") Reddit
-
- .some-block.option-block
- h4(data-localise="__MSG_defaultCaptions__") Default captions
- select(class="captions[0]")
- include ../../widgets/captions_options.pug
-
- .some-block.option-block
- h4
- select(class="captions[1]")
- include ../../widgets/captions_options.pug
-
- .some-block.option-block
- h4
- select(class="captions[2]")
- include ../../widgets/captions_options.pug
-
- .some-block.option-block
- h4(data-localise="__MSG_showRelated__") Show related videos
- input.related_videos(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_showAnnotations__") Show annotations by default
- input.annotations(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_autoExtendDesc__") Automatically extend video description
- input.extend_desc(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_interactive360__") Interactive 360 degree videos (requires WebGL)
- input.vr_mode(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_savePlaybackPos__") Save playback position
- input.save_player_pos(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_region__") Select country
- select.region
- option(value="AE") AE
- option(value="AR") AR
- option(value="AT") AT
- option(value="AU") AU
- option(value="AZ") AZ
- option(value="BA") BA
- option(value="BD") BD
- option(value="BE") BE
- option(value="BG") BG
- option(value="BH") BH
- option(value="BO") BO
- option(value="BR") BR
- option(value="BY") BY
- option(value="CA") CA
- option(value="CH") CH
- option(value="CL") CL
- option(value="CO") CO
- option(value="CR") CR
- option(value="CY") CY
- option(value="CZ") CZ
- option(value="DE") DE
- option(value="DK") DK
- option(value="DO") DO
- option(value="DZ") DZ
- option(value="EC") EC
- option(value="EE") EE
- option(value="EG") EG
- option(value="ES") ES
- option(value="FI") FI
- option(value="FR") FR
- option(value="GB") GB
- option(value="GE") GE
- option(value="GH") GH
- option(value="GR") GR
- option(value="GT") GT
- option(value="HK") HK
- option(value="HN") HN
- option(value="HR") HR
- option(value="HU") HU
- option(value="ID") ID
- option(value="IE") IE
- option(value="IL") IL
- option(value="IN") IN
- option(value="IQ") IQ
- option(value="IS") IS
- option(value="IT") IT
- option(value="JM") JM
- option(value="JO") JO
- option(value="JP") JP
- option(value="KE") KE
- option(value="KR") KR
- option(value="KW") KW
- option(value="KZ") KZ
- option(value="LB") LB
- option(value="LI") LI
- option(value="LK") LK
- option(value="LT") LT
- option(value="LU") LU
- option(value="LV") LV
- option(value="LY") LY
- option(value="MA") MA
- option(value="ME") ME
- option(value="MK") MK
- option(value="MT") MT
- option(value="MX") MX
- option(value="MY") MY
- option(value="NG") NG
- option(value="NI") NI
- option(value="NL") NL
- option(value="NO") NO
- option(value="NP") NP
- option(value="NZ") NZ
- option(value="OM") OM
- option(value="PA") PA
- option(value="PE") PE
- option(value="PG") PG
- option(value="PH") PH
- option(value="PK") PK
- option(value="PL") PL
- option(value="PR") PR
- option(value="PT") PT
- option(value="PY") PY
- option(value="QA") QA
- option(value="RO") RO
- option(value="RS") RS
- option(value="RU") RU
- option(value="SA") SA
- option(value="SE") SE
- option(value="SG") SG
- option(value="SI") SI
- option(value="SK") SK
- option(value="SN") SN
- option(value="SV") SV
- option(value="TH") TH
- option(value="TN") TN
- option(value="TR") TR
- option(value="TW") TW
- option(value="TZ") TZ
- option(value="UA") UA
- option(value="UG") UG
- option(value="US") US
- option(value="UY") UY
- option(value="VE") VE
- option(value="VN") VN
- option(value="YE") YE
- option(value="ZA") ZA
- option(value="ZW") ZW
-
- .some-block.option-block
- h4(data-localise="__MSG_playerStyle__") Player Style
- select.player_style
- option(value="invidious" data-localise="__MSG_invidious__") Invidious
- option(value="youtube" data-localise="__MSG_youtube__") YouTube
-
- .some-block.option-block
- h4(data-localise="__MSG_theme__") Theme
- select.dark_mode
- option(value="") auto
- option(value="light") light
- option(value="dark") dark
-
- .some-block.option-block
- h4(data-localise="__MSG_thin_mode__") Thin mode
- input.thin_mode(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_default_home__") Default homepage
- select.default_home
- option(value="") Search
- option(value="Popular") Popular
- option(value="Trending") Trending
-
- .some-block.option-block
- h4(data-localise="__MSG_feedMenu__") Feed menu
- select(class="feed_menu[0]")
- option(value="") Search
- option(value="Popular") Popular
- option(value="Trending") Trending
-
- |&nbsp;
-
- select(class="feed_menu[1]")
- option(value="") Search
- option(value="Popular") Popular
- option(value="Trending") Trending
hr
.normal
include ../../widgets/instances.pug
@@ -331,318 +57,6 @@ body.option(dir="auto")
#piped
hr
- .custom-settings
- hr
- .some-block.option-block
- h4
- x(data-localise="__MSG_volume__") Volume:
- span.volume-value --%
- input.volume(type="range" min="0" max="100" step="1")
-
- .some-block.option-block
- h4(data-localise="__MSG_enableSponsorBlock__") Enable Sponsorblock
- input.sponsorblock(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipSponsors__") Skip Sponsors
- input.selectedSkip-sponsor(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipIntermission__") Skip Intermission/Intro Animation
- input.selectedSkip-intro(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skripEndcars__") Skip Endcards/Credits
- input.selectedSkip-outro(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skripPreview__") Skip Preview/Recap
- input.selectedSkip-preview(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipReminder__") Skip Interaction Reminder (Subscribe)
- input.selectedSkip-interaction(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipUnpaidPromo__") Skip Unpaid/Self Promotion(Subscribe)
- input.selectedSkip-selfpromo(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipMusic__") Skip Music: Non-Music Section(Subscribe)
- input.selectedSkip-music_offtopic(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipHighlight__") Skip Highlight(Subscribe)
- input.selectedSkip-poi_highlight(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipFiller__") Skip Filler Tangent
- input.selectedSkip-filler(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_theme__") Theme
- select.ddlTheme
- option(value="auto") Auto
- option(value="dark") Dark
- option(value="light") Light
-
- .some-block.option-block
- h4(data-localise="__MSG_autoplayVid__") Autoplay Video
- input.youtubeAutoplay(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_audioOnly__") Audio Only
- input.listen(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_defaultQuality__") Default Quality
- select.quality
- option(value="0") Auto
- option(value="144") 144p
- option(value="240") 240p
- option(value="360") 360p
- option(value="480") 480p
- option(value="720") 720p
- option(value="1080") 1080p
- option(value="1440") 1440p
- option(value="2160") 2160p
- option(value="4320") 4320p
-
- .some-block.option-block
- h4(data-localise="__MSG_bufferingGoal__") Buffering Goal (in seconds)
- input.bufferGoal(type="number" min="10")
-
- .some-block.option-block
- h4(data-localise="__MSG_countrySelection__") Country Selection
- select.region
- option(value="AF") Afghanistan
- option(value="AL") Albania
- option(value="DZ") Algeria
- option(value="AD") Andorra
- option(value="AO") Angola
- option(value="AG") Antigua and Barbuda
- option(value="AR") Argentina
- option(value="AM") Armenia
- option(value="AU") Australia
- option(value="AT") Austria
- option(value="AZ") Azerbaijan
- option(value="BS") Bahamas
- option(value="BH") Bahrain
- option(value="BD") Bangladesh
- option(value="BB") Barbados
- option(value="BY") Belarus
- option(value="BE") Belgium
- option(value="BZ") Belize
- option(value="BJ") Benin
- option(value="BT") Bhutan
- option(value="BO") Bolivia (Plurinational State of)
- option(value="BA") Bosnia and Herzegovina
- option(value="BW") Botswana
- option(value="BR") Brazil
- option(value="BN") Brunei Darussalam
- option(value="BG") Bulgaria
- option(value="BF") Burkina Faso
- option(value="BI") Burundi
- option(value="CV") Cabo Verde
- option(value="KH") Cambodia
- option(value="CM") Cameroon
- option(value="CA") Canada
- option(value="CF") Central African Republic
- option(value="TD") Chad
- option(value="CL") Chile
- option(value="CN") China
- option(value="CO") Colombia
- option(value="KM") Comoros
- option(value="CG") Congo
- option(value="CD") Congo, Democratic Republic of the
- option(value="CR") Costa Rica
- option(value="CI") Côte d'Ivoire
- option(value="HR") Croatia
- option(value="CU") Cuba
- option(value="CY") Cyprus
- option(value="CZ") Czechia
- option(value="DK") Denmark
- option(value="DJ") Djibouti
- option(value="DM") Dominica
- option(value="DO") Dominican Republic
- option(value="EC") Ecuador
- option(value="EG") Egypt
- option(value="SV") El Salvador
- option(value="GQ") Equatorial Guinea
- option(value="ER") Eritrea
- option(value="EE") Estonia
- option(value="SZ") Eswatini
- option(value="ET") Ethiopia
- option(value="FJ") Fiji
- option(value="FI") Finland
- option(value="FR") France
- option(value="GA") Gabon
- option(value="GM") Gambia
- option(value="GE") Georgia
- option(value="DE") Germany
- option(value="GH") Ghana
- option(value="GR") Greece
- option(value="GD") Grenada
- option(value="GT") Guatemala
- option(value="GN") Guinea
- option(value="GW") Guinea-Bissau
- option(value="GY") Guyana
- option(value="HT") Haiti
- option(value="HN") Honduras
- option(value="HU") Hungary
- option(value="IS") Iceland
- option(value="IN") India
- option(value="ID") Indonesia
- option(value="IR") Iran (Islamic Republic of)
- option(value="IQ") Iraq
- option(value="IE") Ireland
- option(value="IL") Israel
- option(value="IT") Italy
- option(value="JM") Jamaica
- option(value="JP") Japan
- option(value="JO") Jordan
- option(value="KZ") Kazakhstan
- option(value="KE") Kenya
- option(value="KI") Kiribati
- option(value="KP") Korea (Democratic People's Republic of)
- option(value="KR") Korea, Republic of
- option(value="KW") Kuwait
- option(value="KG") Kyrgyzstan
- option(value="LA") Lao People's Democratic Republic
- option(value="LV") Latvia
- option(value="LB") Lebanon
- option(value="LS") Lesotho
- option(value="LR") Liberia
- option(value="LY") Libya
- option(value="LI") Liechtenstein
- option(value="LT") Lithuania
- option(value="LU") Luxembourg
- option(value="MG") Madagascar
- option(value="MW") Malawi
- option(value="MY") Malaysia
- option(value="MV") Maldives
- option(value="ML") Mali
- option(value="MT") Malta
- option(value="MH") Marshall Islands
- option(value="MR") Mauritania
- option(value="MU") Mauritius
- option(value="MX") Mexico
- option(value="FM") Micronesia (Federated States of)
- option(value="MD") Moldova, Republic of
- option(value="MC") Monaco
- option(value="MN") Mongolia
- option(value="ME") Montenegro
- option(value="MA") Morocco
- option(value="MZ") Mozambique
- option(value="MM") Myanmar
- option(value="NA") Namibia
- option(value="NR") Nauru
- option(value="NP") Nepal
- option(value="NL") Netherlands
- option(value="NZ") New Zealand
- option(value="NI") Nicaragua
- option(value="NE") Niger
- option(value="NG") Nigeria
- option(value="MK") North Macedonia
- option(value="NO") Norway
- option(value="OM") Oman
- option(value="PK") Pakistan
- option(value="PW") Palau
- option(value="PA") Panama
- option(value="PG") Papua New Guinea
- option(value="PY") Paraguay
- option(value="PE") Peru
- option(value="PH") Philippines
- option(value="PL") Poland
- option(value="PT") Portugal
- option(value="QA") Qatar
- option(value="RO") Romania
- option(value="RU") Russian Federation
- option(value="RW") Rwanda
- option(value="KN") Saint Kitts and Nevis
- option(value="LC") Saint Lucia
- option(value="VC") Saint Vincent and the Grenadines
- option(value="WS") Samoa
- option(value="SM") San Marino
- option(value="ST") Sao Tome and Principe
- option(value="SA") Saudi Arabia
- option(value="SN") Senegal
- option(value="RS") Serbia
- option(value="SC") Seychelles
- option(value="SL") Sierra Leone
- option(value="SG") Singapore
- option(value="SK") Slovakia
- option(value="SI") Slovenia
- option(value="SB") Solomon Islands
- option(value="SO") Somalia
- option(value="ZA") South Africa
- option(value="SS") South Sudan
- option(value="ES") Spain
- option(value="LK") Sri Lanka
- option(value="SD") Sudan
- option(value="SR") Suriname
- option(value="SE") Sweden
- option(value="CH") Switzerland
- option(value="SY") Syrian Arab Republic
- option(value="TJ") Tajikistan
- option(value="TZ") Tanzania, United Republic of
- option(value="TH") Thailand
- option(value="TL") Timor-Leste
- option(value="TG") Togo
- option(value="TO") Tonga
- option(value="TT") Trinidad and Tobago
- option(value="TN") Tunisia
- option(value="TR") Turkey
- option(value="TM") Turkmenistan
- option(value="TV") Tuvalu
- option(value="UG") Uganda
- option(value="UA") Ukraine
- option(value="AE") United Arab Emirates
- option(value="GB") United Kingdom of Great Britain and Northern Ireland
- option(value="US") United States of America
- option(value="UY") Uruguay
- option(value="UZ") Uzbekistan
- option(value="VU") Vanuatu
- option(value="VE") Venezuela (Bolivarian Republic of)
- option(value="VN") Viet Nam
- option(value="YE") Yemen
- option(value="ZM") Zambia
- option(value="ZW") Zimbabwe
-
- .some-block.option-block
- h4(data-localise="__MSG_defaultHomepage__") Default Homepage
- select.homepage
- option(value="trending" data-localise="__MSG_trending__") Trending
- option(value="feed" data-localise="__MSG_feed__") Feed
-
- .some-block.option-block
- h4(data-localise="__MSG_showComments__") Show Comments
- input.comments(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_minimizeDesc__") Minimize Description by default
- input.minimizeDescription(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_storeHistory__") Store Watch History
- input.watchHistory(type="checkbox")
-
-
- .some-block.option-block
- h4(data-localise="__MSG_enabledCodecs__") Enabled Codecs (Multiple)
- select.enabledCodecs
- option(value="av1") AV1
- option(value="vp9") VP9
- option(value="avc") AVC (h.264)
-
- .some-block.option-block
- h4(data-localise="__MSG_disableLBRY__") Disable LBRY for Streaming
- input.disableLBRY(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_enableProxyLBRY__") Enable Proxy for LBRY
- input.proxyLBRY(type="checkbox")
-
.normal
include ../../widgets/instances.pug
+instances('https://piped.com')
@@ -653,67 +67,6 @@ body.option(dir="auto")
#pipedMaterial
hr
- .custom-settings
- .some-block.option-block
- h4(data-localise="__MSG_autoplayVid__") Autoplay Video
- input.youtubeAutoplay(type="checkbox")
-
- .some-block.option-block
- h4
- x(data-localise="__MSG_volume__") Volume:
- span.volume-value --%
- input.volume(type="range" min="0" max="100" step="1")
-
- .some-block.option-block
- h4(data-localise="__MSG_audioOnly__") Audio Only
- input.listen(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_disableLBRY__") Disable LBRY
- input.disableLBRY(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_proxyLBRY__") Proxy LBRY videos
- input.proxyLBRY(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_enableSponsorBlock__") Enable Sponsorblock
- input.sponsorblock(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipNote__") Skip to the last watched point when encountering a video already seen
- input.skipToLastPoint(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipSponsors__") Skip Sponsors
- input.selectedSkip-sponsor(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipIntermission__") Skip Intermission/Intro Animation
- input.selectedSkip-intro(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skripEndcars__") Skip Endcards/Credits
- input.selectedSkip-outro(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skripPreview__") Skip Preview/Recap
- input.selectedSkip-preview(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipReminder__") Skip Interaction Reminder (Subscribe)
- input.selectedSkip-interaction(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipUnpaidPromo__") Skip Unpaid/Self Promotion
- input.selectedSkip-selfpromo(type="checkbox")
-
- .some-block.option-block
- h4(data-localise="__MSG_skipMusic__") Skip Music: Non-Music Section
- input.selectedSkip-music_offtopic(type="checkbox")
-
- hr
-
.normal
include ../../widgets/instances.pug
+instances('https://piped-material.com')