Skip to content

Repository files navigation

Cove

Cove

A media streaming app for Linux, Windows, Android & Android TV. Discover, track, and stream movies and TV shows - powered by TMDB metadata, Stremio & Nuvio compatible addons & plugins, and a built-in mpv player.

CI Coverage Latest Release License Go Svelte Qt

Platform Downloads Stars Issues PRs Welcome

Disclaimer: Cove is a media player and organizer, not a content host. It does not provide, index, or distribute any media itself — a fresh install has zero sources configured. Any streams come from third-party Stremio-compatible addons or community plugins that you choose to add. You're responsible for what you connect to and for complying with the laws in your jurisdiction.

Table of Contents

Features

  • Stream anything — connects to Stremio-compatible addon sources and streams directly in the app
  • Extend with plugins — add community JS scraper plugins for additional stream sources, sandboxed and opt-in per scraper
  • Built-in player — hardware-accelerated mpv playback with subtitle support, live buffering/download progress, and progress saving
  • Smart stream picker — auto-selects the best available stream using a configurable strategy (quality, size, reliability, or a connection-speed match via a built-in speed test), or sort/filter candidates yourself
  • Skip intro & recap — auto-skip buttons for intro, recap, and credits segments during playback, independently toggleable
  • Where to watch — see which legal streaming/rental services carry a title alongside the stream picker
  • Discover — personalized recommendations based on your watch history, ratings, and taste profile
  • Library — track what you've watched, mark favorites, and pick up where you left off with continue watching
  • Explore — browse trending, upcoming releases, genres, and curated categories
  • Insights — view your watch stats and genre/actor taste breakdown
  • Search — find any movie or TV show by title
  • Spoiler-free browsing — optionally blurs thumbnails and titles for unwatched episodes
  • Multiple profiles — profile switching, works fully offline with no sign-in required
  • Accounts & sync — optional sign-in syncs your library and preferences across devices
  • Trakt.tv integration — optional Trakt sign-in scrobbles what you watch in real time and two-way syncs your watch history and watchlist with Trakt automatically
  • Android & Android TV App — native Kotlin shell hosting the responsive Svelte UI, with the same embedded Go backend and mpv playback; runs standalone, or connects to your desktop Cove over LAN in remote mode

Install

Arch / CachyOS (PKGBUILD)

Install via the AUR:

yay -S cove-bin

Or download PKGBUILD from the latest release manually and run makepkg -si in the same directory. To update, repeat with the new release's PKGBUILD.

Flatpak — any Linux distro

Download cove-linux-amd64.flatpak from the latest release, then:

flatpak install --user cove-linux-amd64.flatpak
flatpak run io.github.coveninja.Cove

Windows

Download cove-windows-amd64-setup.exe from the latest release and run the installer. Or grab cove-windows-amd64.zip for a portable install.

Android & Android TV

⚠️ Experimental: Mobile & TV support is covered by JVM and emulator launch tests, but remains new. Expect rough edges — please file an issue if you hit one.

Download cove-android.apk from the latest release and install it (sideloading — your browser or file manager will ask you to allow installs from unknown sources). The app is fully standalone; optionally point it at a desktop Cove on your LAN from Settings → Server.

You only need to sideload once — the app checks GitHub for new releases and updates itself in-app (downloads are SHA-256 verified; the very first self-update asks for confirmation, after that they're silent).

The same APK runs on Android TV — Cove detects the TV environment automatically and loads a D-pad-navigable 10-foot UI.

macOS

Not currently supported. There's no native build or packaging for macOS yet — see Roadmap.

Build from source

Prerequisites: Go 1.26+, Node.js 20.19+ or 22.12+, Qt 6 with QtWebEngine and QtWebChannel, libmpv, and CMake

git clone https://github.com/coveninja/cove
cd cove
echo "TMDB_API_KEY=your_key_here" > .env
make run  # builds everything and launches the app

Need a TMDB key? Create a free account at themoviedb.org, then generate one under Settings → API in your account.

Development

make hot        # hot-reload: Vite HMR in-window, rebuilds Go + Qt on changes
make hot-debug  # same + QtWebEngine remote devtools on :9222
make web-dev    # browser-only Vite dev server (player shows "unavailable")

Individual builds

make go      # build the Go backend binary
make web     # build the Svelte frontend
make qt      # build the Qt shell
make dev     # full build + regenerate TypeScript types from Go structs
make android # build the Android APK (gomobile AAR + Gradle; see android/README.md)

Testing and CI

The standard target exercises both the public/no-op build and the checked-in supabase auth/sync implementation. Maintainers with both private submodules can separately run the exact release combination with supabase,discover.

make test      # complete Go + web suite
make test-all  # add workflow/security checks plus Qt and Android builds

make test includes API/sync unit tests with coverage and browser flows for startup degradation, login persistence, profile switching, and sync errors. Install the Playwright browser once before the first run:

cd web
npx playwright install chromium

The checks requiring private sources or an already-running Android target are kept explicit:

make test-private            # maintainers, after make inject-private
make test-android-connected  # run instrumentation tests on a device/emulator

Pull requests and branch pushes run the full matrix in ci.yml: formatting/vet, public and tagged Go tests, the race detector, Linux/Windows builds, web checks, a blocking Qt build, Android lint/JVM/emulator tests, dependency review, and vulnerability scanning. Coverage reports are retained as workflow artifacts and published to Codecov for the badge above; the current baseline is informational rather than a merge threshold.

Configuration

A fresh profile ships with no provider addons and no plugin repos enabled — only two hardcoded "official" integrations (streaming-availability lookup, intro/recap timestamps) work out of the box. To get streams, add one or more Stremio-compatible addon URLs and/or community plugin repos in the app's Settings page.

Documentation

  • ARCHITECTURE.md — how the Go backend, Svelte frontend, and Qt shell fit together, the playback data flow, and the open-source/proprietary build-tag split
  • docs/API.md — HTTP endpoint reference
  • docs/TESTING.md — local test commands, CI matrix, coverage, and release gates
  • CONTRIBUTING.md — dev setup and code style for contributors
  • android/README.md — Android app: toolchain setup, emulator, build/install loops, release signing

Community & Support

New contributors are welcome — see CONTRIBUTING.md for dev setup and code style before opening a PR.

Localization

Cove checks message-catalog completeness and scans Svelte UI source for visible, untranslated literals. The source percentage is a static guard rather than a substitute for review; brand names, media-format abbreviations, and URL examples are intentionally excluded.

Language / check Coverage
Deutsch (de) 100.0% (657/657 messages)
English (en) 100.0% (657/657 messages)
Español (es) 100.0% (657/657 messages)
Italiano (it) 100.0% (657/657 messages)
日本語 (ja) 100.0% (657/657 messages)
Português (pt) 100.0% (657/657 messages)
Türkçe (tr) 100.0% (657/657 messages)
UI source audit 100.0% (1246 localized call sites, 0 unlocalized literals)

This table is generated by cd web && npm run i18n:coverage and verified by CI. npm run check fails when catalogs, placeholders, or visible UI literals are invalid.

Star History

Star History Chart

Roadmap / Known Limitations

  • Android & Android TV are experimental — expect rough edges (see Install)
  • macOS is not yet supported — no native build exists
  • Have a request? Open an issue to discuss it

About

A media streaming app for Linux, Windows, Android & Android TV. Discover, track, and stream movies and TV shows — powered by TMDB metadata, Stremio & Nuvio compatible addons & plugins, and a built-in mpv player.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages