Translations
June 13, 2025 ยท View on GitHub
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.
Translations
https://crowdin.com/project/sponsorblock
Building
Building locally
- You must have Node.js 22 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.exampletoconfig.jsonand 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
CompileConfigorproperty does not exist on type ConfigClass. This can happen for example when a new category is added.
- Run
npm ciin 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. You may need to edit package.json and add the parameters directly there.