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.
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.
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.
This 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.
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.
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
Built and maintained by Ajay Ramachandran
Logo by @munadikieh
The awesome Invidious API was used previously.