- Currently maintained as a hobby project.
- Maintain the original ViMusic small binary size as much as possible and avoid unnecessary bloat
- Make things asynchronous wherever possible
- Refactor the codebase
- Improve network stability
- Focus on performance while preserving existing features
- Keep the implementation as minimal as possible
- In other words, even if my repository dies, I want to keep it easy for others to fork
because this repository is maintained with these principles in mind, issues that require large or fundamental changes may be closed.
- Play (almost) any song or video from YouTube Music
- Background playback
- Cache audio chunks for offline playback
- Search for songs, albums, artists videos and playlists
- Bookmark artists and albums
- Import playlists
- Fetch, display and edit songs lyrics or synchronized lyrics
- Local playlist management
- Reorder songs in playlist or queue
- Light/Dark/Dynamic theme
- Skip silence
- Sleep timer
- Audio normalization
- Android Auto
- Persistent queue
- Open YouTube/YouTube Music links (
watch,playlist,channel) - ...
- Currently, this version is distributed only on GitHub.
- JDK 17 (OpenJDK)
- Android SDK cmdline-tools (latest)
- Android SDK
- Android SDK platform-tools
- Android SDK build-tools r36.1
sudo pacman -S jdk17-openjdk
yay -S android-sdk-cmdline-tools-latest android-sdk android-sdk-platform-tools android-sdk-build-toolsIf your SDK under /opt/android-sdk is read-only, copy cmdline-tools to a user-writable SDK:
mkdir -p ~/.android-sdk/cmdline-tools/
cp -pr /opt/android-sdk/cmdline-tools/latest ~/.android-sdk/cmdline-tools/Then update the .bashrc environment variables to point to the user-local SDK (see the section above).
Accept licenses and install required packages:
sdkmanager --licenses
sdkmanager "platforms;android-36" "build-tools;34.0.0"export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export ANDROID_SDK_ROOT=$HOME/.android-sdk
export ANDROID_HOME=$HOME/.android-sdk
export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/platform-tools
cp local.properties.example local.propertiesThen edit local.properties to match your SDK path:
sdk.dir=/home/youruser/.android-sdk
make buildThe debug APK will be generated at:
app/build/outputs/apk/debug/app-debug.apk
- YouTube-Internal-Clients: A python script that discovers hidden YouTube API clients. Just a research project.
- NewPipeExtractor: Extractor library used for stream and metadata resolution.
- ionicons: Premium hand-crafted icons built by Ionic, for Ionic apps and web apps everywhere.
App icon based on icon created by Ilham Fitrotul Hayat - Flaticon
This project and its contents are not affiliated with, funded, authorized, endorsed by, or in any way associated with YouTube, Google LLC or any of its affiliates and subsidiaries.
Any trademark, service mark, trade name, or other intellectual property rights used in this project are owned by the respective owners.
If you plan to maintain or release this app yourself, generate your own signing certificate before creating a release build:
keytool -genkeypair -v -keystore vimusic-release.jks -keyalg RSA -keysize 4096 -validity 10000 -alias vimusicFor make release, set the signing properties in ~/.gradle/gradle.properties:
VIMUSIC_KEYSTORE_PASSWORD=your_password
VIMUSIC_KEY_PASSWORD=your_password
VIMUSIC_KEY_ALIAS=vimusic
When updating the app version, bump the version value in gradle.properties.







