Skip to content
Β 
Β 

Latest commit

Β 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Downloads@latest Release Version Badge Issues Badge Closed Issues Badge

GitHub Codeberg AUR Version

Streambert

A cross-platform Electron Desktop App to stream and download any Movie, TV Series or Anime in the World. Zero Ads and Tracking*

truelockmc%2Fstreambert | Trendshift

Logo

Installation

Why Streambert?

  • 🎦 Streaming: Stream any Movie, Anime or TV Series from around the World.
  • πŸ“₯ Downloading: Download anything you want to watch.
  • πŸ“ƒ Subtitles: Download and manage Subtitles.
  • βš™οΈ Customizability: Customize the Interface and Features to your unique needs.
  • πŸ“š Library: Track what you watched, save stuff you want to watch and manage your Downloads.
  • ✨ Trending: Discover new things to Watch every Day.
  • πŸ›‘οΈ Privacy: Completely Ads and Tracker free, forever.
  • ⚑ Speed: Stream faster than any Browser can, download with multithreading.

Explore new Stuff Watch TV Series Watch Movies Watch Anime Without any Ads or Trackers Customize Customize Download Subtitles Download Everything

Stargazers

Streaming

The Application mainly gets Video Streams from VidSrc (you can also Stream from videasy and vidking).

It fetches Information for Images, Info Texts, Search and Homepage from tmdb.


Downloading

You can download those Video Streams because the Program sources Links to their .m3u8 Playlist Files (similar to this Browser Extension).

Once you click 'Download' these Links are used to download the Full Movie/TV Episode using this Program. You can then watch them In-App or take the Files on any Storage Medium you want.


Anime

You can also watch Anime, the App checks if a Movie or Series is an Anime and then sources its Metadata from AniList instead of tmdb.

Media Files for Animes are scraped from AllManga.to (i stole this mechanic from ani-cli). The App directly gets .mp4 Files and doesnt evem show you the AllManga website, you can also download these Files, just like any other Content.

Requirements


Installation

On first launch you'll be prompted to enter your TMDB API key. (Guide on how to get one) It's saved locally, you only need to do this once.

Linux, Manual (.deb / .AppImage / .pacman)

Download the latest .deb .pacman or .AppImage from the Releases page.

# .deb
sudo dpkg -i streambert_*.deb

# Arch Linux (.pacman)
sudo pacman -U streambert-*.pacman

# .AppImage (you can also do it with Gearlever)
chmod +x Streambert-x64.AppImage && ./Streambert-x64.AppImage

Windows

Download the latest Streambert Setup *.exe from the Releases page and run it.

macOS

Download the latest Streambert-*-universal.dmg from the Releases page, open it and drag Streambert to your Applications folder.


Building from Source

  1. Install dependencies:
npm install
  1. Build
npm run dist:win   

or

npm run dist:linux 

or (for Arch Linux)

npm run dist:arch

or (for an AppImage only)

npm run dist:appimage

or (for a .deb only)

npm run dist:deb

or (for a .rpm only)

npm run dist:rpm

or (for macOS)

npm run dist:mac

or (build all platforms at once)

npm run dist

Development (hot reload)

Run the app in development mode with live reload β€” no manual rebuilds:

npm run dev

This starts two processes together:

  1. Vite dev server on http://127.0.0.1:5173 β€” edits to React components/pages/styles hot-reload instantly (component state is preserved).
  2. Electron β€” auto-launched as soon as the dev server is up, loading from the dev server instead of the built dist/ bundle.

Changes to main-process files (index.js, preload.js, popout-preload.js, src/ipc/) automatically restart Electron via electronmon.

If electronmon ever misbehaves (it is only officially tested up to Electron 23, this project uses Electron 40), use the nodemon-based fallback β€” same workflow, different watcher:

npm run dev:fallback

Closing the app window stops the whole dev session (both processes).

Tip

If a dev session was killed abruptly (e.g. closed terminal), a stale electronmon/electron process can linger and block new launches via Electron's single-instance lock. If a new npm run dev opens a black window or exits instantly, close leftover electron.exe / electronmon processes (Task Manager) and run it again.

Useful flags:

  • Auto-open DevTools on launch:
    cross-env ELECTRON_DEVTOOLS=1 npm run dev

Troubleshooting: black window in dev

The app itself is served fine (you can verify by opening http://127.0.0.1:5173 in Chrome β€” the black screen is an Electron rendering issue, not the app). Two things to try:

  1. Disable GPU acceleration β€” some GPUs/drivers show a black main window in dev:
    cross-env ELECTRON_DISABLE_GPU=1 npm run dev
    (The Electron window will also log [dev] GPU acceleration disabled and the terminal will show [dev] loading http://127.0.0.1:5173 ….)
  2. First-load race β€” on a cold start Vite pre-bundles dependencies, which can make the first load fail. Electron now automatically retries the dev-server load every second for ~30s, so just wait a few seconds.

If the terminal shows [boot] app ready and [boot] renderer loaded, the page did load β€” the black screen is a GPU/compositor issue and ELECTRON_DISABLE_GPU=1 should fix it.

Production-style previews (built bundle, no packaging) still work as before:

npm start

Important

If you are building/installing on Arch Linux and encounter errors, you may need these libraries:

  • libcrypt.so.1 error: sudo pacman -S libxcrypt-compat
  • http-parser dependency error: yay -S http-parser (from AUR)

License

This project is open-source software licensed under the GNU General Public License v3.0 (GPL-3.0).

Forks may be created but they MUST stay open-sourced.

Contributing

Everyone is welcome to contribute to this project. Before contributing please make sure to read the Contributing Guidelines and act accordingly.

Privacy Disclaimer

Streambert itself does not collect ANY data. There is no centralized service which the app relies on. However, the streaming sources and github (for downloading updates in-app) may still collect your data.

Streambert has built-in tracker/- and adblocking, but obviously that is not perfect.

Legal Disclaimer

IMPORTANT: This application is for educational and personal use only.

  • Streambert does not host, store, or distribute any copyrighted content
  • All content is sourced from third-party providers and websites
  • Users are solely responsible for ensuring they have legal rights to access any content
  • The developer does not endorse or encourage copyright infringement
  • Users must comply with all applicable laws in their jurisdiction
  • Any legal issues should be directed to the actual content providers
  • This app functions as a search engine aggregator only
  • No copyrighted material is stored on my side

Legal Notice

This application is provided "as is" for educational purposes. The developer:

  • Does not claim ownership of any content
  • Does not profit from copyrighted material in any way
  • Does not control third-party content providers
  • Encourages users to support content creators through legal means

RepoStars

Project Structure
Project Root
β”œβ”€β”€ index.html
β”œβ”€β”€ main.js
β”œβ”€β”€ package.json
β”œβ”€β”€ preload.js
β”œβ”€β”€ vite.config.js
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
β”œβ”€β”€ public
β”‚   β”œβ”€β”€ icon.png
β”‚   β”œβ”€β”€ installer-sidebar.bmp
β”‚   └── logo.svg
β”œβ”€β”€ screenshots
β”‚   β”œβ”€β”€ adblock.png
β”‚   β”œβ”€β”€ anime.png
β”‚   β”œβ”€β”€ api-settings_tmdb.png
β”‚   β”œβ”€β”€ application_tmdb.png
β”‚   β”œβ”€β”€ download.png
β”‚   β”œβ”€β”€ icon.png
β”‚   β”œβ”€β”€ movie.png
β”‚   β”œβ”€β”€ personal-use_tmdb.png
β”‚   β”œβ”€β”€ series.png
β”‚   β”œβ”€β”€ setup.png
β”‚   β”œβ”€β”€ signup_tmdb.png
β”‚   β”œβ”€β”€ subs.png
β”‚   β”œβ”€β”€ token_tmdb.png
β”‚   └── trending.png
└── src
    β”œβ”€β”€ App.jsx
    β”œβ”€β”€ main.jsx
    β”œβ”€β”€ components
    β”‚   β”œβ”€β”€ BlockedStatsModal.jsx
    β”‚   β”œβ”€β”€ CloseConfirmModal.jsx
    β”‚   β”œβ”€β”€ DownloadModal.jsx
    β”‚   β”œβ”€β”€ ErrorBoundary.jsx
    β”‚   β”œβ”€β”€ Icons.jsx
    β”‚   β”œβ”€β”€ KeyboardShortcutsModal.jsx
    β”‚   β”œβ”€β”€ MediaCard.jsx
    β”‚   β”œβ”€β”€ SearchModal.jsx
    β”‚   β”œβ”€β”€ SetupScreen.jsx
    β”‚   β”œβ”€β”€ Sidebar.jsx
    β”‚   β”œβ”€β”€ SubtitleDownloaderModal.jsx
    β”‚   β”œβ”€β”€ TrailerModal.jsx
    β”‚   β”œβ”€β”€ TrendingCarousel.jsx
    β”‚   β”œβ”€β”€ UpdateModal.jsx
    β”‚   └── WindowTitlebar.jsx
    β”œβ”€β”€ ipc
    β”‚   β”œβ”€β”€ allmanga.js
    β”‚   β”œβ”€β”€ blockStats.js
    β”‚   β”œβ”€β”€ downloads.js
    β”‚   β”œβ”€β”€ player.js
    β”‚   β”œβ”€β”€ storage.js
    β”‚   └── subtitles.js
    β”œβ”€β”€ pages
    β”‚   β”œβ”€β”€ DownloadsPage.jsx
    β”‚   β”œβ”€β”€ HomePage.jsx
    β”‚   β”œβ”€β”€ LibraryPage.jsx
    β”‚   β”œβ”€β”€ MoviePage.jsx
    β”‚   β”œβ”€β”€ SettingsPage.jsx
    β”‚   └── TVPage.jsx
    β”œβ”€β”€ styles
    β”‚   β”œβ”€β”€ global.css
    β”‚   └── fonts
    β”‚       β”œβ”€β”€ bebas-neue-regular.woff2
    β”‚       β”œβ”€β”€ dm-sans-300.woff2
    β”‚       β”œβ”€β”€ dm-sans-500.woff2
    β”‚       β”œβ”€β”€ dm-sans-600.woff2
    β”‚       └── dm-sans-regular.woff2
    └── utils
        β”œβ”€β”€ ageRating.js
        β”œβ”€β”€ aniSkip.js
        β”œβ”€β”€ api.js
        β”œβ”€β”€ appearance.js
        β”œβ”€β”€ backup.js
        β”œβ”€β”€ episodeMappings.js
        β”œβ”€β”€ homeLayout.js
        β”œβ”€β”€ storage.js
        β”œβ”€β”€ subtitles.js
        β”œβ”€β”€ updates.js
        β”œβ”€β”€ useBlockedStats.js
        └── useRatings.js

About

A cross-platform Electron Desktop App to stream and download any Movie, TV Series or Anime in the World. Zero Ads and Tracking

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages