Logo
Logo by @munadikieh

SponsorLock

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

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

Badge Badge Badge Badge Badge

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. It also supports Invidio.us. **Translate:** [![Crowdin](https://badges.crowdin.net/sponsorblock/localized.svg)](https://crowdin.com/project/sponsorblock) # Important Links See the [Wiki](https://github.com/ajayyy/SponsorBlock/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](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). # API You can read the API docs [here](https://wiki.sponsor.ajay.app/index.php/API_Docs). # Building You must have [Node.js 16](https://nodejs.org/) and npm installed. 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](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). 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 `. See the [Firefox documentation](https://extensionworkshop.com/documentation/develop/developing-extensions-for-firefox-for-android/#debug-your-extension) for more information. # Credit 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. Originally forked from [YTSponsorSkip](https://github.com/NDevTK/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