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
supportedLocalesinmain.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
