English · Español
An ad-free YouTube client for Android phones and tablets, with a touch-first Material 3 interface.
Also for Android TV. Fork of SmartTube by yuliskov.
gestal.es/supertube
- Why SuperTube?
- Features
- SuperTube for Android TV
- Installation
- FAQ
- Privacy
- Building from source
- Architecture
- Contributing
- Legal notice
- Credits and license
SmartTube is an excellent YouTube client, but it is built for TV remotes: a fixed 1080p "10-foot" interface, D-pad focus navigation and Leanback screens. On a phone it looks tiny and is awkward to use with your fingers.
SuperTube keeps SmartTube's engine (no ads, SponsorBlock, DeArrow, accounts, history, playlists, quality and codec selection) and replaces the whole interface with one designed for touch screens, following the Android adaptive design guidelines.
Jetpack Compose and Material 3, with light and dark themes and dynamic colors. Navigation adapts to the window: a bottom bar on phones, and a navigation rail in landscape, on tablets and on foldables. Videos can be shown as a list, a compact list, a grid or horizontal shelves, and the app remembers your choice.
| Gesture or control | Action |
|---|---|
| Double tap left / right | Seek −10 / +10 s (consecutive taps add up) |
| Press and hold | Temporary 2× speed |
| Speed button | 1× → 1.5× → 2×; long press for the full list |
| Swipe up / down | Fullscreen / collapse into the mini player (vertical videos stay in portrait) |
| Swipe in fullscreen | Brightness (left side) and volume (right side) |
The seek bar shows the SponsorBlock segments. Back or a swipe down collapses the video into a mini player that keeps playing while you browse. Leaving the app keeps the video in picture-in-picture, and audio keeps playing with the screen off, with lock screen and notification controls. There is also a sleep timer, and playback pauses when headphones are unplugged.
The ♡ on every video saves it to Favorites or to your own folders. Folders can be searched, renamed, and played in order or shuffled. A home screen widget shows them, and everything can be exported and imported as a JSON file. Favorites are stored only on your device.
Download the audio or the video (up to 1080p H.264, joined on the device without re-encoding) after choosing the
quality and seeing its size. Downloads can be paused and resumed, even after closing the app, and expired links are
refreshed automatically. There is an optional Wi‑Fi only mode, video and audio filters, and an offline player. Files
are saved to Movies/SuperTube and Music/SuperTube.
Note
Without a YouTube account, YouTube only offers single-file streams (usually 360p). Sign in to download up to 1080p.
- Search with local recent searches, voice search and filters.
- Reorderable sections in More, settings as bottom sheets, and TV-only settings hidden.
- Opens YouTube links shared or tapped in other apps. On Android 12+ you have to allow this once in Settings › SuperTube › Open YouTube links, which explains the steps. If the YouTube app is installed, it keeps the links until you turn off its Open supported links setting.
- Updates from the releases of this repository (Settings › SuperTube › Check for updates).
- 20 languages, selectable per app in the Android 13+ system settings.
- Everything from SmartTube: no ads, SponsorBlock, DeArrow, sign-in (subscriptions, history, playlists), 4K/8K, HDR, 60 fps, codec selection, subtitles, live chat and comments.
The TV app (smarttubetv module) keeps SmartTube's remote-friendly Leanback interface and adds:
- Backdrops: the focused video fills the background, Netflix-style, faded so the text stays readable. Without a thumbnail, the home screen shows a SuperTube ambient image.
- Lite mode for slow TVs and TV boxes (Settings › User interface): no background images, card previews, scrolling titles or seek thumbnails, and a smaller video buffer.
- SuperTube name, icons, launcher banner and home screen channel, and updates from this repository (Settings › About › Check for updates).
Download the APK from the latest release or from gestal.es/supertube. On a TV, open gestal.es/supertube/tv in the browser or a downloader app.
| Device | File | Package |
|---|---|---|
| Phone or tablet | SuperTube-<version>.apk |
es.gestal.supertube |
| Android TV (any) | SuperTubeTV_stable_<version>_universal.apk |
es.gestal.supertube.tv |
| Android TV (smaller download) | …_arm64-v8a.apk for recent TVs, …_armeabi-v7a.apk for older ones, …_x86.apk |
es.gestal.supertube.tv |
Requirements: Android 8.0 or newer. Ready for devices with 16 KB memory pages. SuperTube is a separate app and can be installed next to SmartTube.
Updates: once installed, new versions are installed from Check for updates in the app settings. See the changelog for what changed in each version.
Android warns about every app that doesn't come from Google Play. These are the usual messages and what to tap:
| Where | Message | What to do |
|---|---|---|
| Chrome | "This type of file can harm your device" | Tap Download anyway |
| Android | "Your phone isn't allowed to install unknown apps from this source" | Tap Settings, turn on Allow from this source and go back |
| Play Protect | "Unsafe app blocked" or "Unknown app" | Tap More details, then Install anyway (on a TV, the same with the remote) |
| Play Protect | Later turns the app off or removes it | Play Store › your profile › Play Protect › settings › turn off Scan apps with Play Protect, then install again |
Every release is signed with the same certificate and scanned with VirusTotal (the report is in the release notes). To check that an APK is the original, compare its signing certificate:
apksigner verify --print-certs SuperTube-<version>.apk # from the Android SDK build-toolsThe SHA-256 digest must be:
f6:fb:28:69:7f:24:d1:bf:21:ff:12:b8:20:e2:64:ca:4a:94:2f:3e:e8:4c:75:f2:01:6d:eb:3c:e6:07:70:41
(apksigner prints it without colons.)
Is it free?
Yes. No ads, no subscriptions and no in-app purchases. The source code is in this repository under the MIT license.
Is it an official YouTube app?
No. SuperTube is an independent project, not affiliated with Google or YouTube. It is built on SmartTube, an open-source client.
Why isn't it on Google Play?
Google Play doesn't accept apps like this one, so it is published as an APK in the GitHub releases and on the website, with the signing certificate listed above.
Do I need an account?
No. Sign in only if you want your subscriptions, history and playlists, or downloads above 360p. The session is stored on your device.
Does it work with Chromecast or Android Auto?
No. SuperTube doesn't include Google Play Services, which those features need.
Is there an iPhone version?
No. SuperTube is for Android 8.0 or newer, on phones, tablets and Android TV.
Can I use the phone APK on a TV, or the other way round?
It installs, but the phone APK isn't made for a remote, and the TV one isn't made for touch screens.
More answers on the website FAQ.
SuperTube doesn't collect any personal data for the developer: no SuperTube accounts, no analytics, no advertising and no crash reports, and no server of its own. Settings, favorites, recent searches, downloads and the optional Google session stay on your device. The app connects directly to YouTube/Google, SponsorBlock, DeArrow, Return YouTube Dislike and GitHub (update check) to work.
Read the full privacy policy, also published at gestal.es/supertube/privacy.
Requirements: JDK 17 (Gradle 7.5 runs on JDK 11–17), the Android SDK, and the git submodules.
git clone --recurse-submodules https://github.com/jgestal/SuperTube.git
cd SuperTube
# Phone and tablet app → supertube/build/outputs/apk/stbeta/debug/
JAVA_HOME=/path/to/jdk-17 ./gradlew :supertube:assembleStbetaDebug
# Android TV app → smarttubetv/build/outputs/apk/ststable/debug/
JAVA_HOME=/path/to/jdk-17 ./gradlew :smarttubetv:assembleStstableDebugIf you cloned without --recurse-submodules, run git submodule update --init --recursive.
./gradlew :supertube:testStbetaDebugUnitTest :supertube:lintStbetaDebug # unit tests and lint
supertube/tools/rotation_e2e.sh path/to/SuperTube.apk # fullscreen and rotation, on an emulatorEvery push to main builds the APKs on GitHub Actions (lint, build and VirusTotal scan); the nightly APKs are available
as workflow artifacts.
For signed builds, create supertube/keystore.properties (phone app) and keystore.properties in the repository root
(TV app), both with storeFile, storePassword, keyAlias and keyPassword. Then run
./gradlew :supertube:assembleStbetaRelease.
To publish a version, set the same versionName in both apps, add a dated section to the changelog and
run tools/release/release.sh. It runs the tests, builds and checks both signed apps, writes the TV update manifest,
creates the GitHub release with every APK and regenerates the website. --dry-run stops after the build.
The signed APKs stay in dist/ (not in git), and the website hosts the newest ones in landing/apk/. After every
release, upload landing/ and rename _htaccess to .htaccess on the server (see
landing/server/ for Apache and nginx).
The website (landing/, 6 languages) and the social network images (promo/) are generated with:
python3 tools/landing/gen_landing.py
python3 tools/landing/promo.pySuperTube reuses SmartTube's MVP architecture: every presenter in the common module talks to a View interface
(BrowseView, PlaybackView, SearchView, AppDialogView…). The TV app implements those views with Leanback
fragments; SuperTube implements them with Compose activities, so the business logic is shared unchanged.
| Module | Description |
|---|---|
supertube |
The mobile app: Compose UI, playback service, favorites, downloads, widget, updater |
common |
SmartTube business logic: presenters, player engine (ExoPlayer), settings |
smarttubetv |
The Android TV app (Leanback UI, backdrops, lite mode); module name kept to merge upstream changes |
MediaServiceCore, SharedModules |
SmartTube submodules (YouTube API, utilities) |
landing, promo, tools |
Website, promotional images, and release and generator scripts |
Notable mobile-only pieces in supertube/src/main/java/.../mobile/:
| Path | Purpose |
|---|---|
ui/playback/ |
Player screen, controls, gestures and mini player |
playback/ |
Media session, notification and mediaPlayback foreground service |
ui/feed/ |
Feed layouts shared by every screen |
download/ |
Resumable downloads, track joining and Wi‑Fi only mode |
prefs/, widget/, update/ |
Favorites and settings, home screen widget, updater |
- Bugs and ideas: open an issue with the bug report or feature request template. Check the FAQ and the existing issues first, and include the app version, the device and the Android version.
- Pull requests: keep them focused on one change, and run the unit tests and lint before opening them. Problems in the YouTube engine (videos that don't load, sign-in) usually belong upstream in SmartTube or MediaServiceCore.
- Translations: every new string needs to be added to all 20
strings.xmlfiles.
YouTube's Terms of Service don't allow third-party clients or ad blocking. Downloading content may infringe copyright unless you have the rights to it or your local law allows it. The download feature is meant for personal use of content you are allowed to save, such as the Creative Commons films by the Blender Foundation shown in the screenshots. Do not redistribute copyrighted content. How you use the app is your decision and your responsibility.
SuperTube is not affiliated with, endorsed by or connected to YouTube, Google or the SmartTube project. YouTube, Android and Google TV are trademarks of Google LLC.
SuperTube is based on SmartTube by yuliskov and its modules MediaServiceCore and SharedModules, released under the MIT License. All the credit for the YouTube engine and the original features goes to them.
SuperTube is released under the MIT License © 2026 Juan Gestal. ExoPlayer (exoplayer-amzn-2.10.6) is
licensed under Apache 2.0. The YouTube engine in MediaServiceCore uses
Java Regex by Florian Ingerl, licensed under GPL 2.0;
its source is available at that link. Screenshots show Creative Commons films by the Blender Foundation, without a
signed-in account.
Contact: juan@gestal.es















