Advanced Scene Switcher

Advanced Scene Switcher 1.29.2

Warmuptill

Active Member
Thanks for the reply. I don't see the "plugins" folder under the Application Support/obs-studio folder. See screen shot... I believe I have given all necessary permissions to OBS in the Mac settings... not sure what to try...
In that case I think the *.pkg installer was not able to install the required files.
Can you try running it again?

If that also does not create the required files / folders I think you might have to manually install them using the *.zip file.
Afterwards you will have to open the terminal and run this command, as otherwise OBS will not be able to start up:

Code:
codesign --force --deep --sign - ~/Library/Application\ Support/obs-studio/plugins/advanced-scene-switcher.plugin
 

dcchapman7

New Member
In that case I think the *.pkg installer was not able to install the required files.
Can you try running it again?

If that also does not create the required files / folders I think you might have to manually install them using the *.zip file.
Afterwards you will have to open the terminal and run this command, as otherwise OBS will not be able to start up:

Code:
codesign --force --deep --sign - ~/Library/Application\ Support/obs-studio/plugins/advanced-scene-switcher.plugin
Thank you for the follow up, I actually ran into a problem this morning with the OBS NDI plug in not responding (I hadn’t tried it since upgrading to OBS 31 to get advanced scene switched to work) and so I uninstalled and reinstalled OBS and reinstalled both the NDI plug in and the advanced scene switched plug in and now both are functioning! Thank you again for your time and support!
 

Warmuptill

Active Member
Is there a way to detect low bitrate from an srt source to trigger something?
I don't think so, but I am also not sure which source type you are referring to exactly.
Can you provide more information? (Sorry if it should be obvious)
Then I will check if there is a way to detect such scenarios somehow.
 

chasemetv

New Member
I don't think so, but I am also not sure which source type you are referring to exactly.
Can you provide more information? (Sorry if it should be obvious)
Then I will check if there is a way to detect such scenarios somehow.
Okay, I saw someone say there was on another forum somewhere. It's a media source, with the input as an srt:// listener. Input format as mpegts. I've been using if/ifnot video source has no output to auto swap scenes when they're on or off, and it works incredibly well. Was just curious if there was a bitrate option, for like a low bitrate warning or something.
 

Hafopositron

New Member
This might sound odd, but is there any way to check which audio device is being used by an audio source using this plugin? I was hoping to use it to warn me when OBS loses my audio device and changes it to [Device not connected or not available].
 

Warmuptill

Active Member
This might sound odd, but is there any way to check which audio device is being used by an audio source using this plugin? I was hoping to use it to warn me when OBS loses my audio device and changes it to [Device not connected or not available].
Assuming you are referring to "Audio Input Capture" sources I guess you could *try* something like this to assign the currently selected device to a variable.
1741776312871.png

Although I am not sure if the how exactly the settings value behaves if the device is not present / if it is present.
So, you will probably have to experiment a bit / it might not really work.

Okay, I saw someone say there was on another forum somewhere. It's a media source, with the input as an srt:// listener. Input format as mpegts. I've been using if/ifnot video source has no output to auto swap scenes when they're on or off, and it works incredibly well. Was just curious if there was a bitrate option, for like a low bitrate warning or something.
Unfortunately, I was not able to find anything helpful in the "Media Source" implementation.
There doesn't seem to be a signal and the "media state" also never changes in such scenarios, if I am not mistaken.

So, the "Video" condition check is likely still your best option.
 

chasemetv

New Member
Assuming you are referring to "Audio Input Capture" sources I guess you could *try* something like this to assign the currently selected device to a variable.
View attachment 112061
Although I am not sure if the how exactly the settings value behaves if the device is not present / if it is present.
So, you will probably have to experiment a bit / it might not really work.


Unfortunately, I was not able to find anything helpful in the "Media Source" implementation.
There doesn't seem to be a signal and the "media state" also never changes in such scenarios, if I am not mistaken.

So, the "Video" condition check is likely still your best option.
Appreciate it. The video check is working perfectly anyway, I don't need to get fancier lol.
 

Hafopositron

New Member
Assuming you are referring to "Audio Input Capture" sources I guess you could *try* something like this to assign the currently selected device to a variable.

Although I am not sure if the how exactly the settings value behaves if the device is not present / if it is present.
So, you will probably have to experiment a bit / it might not really work.
Unfortunately the device id didn't change when things got unplugged. Thanks for trying though.
 

yukon92

Member
Can anyone point me in the right direction on how to use the "Extract json field with name" feature in the Variable selection?

1741838737279.png


I would like to pass some variables from 1 OBS instance to another, maybe write them to the global data realm with ADVss, and then read them with a macro. Wondering if this could be made to do what I'm trying. So use a websocket command (example below) in ADVss, to write the value of 5 into "TestSlot" and read that value perhaps in some way with the above feature? Maybe there's an easier way to do pass variables between different OBS instances?

"requestData": {
"realm": "OBS_WEBSOCKET_DATA_REALM_GLOBAL",
"slotName": "TestSlot",
"slotValue": "5"
},
"requestId": "31",
"requestType": "SetPersistentData"
},
 

Warmuptill

Active Member
Can anyone point me in the right direction on how to use the "Extract json field with name" feature in the Variable selection?

View attachment 112080

I would like to pass some variables from 1 OBS instance to another, maybe write them to the global data realm with ADVss, and then read them with a macro. Wondering if this could be made to do what I'm trying. So use a websocket command (example below) in ADVss, to write the value of 5 into "TestSlot" and read that value perhaps in some way with the above feature? Maybe there's an easier way to do pass variables between different OBS instances?

"requestData": {
"realm": "OBS_WEBSOCKET_DATA_REALM_GLOBAL",
"slotName": "TestSlot",
"slotValue": "5"
},
"requestId": "31",
"requestType": "SetPersistentData"
},
The "extract json field with name" action will read the current value of the variable and, if it is a valid json object, check for a matching key with a given name.
If such a key was found, the corresponding value will be assigned to the variable as its new value.



To transfer variable values between OBS instances you could use macros like this:
  • Receive a variable value:
    1741886590241.png
  • Send a variable value:
    1741886113609.png


I have not encountered [B]OBS_WEBSOCKET_DATA_REALM_GLOBAL[/B] before.
I don't think there is an easy way to access those values from the advanced scene switcher at the moment.

Hope that helped - Let me know if you have further questions! :)
 

Warmuptill

Active Member
This is something I really need help with, as it is one of the things I still have not figured.

Anyone know how to do this??
You might be able to achieve this using OBS websocket vendor events.
I had previously described this here.
Unfortunately, my experience with JavaScript / TypeScript is very limited.
You can find an example how to send Advanced Scene Swwitcher OBS websocket vendor requests in the stream deck plugin for Advanced Scene Switcher using obs-websocket-js version 5.0.6:

Just note that in the above the example the message is "StreamDeckKeyEvent" while you probably want to use "AdvancedSceneSwitcherMessage" if you are intending to use these types of actions / conditions.

View attachment 111636

Note that it is also possible to receive obs websocket vendor "events" from the Advanced Scene Switcher, if you want to "send out" a message from the plugin to your JS application.

The vendor event name would be "AdvancedSceneSwitcherEvent" in this case and it would correspond to these conditions / actions:

View attachment 111637

The StreamDeck plugin also has an example on how to handle vendor events:

(Note that in the above example "AdvancedSceneSwitcherStarted" and "AdvancedSceneSwitcherStopped" are being demonstrated instead of "AdvancedSceneSwitcherEvent")

A few more examples regarding the general structure of the messages can be found here in the wiki:

I hope that helped!
And sorry for not replying here in such a long time!
Let me know if you need more information / something was not clear. :)
 

Warmuptill

Active Member

Hotdogyu

New Member
2025-03-20 20;32;14.PNG
2025-03-20 20;32;18.PNG


Hello, I have some question about live streaming

I am using this plugin to live stream YouTube with content I created (pre-recorded).

1. What exactly does 'repeat' do here?

2. And after running YouTube Live with those settings, when the live stream ends, can I continue YouTube Live streaming with only OBS Studio without going through YouTube Studio?
 

Warmuptill

Active Member
1. What exactly does 'repeat' do here?
Basically it "moves" the target date forward X amount of time once the date matches.

So if you check that option and select "Repeat every hour on date match", it will first match at 15:52, then at 16:52, then at 17:52, and so on...

2. And after running YouTube Live with those settings, when the live stream ends, can I continue YouTube Live streaming with only OBS Studio without going through YouTube Studio?
Unfortunately, I have no experience streaming to YouTube.
 

AaronD

Active Member
2. And after running YouTube Live with those settings, when the live stream ends, can I continue YouTube Live streaming with only OBS Studio without going through YouTube Studio?
YouTube seems to need some interaction with a browser before it can start another stream. Probably an anti-spam / anti-bot thing.

I manage my rigs with scripts, instead of starting everything manually, 'cause I *know* I'm going to forget something, and then other things will adapt to that one thing missing and forget what they were supposed to do... So I just toss a browser into that script too, already pointed at YouTube's dashboard URL. Problem solved.
 

StefenTower

Member
I really like how I can use Advanced Scene Switcher to set up projections. But I'm wondering... how can I "unproject"? Like, when I stop recording, I want to retract a projection. Is that possible?
 
Top