Greasy Fork is available in English.

YouTube and Google region setter

Youtube and google regularly change your region based on your IP. This userscript automatically sets it to your preferred region instead.

< Відгуки до YouTube and Google region setter

Відгук: OK - script works, but has bugs

§
Опубліковано: 13.04.2024
Edited: 13.04.2024

Edited the code slightly to use a YouTube URL parameter that has the region change persist, feel free to correct it if the syntax is incorrect:

// ==UserScript==
// @run-at document-start
// @version 1.0.0
// @name YouTube and Google region setter
// @namespace https://github.com/emmaexe/userscripts
// @author emmaexe
// @description Youtube and google regularly change your region based on your IP. This userscript automatically sets it to your preferred region instead.
// @license GPL-3.0-only
// @homepageURL https://github.com/emmaexe/userscripts
// @supportURL https://github.com/emmaexe/userscripts/issues
// @include *://youtube.*/*
// @include *://*.youtube.*/*
// @include *://www.google.com/*
// @exclude *://www.google.com/a/*
// @icon https://raw.githubusercontent.com/emmaexe/userscripts/main/youtube-region-setter/assets/youtube-ico-32.png
// @grant GM.registerMenuCommand
// @grant GM.getValue
// @grant GM.setValue
// @downloadURL https://update.greasyfork.org/scripts/454052/YouTube%20and%20Google%20region%20setter.user.js
// @updateURL https://update.greasyfork.org/scripts/454052/YouTube%20and%20Google%20region%20setter.meta.js
// ==/UserScript==

GM.registerMenuCommand('Set preferred youtube/google region', async () => {
region = prompt('Please enter your preferred region:', 'GB');
await GM.setValue('region', region);
window.location.reload();
})

async function main(){
let region = await GM.getValue('region', 'GB');
let oldUrl = location.href;
let arr = oldUrl.split('?');
//original is "&gl=$"
if (!(oldUrl.includes(`?persist_gl=1&gl=${region}`) || oldUrl.includes(`?persist_gl=1&gl=${region}`))) {
if (arr.length > 1 && arr[1] !== '') {
location.replace(oldUrl+`?persist_gl=1&gl=${region}`);
} else {
location.replace(oldUrl+`?persist_gl=1&gl=${region}`);
}
}
}

main();


this should fix the issue with YouTube changing the region back, the region change persists in my testing

Опублікувати відповідь

Sign in to post a reply.