An Android application that allows users to download videos and audio from YouTube. Built with Java and the Android SDK.
- Download YouTube videos in various qualities
- Extract audio from videos
- Support for both progressive and adaptive streams
- Real-time download progress tracking
- Video format conversion support
- Custom video quality selection
- Thumbnail preview
- Video metadata display (title, length, etc.)
The app is built using:
- JavaTube https://github.com/felipeucelli/JavaTube
- Java
- Android SDK (minimum SDK version 29)
- FFmpeg for media processing
Key components:
Youtube.java- Core YouTube interaction logicStream.java- Handles video/audio stream downloadingCipher.java- Manages YouTube signature decryptionRequest.java- Network request handling
The project follows standard Android application architecture:
app/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/projekat/
│ │ │ ├── javatube/ # Core YouTube functionality
│ │ │ ├── MainActivity.java # Entry point
│ │ │ └── DownloadActivity.java # Download handling
│ │ └── res/ # Android resources
└── build.gradle # Project configurationThis app uses the following key libraries:
- AndroidX & Material Design - For modern Android UI components and layouts
- FFmpeg - For processing and converting video/audio files
- Glide - For loading and displaying video thumbnails
- Rhino - For JavaScript processing
The app requires the following permissions to function properly:
- Internet Access - To download videos from YouTube
- Storage Access - To save downloaded videos and audio files to your device
Note: When you first launch the app, you'll be asked to grant these permissions. The app cannot function without them.
- Clone the repository
- Open the project in Android Studio
- Sync Gradle files
- Build and run on your device/emulator
This application is for educational purposes only. Please respect YouTube's terms of service and content creators' rights when using this application.