SponsorLock is an open-source crowdsourced browser extension to isolate sponsor segments in YouTube videos. Users submit when a sponsor happens from the extension, and the extension only shows you sponsor segments.
To make sure that this project doesn't die, I have made the database publicly downloadable at https://sponsor.ajay.app/database ([License](https://github.com/ajayyy/SponsorBlock/wiki/Database-and-API-License)). If you are planning on using the database in another project, please read the [API Docs](https://wiki.sponsor.ajay.app/index.php/API_Docs) page for more information.
The dataset and API are now being used in some [ports](https://github.com/ajayyy/SponsorBlock/wiki/3rd-Party-Ports) as well as a [neural network](https://github.com/andrewzlee/NeuralBlock).
- 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.
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.
4. The built extension is now in `dist/`. You can load this folder directly in Chrome as an [unpacked extension](https://developer.chrome.com/docs/extensions/mv3/getstarted/#manifest), or convert it to a zip file to load it as a [temporary extension](https://developer.mozilla.org/en-US/docs/Tools/about:debugging#loading_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`](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/#commands).
For Firefox for Android, use `npm run dev:firefox-android -- --adb-device <ip-address of the device>`. See the [Firefox documentation](https://extensionworkshop.com/documentation/develop/developing-extensions-for-firefox-for-android/#debug-your-extension) for more information.
The awesome [Invidious API](https://docs.invidious.io/API.md) was previously used, and the server is now using [NewLeaf](https://git.sr.ht/~cadence/NewLeaf) as a to get video info from YouTube.
*<ahref="https://www.flaticon.com/authors/gregor-cresnar"title="Gregor Cresnar">Gregor Cresnar</a> from <ahref="https://www.flaticon.com/"title="Flaticon">www.flaticon.com</a> and are licensed by <ahref="https://creativecommons.org/licenses/by/3.0/"title="Creative Commons BY 3.0"target="_blank">CC 3.0 BY</a>
*<ahref="https://www.flaticon.com/authors/freepik"title="Freepik">Freepik</a> from <ahref="https://www.flaticon.com/"title="Flaticon">www.flaticon.com</a> and are licensed by <ahref="https://creativecommons.org/licenses/by/3.0/"title="Creative Commons BY 3.0"target="_blank">CC 3.0 BY</a>
*<ahref="https://iconmonstr.com/about/#creator">Alexander Kahlkopf</a> from <ahref="https://iconmonstr.com/">iconmonstr.com</a> and are licensed by <ahref="https://iconmonstr.com/license/">iconmonstr License</a>