- Kotlin 100%
Sponsor Skip
SponsorBlock for native android
Follow on X Telegram Channel Email Support
Table of Contents
| Section | Description |
|---|---|
| Features | What the app can do |
| How It Works | The technical workflow |
| Where to Get It (Download) | Download links for the latest stable APK |
| Build from Source | Prerequisites and compilation instructions |
| Contributions | Guidelines for contributing to the repository |
| Bug Reports & Feature Suggestions | How to report issues or request new features |
| Under the Hood | Tech stack and core architecture |
| Attributions & Credits | Acknowledgments of third-party tools and creators |
| Privacy Policy | Link to the complete Privacy Policy |
| Disclaimer | Terms of service, liability, and disclosures |
| License | GNU General Public License v3.0 details |
Screenshots
Home screen Settings Screen Permissions ScreenFeatures
- Stock YouTube Support: Works directly with the official, unmodded YouTube app. No root access, patching, or third-party clients required.
- Multi-app support: Other than official youtube app, you can select other apps to implement Sponsor Skip for those apps too.
- Granular Segment Control: Fully customize your viewing experience. Choose to automatically skip or ignore any of the standard SponsorBlock categories:
- Sponsors
- Unpaid / Self Promotion
- Interaction Reminder
- Intermission / Intro Animation
- Endcards / Credits
- Preview / Recap
- Hook / Greetings
- Tangent / Jokes
- Music: Non-Music Section
- Time Saved Tracking: Keep a count of exactly how many segments you have skipped and the total time you have saved. You can reset the count by tapping on it.
- Modern & Lightweight UI: Built with a clean, Material Design aesthetic with monet themeing.
- Privacy Respecting: It runs locally on your device and does not communicate with unnecessary third parties. No data is collected by developer. For more info refer to Privacy Policy
How it works
Sponsor Skip uses a clever workaround relying on Android's native media APIs.
- Detection: Using the
Notification Listener Service, the app silently monitors your system's active media sessions. When it detects that the official YouTube app or other apps selected by user is playing a video, it securely reads the media metadata to identify the video. - Video ID: Since
Notification Listener Servicedoes not provide video id, the app makes a request toyoutube.comto get the video id. - Fetching Data: The app takes that video ID and pings the crowd-sourced SponsorBlock API to download the exact timestamps of any known segments.
- Execution: As you watch the video, Sponsor Skip tracks the playback progress. The exact millisecond the video enters a blocked segment, the app seamlessly skips the segment.
For more technical details refer Under the Hood
Where to Get It
You can download the latest compiled APK directly from the following sources:
| Codeberg | Obtainium |
|---|---|
| Download from Codeberg Releases | Download from Obtainium |
Build from Source
If you prefer to compile the app yourself, you can easily build it from the source code using the included Gradle wrapper.
Prerequisites:
- Git
- JDK 17 (or higher)
- Android SDK (Command Line Tools)
- The
ANDROID_HOMEenvironment variable must be set, pointing to your SDK path. - You must have accepted the SDK licenses (e.g., running
yes | sdkmanager --licenses).
(Note: You can even build this directly on an Android device using Termux, just like the developer does!)
git clone https://codeberg.org/jaival/Sponsor-Skip.git
cd Sponsor-Skip
./gradlew assembleDebug
Contributions
Contributions from the open-source community are always welcome!
- Fork the repository.
- Create a new branch for your feature (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'feat: add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request!
Bug Reports & Feature Suggestions
Encountered a bug or have a brilliant idea to make Sponsor Skip even better?
- Found a bug?
Open a Bug Report using the provided template. Please include necessary and correct details so it can be squashed quickly!
- Have an idea?
Open a Feature Request using the provided template and describe how it would improve the app.
Got any questions?
Feel free to open an Issue
You can also contact me directly via details given at the top, though Codeberg Issues is preferred.
Under the hood (for Developers)
Tech Stack
Kotlin Android Coroutines Material Design Gradle SponsorBlock API
Core Architecture & APIs
Sponsor Skip is built entirely in Kotlin and leverages modern Android development practices to interact seamlessly with external applications without requiring root or modifications.
- Media Session Interception: The app utilizes the
NotificationListenerServiceAPI. Instead of looking at notification text, it binds to the active media session created by the official YouTube app or other apps selected by the user. This allows Sponsor Skip to securely read the Video Title from the media metadata and track the current playback position in milliseconds. - Title-to-ID Resolution (HTML Scraping): Because Android's media session does not expose the raw video URL, the app must resolve the Title into an ID manually. It does this by executing a silent, unauthenticated background search:
- The app URL-encodes the title and fires a native
OkHttpGET request tohttps://www.youtube.com/results?search_query=[TITLE]. - To prevent YouTube from blocking the request, the app spoofs a standard desktop Chrome
User-Agent. - The app downloads the raw HTML of the search page and runs a Regular Expression (
/watch\?v=([a-zA-Z0-9_-]{11})) to instantly scrape the 11-character Video ID of the top result.
- The app URL-encodes the title and fires a native
- SponsorBlock API: Once a video ID is intercepted, the app makes an asynchronous network request to the public SponsorBlock API to retrieve the start and end timestamps for all community-submitted segments.
- MediaController Transport Controls: When the player's current position enters a blocked segment, Sponsor Skip uses
MediaController.TransportControls.seekTo()to command the Android OS to fast-forward the YouTube player to the end of the segment. - Asynchronous Execution: All network calls, background polling, and update checks are handled cleanly via Kotlin Coroutines (
lifecycleScope.launch) to ensure the main UI thread is never blocked.
Attributions & Credits
This project stands on the shoulders of giants. A massive thank you to the developers, projects, and communities that make Sponsor Skip possible:
1. The Core Engine
- SponsorBlock: Created by Ajay Ramachandran (@ajayyy) and the incredible SponsorBlock community. This app acts as a specialized Android client for their public API. Without their massive, crowd-sourced database of video timestamps, Sponsor Skip would not exist.
2. Third-Party Libraries
- AboutLibraries: By Mike Penz. This fantastic library powers the in-app "Credits" screen, elegantly parsing and displaying all the open-source licenses for the Android components used in this project.
- Kotlin & Android Jetpack: By JetBrains and Google. These provide the robust framework, UI components, and background coroutines that allow the app to run efficiently.
3. Assets & Tools
- Material Design Icons: By Google. All the internal UI iconography (the Settings gear, Feature Request flask, Contact email, etc.) are sourced from the official Material Design vector library.
4. Networking & Infrastructure
- OkHttp & Gson: (By Square and Google). Essential libraries utilized for handling the asynchronous network requests and JSON parsing required to communicate with the SponsorBlock API.
5. Sameera
- Thank you for helping out with app documentation and guidance related to publishing 🙏❤️.
Privacy Policy
Read complete Privacy Policy (human-readable) at Privacy Policy.
The Privacy Policy was last updated on 25th May, 2026.
Disclaimer
Third-Party Affiliation
Sponsor Skip is an independent, open-source project. It is not affiliated with, endorsed by, or in any way officially connected to YouTube, Google LLC, or the SponsorBlock project. All product and company names are trademarksTM or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
Liability and Warranty
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
User Responsibility & Platform ToS
This application acts as a neutral, local automation tool. By utilizing Sponsor Skip, you acknowledge that you are solely responsible for ensuring your use of the software complies with the Terms of Service of any third-party platforms accessed (including YouTube and SponsorBlock). The developer assumes no liability for any account restrictions, IP bans, or ToS violations incurred by the user.
AI Disclaimer
This project— including the codebase, documentation was developed with the assistance of AI. (P.s. I am new to this, apologies!)
License
Sponsor Skip is licensed under the GNU General Public License v3.0.
Copyright © 2026 Jaival
Made with ❤️ by Jaival