Jump Cutter
Download:
or from GitHub: Chromium / Gecko (Firefox)
Skips silent parts in videos, in real time.
Can be useful for watching lectures, stream recordings (VODs), webinars, podcasts, and other unedited videos.
Demo:
demo.mp4
Inspired by this video by carykh.
Contribute
🌐 Translate (on Weblate)👨💻 Code. See CONTRIBUTING.md on how to get started. And feel free to contact me.💸 Donate- General feedback and questioning my decisions is appreciated
How it works
Simple (mostly).
Currently there are 2 separate algorithms in place.
The first one we call "the stretching algorithm", and it's in this file. It simply looks at the output audio of a media element, determines its current loudness and, when it's not loud, increases its playbackRate
.
Details, why it's called "stretching"
It's about how we're able to "look ahead" and slow down shortly before a loud part ("Margin before"). Basically we slightly delay the audio from it before outputting it. When we encounter a loud part, we slow down (stretch and pitch-shift) the buffered audio so that it appears to have been played at normal speed, then output it.You can check out the comments in its source code for more details.
The second one is "the cloning algorithm", and it's here. It creates a hidden clone of the target media element and plays it ahead of the original element, looking for silent parts and writing down where they are. When the target element reaches a silent part,
we increase its playbackRate
, or skip (seek) the silent part entirely.
Currently you can enable this algorithm by checking the "Use the experimental algorithm" checkbox.
Build
-
Install base tools:
-
Run
yarn install
-
Fill the
src/_locales
directory with localization files. Skip this step if they're alredy there. Either:-
If you're using
git
:git submodule update --init
-
If you don't want to use
git
, download them from thetranslations
branch and put insrc/_locales
manually.
-
-
-
To build for Gecko (e.g. Firefox):
yarn build:gecko
-
To build for Chromium (e.g. Chrome, Edge)
yarn build:chromium
Bundled files will appear in
./dist-gecko
(or./dist-chromium
). -
For development build, see CONTRIBUTING.md
Then you can install it on the extensions management page of your browser (Chromium, Gecko).
Privacy & security
In short: it's fine.
As with practically every other extension, websites you're visiting may detect that you're using this (or alike) extension, and your settings for the extension, by observing:
- playback rate changes of an element.
- the fact that
createMediaElementSource
has been called for an element. - increased frequency of media chunk requests resulting from increased playback rate. This cannot be mitigated with disabling JavaScript.
- the fact of requesting the same media twice, as a result of using the cloning algotihm.
However I doubt that currently there are services that do specifically this. But there may be.
Other than that, there are no known things concerning this. It doesn't interact with third parties or try to do other creepy stuff.
Donate
-
Monero (XMR):
monero:88yzE5FbDoMVLXUXkbJXVHjNpP5S3xkMaTwBSxmetBDvQMbecMtVCXnQ44W6WRYsPGCPoAYp74ER9aDgBLYDGAAiSt2wu8a?tx_amount=0.050000000000&recipient_name=WofWca%20(https%3A//github.com/WofWca)&tx_description=Donation%20for%20Jump%20Cutter%20extension%20development
-
Bitcoin (BTC):
bitcoin:bc1qdfz74882mlk64pj4ctpdegvxv9r7jgq8xs2qkxpv3gkv5xqygvgs0fyzm9