Skip YouTube video sponsors (browser extension)
Find a file
2023-06-30 03:01:09 -04:00
.github Upload to release incrementally 2023-05-28 14:55:47 -04:00
ci Update Invidious List (#1776) 2023-06-15 01:46:41 -04:00
manifest bump version 2023-06-22 14:00:21 -04:00
maze-utils@a9c26e6eaa Fix maze utils warnings 2023-06-30 03:01:09 -04:00
oss-attribution update CI to prettify oss-attribution 2023-03-07 21:55:48 -05:00
public update translations 2023-06-21 23:08:54 -04:00
src Move maze utils to a submodule, move tooltip out 2023-06-30 02:46:27 -04:00
test Switch headless mode to new due to chrome update 2023-02-22 00:22:20 -05:00
webpack Move maze utils to a submodule, move tooltip out 2023-06-30 02:46:27 -04:00
.editorconfig Revert dependency changes 2020-08-27 21:18:21 -04:00
.eslintrc.json Fix maze utils warnings 2023-06-30 03:01:09 -04:00
.gitignore Save file on test failure 2022-06-18 11:54:52 -04:00
.gitmodules Move maze utils to a submodule, move tooltip out 2023-06-30 02:46:27 -04:00
config.json.example Add notice about dearrow, make dearrow links not appear if dearrow installed 2023-06-21 23:07:09 -04:00
CONTRIBUTING.md Fix typo 2021-04-20 18:56:16 -04:00
crowdin.yml Update Crowdin configuration file 2020-04-14 23:44:15 -04:00
jest.config.js revert module conversion 2022-06-30 21:39:28 -04:00
LICENSE Revert "Add back header" 2021-06-09 20:07:03 -04:00
package-lock.json Fix video mutation listener refresh being called too many times 2023-06-16 13:22:43 -04:00
package.json Fix video mutation listener refresh being called too many times 2023-06-16 13:22:43 -04:00
README.md Update the git clone with submodule command in README 2023-06-26 09:59:00 +02:00
tsconfig-production.json add noFallThrough, inplicitReturn, update packages 2022-10-20 22:13:51 -04:00
tsconfig.json add noFallThrough, inplicitReturn, update packages 2022-10-20 22:13:51 -04:00

Logo
Logo by @munadikieh

SponsorBlock

Download: Chrome/Chromium | Firefox | Android | Edge | Safari for MacOS and iOS | Website | Stats

3rd-Party Ports: MPV | Kodi | Chromecast | iOS

Badge Badge Badge Badge Badge

SponsorBlock is an open-source crowdsourced browser extension to skip sponsor segments in YouTube videos. Users submit when a sponsor happens from the extension, and the extension automatically skips sponsors it knows about. It also supports skipping other categories, such as intros, outros and reminders to subscribe.

It also supports Invidio.us.

Translate: Crowdin

Important Links

See the Wiki for important links.

Server

The backend server code is available here: https://github.com/ajayyy/SponsorBlockServer

To make sure that this project doesn't die, I have made the database publicly downloadable at https://sponsor.ajay.app/database (License). If you are planning on using the database in another project, please read the API Docs page for more information.

The dataset and API are now being used in some ports as well as a neural network.

API

You can read the API docs here.

Building

You must have Node.js 16 and npm installed.

  1. Clone with submodules
git clone --recursive https://github.com/ajayyy/SponsorBlock

Or if you already cloned it, pull submodules with

git submodule update --init --recursive
  1. Copy the file config.json.example to config.json and adjust configuration as desired.

    • You will need to repeat this step in the future if you get build errors related to CompileConfig. This can happen for example when a new category is added.
  2. Run npm install in the repository to install dependencies.

  3. Run npm run build:dev (for Chrome) or npm run build:dev:firefox (for Firefox) to generate a development version of the extension with source maps.

    • You can also run npm run build (for Chrome) or npm run build:firefox (for Firefox) to generate a production build.
  4. The built extension is now in dist/. You can load this folder directly in Chrome as an unpacked extension, or convert it to a zip file to load it as a temporary extension in Firefox.

Developing with a clean profile and hot reloading

Run npm run dev (for Chrome) or npm run dev:firefox (for Firefox) to run the extension using a clean browser profile with hot reloading. This uses web-ext run.

Known chromium bug: Extension is not loaded properly on first start. Visit chrome://extensions/ and reload the extension.

For Firefox for Android, use npm run dev:firefox-android -- --adb-device <ip-address of the device>. See the Firefox documentation for more information.

Credit

The awesome Invidious API was previously used, and the server is now using NewLeaf as a to get video info from YouTube.

Originally forked from YTSponsorSkip, but very little code remains.

Icons made by:

License

This project is licensed under GNU LGPL v3 or any later version