Immerse in the Sound - A modern Flutter music streaming application powered by YouTube API
π± About
Hydra is a sleek, modern music streaming application built with Flutter that brings the vast YouTube music library directly to your device. With its dark theme aesthetic and intuitive interface, Hydra offers a premium music experience with seamless playback and discovery features across both Android and iOS platforms.
β¨ Features π§ Core Music Experience
YouTube API Integration - Access millions of songs and videos
High-Quality Streaming - Crystal clear audio playback
Advanced Player Controls - Play, pause, skip, shuffle, repeat
Real-time Progress Tracking - Visual progress bars with time indicators
Offline Downloads - Save your favorite tracks for offline listening
π Discovery & Search
Smart Search - Find any song, artist, or album instantly
Curated Categories:
ποΈ Podcasts
π― Made For You (Personalized)
π Charts (Trending)
π New Releases
π΅ Discover
π€ Concerts
π€ User Experience
Secure Authentication - Email/password login with forgot password option
Personal Music Library - Organize playlists, albums, artists
Recently Played - Quick access to your listening history
Social Features - Follow artists and share playlists
Listening Statistics - Track your music habits and top artists
π¨ Design & Interface
Dark Theme - Easy on the eyes with sophisticated aesthetics
Red Accent Colors - Modern UI with vibrant highlights
Responsive Design - Optimized for all mobile devices
Smooth Navigation - Intuitive bottom tab navigation
Material Design - Following Flutter's design principles
π οΈ Tech Stack Framework: Flutter (Dart)
API Integration: YouTube Data API v3
Authentication: Firebase Auth
Database: Firebase Firestore
Audio Playback: just_audio / audioplayers
State Management: Provider / Riverpod / Bloc
HTTP Client: dio / http
Local Storage: shared_preferences / hive
πΈ Screenshots
Login Screen Player Interface Search & Discovery
Login Player Search
User Profile Music Library Browse Categories
Profile Library Browse
π Getting Started Prerequisites
bash
- Flutter SDK (3.0.0 or higher)
- Dart SDK (2.17.0 or higher)
- Android Studio / VS Code with Flutter extension
- Xcode (for iOS development)
- YouTube Data API Key Installation
Clone the repository
bash git clone https://github.com/yourusername/hydra-music-app.git cd hydra-music-app Install Flutter dependencies
bash flutter pub get Configure API Keys
text
YOUTUBE_API_KEY=your_youtube_api_key_here FIREBASE_API_KEY=your_firebase_key_here Run the application
bash
flutter doctor
flutter run
flutter build apk
flutter build ios π¦ Dependencies Core Dependencies
text dependencies: flutter: sdk: flutter
cupertino_icons: ^1.0.2 material_color_generator: ^1.0.5
provider: ^6.0.3
dio: ^5.0.0 http: ^0.13.5
just_audio: ^0.9.30 audio_service: ^0.18.6
firebase_core: ^2.4.0 firebase_auth: ^4.2.0 cloud_firestore: ^4.3.0
shared_preferences: ^2.0.15 hive: ^2.2.3
cached_network_image: ^3.2.3 shimmer: ^2.0.0 flutter_launcher_icons: ^0.11.0 Dev Dependencies
text dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 build_runner: ^2.3.3 π§ YouTube API Integration This Flutter app utilizes the YouTube Data API v3 for:
π Search Functionality - Find music, videos, and playlists
πΊ Video Streaming - Direct playback of YouTube content
π Metadata Retrieval - Song titles, artists, thumbnails, duration
π΅ Playlist Management - Create and manage custom playlists
π Trending Content - Access popular and trending music
API Implementation Example:
dart class YouTubeService { static const String baseUrl = 'https://www.googleapis.com/youtube/v3'; static const String apiKey = 'YOUR_API_KEY';
Future<List
return (response.data['items'] as List)
.map((item) => Video.fromJson(item))
.toList();
} } ποΈ Project Structure text lib/ βββ main.dart # App entry point βββ app.dart # App configuration βββ core/ # Core functionality β βββ constants/ # App constants β βββ themes/ # App themes β βββ utils/ # Utility functions βββ features/ # Feature-based modules β βββ auth/ # Authentication β βββ music/ # Music playback β βββ search/ # Search functionality β βββ profile/ # User profile βββ models/ # Data models βββ services/ # API services βββ widgets/ # Reusable widgets βββ screens/ # App screens π± Platform Support β Android (API 21+)
β iOS (iOS 11.0+)
π Web (Flutter Web Support)
π Desktop (Windows, macOS, Linux)
π§ Configuration Firebase Setup
Create a Firebase project
Add Android/iOS apps to your project
Download google-services.json (Android) and GoogleService-Info.plist (iOS)
Place files in respective platform folders
Environment Variables
dart // lib/core/constants/api_constants.dart class ApiConstants { static const String youtubeApiKey = 'your_youtube_data_api_key'; static const String youtubeBaseUrl = 'https://www.googleapis.com/youtube/v3'; } API Rate Limits
YouTube API: 10,000 requests per day (default)
Consider implementing caching with dio_cache_interceptor
π§ͺ Testing bash
flutter test
flutter drive --target=test_driver/app.dart
flutter test --coverage genhtml coverage/lcov.info -o coverage/html π Build & Release Android
bash
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
flutter build apk --release
flutter build appbundle --release iOS
bash
flutter build ios --release
flutter build ipa --release π€ Contributing We welcome contributions! Please see our Contributing Guidelines for details.
Fork the repository
Create your feature branch (git checkout -b feature/AmazingFeature)
Commit your changes (git commit -m 'Add some AmazingFeature')
Push to the branch (git push origin feature/AmazingFeature)
Open a Pull Request
Code Style
Follow Effective Dart guidelines
Use flutter analyze to check for issues
Format code with dart format
π License This project is licensed under the MIT License - see the LICENSE file for details.
π Links App Store: Coming Soon
Google Play: Coming Soon
π Support π§ Email: support@sengargopal310@gmail.com
π Issues: GitHub Issues
π¬ Discussions: GitHub Discussions
π± Flutter Community: Flutter Discord
π Acknowledgments Flutter team for the amazing cross-platform framework
YouTube Data API for providing access to the vast music library
Firebase for backend services
Flutter community for excellent packages and support
All contributors and testers who helped improve this application
β Star this repository if you found it helpful! β
Flutter Dart Firebase