blob: 6f50e31a7353bcf4d75189f36c1a58adcb853f62 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
// ==UserScript==
// @name Redirect to EmbedTube
// @namespace Violentmonkey Scripts
// @match https://www.youtube.com/*
// @grant GM_addStyle
// @homepageURL https://git.tjkeller.xyz/userscripts/about
// @downloadURL https://git.tjkeller.xyz/userscripts/plain/youtube/embedtube-button.user.js
// @version 1.1
// @author tjkeller.xyz
// @description 3/9/2024, 8:38:47 PM
// ==/UserScript==
/* Config */
const instanceHostname = "yt.tjkeller.xyz"
const instanceProtocol = "https:"
const instanceIconLogo = "/static/favicon.svg"
const instanceUrl = `${instanceProtocol}//${instanceHostname}`
const redirectButtonId = "embedtube-button"
GM_addStyle(`
a#${redirectButtonId} button {
background-color: #272727;
border-radius: 18px;
border: none;
color: white;
cursor: pointer;
display: flex;
font-family: "Roboto","Arial",sans-serif;
font-weight: 500;
height: 36px;
padding: .25em 1em .25em .65em;
text-decoration: none;
}
a#${redirectButtonId} button:hover { background-color: #3f3f3f; }
a#${redirectButtonId} button * { align-self: center; max-height: 100%; }
`)
function newUrl() {
return `${instanceProtocol}//${instanceHostname}${document.location.pathname}${document.location.search}`
}
if (!document.getElementById(redirectButtonId)) {
const redirectButton = document.createElement("a")
const redirectButtonC = redirectButton.appendChild(document.createElement("button"))
const redirectButtonImg = redirectButtonC.appendChild(document.createElement("img"))
const redirectButtonTxt = redirectButtonC.appendChild(document.createElement("span"))
redirectButton.id = redirectButtonId
redirectButtonImg.src = instanceUrl + instanceIconLogo
redirectButtonImg.alt = "(Down)" // Logo effectively acts as a test to see whether the instance is up or not as a bonus
redirectButtonTxt.innerText = "EmbedTube"
redirectButton.addEventListener("mouseover", () => { redirectButton.href = newUrl() })
/* Insert */
document.body.addEventListener("yt-navigate-finish", () => {
setTimeout(() => {
const headContainer = document.querySelector("#masthead-container #container #start")
headContainer.appendChild(redirectButton)
}, 500) // Wait 500ms for page load to finish after event called
})
}
|