How it works

When you visit a YouTube video, it will check the database to see if anyone has made any submissions for the video. If so, the segment will automatically get skipped when you reach it.

The notice notification

Once the sponsorship is skipped, you can upvote or downvote this segment and it will be recorded in the database.

Instead of just sending the top reported segment, it will looks for all the overlapping segments. Only one of each group of overlapping segments will be sent to the user.

Pseudo-random distribution

To prevent one submission with a lot of votes never being able to be replaced, I decided to use a weighted random distribution based on the equation on the right.
Square root functionThis formula makes small amount of votes (under 10), matter a lot, and makes the really large votes slowly not matter as much. This makes a newly submitted sponsor time always possible to be sent out to users to get votes. So, most users will get the best submission, but some users will get lesser votes submissions so that they can either be upvoted or downvoted. Submissions with less than -1 votes are ignored entirely.

You can read more about my algorithm here.

Submissions

Anyone can submit segments, either by clicking on the button that is added to the YouTube player or by opening the extensions popup. The button in the YouTube player can be hidden. You click once to indicate the start of a segment, then click again to indicate the end. You can submit as many segments as there are in the video. Make sure to choose the correct category for each segment.

What data is stored?

The bare minimum. Check this list for more information

Previous projects like this

In January 2019, a group of people tried to do a similar thing, but instead of using other people's submissions to skip sponsor segments for everyone, they ran the data through a neural network. Sadly, this project was abandoned.

I don't want something similar to happen to this project, that's why all this code is open-sourced and, most importantly, the database can be downloaded by anyone. The database may even be automatically backed up by archive.org! The database will always be available here. It is a sqlite database and can be opened in any sqlite database reading program. Certain sensitive info is not in this database and is not public such as individual votes (not vote counts) and hashed IP addresses. That information isn't needed by anyone else, only the server.

When was this started

The project was started July 5th 2019 and was first released to the public July 26th 2019.

Contact Info

If you have any suggestions, feel free to tell me.

You can find all my progress updates here: https://sponsor.ajay.app/news

You can contact me by email at dev @ ajay.app if you have any questions.

Feel free to join this Discord: https://discord.gg/QnmVMpU

Or follow on Twitter: https://twitter.com/SponsorBlock

Credit

Built and maintained by Ajay Ramachandran

Thanks to all SponsorBlock contributors and SponsorBlockServer contributors such as NDev, Joe Dowd, Anton Bershanskiy and more.

Logo by @munadikieh

Some icons made by Gregor Cresnar from www.flaticon.com and are licensed by CC 3.0 BY

Some icons made by Freepik from www.flaticon.com and are licensed by CC 3.0 BY

The awesome Invidious API was used previously.