nerushort
NeruShort is a Flutter mobile application that downloads videos/photos from multiple platforms (YouTube, TikTok, Instagram, Reddit) with advanced features like watermark removal, HD quality downloads, and video editing capabilities for creating short-form content.
NeruShort - Video Downloader & Editor
NeruShort is a Flutter mobile application that downloads videos/photos from multiple platforms (YouTube, TikTok, Instagram, Reddit) with advanced features like watermark removal, HD quality downloads, and video editing capabilities for creating short-form content.
#π± Features
##Core Features
- Multi-Platform Support: YouTube, TikTok, Instagram, Reddit
- HD Quality Downloads: Up to 1080p video quality
- Watermark Removal: Clean videos without platform watermarks (Premium)
- Video Editing: Trim videos, add custom watermarks
- Background Downloads: Continue downloads in background
- Download Queue: Manage multiple downloads simultaneously
##Premium Features
- Unlimited downloads and edits
- Watermark removal
- HD quality access
- Ad-free experience
- Priority support
#π Architecture
The app follows Clean Architecture principles with clear separation of concerns:
lib/
βββ core/ # Core functionality
β βββ constants/ # App constants and configuration
β βββ errors/ # Error handling system
β βββ network/ # HTTP client and network layer
β βββ utils/ # Utility functions
β βββ localization/ # Localization helpers
βββ data/ # Data layer
β βββ datasources/ # Data sources (API, local storage)
β βββ models/ # Data models with JSON serialization
β βββ repositories/ # Repository implementations
βββ domain/ # Domain layer (Business Logic)
β βββ entities/ # Domain entities
β βββ repositories/ # Repository interfaces
β βββ usecases/ # Business logic use cases
βββ presentation/ # Presentation layer
βββ pages/ # UI screens
βββ widgets/ # Reusable UI components
βββ providers/ # State management (Riverpod)
#π Tech Stack
##Core Technologies
- Framework: Flutter 3.x
- Language: Dart
- State Management: Riverpod 2.x
- Backend: Supabase
- Local Storage: Hive + SharedPreferences
- Architecture: Clean Architecture
##Key Dependencies
flutter_riverpod
- State managementsupabase_flutter
- Backend and authenticationdio
- HTTP clientvideo_player
- Video playbackffmpeg_kit_flutter
- Video processingeasy_localization
- Internationalizationauto_route
- Navigationhive
- Local databasefreezed
- Code generation for immutable classes
#π Getting Started
##Prerequisites
- Flutter SDK 3.8.1 or higher
- Dart SDK
- Android Studio / VS Code
- Git
##Installation
-
Clone the repository
git clone https://github.com/nerustudio/nerushort.git cd nerushort
-
Install dependencies
flutter pub get
-
Run code generation (when implemented in Phase 2)
flutter packages pub run build_runner build
-
Run the app
flutter run
##Testing
# Run all tests
flutter test
# Run analysis
flutter analyze
# Check dependencies
flutter pub deps
#π Development Phases
##β Phase 1: Project Foundation (Completed)
- Flutter project setup with Clean Architecture
- Core domain entities and business logic
- Error handling and validation system
- Network layer and utilities
- Basic UI and localization
- State management with Riverpod
##π Phase 2: Authentication & User Management (Next)
- Supabase integration and configuration
- User authentication (login, register, password reset)
- User profile and preferences management
- Trial usage tracking and premium features
- Local user data caching
##π Phase 3: Core Download Functionality
- Platform integration (YouTube, TikTok, Instagram, Reddit)
- Video extraction and quality selection
- Download queue and progress tracking
- Background download service
- Local storage management
##π Phase 4: Advanced Features
- HD quality downloads
- Watermark removal functionality
- Video editing capabilities
- Premium feature gating
- Ad integration
##π Phase 5: Monetization & UI Polish
- In-app purchases and subscriptions
- Ad system integration
- UI/UX improvements
- Performance optimizations
#π¨ Design Principles
##KISS (Keep It Simple, Stupid)
- Simple, intuitive user interface
- Clear and straightforward user flows
- Minimal cognitive load
- Easy-to-understand code structure
##DRY (Don't Repeat Yourself)
- Reusable components and utilities
- Centralized configuration and constants
- Shared business logic in use cases
- Common error handling patterns
##OOP (Object-Oriented Programming)
- Clear class hierarchies and encapsulation
- Interface-based programming
- Dependency injection for testability
- Proper separation of concerns
#π Localization
Currently supported languages:
- English (en)
- Indonesian (id)
To add new languages:
- Create new JSON file in
assets/localization/
- Add translations for all keys
- Update
supportedLocales
inmain.dart
#π€ Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'feat(scope): add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
##Commit Message Format
Follow the conventional commit format:
<type>(<scope>): <description>
Examples:
feat(download): implement YouTube video extraction
fix(auth): resolve login session persistence issue
docs(readme): add installation instructions
#π License
This project is licensed under the MIT License.
#π Support
- Documentation: Coming soon
- Issues: Report bugs and feature requests
- Email: Contact for support
#β Acknowledgments
- Flutter team for the amazing framework
- Supabase for backend infrastructure
- Contributors and beta testers
- Open source community
Made with β€οΈ by NeruStudio
Download & Edit Videos for Short Content