An open API service indexing awesome lists of open source software.

https://github.com/zaarrg/stremio-desktop-v5

🐚 WebView2 and Qt6-based shell, desktop app for Stremio with latest web ui support
https://github.com/zaarrg/stremio-desktop-v5

qt6 stremio stremio-addon stremio-client stremio-server stremio-web stremio-webplayer webview2

Last synced: 2 months ago
JSON representation

🐚 WebView2 and Qt6-based shell, desktop app for Stremio with latest web ui support

Awesome Lists containing this project

README

        


Stremio Web Desktop Logo



🌌 Stremio Desktop
Community


Stremio Desktop app with the latest Stremio web UI v5, built with WebView2




C++

WebView2

MPV

Win32




Scoop

Chocolatey

Streaming

Torrents

🌟 Features



  • πŸš€ Latest Technology: Built with WebView2 to provide the newest features and best performance

  • 🌐 Latest Web Ui: Always up-to-date with Stremio Web v5

  • 🎞️ Native Playback: Integrated Player for native 4K playback, hardware decoding, and fastest video performance

  • πŸ” Video Upscaling: Upscaling support for anything mpv supports

  • πŸŽ₯ Full MPV Support: Full MPV support use any hwdec, gpu-api or gpu-context like d3d, opengl and vulkan

  • 🌈 HDR Support: Full HDR Support thanks to fully supported mpv and any other mpv feature

  • πŸ”Š Dolby Atmos Support: Support for all mpv advanced audio features.

  • πŸ–ΌοΈ Picture in Picture: Picture in Picture Mode Support

  • πŸŒ‘ Dark Mode: Windows Dark mode support

  • πŸ–ΌοΈ Thumbnail Preview: ThumbFast support to allow for preview thumbnails when seeking

  • πŸ“ Local File Playback: Play any file MPV and ffmpeg supports, just use open with 'stremio' or drag and drop

  • πŸ”‘ Local Subtitles: Add any Subtitle file using drag and drop while playing a video

  • 🎨 Advanced Subtitles Styles: Style subtitles any way you like using mpv configuration

  • πŸ“Œ Advanced Auto Selection: Select multiple default Subtitle, Audio tracks as well as Subtitle Keywords to prioritize and filter out unwanted languages

  • πŸŒ€ Torrent Support: Play any local .torrent file or any magnet: link

  • πŸ“Ί Chromecast Support: Cast Videos to your Chromecast

  • βž• Easy Addon Install: Just use the install Button like stremio v4, no need to copy paste urls

  • πŸ’Ό Portable Version: Fully portable version including WebView2.

  • βš™οΈ App Settings: Customize options like CloseOnExit, PauseOnMinimize, and PauseOnLostFocus and more.

  • πŸ”„ Built-in Autoupdate: Built-in autoupdater. No need to always download from GitHub.

  • πŸ“¦ Scoop and Chocolatey: Support for Scoop and Choco for ease of use.


Stremio Web Desktop Screenshot

## 🎭 Comparison

- A side-by-side visual comparison of various features and enhancements in Stremio Desktop v5. Due to this being screenshots, HDR appears over-exposed.


Upscaler Comparison



Stremio Web Desktop Screenshot



Anime4k + Auto HDR vs Offical Stremio v5.


Thumbnail Previews



Descriptive Alt Text



Best on local files using thumbfast. Size can be adjusted.

## πŸ”§ Installation

1. πŸͺŸ **Windows x64 and x86**
1. πŸ“₯ **Installer**
- **Install using the** `Installer`. Download `stremio-5.0.0-x64.exe` or `stremio-5.0.0-x86.exe` and run it.
2. πŸ’Ό **Portable Version**
- **Install using the** `Archive`. Download `stremio-5.0.0-x64.7z` or `stremio-5.0.0-x86.7z` extract it and run `stremio.exe`
3. πŸ₯„ **Scoop.sh**
```shell
# Install
scoop bucket add zarg https://github.com/zaarrg/scoop
scoop install stremio-desktop-v5
# Update
scoop update zarg
scoop update stremio-desktop-v5
# Uninstall
scoop uninstall stremio-desktop-v5
```
4. 🍫 **Chocolatey**
```shell
# Install
choco install stremio-desktop-v5 -y
# Update
choco upgrade stremio-desktop-v5 -y
# Uninstall
choco uninstall stremio-desktop-v5 -y
```

> **⏳ Note:** If you have stremio-desktop v4.x.x installed make sure to uninstall it first. Otherwise there might be issues.

2. πŸš€ **Linux, macOS**
- Coming soon!

> **⏳ Note:** Linux and Mac release will take considerable time as they need their own build with os specific technology's

## πŸ” **Mpv Upscalers**

- πŸŽ₯ **[Anime4k](https://github.com/bloc97/Anime4K)**
- βœ… Included by default.
- πŸ”’ Use `CTRL+1` - `CTRL+6` to enable shaders.
- ❌ Use `CTRL+0` to disable.

- 🎨 **[AnimeJaNai](https://github.com/the-database/mpv-upscale-2x_animejanai)**
- ❌ Not included by default.
- πŸ“₯ Download from the **Stremio-Desktop-v5** [release tab](https://github.com/Zaarrg/stremio-desktop-v5/releases/5.0.0-beta.7) the `stremio-animejanai-3.x.x.7z` for Stremio and drop the content of the 7z into `%localAppData%\Programs\LNV\Stremio-5\` and `replace all`
- πŸ› οΈ **Changes made:**
- Removed `mpvnet.exe` as Stremio is used as the player.
- Adjusted `mpv.conf` to work with Stremio.
- Adjusted `input.conf` to work with Stremio.
- ⌨️ **Possible Keybindings**
- 🎬 `CTRL+J` Show Upscaler Status
- πŸ› οΈ `CTRL+E` Open AnimeJaNai ConfEditor
- ❌ `CTRL+0` Disable Upscaling
- πŸ”’ `SHIFT+1` - `SHIFT+3` Select Quality, Balanced or Performance Profiles
- βš™οΈ `CTRL+1` - `CTRL+9` Switch between Custom Profiles
- πŸ”— For more, check [AnimeJaNai](https://github.com/the-database/mpv-upscale-2x_animejanai)

> **⏳ Note:** When using AnimeJaNai on first playback Stremio will be unresponsive and a console will open to build the model via e.g. TensorRT. You will need to wait until the console closes for playback to start. This happens only once per model.

- πŸš€ **Nvidia RTX and Intel VSR Scaling**
- βœ… Supported by using `mpv.conf`.
- ✍️ Modify in `%localAppData%\Programs\LNV\Stremio-5\` the ``portable_config/mpv.conf`` and add the line ``vf=d3d11vpp=scale=2:scaling-mode=nvidia`` more details [here](https://www.reddit.com/r/nvidia/comments/1foyl4n/mpv_player_v0390_adds_rtx_video_super_resolution/)

## πŸ” **Mpv Addons**

- πŸŽ₯ **[ThumbFast](https://github.com/po5/thumbfast)**
- πŸ”§ Go in the `Stremio-Dekstop-v5` Repo to ``utils/mpv/thumbfast`` or [direct-link](https://github.com/Zaarrg/stremio-desktop-v5/tree/webview-windows/utils/mpv/thumbfast) and download ``thumbfast.7z``. Drag and Drop the archive contents into ``%localAppData%\Programs\LNV\Stremio-5``
- πŸ“ Works best with local files as there is no **network bottleneck**. U can `Drag and Drop` any local file into **Stremio** or right click ``Open With > Stremio``

> **⏳ Note:** For more details visit [mpv-portable-configs](https://github.com/Zaarrg/stremio-desktop-v5/blob/webview-windows/utils/mpv/README.md)

## ✨ **Stremio App**

- πŸ“ **Local Files**
- Play any **local file** or **torrent** by `drag and dropping` or ``Open With > Stremio`` that mpv and ffmpeg support
- Play any **magnet** by `opening it via the browser` in Stremio or `copy pasting` it into the **Search Bar**

- 🧩 **Browser Extensions**
- Add any Browser Extension to Stremio by dropping the ``unpacked`` Extension into ``portable_config/extensions``
- On Start Extensions from ``portable_config/extensions`` are loaded.
- πŸ‘‰ **To install extension:**
1. Get the ``unpacked`` Extensions from``%localAppData%\Microsoft\Edge\User Data\Default\Extensions``.
2. Here look for the `mainfest.json` for example ublock `{string-id}/1.62.0_0/manifest.json` as all the content beside is the extension
3. Now we can copy the contents of ``{string-id}/1.62.0_0`` to ``%localAppData%\Programs\LNV\Stremio-5\portable_config\extensions\ublock``
4. Important is that the ``mainfest.json`` is located directly in ``portable_config\extensions\ublock``
5. **Done**. Restart app and addons will be loaded. If loading fails check ``portable_config\errors-{date}.txt``
- **Supported Extensions**: Some extension need support added manually. These extension can be downloaded [here](https://github.com/Zaarrg/stremio-desktop-v5/tree/webview-windows/extensions).

- βš™οΈ **App Settings**
- **All App Settings** can be adjusted with ``portable_config\stremio-settings.ini``
- Some options can be set by `right-clicking` on the **tray icon** as well.
- ⌨️ **Possible Settings**
- ❌ ``CloseOnExit`` Close app on exit instead of minimized to tray
- πŸŒ“ ``UseDarkTheme`` Toggle dark theme
- πŸ“ ``ThumbFastHeight`` Enable thumbfast and set the thumbfast image height. This adjust the offset of the top left corner of the thumb. Meaning `100` will move the top left corner 100px up. `0` disables thumbfast
- 😴 ``PauseOnMinimize`` Pause playback on window minimize
- πŸ‘€ ``PauseOnLostFocus`` Pause playback on window loses focus
- πŸ” ``AllowZoom`` Allow zoom via `pinch action` or ``CTRL+Scroll``

- ❌ **App Errors**
- If the app does not start and instantly closes, check the error log in ``portable_config\errors-{date}.txt``
- ⚠️ **Common Issues**
- ❗ [WebView2](https://developer.microsoft.com/de-de/microsoft-edge/webview2/#download) not installed – Installed by default using the installer but may have failed
- 🌎 Unreachable Web UI. Make sure you can reach the web ui hosted [here](https://zaarrg.github.io/stremio-web-shell-fixes/).
- βš™οΈ Invalid MPV configuration like ``mpv.conf``, ``input.conf`` or ``scripts``
- πŸ“„ Invalid ``stremio-settings.ini``
- 🧩 Invalid ``extensions``

> **⏳ Note:** A default stremio-settings.ini can be found [here](https://github.com/Zaarrg/stremio-desktop-v5/blob/webview-windows/utils/stremio/stremio-settings.ini)

## πŸŽ›οΈ **Mpv Configuration**

Enhance your Stremio experience by customizing the MPV player settings. Below are the key configuration files and guidelines to help you get started:

- πŸ“ **`mpv.conf` Location**
- The ``mpv.conf`` file can be found in the following location:
- **Installation Path:** ``%localAppData%\Programs\LNV\Stremio-5\portable_config\mpv.conf``
- **Shaders Folder:** Located within the installation directory ``..\Stremio-5\portable_config\shaders``.
- **Latest Portable Config:** Latest portable config can be found [here](https://raw.githubusercontent.com/Zaarrg/stremio-desktop-v5/webview-windows/utils/mpv/Default%20Portable%20Config.7z).

- **🎹 Usage example of `mpv.conf` for DV Content:**
```shell
# MPV Conf for DV Content
vo=gpu-next
gpu-api=vulkan
target-colorspace-hint=yes
```

> **⏳ Note:** Any other configuration files can be just dropped into ``%localAppData%\Programs\LNV\Stremio-5\portable_config`` as this is the mpv ``config-dir`` like ``input.conf``. ``scripts`` or ``scripts-conf``

- **🎹 Usage example in `input.conf` using [Anime4k](https://github.com/bloc97/Anime4K):**
```shell
# Optimized shaders for higher-end GPU
CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_Restore_CNN_M.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl;~~/shaders/Anime4K_AutoDownscalePre_x2.glsl;~~/shaders/Anime4K_AutoDownscalePre_x4.glsl;~~/shaders/Anime4K_Restore_CNN_M.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"

CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
```
> **⏳ Note:** Some keys might not work as key presses are converted from js event.codes to literal values for mpv

- **πŸ”‘ Subtitle Customization:**
- Subtitles can be full customized in the ``mpv.conf`` by adding the following:
```shell
# Adjust as needed -
sub-font="Comic Sans MS"
osd-font="Comic Sans MS"
osd-font-size=43
sub-font-size=43
sub-color=#e1fe00
sub-font-size=43
sub-color=#ffffff
sub-font-size=43
sub-border-color=#000000
sub-border-size=2
sub-shadow-offset=1
sub-shadow-color=#000000
sub-spacing=0
sub-margin-y=41
sub-line-spacing=0
ass-line-spacing=0
# To overwrite .ass subs use sub-ass=no or just use F2 to cycle subtitle modification levels
```
- Stremio by default overwrites the following:
```shell
# These 3 options are set using the web ui under the settings page
'subtitlesTextColor': 'sub-color',
'subtitlesBackgroundColor': 'sub-back-color',
'subtitlesOutlineColor': 'sub-border-color',

# Affected mpv sub settings by this are:
sub-color
sub-back-color # + Alias sub-shadow-color
sub-border-color # + Alias sub-outline-color

# All these need to be set via the web ui instead
```

## βš™οΈ **Start Arguments**
Use these extra arguments when launching the application:

| Argument | Example | Description |
|-----------------------------|-------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
| --webui-url= | --webui-url=https://web.stremio.com/ | Loads web ui from `https://web.stremio.com/` |
| --streaming-server-disabled | | Disable auto start of `streamio-server`, Default behaviour in prod
| --autoupdater-force-full | | Forces Autoupdate to always do a `full-update` rather than `partial` |
| --autoupdater-endpoint= | --autoupdater-endpoint==https://verison.mydomain.com/ | Overrides default checking endpoint for the autoupdater |

> **⏳ Note:** By default will use as ``webui-url`` the [stremio-web-shell](https://github.com/Zaarrg/stremio-web-shell-fixes) web-ui hosted [here](https://zaarrg.github.io/stremio-web-shell-fixes/#/) which includes fixes to run smoothly as shell with qt6 and WebView2

## πŸ“š **Guide / Docs**
If you want to build this app yourself, check the β€œ[docs](https://github.com/Zaarrg/stremio-desktop-v5/tree/master/docs)” folder in this repository for setup instructions and additional information.

## ⚠️ **Disclaimer**
This project is not affiliated with **Stremio** in any way.

This fork is provided solely for educational and lawful use. **It does not support piracy or any form of copyright infringement.**
It is the user’s responsibility to ensure that any content accessed is fully compliant with the DMCA and all applicable copyright laws.
The project maintainers do not condone or support any illegal activities.

## 🀝 **Support Development**
If you enjoy this project and want to support further development, consider [buying me a coffee](https://ko-fi.com/zaarrg). Your support means a lot! β˜•


⭐ Made with ❀️ by Zaarrg ⭐