NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Unfuck old.reddit.com video player
// @author ArhoM
// @description Replaces old.reddit.com video player with built-in player of web browser
// @version 1.0.3
// @namespace https://github.com/sinf/old-reddit-video-builtin/
// @downloadURL https://github.com/sinf/old-reddit-video-builtin/raw/main/script.js
// @license MIT
// @include https://old.reddit.com/r/*
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
// @require https://github.com/sinf/old-reddit-video-builtin/raw/main/waitForKeyElements.js
// @grant GM_addStyle
// @run-at document-end
// ==/UserScript==
function fixup128794(x) {
// for some reason removing events/callbacks from x isnt working
// so why not delete the entire js-infested subtree of useless divs
// need a wrapper div because styles
let newx = jQuery('<div>', {
id: x[0].id,
class: x.attr('class'),
});
let vid = x.find('video');
vid.off();
vid.attr({'controls':true, 'id':'unfucked_video'});
vid.appendTo(newx);
let par = x.parent();
par.children().remove();
par.append(newx);
x.remove();
}
function fixup128793(x) {
console.log('found element');
console.log(x);
fixup128794(x);
}
// must not match the new wrapper element
let my_root_q = ".media-preview-content.video-player div.reddit-video-player-root[data-mpd-url]";
waitForKeyElements(my_root_q, fixup128793);
// some script generates a duplicate video element but with a low res preview video
waitForKeyElements("#unfucked_video + video", (x) => x.remove());