How utkarsh-wadalkar/audora works
Audora is an Electron desktop app for setting up an Apple Music download environment, submitting track, album, or playlist URLs, and saving lossless downloads as playable FLAC files. Its main workflow runs from the desktop UI through the backend queue and downloader, with Docker-hosted wrapper services supporting authentication and audio retrieval; tracks are converted and organized in the local library. The README also describes playback, history, settings, logs, and a separate marketing site. Some backend routing and marketing-page wiring is unsampled, so those links are limited to documented or directly evidenced relationships.
Main entry points: app.py API and events · App.tsx App shell · queue_processor.py Download queue · page.tsx Marketing pages
Components 28
Desktop app
- App shell
frontend/src/App.tsx - App pages
frontend/src/pages - App state
frontend/src/store/useAppStore.ts - API client
frontend/src/api/client.ts - Live events
frontend/src/hooks/useWebSocket.ts - Electron host
frontend/electron/main.js - Backend process
frontend/electron/backend-process-controller.js
Backend workflow
- API and events
backend/app.py - First-run setup
backend/setup_manager.py - Docker control
backend/docker_manager.py - Music authentication
backend/auth_manager.py - Wrapper service
backend/wrapper_manager.py - Download queue
backend/queue_processor.py - Track retrieval
backend/download_manager.py
Local music
- FLAC conversion
backend/flac_converter.py - Library and playback
backend/library_manager.py - App database
backend/database.py - Logs and diagnostics
backend/diagnostics.py
Marketing site
- Marketing pages
marketing/app/page.tsx - Feedback endpoint
marketing/app/api/feedback/route.ts - Visit endpoint
marketing/app/api/visits/route.ts - Evidence endpoint
marketing/app/api/evidence/route.ts - Marketing data
marketing/lib/tidb.ts
Other components
- Audora user
- Apple Music
- Docker Engine
- Local music files
- Site visitor
Connections 33
- Audora user → App shell: uses
- App shell → App pages: routes to
- App shell → App state: checks setup
- App pages → App state: requests actions
- App state → API client: sends requests
- API client → API and events: HTTP calls
- App shell → Live events: subscribes
- Live events → API and events: receives events
- Electron host → Backend process: starts backend
- Backend process → API and events: launches
- API and events → First-run setup: runs setup
- First-run setup → Docker control: manages images
- Docker control → Docker Engine: controls containers
- API and events → Music authentication: handles sign-in
- Music authentication → Wrapper service: starts login service
- Wrapper service → Docker control: starts container
- API and events → Download queue: dispatches downloads
- Download queue → Track retrieval: retrieves tracks
- Track retrieval → Apple Music: fetches audio
- Track retrieval → Wrapper service: uses decryptor
- Download queue → FLAC conversion: converts tracks
- Download queue → Library and playback: records downloads
- FLAC conversion → Local music files: writes FLAC
- Library and playback → App database: reads and writes
- Library and playback → Local music files: organizes tracks
- API and events → Logs and diagnostics: serves diagnostics
- Site visitor → Marketing pages: views
- Marketing pages → Visit endpoint: records visit
- Marketing pages → Evidence endpoint: loads evidence
- Marketing pages → Feedback endpoint: submits feedback
- Feedback endpoint → Marketing data: saves feedback
- Visit endpoint → Marketing data: saves visit
- Evidence endpoint → Marketing data: reads evidence