Skip to content

Instantly share code, notes, and snippets.

@iamkirkbater
Last active December 8, 2023 22:07
Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iamkirkbater/ba6278d0ac6d695cb8c6c5fc309ba210 to your computer and use it in GitHub Desktop.
Save iamkirkbater/ba6278d0ac6d695cb8c6c5fc309ba210 to your computer and use it in GitHub Desktop.
Launches OBS, starts the virtual camera, and then minimizes the window.
on run {input, parameters} -- remove this line if running in Script Editor and not with Automator
tell application "OBS" to activate
tell application "System Events"
tell process "OBS"
set frontmost to true
if name of every menu item of menu "Tools" of menu bar 1 contains "Start Virtual Camera" then
click menu item "Start Virtual Camera" of menu "Tools" of menu bar 1
end if
click (first button of window 1 whose role description is "minimize button")
end tell
end tell
end run -- remove this line if running in Script Editor and not with Automator
@RayNichol
Copy link

RayNichol commented Mar 29, 2021 via email

@iamkirkbater
Copy link
Author

@RayNichol - Since the script is now adding new permissions (keystrokes instead of menu clicks) you'll probably need to add the appropriate permissions in your Security Preferences. I'm not sure off the top of my head what that would be but it's probably something like keyboard control or something along those lines.

@RayNichol
Copy link

RayNichol commented Mar 29, 2021 via email

@OBSer1
Copy link

OBSer1 commented Mar 29, 2021

Hi Kirk, It was strange as it did work the first time I run it with 'keystroke' but then didn't. Have just started doing a re-install of system anyway as I was having some other glitches.

I had the same issue. It’s the one under accessibility.
note ChoPraTs comment:
Edit: It works! I just needed to delete the script/app from Preferences/Security/Privacy/Accessibility and add it there again. Done!

@RayNichol
Copy link

RayNichol commented Mar 30, 2021 via email

@lucky13820
Copy link

Great, thanks, the hotkey solution works.

@slln
Copy link

slln commented Sep 19, 2021

I got it to work in the script! Im new to AppleScript and this is my first time on github so sorry if my lingo isn't worded right.

you have to set a hotkey to start virtual camera in OBS to F12.
then add the following to your code:
key down 63 -- fn
key code 111 -- f12

Also, I have made mine to do the following:
Open OBS
Start Virtual Camera
Open Multiview Windowed
Minimize main window
Open Zoom

Heres my full script for Script Editor:

tell application "OBS" to activate
tell application "System Events"
tell process "OBS"
set frontmost to true
key down 63 -- fn
key code 111 -- f12
if name of every menu item of menu "View" of menu bar 1 contains "Multiview (Windowed)" then
click menu item "Multiview (Windowed)" of menu "View" of menu bar 1
end if
click (first button of window 2 whose role description is "minimize button")
end tell
tell application "zoom.us" to activate
end tell

Thank you!
For those that want the very basic open, start vitural cam, then minimize and have, like me, little knowledge I managed to adapt the script above to the bare minimum need:

(remember 1st to activate F12 in settings>shortcuts of OBS)

tell application "OBS" to activate
tell application "System Events"
tell process "OBS"
set frontmost to true
key down 63 -- fn
key code 111 -- f12
click (first button of window 1 whose role description is "minimize button")
end tell
end tell

@RayNichol
Copy link

RayNichol commented Sep 23, 2021 via email

@charlespwd
Copy link

charlespwd commented Mar 30, 2022

Here's a properly formatted option that is sligthly more minimalistic. Like mentioned above, for this to work in the latest version of OBS, you can make it work by setting a keyboard shortcut for "Start Virtual Camera".

Mine is F5.

I use Google meet, so at the end I switch focus to "Google Chrome" instead of "zoom.us". Same same.

Start virtual cam:

tell application "OBS" to activate
tell application "System Events"
	tell process "OBS"
		set frontmost to true
		key down 63 -- fn
		key code 96 -- f5
		set visible to false
	end tell
end tell
tell application "Google Chrome" to activate

Stop virtual cam & quit:

tell application "System Events"
	tell process "OBS"
		set visible to true
		set frontmost to true
		key down 63 -- fn
		key code 96 -- f5
	end tell
end tell
tell application "OBS" to quit
tell application "Google Chrome" to activate

@bramses
Copy link

bramses commented Aug 27, 2022

^ Using this method locked the Option key on my Mac -- required the virtual keyboard to get unstuck

Screenshot 2022-08-27 17-15-43

Try this method instead: https://stackoverflow.com/questions/3690167/how-can-one-invoke-a-keyboard-shortcut-from-within-an-applescript

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment