https://github.com/ganbarovemin/streamly
Native macOS media client for cinematic discovery, user-controlled sources, local-first playback, subtitles and Sparkle updates.
https://github.com/ganbarovemin/streamly
apple-silicon local-first macos media-player sparkle streaming swift swiftui torrentio
Last synced: about 1 month ago
JSON representation
Native macOS media client for cinematic discovery, user-controlled sources, local-first playback, subtitles and Sparkle updates.
- Host: GitHub
- URL: https://github.com/ganbarovemin/streamly
- Owner: GanbarovEmin
- License: mit
- Created: 2026-05-10T11:32:48.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-22T13:10:26.000Z (about 1 month ago)
- Last Synced: 2026-05-22T15:45:04.743Z (about 1 month ago)
- Topics: apple-silicon, local-first, macos, media-player, sparkle, streaming, swift, swiftui, torrentio
- Language: Swift
- Homepage: https://ganbarovemin.github.io/streamly/
- Size: 41.6 MB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
Streamly
A native Apple Silicon cinema center for discovery, release selection, local-first library management and playback.

Streamly brings the core desktop movie-night flow into one focused macOS app: browse movies and series, open cinematic detail pages, compare ranked user-controlled releases, start playback, resume progress, manage a local library and keep settings private on this Mac.
This is a public beta. The app is already built around the real release pipeline and downloadable DMG distribution, but Developer ID signing/notarization and some provider polish remain active release work.
## Why Streamly
| Product promise | What the user gets |
| --- | --- |
| Native macOS | SwiftUI interface, keyboard-friendly desktop navigation and Apple Silicon focused packaging. |
| Cinema-first browsing | Home shelves, catalogs, search, posters, logos, cast, trailers, seasons and episode detail pages. |
| Fast decisions | Releases are normalized and ranked by quality, seeders and source metadata so the best option is obvious. |
| Local-first privacy | Library, progress, settings, cache, diagnostics and credentials stay local by default. |
| User-controlled sources | Streamly does not host or bundle media. Users choose and configure their own sources. |
## How It Works
1. Browse the Home, Movies or Series surfaces.
2. Inspect a title page with artwork, overview, cast, seasons, episodes, trailers and similar titles.
3. Choose the recommended release or open the full release list when you want a specific quality/source.
4. Watch through the local playback path and come back later from Continue Watching, History or Library.
## Current Beta Features
- Cinemeta/Stremio metadata with TMDB fallback.
- Movie and series catalogs, search, detail pages and recommendations.
- Episode-aware series release lookup for compatible Stremio/Torrentio IDs.
- Torrentio source-provider integration for normalized release discovery.
- Release ranking by quality, seeders, codec, HDR and source metadata.
- Local files, magnet links and `.torrent` references.
- Native torrent streaming through the bundled libtorrent runtime.
- AVFoundation local playback and an mpv-capable playback bridge.
- Continue Watching, watch history, user lists, favorites and ratings.
- Embedded, local and online subtitle workflows.
- Local diagnostics export with privacy-aware redaction.
- Sparkle/GitHub Releases update foundation.
## Screenshots
| Home | Search |
| --- | --- |
|  |  |
| Movie Detail | Series Detail |
| --- | --- |
|  |  |
| Player | Settings |
| --- | --- |
|  |  |
## Installation
1. Download the latest `.dmg` from [GitHub Releases](https://github.com/GanbarovEmin/streamly/releases/latest).
2. Open the DMG and drag `Streamly.app` to `Applications`.
3. Launch Streamly from `Applications`.
4. If macOS blocks the unsigned beta build, open **System Settings -> Privacy & Security** and choose **Open Anyway** for Streamly.
Detailed install, local data and uninstall steps live in [docs/installation.md](docs/installation.md).
## System Requirements
- macOS 13.0 or newer.
- Apple Silicon Mac: M1, M2, M3, M4 or newer.
- Internet connection for metadata, source lookup and updates.
- Disk space for image cache, torrent cache, subtitles, diagnostics and temporary playback data.
Torrent playback currently depends on the bundled macOS arm64 libtorrent runtime and is expected to work best on modern macOS releases.
## Privacy And Legal
Streamly is local-first:
- No telemetry is enabled by default.
- Library, watch history, settings, cache and diagnostics are stored locally.
- Credentials and source-provider secrets are stored through macOS Keychain where supported.
- Diagnostics export is user-created and local.
Streamly does not host, provide, sell, bundle or distribute media content. Streamly does not bypass DRM, paywalls, captchas or technical access controls. Users are responsible for the sources they configure and for complying with applicable law and content rights.
See [Privacy](docs/privacy.md), [Legal](docs/legal.md) and [Security](SECURITY.md).
## Architecture
Streamly is a SwiftPM macOS app with separated service layers:
```text
CineFlowApp App entry point
CineFlowUI SwiftUI screens, view models and navigation
CineFlowDesignSystem Visual tokens and reusable UI primitives
CineFlowCore Shared models, protocols and app environment
CineFlowMetadata Cinemeta/TMDB discovery and metadata mapping
CineFlowSources Source providers, Torrentio and credential policy
CineFlowTorrent Torrent engine abstraction and native libtorrent bridge
CineFlowPlayback AVFoundation/mpv playback services
CineFlowSubtitles Subtitle matching, loading and cache workflows
CineFlowDatabase GRDB repositories and local persistence
CineFlowUpdater Sparkle and GitHub Releases update services
CineFlowDiagnostics Local logs and diagnostics export
```
The public app, Swift package and executable product are named `Streamly`. Some internal source targets still use `CineFlow*` implementation names until a separate module rename is safe.
## Build Locally
```bash
swift build
swift test
swift run Streamly
```
Release packaging scripts live under `script/`:
```bash
bash script/build_release.sh
bash script/create_dmg.sh
```
## Links
- [Website](https://ganbarovemin.github.io/streamly/)
- [Latest Release](https://github.com/GanbarovEmin/streamly/releases/latest)
- [Documentation](docs/README.md)
- [Changelog](CHANGELOG.md)
- [Installation](docs/installation.md)
- [Updates](docs/updates.md)
- [Privacy](docs/privacy.md)
- [Legal](docs/legal.md)
- [Contributing](CONTRIBUTING.md)
## License
Streamly is released under the [MIT License](LICENSE).