Youtube is one of my main source for learning so I spend a lot of time there. To make that time as efficient as possible I optimized my "workflow" and I though that others may benefit from it as well.
1. Use the default shortcuts
Youtube already has plenty of inbuilt shortcuts that can be very useful although if you are using something like vimium (which you absolutely should) then skip this point. So the important default shortcuts are:
j
-> rewind 10 seconsl
-> fast forward 10 secondsk
-> play/pausef
-> toggle fullscreen.
-> move forward 1 frame,
-> move backward 1 frameshift+.
-> increase playback speed (yeah, that's the>
key)shift+,
-> decrease playback speed (and that's the<
key)
Important: don't use the arrow keys for rewind/fast forward and the space
for play/pause because it needs focus and otherwise won't work.
2. Experiment with different playback speeds
You can change the playback speed of a Youtube video and if you are watching learning material you really should. You can process information way faster than someone can talk but it will be strange at first. Start at 1.25x and go up incrementally. In no time you will find yourself watching videos with 2x or even faster but beware, you will find the normal speed unbearably slow! There is a really good Chrome extension that always indicates the current speed and give you buttons and shortcuts to modify it.
3. Use custom shortcuts
This is the holy grail of Youtube efficiency and the main reason I'm writing this post. There's is a wonderful Chrome extension called Surfingkeys. It can do everything that vimium can and a lot more. Basically you can assign arbitrary JavaScript code to every keypress. It uses up all the default Youtube shortcuts so why not make better ones instead anyway? My configuration looks like this:
a
-> rewind 5 secondsd
-> fast forward 5 secondsA
-> rewind 30 secondsD
-> fast forward 30 secondss
-> play/pauseS
-> toggle fullscreenq
-> decrease speed by 20%e
-> increase speed by 20%w
-> toggle speed between 100% and 200%
And here is the snippet I used to achieve this. Feel free to modify it to get a more custom/better experience:
mapkey('s', 'Pause YT video', function() {
document.getElementsByClassName('ytp-play-button')[0].click();
});
mapkey('S', 'fullscreen YT video', function() {
document.getElementsByClassName('ytp-fullscreen-button')[0].click();
});
mapkey('a', 'rewind 5s YT video', function() {
document.getElementsByTagName("video")[0].currentTime -= 5;
});
mapkey('d', 'forward 5s YT video', function() {
document.getElementsByTagName("video")[0].currentTime += 5;
});
mapkey('A', 'rewind 30s YT video', function() {
document.getElementsByTagName("video")[0].currentTime -= 30;
});
mapkey('D', 'forward 30s YT video', function() {
document.getElementsByTagName("video")[0].currentTime += 30;
});
mapkey('q', 'decrease speed of YT video 20%', function() {
document.getElementsByTagName("video")[0].playbackRate -= 0.2;
});
mapkey('w', 'set speed of YT video', function() {
document.getElementsByTagName("video")[0].playbackRate == 1 ? document.getElementsByTagName("video")[0].playbackRate = 2 : document.getElementsByTagName("video")[0].playbackRate = 1;
});
mapkey('e', 'increase speed of YT video 20%', function() {
document.getElementsByTagName("video")[0].playbackRate += 0.2;
});
I like the idea of watching videos faster to not waste your time when the speaker is too slow. But then, where is the advantage of a youtube video over good old plain text?
Hard to skip, harder to get back in time and re-read the same paragraph twice, and don't even think of plain text search.
Once youtube fixes those small issues, I'll be ready to switch for dtube