Skip to content

Instantly share code, notes, and snippets.

@Lesmiscore
Created February 18, 2022 14:07
Show Gist options
  • Save Lesmiscore/eb22f06e8251b0c4b012574629f55056 to your computer and use it in GitHub Desktop.
Save Lesmiscore/eb22f06e8251b0c4b012574629f55056 to your computer and use it in GitHub Desktop.
Really blocks certain formats on YouTube
// ==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