This Flutter project is a comprehensive video downloader app that leverages several advanced backend packages for video downloading, encryption, decryption, and local storage. The app follows a clean architecture and uses BLoC for state management to ensure maintainability and scalability.
- Video Downloading: Download videos using the
youtube_explode_dartpackage. - Video Encryption: Encrypt downloaded videos using the
encryptpackage. - Video Decryption: Decrypt videos for playback.
- Multithreading: Use Dart Isolate for performing expensive tasks like video encryption and decryption without freezing the app.
- Local Storage: Store video metadata locally using the
Isardatabase. - Video Playback: Play videos using the
Better Playerpackage. - State Management: Manage state efficiently with BLoC.
The project follows the Clean Architecture principles, ensuring a clear separation of concerns. The codebase is divided into layers:
- Presentation: Contains the UI and state management using BLoC.
- Domain: Contains the business logic.
- Data: Handles data retrieval and storage.
- youtube_explode_dart: For downloading videos.
- encrypt: For encrypting and decrypting videos.
- isar: For local storage of video metadata.
- better_player: For video playback.
- flutter_bloc: For state management with BLoC.
- Clone the Repository
git clone https://github.com/Ashif-code-hunter/Downy.git cd Downy - Install Dependencies
flutter pub get
- Install Dependencies
flutter run
- Downloading Videos: Use the app's UI to search and download youtube videos.
- Encrypting Videos: Downloaded videos are encrypted automatically.
- Playing Videos: Play encrypted videos within the app, which decrypts them smoothly.
- Managing Videos: View and manage downloaded videos through the app's interface.




