Windows-first local playback app for sending media into Zoom through a virtual camera and virtual audio device. The solution contains:
RemoteShare.Desktop: WPF shell with WebView2, tray behavior, native file/folder import, local settings.RemoteShare.Host: local ASP.NET Core host that serves the UI and coordinates playback.RemoteShare.Core: shared media library and playback state logic.
- Windows 10/11
- .NET 8 SDK
- Python 3 available on
PATH ffprobeavailable onPATH- OBS Virtual Camera
- VB-CABLE or another compatible virtual audio device
dotnet build ZoomRemoteShare.sln
dotnet run --project src\RemoteShare.Desktop\RemoteShare.Desktop.csprojThe desktop app starts the local host on http://127.0.0.1:5015/ and opens the embedded UI automatically.
- The host is local-only and now requires a per-run access token for API calls.
- The desktop shell passes that token via headers for native imports and via a bootstrap URL for the embedded browser.
- Imported files and folders must resolve inside the configured library root or the remembered sources stored in
%AppData%\ZoomShareRemote\desktop-settings.json. - CORS is restricted to
localhostand127.0.0.1on the local host port.
Settings are stored in %AppData%\ZoomShareRemote\desktop-settings.json.
libraryRootPath: optional base library folder scanned recursively on host start.preferredAudioDeviceContains: render-device name hint, defaultCABLE Input.rememberedSources: file and folder imports that remain available across restarts.
scripts\install-vb-cable.ps1: downloads and launches the VB-CABLE installer.scripts\preview-virtual-camera-live.ps1: previews the OBS Virtual Camera feed.scripts\preview-virtual-mic-live.ps1: previews a virtual mic feed. Override device names with-DeviceNames.scripts\remove-audiorelay.ps1: removes AudioRelay if legacy virtual devices are still installed.
dotnet test ZoomRemoteShare.sln