obs-websocket-dotnet
5.7.0
dotnet add package obs-websocket-dotnet --version 5.7.0
NuGet\Install-Package obs-websocket-dotnet -Version 5.7.0
<PackageReference Include="obs-websocket-dotnet" Version="5.7.0" />
<PackageVersion Include="obs-websocket-dotnet" Version="5.7.0" />
<PackageReference Include="obs-websocket-dotnet" />
paket add obs-websocket-dotnet --version 5.7.0
#r "nuget: obs-websocket-dotnet, 5.7.0"
#:package obs-websocket-dotnet@5.7.0
#addin nuget:?package=obs-websocket-dotnet&version=5.7.0
#tool nuget:?package=obs-websocket-dotnet&version=5.7.0
obs-websocket-dotnet
Official .NET library (written in C#) to communicate with an obs-websocket server.
This library is available on the NuGet gallery
See the TestClient project for a working example.
Supported target frameworks: netstandard2.1 and net10.0.
New in v5.7.0
Brings the library up to date with the obs-websocket 5.7.0 protocol, and adds first-class .NET 10 support.
- .NET 10 support — the package now multi-targets
netstandard2.1andnet10.0; existing consumers on older TFMs are unaffected, .NET 10 apps get a first-party asset. Tests andTestClientwere retargeted from net9 to net10 - Event subscriptions — control which events you receive via
EventSubscriptions, including the four high-volume events (InputVolumeMeters,InputActiveStateChanged,InputShowStateChanged,SceneItemTransformChanged) which now require explicit opt-in - 8 new events:
CustomEvent,InputSettingsChanged,SourceFilterSettingsChanged,RecordFileChanged,ScreenshotSaved,CanvasCreated,CanvasRemoved,CanvasNameChanged - 17 new requests:
- Outputs (generic, works on any output by name):
GetOutputList,GetOutputStatus,ToggleOutput,StartOutput,StopOutput,GetOutputSettings,SetOutputSettings - Recording:
SetRecordDirectory,SplitRecordFile,CreateRecordChapter - Inputs:
GetInputDeinterlaceMode,SetInputDeinterlaceMode,GetInputDeinterlaceFieldOrder,SetInputDeinterlaceFieldOrder(eachSet*also has a convenience overload taking a typed enum) - Other:
GetSourceFilterKindList,GetSceneItemSource,GetCanvasList
- Outputs (generic, works on any output by name):
- Fixed:
GetInputAudioTracksalways returnedfalsefor every track (the response'sinputAudioTracksfield wasn't being unwrapped before deserializing) OpenSourceProjectorandOpenVideoMixProjectorare now declared onIOBSWebsocket(they were missing)- Greatly expanded test suite: request/response round-trip coverage plus conformance gates that fail the build if the library drifts from the protocol spec again
New in v5.0.1
- Fixes for deserialization issues in MediaInputStatus
- Allow OBSVideoSettings to be updated via the API
- New ILogger support instead of writing to console
- New UnsupportedEvent event
- Updated to netstandard 2.1
Please report issues/bugs via the Issues Tracker or discuss in our Discord
Dev Discussions
Discord: Discuss in #developers-chat in Bar Raiders
EOL for v4.x branch
NOTE: We will no longer be updating the v4.x branch as we move towards v5.0 (which is NOT backwards compatible).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Newtonsoft.Json (>= 13.0.4)
- Websocket.Client (>= 5.1.2)
-
net10.0
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Newtonsoft.Json (>= 13.0.4)
- Websocket.Client (>= 5.1.2)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on obs-websocket-dotnet:
| Package | Downloads |
|---|---|
|
Obs.v5.WebSocket.Reactive
This wraps the default obs v5 websocket with observables to use as well as the events |
|
|
WeatherElectric.OBSBridge
Bridge between Unity and OBS |
GitHub repositories (3)
Showing the top 3 popular GitHub repositories that depend on obs-websocket-dotnet:
| Repository | Stars |
|---|---|
|
RiddleTime/Race-Element
Solutions for Driving and Flight Simulators
|
|
|
csharpfritz/Fritz.StreamTools
Handy tools for managing my live stream, built with ASP.NET Core
|
|
|
nuttylmao/NOOBS-CMDR
A tool to create macros for OBS
|
| Version | Downloads | Last Updated |
|---|---|---|
| 5.7.0 | 3,283 | 9/13/2026 |
| 5.0.1 | 85,021 | 4/22/2025 |
| 5.0.0.3 | 37,380 | 10/28/2022 |
| 5.0.0.2 | 4,783 | 9/27/2022 |
| 5.0.0.1 | 1,830 | 9/21/2022 |
| 5.0.0 | 1,541 | 9/5/2022 |
| 5.0.0-Beta1 | 663 | 9/2/2022 |
| 4.9.1 | 8,508 | 12/7/2021 |
| 4.9.1-Beta1 | 992 | 7/15/2021 |
| 4.9.0 | 7,697 | 4/23/2021 |
| 4.9.0-Beta1 | 933 | 3/18/2021 |
| 4.8.1 | 4,156 | 11/24/2020 |
| 4.8.0 | 2,449 | 9/1/2020 |
| 4.8.0-Beta1 | 1,040 | 8/13/2020 |
| 4.2.0-beta3 | 5,079 | 10/23/2017 |
| 4.2.0-beta2 | 1,870 | 10/23/2017 |
| 4.2.0-beta | 1,866 | 10/2/2017 |
| 1.0.2-alpha | 1,743 | 3/16/2017 |
What's new in v5.7.0
* Brings the library up to date with the obs-websocket 5.7.0 protocol: 8 new events (CustomEvent, InputSettingsChanged, SourceFilterSettingsChanged, RecordFileChanged, ScreenshotSaved, CanvasCreated, CanvasRemoved, CanvasNameChanged) and 17 new requests (generic Outputs, recording directory/split/chapter, input deinterlacing, GetSourceFilterKindList, GetSceneItemSource, GetCanvasList)
* Event subscription control via EventSubscriptions, including opt-in for high-volume events
* Multi-target netstandard2.1 and net10.0; tests and TestClient moved from net9 to net10
* Fixed GetInputAudioTracks always returning false for every track
* IOBSWebsocket now declares OpenSourceProjector, OpenVideoMixProjector, and every event/request added above (implementers of IOBSWebsocket will need to add these members)
* Greatly expanded test suite: request/response round-trip coverage plus conformance gates that catch drift from the protocol spec