Created
February 18, 2022 14:07
-
-
Save Lesmiscore/eb22f06e8251b0c4b012574629f55056 to your computer and use it in GitHub Desktop.
Really blocks certain formats on YouTube
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Youtube H.264 | |
// @namespace http://www.youtube.com | |
// @version 1.1.2 | |
// @description use H.264 on youtube. based on https://github.com/erkserkserks/h264ify. | |
// @match http://youtube.com/* | |
// @match https://youtube.com/* | |
// @match http://www.youtube.com/* | |
// @match https://www.youtube.com/* | |
// @grant all | |
// @run-at document-start | |
// ==/UserScript== | |
// code from https://github.com/erkserkserks/h264ify/blob/master/src/inject/inject.js | |
}}) }catch(e){} | |
var h264ify = function () { | |
// Override video element canPlayType() function | |
var videoElem = document.createElement('video'); | |
var origCanPlayType = videoElem.canPlayType.bind(videoElem); | |
videoElem.__proto__.canPlayType = function (type) { | |
if (type === undefined) return ''; | |
console.log('h264ify video', type); | |
// If queried about webM/vp8/vp8 support, say we don't support them | |
if (type.indexOf('webm') != -1 | |
|| type.indexOf('vp8') != -1 | |
|| type.indexOf('vp9') != -1 | |
|| type.indexOf('opus') != -1) { | |
return ''; | |
} | |
// Otherwise, ask the browser | |
return origCanPlayType(type); | |
} | |
// Override media source extension isTypeSupported() function | |
var mse = window.MediaSource; | |
var origIsTypeSupported = mse.isTypeSupported.bind(mse); | |
mse.isTypeSupported = function (type) { | |
if (type === undefined) return ''; | |
console.log('h264ify mse', type); | |
// If queried about webM/vp8/vp8 support, say we don't support them | |
if (type.indexOf('webm') != -1 | |
|| type.indexOf('vp8') != -1 | |
|| type.indexOf('vp9') != -1 | |
|| type.indexOf('opus') != -1) { | |
return ''; | |
} | |
// Otherwise, ask the browser | |
return origIsTypeSupported(type); | |
} | |
console.log('h264ify applied'); | |
}; | |
var scriptElem = document.createElement('script'); | |
scriptElem.innerHTML = `;(${h264ify})()`; | |
document.head.appendChild(scriptElem); | |
try { (function scopeWrapper(){ function userScript() { | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment