How ludix45/streamforge_multiplatform works
StreamForge is documented as a cross-platform media discovery and playback app: users search provider catalogs, inspect ranked and TMDB-enriched results, then play a selected source. The tree also contains a distinct Python web/CLI media acquisition tool, VibraVid, with provider adapters, download, DRM/decryption, and muxing modules. README claims guide the unsampled Kotlin capabilities; the excerpts verify only selected desktop, search, DRM, and progress behavior, so uncertain implementation links are omitted.
Main entry points: downloader Stream downloader · DesktopApp.kt Desktop app UI · views.py Web interface · main.kt Desktop shell
Components 26
StreamForge client
- Desktop shell
desktopApp/src/desktopMain/kotlin/main.kt - Desktop app UI
desktopApp/src/desktopMain/kotlin/com/aistudio/streamforge/desktop/DesktopApp.kt - Shared models
shared/src/commonMain/kotlin/com/aistudio/streamforge/model/Models.kt - Playback source
shared/src/commonMain/kotlin/com/aistudio/streamforge/shared/PlaybackSource.kt - Shared networking
shared/src/commonMain/kotlin/com/aistudio/streamforge/network/KtorClient.kt - Embedded players
desktopApp/src/desktopMain/kotlin/com/aistudio/streamforge/desktop/EmbeddedVlcPlayer.kt
Discovery and sources
- Provider domains
desktopApp/src/desktopMain/kotlin/com/aistudio/streamforge/desktopbridge/DesktopDomainManager.kt - Provider adapters
repo/GUI/searchapp/api - Search selection
app/site_search_manager.py - TMDB metadata
app/tmdb.py - Source scrapers
app
VibraVid acquisition
- VibraVid CLI
repo/VibraVid/cli/run.py - Web interface
repo/GUI/searchapp/views.py
Stream processing
- Stream downloader
repo/VibraVid/core/downloader - Manifest parsing
repo/VibraVid/core/manifest - DRM manager
repo/VibraVid/core/drm/manager.py - Decryptor
repo/VibraVid/core/decryptor/decryptor.py - Media muxing
repo/VibraVid/core/muxing
Automation and state
- Progress reporting
- Watchlist automation
repo/GUI/searchapp/watchlist_auto.py - Release automation
repo/GUI/searchapp/arr/arr_service.py - Desktop library
desktopApp/src/desktopMain/kotlin/com/aistudio/streamforge/desktop/LibraryStore.kt
Other components
- Viewer
- TMDB service
- Media providers
- Media files
Connections 27
- Viewer → Desktop shell: opens
- Desktop shell → Desktop app UI: starts
- Desktop app UI → Provider adapters: searches sources
- Provider adapters → Media providers: queries
- Desktop app UI → Shared models: uses models
- Desktop app UI → TMDB metadata: enriches results
- TMDB metadata → TMDB service: requests metadata
- Desktop app UI → Playback source: selects source
- Desktop app UI → Embedded players: starts playback
- Provider domains → Media providers: resolves domains
- Viewer → Search selection: searches
- Search selection → Source scrapers: dispatches search
- Source scrapers → Media providers: scrapes
- Viewer → VibraVid CLI: runs commands
- Viewer → Web interface: uses web app
- VibraVid CLI → Stream downloader: starts download
- Web interface → Stream downloader: requests download
- Stream downloader → Manifest parsing: parses streams
- Stream downloader → DRM manager: requests keys
- DRM manager → Decryptor: provides keys
- Stream downloader → Decryptor: decrypts tracks
- Stream downloader → Media muxing: assembles media
- Stream downloader → Progress reporting: reports progress
- Watchlist automation → Web interface: initiates searches
- Release automation → Web interface: coordinates releases
- Embedded players → Desktop library: stores library data
- Media muxing → Media files: writes files