How abraham-ny/newpipe works
NewPipe is an Android streaming front end. The principal workflow is browsing or searching a supported service, opening stream details, resolving media, and playing it; users can also subscribe, refresh feeds, and keep local playlists and history. The graph preserves documented search, channel, comments, kiosk, background and popup playback, and download capabilities. Service fetching is described by the README, but the extractor implementation is not in this tree; several feature paths are therefore represented at their existing enclosing directories rather than as inspected internals.
Main entry points: VideoDetailFragment.java Stream details · PlayerService.java Player service · MainActivity.java Main activity · AppDatabase.java App database
Components 20
App navigation
- Main activity
app/src/main/java/org/schabi/newpipe/MainActivity.java - Intent router
app/src/main/java/org/schabi/newpipe/RouterActivity.java
Service discovery
- Search
app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java - Stream details
app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java - Channel browsing
app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelFragment.java - Comments
app/src/main/java/org/schabi/newpipe/fragments/list/comments/CommentsFragment.java - Kiosk browsing
app/src/main/java/org/schabi/newpipe/fragments/list/kiosk/KioskFragment.java
Playback and downloads
- Player service
app/src/main/java/org/schabi/newpipe/player/PlayerService.java - Play queue
app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java - Playback resolver
app/src/main/java/org/schabi/newpipe/player/resolver/PlaybackResolver.java - Media source manager
app/src/main/java/org/schabi/newpipe/player/playback/MediaSourceManager.java - Download service
app/src/main/java/us/shandian/giga/service/DownloadManagerService.java - Download UI
app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java
Local library
- Subscriptions
app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt - Feed loading
app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt - Local playlists
app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistManager.java - History manager
app/src/main/java/org/schabi/newpipe/local/history/HistoryRecordManager.java
Persistence
- App database
app/src/main/java/org/schabi/newpipe/database/AppDatabase.java
Other components
- User
- Streaming services
Connections 29
- User → Main activity: opens
- User → Intent router: shares link
- Main activity → Search: navigates
- Main activity → Channel browsing: browses
- Main activity → Kiosk browsing: browses
- Search → Streaming services: requests results
- Channel browsing → Streaming services: requests channel
- Kiosk browsing → Streaming services: requests listings
- Stream details → Streaming services: requests stream info
- Comments → Streaming services: requests comments
- Search → Stream details: opens stream
- Channel browsing → Stream details: opens stream
- Intent router → Stream details: routes link
- Stream details → Player service: starts playback
- Stream details → Play queue: creates queue
- Player service → Play queue: controls
- Player service → Playback resolver: resolves media
- Playback resolver → Streaming services: fetches streams
- Player service → Media source manager: manages sources
- Player service → History manager: records playback
- Subscriptions → App database: reads and writes
- Feed loading → Subscriptions: loads subscriptions
- Feed loading → Streaming services: fetches updates
- Feed loading → App database: stores feed data
- Local playlists → App database: reads and writes
- History manager → App database: reads and writes
- User → Download UI: manages downloads
- Download UI → Download service: starts missions
- Download service → Streaming services: downloads media