Skip to content

Repository files navigation

Open Cloud

A black-and-white themed Tauri desktop streaming tracker with TMDB/OMDB integration, an inline video player, Supabase authentication, Netflix-style animations, and a built-in native ad/popup blocker. Track what you watch, save your favorites, and resume where you left off. The Electron shell remains temporarily available as a migration rollback path.


How to Download & Install

Download for macOS  Download for Windows

View all releases ↗

Open Cloud Screenshot


macOS (Recommended — DMG)

  1. Download the DMG

    • Click the macOS (.dmg) button above, or go to the Releases page and download OpenCloud_3.6.2_universal.dmg
  2. Install the app

    • Open the downloaded OpenCloud.dmg
    • In the window that appears, drag the OpenCloud.app icon onto the Applications folder shortcut
    • Eject the mounted disk
  3. Launch the app

    • Open Finder > Applications and double-click OpenCloud
    • First launch only: because the app is unsigned, macOS will show a security warning.
      Right-click OpenCloud.appOpen → click Open in the dialog.
      After this one-time step, you can open it normally from Spotlight or the Dock.

Note: Spotlight may take a few seconds to index the app after first launch.


Windows (Recommended — EXE)

  1. Download the Installer

    • Click the Windows (.exe) button above, or go to the Releases page and download OpenCloud_3.6.2_x64-setup.exe
  2. Run the installer

    • Double-click the downloaded OpenCloud.exe
    • Follow the on-screen setup wizard to complete installation
  3. Launch the app

    • Once installed, open OpenCloud from your Desktop shortcut or the Start Menu

Build from Source (Mac / Linux / Windows)

If you prefer to run the app from code or want to develop:

  1. Download the ZIP

  2. Unzip / extract the file and open the extracted folder

  3. Install dependencies and start the Tauri app

    npm install
    npm run tauri:dev

    Install the platform prerequisites from the Tauri prerequisites guide first. Use npm run check for the complete frontend and Rust test suite, or npm run electron:dev only when validating the temporary Electron rollback build.

Note: Create .env from .env.example when building from a source checkout.


How to Use the App

Getting Started

  1. Open the app — it launches in its own desktop window (no browser required)
  2. You will see a Sign In modal (mandatory — no close button). You must create an account or sign in to use the app
  3. Account creation requires: a username, an email, and a password (6+ characters)
  4. Email confirmation is OFF — accounts work immediately

Home Page

  • Hero carousel — Featured movies/shows at the top with auto-sliding slides
  • Categories — "Popular Now", "Recently Released", "Star Wars Saga", and recommendation rows
  • Continue Watching — Resume the current episode or start the next one after finishing
  • Search — Type in the top-center search bar to find movies and TV shows
  • Item Modal — Click any poster to see details, ratings, synopsis, and options to Watch Now or Add to Collection

Navigating the App

  • Home tab — Browse trending content
  • Collection tab — Your saved movies/shows with folder support
  • History tab — Movies and shows you've watched, with posters, ratings, and watch dates

Player

  • Click Watch Now on any item to open the inline player
  • The current video source is shown in the top left of the player
  • Next Episode button — Automatically skips to the next TV episode
  • Episodes button — Opens a popover to choose any season/episode
  • TV episodes auto-resume from where you left off
  • Watch History — Items are automatically added to your History when you open the player

Account Dropdown (top-right avatar)

  • Settings — Opens the settings modal
  • Check for Updates — Opens an update modal showing if there's a new version and what changed
  • Sign Out — Log out and return to the sign-in screen

Project Structure

Open Cloud/
├── index.html          # Main app shell with all modals
├── styles.css          # Main black-and-white theme styles
├── vite.config.js      # Tauri frontend development and production build
├── .env                # Local API configuration (never commit real secrets)
├── .env.example        # Template for custom .env keys
├── version.json        # App version metadata
├── icon.png            # App icon (cloud, transparent background)
├── icon.icns           # macOS app icon
├── icon.ico            # Windows app icon
├── js/
│   ├── main.js         # App entry point, auth, init
│   ├── bootstrap.js    # Loads local dependencies and desktop configuration
│   ├── desktop.js      # Shared Tauri/Electron desktop bridge
│   ├── updater.js      # Signed Tauri update UI and restart flow
│   ├── auth.js         # Supabase authentication (sign in / up / out / password)
│   ├── api.js          # TMDB + OMDB fetch helpers
│   ├── ui.js           # Home, search, item modals, collection, history
│   ├── player.js       # Inline iframe player, episode picker, progress, history tracking
│   ├── config.js       # API keys, providers, settings sync
│   ├── settings.js     # Settings modal logic (general / themes / sources / blocker / stats / account)
│   ├── dev-panel.js    # Owner-only Dev workspace, presence, and access enforcement
│   ├── storage.js      # Supabase-backed storage with in-memory caching
│   ├── sync.js         # Supabase database CRUD and authenticated RPC calls
│   ├── state.js        # Central reactive state module
│   ├── hero.js         # Hero carousel auto-slide + click handling
│   ├── blocker.js      # Blocker settings UI and native policy synchronization
│   ├── utils.js        # Toast, scroll lock, confirm dialog
│   ├── accounts.js     # User avatar/name initializer
│   └── supabase.js     # Watch sessions and stats aggregation
├── src-tauri/          # Primary Tauri/Rust desktop shell
│   ├── src/lib.rs      # Window lifecycle, blocker policy, migration, updater
│   ├── src/blocker_init.js # All-frame popup/link/form/unload interception
│   └── tauri.conf.json # CSP, bundles, signing key, updater endpoint
├── electron/           # Temporary rollback and local-data export shell
│   ├── main.js         # Electron lifecycle, migration export, legacy blocker
│   └── preload.js      # Narrow Electron bridge
├── docs/
│   ├── supabase_schema.sql   # SQL for creating Supabase tables
│   ├── SUPABASE_SETUP.md     # Step-by-step Supabase setup guide
│   ├── MIGRATION.md          # Existing data migration notes
│   └── TAURI_MIGRATION.md    # Architecture, release signing, parity checklist
└── README.md           # This file

Features

Core Streaming

  • Search — Movies and TV shows via TMDB API
  • Inline Player — Watch content with 7 different providers
  • Netflix UI — Splash screen, hero carousel, smooth animations
  • Ad/Popup Blocker — Rust-owned policy plus all-frame protection that blocks popups, untrusted navigation, popup links/forms, JavaScript URLs, and unload traps
  • Continue Watching — Auto-saves TV progress by season/episode
  • History — Auto-tracks every movie and show you open in the player, with poster, rating, and year
  • Collections — Save items and organize with folders

Authentication

  • Supabase Auth — Email/password with session persistence
  • One Account Per Email — Strictly enforced
  • Usernames — Choose a display name during signup
  • Account Actions — Change password, change email, delete account
  • Owner Dev Workspace — Server-authorized account, installation, version, platform, and live-presence overview
  • Access Control — Reversible suspension, forced sign-out, and an immutable access audit trail
  • Private Profiles — Users can read only their own profile; owner views use restricted database functions
  • Online Authorization — Signed-in clients revalidate access and report minimal installation presence

Settings Tabs

  • General — Device layout (laptop / TV / phone), auto-play toggle
  • Video Sources — Pick from 8 providers with available capability information
  • Blocker — Toggle protection, configure rules, view block logs
  • Stats — Watch heatmap, hours watched, movies/episodes count, current streak
  • Account — Avatar upload, color presets, display name, email, password, account deletion

Updates

  • Manual Update Check — Click "Check for Updates" in the account dropdown
  • Cryptographically signed — Tauri verifies release signatures before installation
  • Native install and restart — Download progress is shown in the existing modal, then the app installs and relaunches

Video Providers

Name Source Quality Subtitles
Nova vidsrc.cc 1080p Yes
Helix player.videasy.net 4K Yes
Plasma vsembed.ru Not specified Not specified
Pulse vidsrc.me 1080p Yes
Phantom vidsrc.to 1080p No
Dossier moviesapi.club 720p No
Zenith vidsrc.su 1080p No
Vertex vidlink.pro 4K Yes

Supabase Setup (for custom hosting)

If you want to use your own Supabase project instead of the bundled one:

  1. Create a free project at supabase.com
  2. Go to Authentication > Providers > Email and enable it
  3. Turn Confirm email OFF
  4. Run docs/supabase_schema.sql, then every migration in supabase/migrations/ in filename order
  5. Provision the sole Dev owner from the SQL Editor with select private.provision_dev_owner('<owner email>');
  6. Copy your project URL and anon key into .env
  7. Restart the app

The owner email is production configuration. Do not commit it, a service-role key, or a user ID to the repository.


License

Private project.

About

Open Cloud — Streaming tracker with TMDB/OMDB integration, inline video player, Supabase auth, Netflix-style UI, ad blocker, and admin dashboard. Downloadable DMG for macOS and EXE for Windows.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages