How mertkocakaplan/flow works
Flow is a Windows media downloader with a companion browser extension. Users can submit URLs in the desktop app or discover media in a browser and send it to Flow; desktop workflows then inspect media, configure a download, execute it, and track queued or completed jobs. The graph also preserves documented-in-code collection, history, settings, and image-transfer areas. Evidence is limited to the supplied excerpts and SOURCE INDEX; unsampled subsystem connections are omitted where not established.
Main entry points: App.cs Desktop application · discovery.js Discovery state · DownloadPage.cs Download workflow · Executor.cs Job executor
Components 27
Browser discovery
- Media detection
chrome-extension/detection.js - Page scanning
chrome-extension/scan-content.js - Discovery state
chrome-extension/discovery.js - Extension background
chrome-extension/background.js - Browser panel
chrome-extension/panel.js - Media panel
chrome-extension/media-panel.js - Native transport
chrome-extension/transport.js - Extension localization
chrome-extension/i18n.js
Desktop workflows
- Desktop application
source/App.cs - Download workflow
source/DownloadPage.cs - Collection workflow
source/CollectionPage.cs - Queue view
source/QueuePage.cs - History view
source/HistoryPage.cs - Settings view
source/SettingsPage.cs
Download pipeline
- URL and platform rules
source/Platforms.cs - Media metadata
source/Media.cs - Download engine
source/Engine.cs - Job executor
source/Executor.cs - Image transfer
source/ImageTransfer.cs - Process execution
source/ProcessRunner.cs
Jobs and state
- Queue service
source/Queue.cs - Job definitions
source/Jobs.cs - Persistent storage
source/Storage.cs
Browser integration
- Browser link
source/BrowserLink.cs - Bridge protocol
source/BrowserProtocol.cs - Native host
source/native/Main.cs
Other components
- Browser user
Connections 29
- Browser user → Browser panel: opens
chrome-extension/panel.js - Extension background → Discovery state: uses
chrome-extension/background.js - Discovery state → Media detection: normalizes candidates
chrome-extension/discovery.js - Discovery state → Native transport: calls native
chrome-extension/discovery.js - Discovery state → Page scanning: injects scanner
chrome-extension/discovery.js - Browser panel → Media panel: uses
chrome-extension/panel.js - Browser panel → Extension localization: uses strings
chrome-extension/panel.js - Media panel → Discovery state: reads discoveries
chrome-extension/media-panel.js - Media panel → Extension localization: uses strings
chrome-extension/media-panel.js - Desktop application → Download workflow: routes to
source/App.cs - Desktop application → Queue view: routes to
source/App.cs - Desktop application → History view: routes to
source/App.cs - Desktop application → Settings view: routes to
source/App.cs - Download workflow → URL and platform rules: validates URLs
source/DownloadPage.cs - Download workflow → Download engine: requests inspection
source/DownloadPage.cs - Download workflow → Queue service: submits jobs
- Queue view → Queue service: reads queue
source/QueuePage.cs - Queue service → Job executor: runs jobs
source/Queue.cs - Queue service → Persistent storage: persists state
- Job executor → Download engine: uses engine
source/Executor.cs - Job executor → Process execution: runs processes
source/Executor.cs - Job executor → Image transfer: delegates image jobs
source/Executor.cs - Download engine → URL and platform rules: classifies media
source/Engine.cs - Download engine → Media metadata: parses metadata
source/Media.cs - Image transfer → Process execution: probes files
source/ImageTransfer.cs - Desktop application → Browser link: starts bridge
source/BrowserLink.cs - Browser link → Bridge protocol: uses protocol
source/BrowserLink.cs - Native host → Bridge protocol: reads and writes
source/native/Main.cs - Native host → Desktop application: forwards requests
source/native/Main.cs