A lightweight, fully anonymous YouTube client for Android — built with Kotlin & NewPipeExtractor.
No Google account. No API keys. No tracking. No live streams.
Download • Features • Screenshots • Getting Started • Tech Stack • Contributing
- About
- Features
- Screenshots
- Tech Stack
- Project Structure
- Download
- Getting Started
- Continuous Integration
- Privacy
- Roadmap
- Troubleshooting
- FAQ
- Contributing
- Disclaimer
- License
- Credits & Acknowledgements
- Contact
SparkTube is a lightweight YouTube client for Android, written in Kotlin and powered by NewPipeExtractor — the same extraction library behind the NewPipe project.
It is designed to be fully anonymous: there is no Google account login, no API key requirement, and no analytics or tracking of any kind. On first launch, SparkTube asks for your country / region and then tailors trending video suggestions to that region.
SparkTube also intentionally never shows live streams — not in the home feed, not in search results, and not in the player — keeping the experience focused purely on on-demand videos.
| Feature | Description | |
|---|---|---|
| 🌍 | Region selection | Choose your country/region on first launch via a searchable list; change it any time later |
| 🧭 | Floating bottom navigation | Clean, modern floating bar with Home / Music / Library / Menu |
| 🏠 | Home feed | Trending videos for your selected region |
| 🎵 | Music tab | Trending music plus genre chips — Pop, Hip-Hop, Bollywood, Bangla, Rock, EDM, Lofi and more |
| 🔍 | Video search | Fast search with live streams always filtered out |
| Built-in player | Powered by Media3 / ExoPlayer with PlayerView |
|
| 🕘 | Watch history | Stored locally on your device |
| ⭐ | Favorites | Save videos locally — nothing leaves your phone |
| 🌙 | Dark Material 3 UI | Modern dark theme built on Material Design 3 |
| 🔒 | Anonymous by design | No account, no API keys, no tracking |
| 🚫 | No live streams | Filtered out of the feed, search, and player |
| Layer | Technology |
|---|---|
| Language | Kotlin with Coroutines |
| Extraction | NewPipeExtractor v0.26.5 (via JitPack) |
| Networking | OkHttp (NewPipeExtractor Downloader implementation) |
| Playback | Media3 ExoPlayer + PlayerView |
| Image loading | Coil |
| UI | ViewBinding, Material Design 3 (dark theme) |
| Build system | Gradle (Kotlin DSL) |
| CI | GitHub Actions |
SparkTube/
├── .github/
│ └── workflows/ # CI pipeline — builds a debug APK on every push
├── app/ # Android application module (Kotlin source, resources, manifest)
├── gradle/
│ └── wrapper/ # Gradle wrapper files
├── .gitattributes
├── .gitignore
├── build.gradle.kts # Root build configuration
├── settings.gradle.kts # Project & module settings
├── gradle.properties # Gradle / Android build properties
├── gradlew # Gradle wrapper (Unix)
├── gradlew.bat # Gradle wrapper (Windows)
└── README.md
Get the latest pre-built APK straight from the Releases page — no build required.
Installation steps
- Open the latest release.
- Under Assets, download the
.apkfile. - On your Android device, allow Install unknown apps for your browser or file manager.
- Open the downloaded APK and tap Install.
| Requirement | Version |
|---|---|
| Android Studio | Latest stable release (recommended) |
| JDK | 17 |
| Android SDK | Installed via Android Studio's SDK Manager |
| Git | Any recent version |
# 1. Clone the repository
git clone https://github.com/devfahim00/SparkTube.git
cd SparkTube
# 2. Build a debug APK (Linux / macOS)
./gradlew assembleDebug
# ...or on Windows
gradlew.bat assembleDebugThe generated APK will be located at:
app/build/outputs/apk/debug/
Using Android Studio
- Open Android Studio → File → Open and select the
SparkTubefolder. - Wait for the Gradle sync to complete (make sure the Gradle JDK is set to 17).
- Connect a device or start an emulator.
- Press Run
▶️ .
SparkTube is built with privacy as a core principle:
- ✅ No Google account required or supported
- ✅ No API keys — data is fetched through NewPipeExtractor
- ✅ No analytics or tracking libraries
- ✅ Local-only storage — watch history and favorites never leave your device
- ✅ Region is just a preference — used only to tailor trending results
- ✅ On-device crash logs — if SparkTube crashes, a plain-text report is saved to the
SparkTubefolder on your device (no Firebase, nothing is uploaded anywhere). View, share, or delete them anytime from Settings → Crash logs
Ideas under consideration — feel free to open an issue to discuss or vote on them.
- Playlists support
- Subscriptions (local, account-free)
- Video quality & playback speed controls
- Picture-in-Picture mode
- Background audio playback
- Light theme / dynamic color
- Localization (including Bangla 🇧🇩)
- Release APKs with signed builds
Gradle sync fails or dependencies can't be resolved
NewPipeExtractor is fetched from JitPack. Make sure the JitPack repository is available in your Gradle configuration and that you have a working internet connection. Try File → Invalidate Caches / Restart in Android Studio.
Build error related to Java version
SparkTube requires JDK 17. In Android Studio go to Settings → Build, Execution, Deployment → Build Tools → Gradle and set Gradle JDK to 17.
Videos fail to load or search returns nothing
Extraction can break when YouTube changes its internals. Check whether a newer NewPipeExtractor release is available, update the dependency version, and rebuild. Also confirm that your device has internet access.
Do I need a Google account or an API key?
No. SparkTube is completely anonymous and uses NewPipeExtractor instead of the official YouTube API.
Why don't I see any live streams?
This is intentional. Live streams are filtered out of the home feed, search results, and the player.
Can I change my region after the first launch?
Yes. The region can be changed later from within the app.
Where is my history and favorites data stored?
Only on your device. Nothing is uploaded or synced anywhere.
Is SparkTube affiliated with YouTube, Google, or NewPipe?
No. SparkTube is an independent project. See the Disclaimer.
Contributions, issues, and feature requests are welcome!
- Fork the repository
- Create your feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m "feat: add amazing feature" - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
Please keep code style consistent with the existing Kotlin codebase, and make sure
./gradlew assembleDebug passes before submitting.
Found a bug? Open an issue with steps to reproduce, your device model, and Android version.
This project is for educational purposes only. SparkTube is not affiliated with, endorsed by, or connected to YouTube or Google in any way. All trademarks and brand names belong to their respective owners. Please respect the YouTube Terms of Service when using this software. The developer is not responsible for any misuse of this project.
Distributed under the GPLv3. See the LICENSE file for more information.
- NewPipeExtractor and the NewPipe community — for the extraction library and inspiration
- Media3 / ExoPlayer — playback engine
- OkHttp — HTTP client
- Coil — image loading
- Material Components — design system
- Shields.io — README badges
Fahim — Developer
Project Link: https://github.com/devfahim00/SparkTube
If you like SparkTube, please consider giving it a ⭐ — it really helps!
Made with ❤️ in Bangladesh 🇧🇩






