-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathYoutubePageContextScript.js
49 lines (42 loc) · 1.75 KB
/
YoutubePageContextScript.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
var youtubePlayer;
!function setYoutubePageContextScript() {
function onYouTubePlayerReady(player) {
var wdoYoutubePlayerReadyEvent = new CustomEvent('wdoYoutubePlayerReady', { detail: player });
window.dispatchEvent(wdoYoutubePlayerReadyEvent);
youtubePlayer = player;
console.log(player.getVideoUrl());
var vsrc = 'blob:' + escape(player.getVideoUrl());
console.log(vsrc);
var flg = false;
youtubePlayer.addEventListener("onStateChange", function (newState) {
if (newState == -1 /*|| newState == 3*/) {
flg = true;
} else if (newState == 1 && flg) {
updateQuality();
flg = false;
}
window.dispatchEvent(new CustomEvent('wdoChangeStateYoutubePlayer', { detail: newState }));
});
updateQuality();
window.addEventListener('wdoPlayYoutubePlayer', function (event) {
youtubePlayer.playVideo();
}, false);
window.addEventListener('wdoPauseYoutubePlayer', function (event) {
youtubePlayer.pauseVideo();
}, false);
window.addEventListener('wdoSeekYoutubePlayer', function (event) {
youtubePlayer.seekTo(event.detail, true);
}, false);
window.addEventListener('wdoGetCurrentTimeYoutubePlayer', function (event) {
window.dispatchEvent(new CustomEvent('wdoGetCurrentTimeYoutubePlayerResponse', { detail: youtubePlayer.getCurrentTime() }));
}, false);
}
function updateQuality() {
// ["hd1080", "hd720", "large", "medium", "small", "auto"]
youtubePlayer.setPlaybackQuality(youtubePlayer.getAvailableQualityLevels()[0]);
}
var srcCode = onYouTubePlayerReady.toString() + '; ' + updateQuality.toString();
var script = document.createElement('script');
script.textContent = srcCode;
document.documentElement.appendChild(script);
}();