JSFiddle - React, Tailwind, and code Playground
by fredd man
JavaScript
// ==UserScript==
// @name JW-Player shortcuts delegate
// @namespace https://video.aktualne.cz
// @version 1.1.1
// @description Delegate keyboard events to a jw-player element if it is found
// in the page so its keyboard shortcuts work without having to click on the player first to focus it.
// Also fast-forwards ads.
// @author bubblefoil
// @license MIT
// @match https://video.aktualne.cz/*
// @grant none
// @run-at document-idle
// ==/UserScript==
(function() {
'use strict';
function getVideo(){
return document.querySelector('video.jw-video');
}
var playbackRates = [0.25, 0.5, 1, 1.125, 1.25, 1.5, 2];
const muteVolume = 0.05;
function slowDown(){
console.log("slowing down");
var video = getVideo();
if(video == null || !video.playbackRate){
console.log("There is no jw-player");
return;
}
var currentRate = video.playbackRate;
var ri = playbackRates.findIndex(r => r >= currentRate);
video.playbackRate = playbackRates[Math.max(0, ri - 1)];
console.log("Playback rate =", video.playbackRate);
}
function speedUp(){
console.log("Speeding up");
var video = getVideo();
if(video == null || !video.playbackRate){
console.log("There is no jw-player");
return;
}
var currentRate = Math.min(video.playbackRate, playbackRates[playbackRates.length - 1]);
var ri = playbackRates.findIndex(r => r >= currentRate);
video.playbackRate = playbackRates[Math.min(ri + 1, playbackRates.length - 1)];
console.log("Playback rate =", video.playbackRate);
}
let originalVolume = 1;
let muted = false;
function mute(){
if (!muted){
originalVolume = getVideo().volume;
}
getVideo().volume = muteVolume;
muted = true;
}
function unmute(){
...