Set Youtube & Overcast & Youku PlaybackRate to 1.75 by default
Устаревшая версия за
// ==UserScript==
// @name Faster Media
// @namespace http://tampermonkey.net/
// @version 0.3.0-beta.2
// @description Set Youtube & Overcast & Youku PlaybackRate to 1.75 by default
// @author Decradish
// @match *www.youtube.com/watch?v=*
// @match *overcast.fm/+*
// @match *v.youku.com/v_show/id_*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 观察器的执行函数
var obsCb = (mutationsList, mutationObserver) => {
// 遍历出所有的MutationRecord对象
t.forEach(function (mutation) {
console.log('---mutation: ', mutation)
switch (mutation.type) {
case 'characterData':
// 文本内容变化,触发重渲染...
break;
case 'attributes':
// rows属性值发生了变化,触发重渲染...
break;
default:
break;
}
});
}
// 设置一个观察器
var observer = new MutationObserver(obsCb);
// 观察目标元素是否出现
observer.observe(document.body, {
subtree: true
});
console.log('~~~observer:', observer)
var iPlaybackRate = 1.75, //rate
tmVideo = document.getElementsByTagName("video")[0],
tmMedia = false,
OcRange = document.getElementById('speedcontrol'), //Overcast
youkuDom = document.getElementById('module_basic_player'); //优酷
if(youkuDom){
var youkuInterval = setInterval(function(){
var ykPlayer = document.getElementById('ykPlayer'),
videos = document.getElementsByTagName('video');
if(ykPlayer && videos && videos.length > 0){
clearInterval(youkuInterval);
for(var i=0;i<videos.length;i++){
videos[i].playbackRate = iPlaybackRate;
videos[i].oncanplay = function(){
this.playbackRate = iPlaybackRate;
}
}
document.getElementsByClassName('h5player-dashboard')[0].style.display = 'none';
}
}, 10);
return false;
}
if(!!tmVideo){
tmMedia = tmVideo;
var youTubePlayBtn = document.getElementsByClassName('ytp-play-button')
if(youTubePlayBtn.length > 0){
document.getElementsByClassName('ytp-play-button')[0].focus()
}
}
if(!!OcRange){
OcRange.stepUp(5)
document.getElementById('speedlabel0').style.color = '#000'
document.getElementById('speedlabel1500').style.color = '#fff'
}
if(!tmMedia){
return false;
}
tmMedia.playbackRate = iPlaybackRate;
tmMedia.onplay = function(){
tmMedia.playbackRate = iPlaybackRate;
};
tmMedia.oncanplay = function(){
tmMedia.playbackRate = iPlaybackRate;
};
})();