How mcvo1705/ybmusictv works
YB Music TV is a native Android TV music-streaming app. Users search YouTube or paste a link, choose a track, and play audio; they can also manage offline playlists, favorites, listening/search history, and saved playback/settings. The graph follows evidenced calls from the activity through navigation and the shared ViewModel. YouTube extraction, ranking, stream resolution, and SABR fallback are documented capabilities; source excerpts do not show every connection, so unsupported links are omitted.
Main entry points: MainViewModel.kt App state · AppNavigation.kt TV navigation · MusicRepository.kt Music repository · MainActivity.kt Activity entry
Components 18
TV application
- Activity entry
app/src/main/java/com/ybmusic/tv/MainActivity.kt - TV navigation
app/src/main/java/com/ybmusic/tv/ui/navigation/AppNavigation.kt - App state
app/src/main/java/com/ybmusic/tv/ui/MainViewModel.kt - Settings screen
app/src/main/java/com/ybmusic/tv/ui/screen/SettingsScreen.kt - TV components
app/src/main/java/com/ybmusic/tv/ui/component/TvComponents.kt
Music discovery
- Search screen
app/src/main/java/com/ybmusic/tv/ui/screen/SearchScreen.kt - Track models
app/src/main/java/com/ybmusic/tv/data/model/Track.kt - YouTube source
app/src/main/java/com/ybmusic/tv/data/youtube/YouTubeSource.kt - Search ranking
app/src/main/java/com/ybmusic/tv/data/youtube/SearchRanker.kt - NewPipe downloader
app/src/main/java/com/ybmusic/tv/data/youtube/NewPipeDownloader.kt
Library and persistence
- Library screen
app/src/main/java/com/ybmusic/tv/ui/screen/LibraryScreen.kt - Music repository
app/src/main/java/com/ybmusic/tv/data/repository/MusicRepository.kt - Room database
app/src/main/java/com/ybmusic/tv/data/database/AppDatabase.kt - Settings repository
app/src/main/java/com/ybmusic/tv/data/repository/SettingsRepository.kt
Playback
- Player controller
app/src/main/java/com/ybmusic/tv/core/player/PlayerController.kt - Playback service
app/src/main/java/com/ybmusic/tv/service/PlaybackService.kt
Other components
- TV listener
- YouTube
Connections 22
- TV listener → Activity entry: opens app
app/src/main/java/com/ybmusic/tv/MainActivity.kt - Activity entry → App state: obtains state
app/src/main/java/com/ybmusic/tv/MainActivity.kt - Activity entry → TV navigation: renders
app/src/main/java/com/ybmusic/tv/MainActivity.kt - TV navigation → Search screen: routes to
app/src/main/java/com/ybmusic/tv/ui/navigation/AppNavigation.kt - TV navigation → Library screen: routes to
app/src/main/java/com/ybmusic/tv/ui/navigation/AppNavigation.kt - TV navigation → Settings screen: routes to
app/src/main/java/com/ybmusic/tv/ui/navigation/AppNavigation.kt - TV navigation → TV components: renders player
app/src/main/java/com/ybmusic/tv/ui/navigation/AppNavigation.kt - Search screen → App state: submits actions
app/src/main/java/com/ybmusic/tv/ui/screen/SearchScreen.kt - Library screen → App state: submits actions
app/src/main/java/com/ybmusic/tv/ui/screen/LibraryScreen.kt - Settings screen → App state: submits actions
app/src/main/java/com/ybmusic/tv/ui/screen/SettingsScreen.kt - App state → Music repository: requests data
app/src/main/java/com/ybmusic/tv/ui/MainViewModel.kt - App state → Player controller: controls playback
app/src/main/java/com/ybmusic/tv/ui/MainViewModel.kt - Music repository → YouTube source: searches source
app/src/main/java/com/ybmusic/tv/data/repository/MusicRepository.kt - Music repository → Search ranking: ranks results
app/src/main/java/com/ybmusic/tv/data/repository/MusicRepository.kt - Music repository → Room database: reads and writes
app/src/main/java/com/ybmusic/tv/data/repository/MusicRepository.kt - YouTube source → Track models: produces tracks
app/src/main/java/com/ybmusic/tv/data/youtube/YouTubeSource.kt - Search ranking → Track models: orders tracks
app/src/main/java/com/ybmusic/tv/data/youtube/SearchRanker.kt - Activity entry → NewPipe downloader: initializes extractor
app/src/main/java/com/ybmusic/tv/MainActivity.kt - YouTube source → YouTube: searches and resolves streams
README.md - Player controller → Music repository: persists listening
app/src/main/java/com/ybmusic/tv/core/player/PlayerController.kt - Player controller → Settings repository: saves queue state
app/src/main/java/com/ybmusic/tv/core/player/PlayerController.kt - Player controller → Playback service: controls session
README.md