-
Notifications
You must be signed in to change notification settings - Fork 0
/
content_script.js
72 lines (58 loc) · 1.89 KB
/
content_script.js
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
66
67
68
start = 0;
end = 0;
var btn = document.createElement("div");
btn.innerHTML = "Get start time";
btn.className = "style-scope yt-simple-endpoint";
btn.style.zIndex = 9999;
btn.style.cursor = "pointer";
btn.style.fontSize = "1.5em";
btn.style.color="blue";
btn.style.position = "relative";
btn.style.bottom = 0;
const copyToClipboard = str => {
const el = document.createElement('textarea');
el.value = str;
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
};
btn.addEventListener('click', function(){
currentURL = window.location.href;
url = new URL(currentURL);
videoId = url.searchParams.get("v");
if(start == 0){
start = document.getElementsByTagName('video')[0].currentTime;
btn.innerHTML = "Get end time";
urlRedirect = "https://youtu.be/"+videoId+"?t="+Math.floor(start);
copyToClipboard(urlRedirect);
}else if(end == 0){
btn.innerHTML = "Get start time";
end = document.getElementsByTagName('video')[0].currentTime;
if(end - start < 1){
end = start + 1;
}
urlRedirect = "https://www.youtube.com/embed/"+videoId+"?start="+ Math.floor(start) +"&end=" + Math.floor(end);
window.open(urlRedirect);
copyToClipboard(urlRedirect);
end = 0;
start = 0;
}
//alert("start: " + start + ", end: " + end + ", videoId: " + videoId);
});
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
el = document.getElementById('ytd-player');
if(el){
document.getElementById('ytd-player').appendChild(btn);
observer.disconnect();
}
});
});
// Config info for the observer.
var config = {
childList: true,
subtree: true
};
// Observe the body (and its descendants) for `childList` changes.
observer.observe(document.body, config);