A simple Chrome extension that enables Youtube TV on my Raspberry Pi 4: Source
background.js
const config = {
userAgent: 'Mozilla/5.0 (SMART-TV; Linux; Tizen 5.0) AppleWebKit/538.1 (KHTML, like Gecko) Version/5.0 NativeTVAds Safari/538.1'
}
function changeUserAgent (request) {
for (let header of request.requestHeaders) {
if (header.name.toLowerCase() === "user-agent") header.value = config.userAgent
}
return { requestHeaders: request.requestHeaders }
}
chrome.webRequest.onBeforeSendHeaders.addListener(changeUserAgent, {urls: ["*://*.youtube.com/tv*"]}, ["blocking", "requestHeaders"]);
manifest
{
"manifest_version": 2,
"name": "YouTube TV for Browser",
"description": "Enables YouTube TV for traditional browser",
"version": "0.1",
"permissions": [
"webRequest",
"webRequestBlocking",
"*://*.youtube.com/tv*"
],
"background": {
"scripts": [
"background.js"
]
},
"browser_action": {
"default_title": "YouTube TV for Browser"
}
}
However, when I create a desktop shortcut and open Youtube from it (with no other Chrome process running), the script doesn't load (which will redirect me to normal youtube.com) until I manually refresh the page.
My question is: How can I load the script before Chrome send a request, or right after the shortcut opened.
Solved it by not solving it. Modify --user-agent
in shortcut properties instead, detail here.
--user-agent="Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV/092754 Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV/092754"