On a fresh install the app opens the Hydrus server settings first. Add your host, port, and API key there, test the connection, then save the server before browsing the library. Playback itself is always external, so actual media launch still depends on the platform-specific player flow below.
`npm start` now builds the app and serves the production output, which is the safer default for devices like Raspberry Pi. Use `npm run dev` only when you specifically want the Vite development server and live reload.
You can also add or edit servers entirely from Settings inside the app. Nothing is preconfigured on first launch, so you enter the Hydrus connection details yourself.
Browsers cannot attach custom Hydrus API headers to direct media URLs. If your Hydrus setup requires header-based authentication for file access, put a trusted reverse proxy in front of it or provide playable URLs another way.
npm run setup:mpv-handler -- --root /path/to/extracted/mpv-handler-linux-amd64
```
On Linux the helper copies the binary and desktop files into `~/.local`, writes `config.toml`, and runs `xdg-mime` for both protocol handlers.
### Android
Install `mpv-android` (`is.xyz.mpv`). No extra handler setup is needed.
### iPhone / iPad
Install VLC for iOS. The app sends playback to `vlc-x-callback://` automatically.
### macOS desktop
The app can still browse Hydrus and demo content on macOS, but this repo does not currently automate `mpv-handler://` registration for desktop macOS. If you already have a compatible custom protocol handler installed, the desktop playback flow will use it. Otherwise, use another supported playback platform for now.
## Optional userscript for direct media URLs
If you want direct file loads in the browser to jump into `mpv` before the page player starts, install the userscript served by this app:
It only activates on `localhost`, loopback, RFC1918 LAN IPs, and `.local` or `.lan` hosts. On desktop it redirects to `mpv-handler://...`; on Android it redirects to the `mpv` app through `intent://...`.