Izzy Music Player is built with a hybrid technology stack combining native macOS technologies with Python-based music service integrations.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ShubhamPP04/Izzy/llms.txt
Use this file to discover all available pages before exploring further.
Frontend technologies
Swift 5.x
The entire frontend is written in Swift, Apple’s modern programming language for iOS and macOS development. Why Swift:- Native macOS performance
- Type safety and memory management
- Modern concurrency with async/await
- Strong integration with Apple frameworks
SwiftUI
All UI is built with SwiftUI, Apple’s declarative UI framework. SwiftUI features used:@StateObjectand@ObservedObjectfor state management@Publishedproperties for reactive updates- Custom view modifiers (liquid glass effect)
- Animations and transitions
- macOS-specific components (NSPanel, NSWindow)
AppKit (Cocoa)
For advanced macOS features not available in SwiftUI:- NSPanel - Floating windows
- NSStatusItem - Menu bar integration
- NSWindow - Window management
- Carbon Events - Global hotkey registration
AVFoundation
Used for audio playback:- AVPlayer - Core audio playback
- AVPlayerItem - Stream URL handling
- AVAudioSession - Audio session management (iOS)
Foundation
Core Swift framework for:URLSession- Network requestsProcess- Python process managementPipe- Inter-process communicationUserDefaults- Settings persistenceFileManager- File system operationsJSONEncoder/JSONDecoder- JSON serialization
Combine
Used for reactive programming:- Publishers and subscribers
- Debounced search queries
- State observation
- Timer-based operations
Backend technologies
Python 3.x
The backend service is written in Python for easy integration with music APIs. Python version: 3.8+ Why Python:- Excellent music API libraries (ytmusicapi, yt-dlp)
- Rapid development and prototyping
- Rich ecosystem for web APIs
- Easy JSON handling
Core Python libraries
ytmusicapi (>= 1.7.0)
Unofficial YouTube Music API client. Capabilities:- Search songs, albums, artists, playlists
- Browse home feed and charts
- Get album/playlist/artist details
- Watch playlists and radio
- Mood and genre playlists
yt-dlp (>= 2023.12.30)
Powerful YouTube video/audio downloader and stream extractor. Capabilities:- Extract direct stream URLs from YouTube
- Support for multiple quality levels
- Format selection (audio-only, video+audio)
- Metadata extraction
requests (>= 2.31.0)
HTTP library for API requests. Usage in Izzy:- JioSaavn API requests (saavn.dev)
- Tidal API integration
- Gemini AI API calls
- Image thumbnail fetching
Built-in Python modules
Standard library modules used:- json - JSON encoding/decoding for IPC
- sys - stdin/stdout communication
- asyncio - Async request handling
- logging - Error logging and debugging
- subprocess - Process management
- os - File system operations
- html - HTML entity decoding
- re - Regular expressions
- base64 - Base64 encoding/decoding
- time - Timing and delays
- traceback - Error reporting
Music service APIs
YouTube Music
Integration: ytmusicapi + yt-dlpStream quality: Best available audio (typically 128-256 kbps AAC) Features:
- Comprehensive search (songs, albums, artists, playlists)
- Official music catalog
- Auto-generated playlists and mixes
- Personalized recommendations
- Charts and trending content
JioSaavn
Integration: saavn.dev APIStream quality: 320 kbps MP3 Features:
- Indian music catalog
- Bollywood, regional, and international music
- Direct stream URLs
- Album and playlist support
https://saavn.dev/api/
Tidal
Integration: Tidal API (unofficial)Stream quality: Up to HI_RES_LOSSLESS (24-bit/96kHz FLAC) Quality tiers:
HI_RES_LOSSLESS- 24-bit FLAC (Master Quality)HI_RES- 24-bit FLACLOSSLESS- 16-bit FLACHIGH- 320 kbps AACLOW- 96 kbps AAC
- Lossless and hi-res audio
- Quality badges in UI
- Paginated results for large catalogs
- Artist discographies
AI integration
Google Gemini AI
Model: gemini-2.5-flash-litePurpose: AI-powered music search and recommendations Capabilities:
- Natural language music search
- Query understanding and expansion
- Genre and mood detection
- Artist and song suggestions
- Contextual insights
geminiApiKey)
Development tools
Xcode
Version: Xcode 14+Purpose: Swift development, UI design, debugging Features used:
- SwiftUI previews
- Instruments for performance profiling
- Breakpoint debugging
- Memory graph debugger
Python virtual environment
Location:Resources/music_env/Management: pip Setup:
Build system
Build tool: Xcode Build SystemPackage manager: Swift Package Manager (future), pip (Python) Build process:
- Compile Swift code
- Bundle Python virtual environment
- Copy ytmusic_service.py to Resources
- Generate app bundle
- Code signing
Inter-process communication
JSON over pipes
Swift and Python communicate using JSON over stdin/stdout pipes. Swift side:Platform requirements
macOS
Minimum version: macOS 12.0 (Monterey)Recommended: macOS 13.0+ (Ventura or later) Required frameworks:
- SwiftUI
- AppKit
- AVFoundation
- Foundation
- Combine
Python runtime
Version: Python 3.8+Location: Bundled in app or system Python Paths checked (in order):
Resources/music_env/bin/python3(bundled venv)Resources/python_runtime/bin/python3(bundled runtime)/usr/bin/python3(system)/opt/homebrew/bin/python3(Homebrew)/usr/local/bin/python3(Homebrew old)
Performance optimizations
Swift optimizations
- URLCache configuration - Limited cache size to prevent bloat
- Quality of Service -
.utilityfor background tasks - Lazy loading - Views load content on-demand
- Memory management - Periodic cache clearing
Python optimizations
Environment variables:.utilityQoS for low CPU priority- Logging level set to WARNING only
- Inactivity-based suspension
Dependency versions
Current dependencies fromrequirements.txt:
- Regular updates for security patches
- Test compatibility before upgrading
- Pin major versions to prevent breaking changes