andreykaipov / goobs

Go client library for OBS Studio
Apache License 2.0
137 stars 23 forks source link
go go-client obs-studio obs-websocket obs-websocket-go openbroadcaster openbroadcastersoftware websockets

goobs

Protocol Version Documentation Build Status Go Report

Interact with OBS Studio from Go!

installation

To use this library in your project, add it as a module after you've initialized your own:

❯ go mod init github.com/beautifulperson/my-cool-obs-thing
❯ go get github.com/andreykaipov/goobs

usage

The following example connects to the server and prints out some versions.

Check out the docs for more info, or just jump right into the other examples!

package main

import (
    "fmt"

    "github.com/andreykaipov/goobs"
)

func main() {
    client, err := goobs.New("localhost:4455", goobs.WithPassword("goodpassword"))
    if err != nil {
        panic(err)
    }
    defer client.Disconnect()

    version, err := client.General.GetVersion()
    if err != nil {
        panic(err)
    }

    fmt.Printf("OBS Studio version: %s\n", version.ObsVersion)
    fmt.Printf("Server protocol version: %s\n", version.ObsWebSocketVersion)
    fmt.Printf("Client protocol version: %s\n", goobs.ProtocolVersion)
    fmt.Printf("Client library version: %s\n", goobs.LibraryVersion)
}

The corresponding output:

❯ go run _examples/basic/main.go
OBS Studio version: 31.0.0
Server protocol version: 5.5.3
Client protocol version: 5.5.4
Client library version: 1.5.3