diff options
Diffstat (limited to 'src/pages/options/youtube')
-rw-r--r-- | src/pages/options/youtube/invidious.js | 177 | ||||
-rw-r--r-- | src/pages/options/youtube/piped.js | 152 | ||||
-rw-r--r-- | src/pages/options/youtube/pipedMaterial.js | 125 | ||||
-rw-r--r-- | src/pages/options/youtube/youtube.html | 1092 | ||||
-rw-r--r-- | src/pages/options/youtube/youtube.js | 233 | ||||
-rw-r--r-- | src/pages/options/youtube/youtube.pug | 647 |
6 files changed, 168 insertions, 2258 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> - <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"; - -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"); +import commonHelper from "../../../assets/javascripts/helpers/common.js"; + +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(); - let protocol = r.youtubeProtocol; - protocolElement.value = protocol; - changeProtocolSettings(protocol); + youtubeEmbedFrontend.value = youtubeEmbedFrontend.value + if (r.youtubeFrontend == "freetube" || r.youtubeFrontend == "yatte") changeYoutubeEmbedFrontendsSettings() + } +); - let youtubeEmbedFrontend = r.youtubeEmbedFrontend; - youtubeEmbedFrontendElement.value = youtubeEmbedFrontend - if (frontend == "freetube" || frontend == "yatte") { - changeYoutubeEmbedFrontendsSettings(youtubeEmbedFrontend) - }; +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); +}); + +// 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); +// }); + +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 - - | - - 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') |