How to hack Youtube to watch videos faster than 2x
If you ever wanted to watch videos faster than 1.5x or 2x (seems to work for advertisements too)
Here is how it works
-
go to https://youtube.com
-
open the developer console by pressing
F12orCtrl + Shift + IorCmd + Shift + I -
copy & paste the following code will change the video speed:
document.querySelector("video").playbackRate = xwherexis the speed you wantfor example:
document.querySelector("video").playbackRate = 2.4in chrome, this also works:
$('video').playbackRate = x -
close the console
Add Buttons to your YouTube Interface
Here is how to hack additional Buttons into your Youtube UI
- on a Youtube page
- Press
F12 - copy and paste into your console
function changeVideoSpeed(n) { document.querySelector("video").playbackRate = n; }
var style = document.createElement('style');
style.innerHTML = `
.ytp-button-abs {
position: relative;
top: -16px;
}
`;
document.head.appendChild(style);
let btn1x = document.createElement("button");
btn1x.innerHTML = "1x";
btn1x.classList.add("ytp-button");
btn1x.classList.add("ytp-button-abs");
btn1x.onclick = function(){changeVideoSpeed(1) };
let btn25x = document.createElement("button");
btn25x.innerHTML = "2.5x";
btn25x.classList.add("ytp-button");
btn25x.classList.add("ytp-button-abs");
btn25x.onclick = function(){changeVideoSpeed(2.5) };
let btn4x = document.createElement("button");
btn4x.innerHTML = "4x";
btn4x.classList.add("ytp-button");
btn4x.classList.add("ytp-button-abs");
btn4x.onclick = function(){ changeVideoSpeed(4) };
document.querySelector(".ytp-right-controls").prepend(btn4x);
document.querySelector(".ytp-right-controls").prepend(btn25x);
document.querySelector(".ytp-right-controls").prepend(btn1x);
- close the console by pressing
F12
the code is only changed temporarily. It’ll stay active as long you don’t change the webpage in your tab
How to add this permanently?
with a browser plugin called tampermonkey www.tampermonkey.net
or Violentmonkey, Firemonkey, Greasemonkey .. whichever is your favorite
Userscript sample
// ==UserScript==
// @name Youtube Speedup
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://www.youtube.com/watch?*
// @icon https://www.google.com/s2/favicons?domain=youtube.com
// @grant none
// ==/UserScript==
(function() {
'use strict';
function changeVideoSpeed(n) { document.querySelector("video").playbackRate = n; }
var style = document.createElement('style');
style.innerHTML = `
.ytp-button-abs {
position: relative;
top: -16px;
}
`;
document.head.appendChild(style);
let btn1x = document.createElement("button");
btn1x.innerHTML = "1x";
btn1x.classList.add("ytp-button");
btn1x.classList.add("ytp-button-abs");
btn1x.onclick = function(){changeVideoSpeed(1) };
let btn25x = document.createElement("button");
btn25x.innerHTML = "2.5x";
btn25x.classList.add("ytp-button");
btn25x.classList.add("ytp-button-abs");
btn25x.onclick = function(){changeVideoSpeed(2.5) };
let btn4x = document.createElement("button");
btn4x.innerHTML = "4x";
btn4x.classList.add("ytp-button");
btn4x.classList.add("ytp-button-abs");
btn4x.onclick = function(){ changeVideoSpeed(4) };
document.querySelector(".ytp-right-controls").prepend(btn4x);
document.querySelector(".ytp-right-controls").prepend(btn25x);
document.querySelector(".ytp-right-controls").prepend(btn1x);
})();
Notes
- Why add the css?
- Well, the added buttons are somehow positioned at the bottom. This was the fastest solution which works and looks fine.
- Whats the max speed?
- When I tried the min was
0.1and max was16, but the audio is hurting my ears. so better make sure to mute it.
- When I tried the min was
- How to get used to faster speeds?
- Play it faster than its easy to understand (4x)
- Than play at a lower speed (2.5x).
- This way your brain does adopt. You’ll notice!
- You can use the keyboard
0to get back to start of the video.
- Why not faster than 4x?
- Try it yourself.. depending on the video/speaker you won’t understand the audio anymore. if you mute it is works fine.
- maybe to skip the ads
Code with additional 10x button, +muted
I had to add a setMuted() function
function changeVideoSpeed(n) { document.querySelector("video").playbackRate = n; }
function setMuted(tf) { document.querySelector("video").muted = tf; }
var style = document.createElement('style');
style.innerHTML = `
.ytp-button-abs {
position: relative;
top: -16px;
}
`;
document.head.appendChild(style);
let btn1x = document.createElement("button");
btn1x.innerHTML = "1x";
btn1x.classList.add("ytp-button");
btn1x.classList.add("ytp-button-abs");
btn1x.onclick = function(){ changeVideoSpeed(1); setMuted(false); };
let btn25x = document.createElement("button");
btn25x.innerHTML = "2.5x";
btn25x.classList.add("ytp-button");
btn25x.classList.add("ytp-button-abs");
btn25x.onclick = function(){ changeVideoSpeed(2.5); setMuted(false); };
let btn4x = document.createElement("button");
btn4x.innerHTML = "4x";
btn4x.classList.add("ytp-button");
btn4x.classList.add("ytp-button-abs");
btn4x.onclick = function(){ changeVideoSpeed(4); setMuted(false); };
let btn10x = document.createElement("button");
btn10x.innerHTML = "10x";
btn10x.classList.add("ytp-button");
btn10x.classList.add("ytp-button-abs");
btn10x.onclick = function(){ changeVideoSpeed(10); setMuted(true); };
document.querySelector(".ytp-right-controls").prepend(btn10x);
document.querySelector(".ytp-right-controls").prepend(btn4x);
document.querySelector(".ytp-right-controls").prepend(btn25x);
document.querySelector(".ytp-right-controls").prepend(btn1x);