# akashdh11/skystream architecture

> Architecture diagram of the GitHub repository akashdh11/skystream, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/akashdh11/skystream
- Repository: https://github.com/akashdh11/skystream

## Overview

SkyStream is a cross-platform, extension-driven media streaming client. Its documented user journey is to discover or search for content through installed extensions or TMDB, inspect a title, resolve a playable source, and watch it; playback can be resumed, downloaded, or synchronized with tracking and subtitle services. The repository tree exposes native JavaScript, VLC, and torrent-server packages, but no Flutter/Dart application source, so app-level orchestration and several documented features are represented without claiming inspected implementation paths or unverified internal calls.

Main entry points: [`packages/vlc_player/src/native`](https://github.com/akashdh11/skystream/tree/master/packages/vlc_player/src/native) (Media player), [`packages/flutter_torrent_server/go_src/web/api`](https://github.com/akashdh11/skystream/tree/master/packages/flutter_torrent_server/go_src/web/api) (Torrent HTTP API), [`packages/flutter_torrent_server/go_src`](https://github.com/akashdh11/skystream/tree/master/packages/flutter_torrent_server/go_src) (Torrent server), [`packages/flutter_js_ng`](https://github.com/akashdh11/skystream/tree/master/packages/flutter_js_ng) (JavaScript engine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["SkyStream client"]
  node_app["Flutter app"]
  node_discovery["Search and discovery"]
  node_title["Title details"]
  node_resume[("Watch progress")]
end

subgraph group_extensions["Extension runtime"]
  node_extension["Content extensions"]
  node_js_engine["JavaScript engine"]
  node_torrent_api["Torrent HTTP API"]
  node_torrent_server["Torrent server"]
end

subgraph group_playback["Playback and downloads"]
  node_player["Media player"]
  node_downloads["Offline downloads"]
  node_ios_progress["iOS download progress"]
end

subgraph group_services["Media services"]
  node_subtitles["Subtitle services"]
  node_trackers["Tracking sync"]
  node_tmdb["TMDB discovery"]
end

node_user(("Viewer"))

node_user -->|"uses"| node_app
node_app -->|"opens"| node_discovery
node_discovery -->|"searches providers"| node_extension
node_discovery -.->|"browses"| node_tmdb
node_extension -->|"executes scripts"| node_js_engine
node_extension -->|"returns results"| node_title
node_user -->|"selects result"| node_title
node_title -->|"starts playback"| node_player
node_player -->|"updates progress"| node_resume
node_app -->|"manages downloads"| node_downloads
node_downloads -->|"reports progress"| node_ios_progress
node_app -.->|"uses subtitles"| node_subtitles
node_app -.->|"syncs activity"| node_trackers
node_extension -.->|"requests streams"| node_torrent_api
node_torrent_api -->|"serves requests"| node_torrent_server
node_torrent_server -.->|"provides stream"| node_player

click node_js_engine "https://github.com/akashdh11/skystream/tree/master/packages/flutter_js_ng"
click node_torrent_api "https://github.com/akashdh11/skystream/tree/master/packages/flutter_torrent_server/go_src/web/api"
click node_torrent_server "https://github.com/akashdh11/skystream/tree/master/packages/flutter_torrent_server/go_src"
click node_player "https://github.com/akashdh11/skystream/tree/master/packages/vlc_player/src/native"
click node_ios_progress "https://github.com/akashdh11/skystream/blob/master/ios/Runner/DownloadContinuedProcessingManager.swift"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_discovery,node_title,node_resume,node_user toneBlue
class node_extension,node_js_engine,node_torrent_api,node_torrent_server toneAmber
class node_player,node_downloads,node_ios_progress toneMint
class node_subtitles,node_trackers,node_tmdb toneRose
```

## Components

### SkyStream client

- **Flutter app**
- **Search and discovery**
- **Title details**
- **Watch progress**

### Extension runtime

- **Content extensions**
- [JavaScript engine](https://github.com/akashdh11/skystream/tree/master/packages/flutter_js_ng): `packages/flutter_js_ng`
- [Torrent HTTP API](https://github.com/akashdh11/skystream/tree/master/packages/flutter_torrent_server/go_src/web/api): `packages/flutter_torrent_server/go_src/web/api`
- [Torrent server](https://github.com/akashdh11/skystream/tree/master/packages/flutter_torrent_server/go_src): `packages/flutter_torrent_server/go_src`

### Playback and downloads

- [Media player](https://github.com/akashdh11/skystream/tree/master/packages/vlc_player/src/native): `packages/vlc_player/src/native`
- **Offline downloads**
- [iOS download progress](https://github.com/akashdh11/skystream/blob/master/ios/Runner/DownloadContinuedProcessingManager.swift): `ios/Runner/DownloadContinuedProcessingManager.swift`

### Media services

- **Subtitle services**
- **Tracking sync**
- **TMDB discovery**

### Other components

- **Viewer**

## Connections

- Viewer → Flutter app: uses
- Flutter app → Search and discovery: opens
- Search and discovery → Content extensions: searches providers
- Search and discovery → TMDB discovery: browses
- Content extensions → JavaScript engine: executes scripts
- Content extensions → Title details: returns results
- Viewer → Title details: selects result
- Title details → Media player: starts playback
- Media player → Watch progress: updates progress
- Flutter app → Offline downloads: manages downloads
- Offline downloads → iOS download progress: reports progress
- Flutter app → Subtitle services: uses subtitles
- Flutter app → Tracking sync: syncs activity
- Content extensions → Torrent HTTP API: requests streams
- Torrent HTTP API → Torrent server: serves requests
- Torrent server → Media player: provides stream
