If you make any contributions to SponsorBlock after this file was created, you are agreeing that any code you have contributed will be licensed under GPL-3.0 and agree to allow distribution on app stores as outlined in LICENSE-APPSTORE.
https://crowdin.com/project/sponsorblock
- You must have Node.js 16 or later and npm installed. Works best on Linux
- 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.
- Comments are invalid in JSON, make sure they are all removed.
- You will need to repeat this step in the future if you get build errors related to
CompileConfig
orproperty does not exist on type ConfigClass
. This can happen for example when a new category is added.
- Run
npm ci
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.
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. You may need to edit package.json and add the parameters directly there.