/videospeed

HTML5 video speed controller (for Firefox). WebExtensions port of Video Speed Controller Chrome extension.

Primary LanguageJavaScript

Info

This is a fork of the popular chrome extension. To clone and compile:

cd src
web-ext build
web-ext run

It is available on firefox and chrome

The major differences (as of 2023 May 08):

  • Patches to the settings UI which gives it a better dark theme
  • Breaking changes to the settings menu which allow for more fine-grained handling of keyboard input
  • Some fixes for specific websites such as netflix, reddit, and youtube
  • Shift+Mousewheel speeds up or slows down playback
  • (Some) settings can be changed without reloading a page, notably keybindings

Because I have seen how backwards compatability left crusty code in the original versions for multiple years while I rewrote large sections of it, I will make no promises about this extension working between versions. Clicking 'Restore Defaults' may be (but probably will not be) required on every update, so I can iterate more quickly and correctly.

FAQ:

A website doesn't work!

Open an issue here with a link to a URL that has some odd behavior.

Websites known to have problems:

The science of accelerated playback

TL;DR: faster playback translates to better engagement and retention.

Average adult reads prose text at 250 to 300 words per minute (wpm). By contrast, the average rate of speech for English speakers is ~150 wpm, with slide presentations often closer to 100 wpm. As a result, when given the choice, many viewers speed up video playback to ~1.3~1.5 its recorded rate to compensate for the difference.

Many viewers report that accelerated viewing keeps their attention longer: faster delivery keeps the viewer more engaged with the content. In fact, with a little training many end up watching videos at 2x+ the recorded speed. Some studies report that after being exposed to accelerated playback, listeners become uncomfortable if they are forced to return to normal rate of presentation.

Faster HTML5 Video

HTML5 video provides a native API to accelerate playback of any video. The problem is, many players either hide, or limit this functionality. For best results playback speed adjustments should be easy and frequent to match the pace and content being covered: we don't read at a fixed speed, and similarly, we need an easy way to accelerate the video, slow it down, and quickly rewind the last point to listen to it a few more times.

Player

Install Chrome or Firefox Extension

** Once the extension is installed simply navigate to any page that offers HTML5 video (example), and you'll see a speed indicator in top left corner. Hover over the indicator to reveal the controls to accelerate, slowdown, and quickly rewind or advance the video. Or, even better, simply use your keyboard:

  • S - decrease playback speed.
  • D - increase playback speed.
  • R - reset playback speed to 1.0x.
  • Z - rewind video by 10 seconds.
  • X - advance video by 10 seconds.
  • G - toggle between current and user configurable preferred speed.
  • V - show/hide the controller.

You can customize and reassign the default shortcut keys in the extensions settings page, as well as add additional shortcut keys to match your preferences. For example, you can assign multiple different "preferred speed" shortcuts with different values, which will allow you to quickly toggle between your most commonly used speeds. To add a new shortcut, open extension settings and click "Add New".

settings Add New shortcut

Some sites may assign other functionality to one of the assigned shortcut keys — these collisions are inevitable, unfortunately. As a workaround, the extension listens both for lower and upper case values (i.e. you can use Shift-<shortcut>) if there is other functionality assigned to the lowercase key. This is not a perfect solution, as some sites may listen to both, but works most of the time.

License

(MIT License) - Copyright (c) 2014 Ilya Grigorik