How taotaomusic/core works
桃桃音乐 is a cross-platform music player backed by a self-hosted API. The main workflow is search, enqueue a persistent placeholder, resolve a playable CDN URL on demand, then stream audio directly from the CDN. Android playback and API calls are represented from the README and sampled service; server-side search ownership is supported by the sampled controller, while other documented product branches use their tree paths. The excerpts do not establish every client-to-server call, so uncertain wiring is omitted.
Main entry points: TencentMusicApi.kt Android API · AppContent.kt Android app · music-source.registry.ts Music sources · database.service.ts PostgreSQL
Components 25
Music clients
- Android app
androidApp/src/main/java/com/taotao/music/ui/app/AppContent.kt - Android API
androidApp/src/main/java/com/taotao/music/data/TencentMusicApi.kt - Android playback
androidApp/src/main/java/com/taotao/music/player/PlaybackService.kt - Windows app
desktopApp/src/main/kotlin/com/taotao/music/desktop/DesktopShell.kt - Web share player
webApp/src/wasmJsMain/kotlin/com/taotao/music/web/Main.kt - Shared player UI
player-ui/src/commonMain/kotlin/com/taotao/music/playerui/PlayerSurface.kt
Music services
- Music API
server/src/music/music.controller.ts - Search service
server/src/music/search.service.ts - Music sources
server/src/upstream/music-source.registry.ts
Accounts and library
- User authentication
server/src/auth/auth.controller.ts - Favorites
server/src/favorites/favorites.controller.ts - Cloud playlists
server/src/playlists/playlists.controller.ts - Playback history
server/src/playback/playback.controller.ts - PostgreSQL
server/src/database/database.service.ts
Sharing and releases
- Messaging
server/src/im/im.controller.ts - AI image generation
server/src/image-generation/image-generation.controller.ts - Song sharing
server/src/shares/song-share.controller.ts - App and desktop releases
server/src/release/release.controller.ts - Desktop release service
server/src/desktop-release/desktop-release.controller.ts
Administration
- Admin console
server/src/frontend/src/App.vue - Admin authentication
server/src/admin-auth/admin-auth.controller.ts - Source management
server/src/upstream/music-source-admin.controller.ts - Release management
server/src/release/release-admin.controller.ts
Other components
- Listener
- Music CDN
Connections 33
- Listener → Android app: uses
- Listener → Windows app: uses
- Listener → Web share player: opens share
- Android app → Android API: requests music
- Android app → Android playback: controls playback
- Android playback → Android API: resolves placeholder
- Android playback → Music CDN: streams audio
- Windows app → Shared player UI: uses interface
- Android app → Shared player UI: uses interface
- Web share player → Shared player UI: uses interface
- Android API → Music API: requests
- Music API → Search service: searches
- Search service → Music sources: queries sources
- Music API → Music sources: resolves song
- Music sources → Music CDN: returns stream URL
- Android API → User authentication: authenticates
- Android API → Favorites: manages favorites
- Android API → Cloud playlists: manages playlists
- Android API → Playback history: syncs playback
- User authentication → PostgreSQL: reads and writes
- Favorites → PostgreSQL: reads and writes
- Cloud playlists → PostgreSQL: reads and writes
- Playback history → PostgreSQL: reads and writes
- Android API → Messaging: uses messaging
- Android API → AI image generation: requests image generation
- Web share player → Song sharing: loads shared song
- Windows app → Desktop release service: checks updates
- Android API → App and desktop releases: checks updates
- Admin console → Admin authentication: authenticates
- Admin console → Source management: manages sources
- Admin console → Release management: manages releases
- Release management → App and desktop releases: publishes releases
- Source management → Music sources: configures sources