Code Docs

StreamUP Product Documentation

Overview

The StreamUP Chapter Marker Manager is your all in one solution for creating and tracking chapter markers in your recordings in OBS. Since creating content on multiple platforms is so important nowadays, this will help you keep track of the moments you want to make videos out of.

There are many different ways you can create chapter markers and annotations:

All of these chapter markers can be exported in various ways:

If you have any feedback or requests for this plugin please share them in the [StreamUP Discord server](https://discord.com/invite/RnDKRaVCEu?).

<aside> <img src="/icons/alert_gray.svg" alt="/icons/alert_gray.svg" width="40px" /> Handy Hint:

Everything in this plugin has a tooltip available so just hover your mouse over any button or box and it will give you an explanation as to what it does.

</aside>

Getting Started


Opening the Chapter Marker Manager docks

To open the dock, in the top left of OBS press ‘Docks’ then you can click both the ‘StreamUP Chapter Marker Manager’ and the ‘StreamUP Chapter Annotations’. This will open the docks.

You can then click and drag the docks to lock them into your specified area in OBS. Or you can just leave them undocked.

<aside> <img src="/icons/alert_gray.svg" alt="/icons/alert_gray.svg" width="40px" /> The StreamUP Chapter Annotations dock will be unusable until you have configured the StreamUP Chapter Marker Manager settings as it requires ‘Export to file’ to be active.

</aside>

Screenshot 2024-06-18 202848.png

Untitled


How to Use

<aside> <img src="/icons/exclamation-mark-double_gray.svg" alt="/icons/exclamation-mark-double_gray.svg" width="40px" /> It is important to note the plugin will only work when a recording is active inside of OBS!

</aside>

Chapter Marker Manager Main UI

  1. If your recording is active then this will turn green and display the current chapter. If recording is not active it will turn red and say ‘Recording not active’.
  2. Enter your chapter name you wish to add. If this is left empty it will use the default chapter name you put in settings.
  3. Create a new chapter marker with the name set above.
  4. Open the StreamUP Chapter Annotations dock.
  5. Open the Settings Menu.
  6. This will give you feedback on what actions are currently happening. This can be if errors occur or you save new chapters.
  7. This will show you all the previous chapters in this current recording, if enabled in settings. The chapter names will not be duplicated if you use the same chapter name twice. It will also make sure they are in the order of most recently used.
    1. Clicking on a chapter name will automatically populate it in the ‘Enter chapter name’ field.
    2. Double clicking on a chapter name will automatically add a new chapter with that name.

Untitled.png

Chapter Annotation UI

  1. Enter your annotation text you wish to add to the export files. Please note you will need to have turned on ‘Export to File’ in the settings.
  2. Create a new annotation with the text provided above.
  3. This will give you feedback on what actions are currently happening. This can be if errors occur or you save new annotations.

Screenshot 2024-06-19 090618.png

Triggering Custom Chapters Via Hotkeys

Please see the settings guide on how to do this.


OBS WebSocket

With the StreamUP Chapter Marker Manager, you can trigger different functions via WebSocket. This means you could get your moderators to add in chapter markers or even have an automated system to add chapter markers if a hype moment happens in your stream. Using the following pieces of code, you will be able to set and get chapter markers as well as setting annotations too.

To do a WebSocket call you will need to use the following template:

{
	"requestType":"CallVendorRequest",
	"requestData": {
		"vendorName":"streamup-chapter-manager",
		"requestType":"Replace this in with your request type",
		"requestData": {}
	}
}

Get Current Chapter Marker

Using this command will return the current name of the chapter that’s active at the moment.

Request

{
	"requestType":"CallVendorRequest",
	"requestData": {
		"vendorName":"streamup-chapter-manager",
		"requestType":"getCurrentChapterMarker",
		"requestData": null
	}
}

Response (if active)

{
  "requestType": "getCurrentChapterMarker",
  "responseData": {
    "chapterName": "Active Chapter Name",
    "success": true
  },
  "vendorName": "streamup-chapter-manager"
}

Response (if inactive)

{
  "requestType": "getCurrentChapterMarker",
  "responseData": {
    "chapterName": "Recording is not active",
    "success": false
  },
  "vendorName": "streamup-chapter-manager"
}

Set Chapter Marker

Using this command will create a new chapter marker with the information provided

Request

You can set the new chapter name and also the chapter source. This can be handy if you want triggers to be more specific such as providing the moderators name who created the marker.

The requestData is not mandatory. If you don’t fill it with “chapterName” or “chapterSource” then it will provide defaults.

<aside> <img src="/icons/alert_gray.svg" alt="/icons/alert_gray.svg" width="40px" /> Defaults:

chapterName = Your default chapter name set in the settings menu

chapterSource = “WebSocket”

</aside>

{
	"requestType":"CallVendorRequest",
	"requestData": {
		"vendorName":"streamup-chapter-manager",
		"requestType":"setChapterMarker",
		"requestData": {
			"chapterName": "Insert Chapter Name Here",
			"chapterSource": "Insert Chapter Source Here"
		}
	}
}

Response (if active)

{
  "requestType": "setChapterMarker",
  "responseData": {
    "message": "Chapter marker added successfully.",
    "success": true
  },
  "vendorName": "streamup-chapter-manager"
}

Response (if inactive)

{
  "requestType": "setChapterMarker",
  "responseData": {
    "message": "ChapterMarkerNotAdded",
    "success": false
  },
  "vendorName": "streamup-chapter-manager"
}

Set Annotation

Using this command will create a new annotation with the information provided

Request

You can set a new annotation to add more context to your chapters

Parts of requestData are mandatory. If you don’t fill it with “annotationText” it will return an error. However annotationSource will provide a default.

<aside> <img src="/icons/alert_gray.svg" alt="/icons/alert_gray.svg" width="40px" /> Defaults:

annotationText= This is mandatory

annotationSource = “WebSocket”

</aside>