.github | ||
ci | ||
manifest | ||
maze-utils@6c30e09931 | ||
oss-attribution | ||
public | ||
src | ||
test | ||
webpack | ||
.editorconfig | ||
.eslintrc.json | ||
.gitignore | ||
.gitmodules | ||
config.json.example | ||
CONTRIBUTING.md | ||
crowdin.yml | ||
jest.config.js | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig-production.json | ||
tsconfig.json |
Logo by @munadikieh
SponsorBlock
Download: Chrome/Chromium | Firefox | Android | Edge | Safari for MacOS and iOS | Website | Stats
3rd-Party Ports: MPV | Kodi | Chromecast | iOS
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.
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.
- 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
-
Copy the file
config.json.example
toconfig.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.
- You will need to repeat this step in the future if you get build errors related to
-
Run
npm install
in the repository to install dependencies. -
Run
npm run build:dev
(for Chrome) ornpm 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) ornpm run build:firefox
(for Firefox) to generate a production build.
- You can also run
-
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:
- Gregor Cresnar from www.flaticon.com and are licensed by CC 3.0 BY
- Freepik from www.flaticon.com and are licensed by CC 3.0 BY
- Alexander Kahlkopf from iconmonstr.com and are licensed by iconmonstr License
License
This project is licensed under GNU LGPL v3 or any later version