Logo
Logo by @munadikieh

SponsorBlock

Download: Chrome/Chromium | Firefox | Android | Edge | Website | Stats

3rd-Party Ports: MPV | Kodi | Safari for MacOS | Chromecast | iOS

Badge Badge Badge Badge Badge

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. **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 It is a simple SQLite database that will hold all the timing data. To make sure that this project doesn't die, I have made the database publicly downloadable at https://sponsor.ajay.app/database.db ([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://github.com/ajayyy/SponsorBlock/wiki/API-Docs) page for more information. The dataset and API are now being used in some [ports](https://github.com/ajayyy/SponsorBlock/wiki/Unofficial-Ports) as well as a [neural network](https://github.com/andrewzlee/NeuralBlock). A [previous project](https://github.com/Sponsoff/sponsorship_remover) attempted to create a neural network to predict when sponsored segments happen. That project is sadly abandoned now, so I have decided to attempt to revive this idea starting from a crowd-sourced system instead. # API You can read the API docs [here](https://github.com/ajayyy/SponsorBlockServer#api-docs). # Building Rename `config.json.example` to `config.json` and adjust configuration as desired. There are also other build scripts available. Install `npm`, then run `npm install` in the repository to install dependencies. Run `npm run build` to generate a Chrome extension. Use `npm run build:firefox` to generate a Firefox extension. The result is in `dist`. This can be loaded as an unpacked extension ## Developing with a clean profile Run `npm run dev` to run the extension using a clean browser profile with hot reloading. Use `npm run dev:firefox` for Firefox. 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. ### Attribution Generation If you contribute and add a dependency, update the attribution file using the following steps: Make sure the attribution generator is installed: `npm i -g oss-attribution-generator` ```bash generate-attribution mv ./oss-attribution/attribution.txt ./public/oss-attribution/attribution.txt ``` # Credit The awesome [Invidious API](https://github.com/omarroth/invidious/wiki/API) was previously used. Originally forked from [YTSponsorSkip](https://github.com/NDevTK/YTSponsorSkip), but zero 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