Built on a fork of MediaServiceCore, the YouTube engine used by SmartTube, and inspired by NewTube. Our thanks to the maintainers and contributors of both projects for the work, code, and ideas that make Litube possible.
Browse videos and Shorts, follow your favorite channels, and organize your playlists in an Android interface built with Jetpack Compose. Watch videos, listen in the background, or save your favorites for offline playback.
Get APKs and release notes from GitHub Releases, or build the app from source.
Requirements: Android 7.0 / API 24 or later and an up-to-date Android System WebView. Picture-in-picture requires Android 8.0 / API 26 or later and a compatible device.
| Release | Milestone |
|---|---|
v12025-02 |
The start of our journey A lightweight WebView client with ad blocking, background playback and downloads. |
v22026-01 |
Playback and downloads Added native Media3 player, NewPipe-based stream extraction, picture-in-picture, and a download manager while keeping YouTube's web interface. |
v32026-10 |
A Kotlin rewrite Rebuilt the app with Kotlin and Jetpack Compose, reworking player and downloader while keeping WebView-based browsing. |
v4.0.02026-11 |
Native browsing Replaced WebView browsing with native Compose screens and MediaServiceCore, bringing anonymous and signed-in accounts together with the Media3 player and download system. |
Use JDK 21, Android SDK Platform 36, and Build Tools 36.0.0 to match the CI environment. The repository includes a Gradle 8.11.1 wrapper.
Clone the v4 branch:
git clone --branch v4 https://github.com/HydeYYHH/litube.git
cd litube
Gradle downloads MediaServiceCore v1.0.0 from JitPack using the version pinned in gradle/libs.versions.toml.
Set ANDROID_HOME to your Android SDK directory, or set sdk.dir in an untracked local.properties file. Then build the debug APK:
./gradlew :app:assembleDebug
On Windows, replace ./gradlew with .\gradlew.bat in these commands.
The debug APK is saved to app/build/outputs/apk/debug/app-debug.apk. Debug builds use the application ID com.hhst.litube.debug; release builds use com.hhst.litube.
To build the release APK, run ./gradlew :app:assembleRelease. The unsigned APK is saved to app/build/outputs/apk/release/app-release-unsigned.apk; sign it with your release key before distribution.
./gradlew :app:testDebugUnitTest :app:lintDebug
Build the instrumented test APK:
./gradlew :app:assembleDebugAndroidTest
Instrumented tests use local fixtures by default. To run live-service read checks, pass `network=1` as an instrumentation runner argument. See [CONTRIBUTING.md](https://github.com/HydeYYHH/Litube/blob/HEAD/CONTRIBUTING.md) and the [Android workflow](https://github.com/HydeYYHH/Litube/blob/HEAD/.github/workflows/android.yml) for device testing and release verification, including R8 checks.
Bug reports, translations, and focused pull requests are welcome. Read CONTRIBUTING.md for the project structure, coding conventions, and validation steps.
When reporting a bug, include your app version, device model, Android version, steps to reproduce the issue, and what you expected to happen. Describe what happened instead and attach a diagnostic archive if available.
Built on a fork of MediaServiceCore, the YouTube engine used by SmartTube, and inspired by NewTube. Our thanks to the maintainers and contributors of both projects for the work, code, and ideas that make Litube possible.
Parts of the Cast implementation are adapted from NewTube, with the original license and attribution retained. Litube also builds on AndroidX Media3 and the wider open-source Android ecosystem, with support for SponsorBlock and DeArrow.
Litube · Licensed under the GNU GPL v3.0
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|