{"id":13566807,"url":"https://github.com/StartAutomating/obs-powershell","last_synced_at":"2025-04-04T00:32:25.344Z","repository":{"id":64473909,"uuid":"576071350","full_name":"StartAutomating/obs-powershell","owner":"StartAutomating","description":"Script OBS with PowerShell","archived":false,"fork":false,"pushed_at":"2025-03-26T00:24:55.000Z","size":5138,"stargazers_count":63,"open_issues_count":50,"forks_count":4,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-26T00:35:17.168Z","etag":null,"topics":["obs","obs-studio","obs-websocket","openbroadcaster","openbroadcastersoftware","powershell","powershell-module","websocket","websocket-client"],"latest_commit_sha":null,"homepage":"https://obs-powershell.start-automating.com","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StartAutomating.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["StartAutomating","nyanhp","I-Am-Jakoby"]}},"created_at":"2022-12-09T00:08:25.000Z","updated_at":"2025-03-21T02:08:49.000Z","dependencies_parsed_at":"2024-01-28T21:28:27.518Z","dependency_job_id":"8debc124-066d-4fd9-b661-a38fd2568727","html_url":"https://github.com/StartAutomating/obs-powershell","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StartAutomating%2Fobs-powershell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StartAutomating%2Fobs-powershell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StartAutomating%2Fobs-powershell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StartAutomating%2Fobs-powershell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StartAutomating","download_url":"https://codeload.github.com/StartAutomating/obs-powershell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247103290,"owners_count":20884023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["obs","obs-studio","obs-websocket","openbroadcaster","openbroadcastersoftware","powershell","powershell-module","websocket","websocket-client"],"created_at":"2024-08-01T13:02:17.204Z","updated_at":"2025-04-04T00:32:25.331Z","avatar_url":"https://github.com/StartAutomating.png","language":"PowerShell","readme":"\u003cdiv style='text-align:center'\u003e\n\u003cimg src='Assets/obs-powershell-text-and-animated-icon.svg' /\u003e\n\u003c/div\u003e\n\nobs-powershell is a PowerShell module that lets you script Open Broadcast Studio.\n\n## Getting Started\n\n### Installing and importing\n\nobs-powershell is available on the PowerShell gallery, so you can use these two simple lines to install / import\n\n~~~PowerShell\nInstall-Module obs-powershell -Scope CurrentUser -Force\nImport-Module obs-powershell -PassThru -Force\n~~~\n\n### Getting Connected\n\nBefore you can use obs-powershell, you'll need to Connect-OBS.\n\nYou should only need to do this once: obs-powershell will cache this information.\n\nYou can find your WebSocketToken in obs studio in Tools -\u003e WebSocket Server Settings -\u003e Show Connect Info.\n\nCopy the Server Password and set it into a variable, $myToken\n\n~~~PowerShell\nConnect-OBS -WebSocketToken $myToken\n~~~\n\nAfter you've done this once, obs-powershell will attempt to connect every time the module is loaded.\n\n### A Quick Example\n\nOnce you're connected, check out this nifty short sample of what you can do:\n\n~~~PowerShell\n# Show-OBS lets you show all sorts of things.\n# It will return a scene item.\n$Stars = Show-OBS -Uri \"https://pssvg.start-automating.com/Examples/Stars.svg\"\nStart-Sleep -Milliseconds 50\n# We can .Hide/.Disable scene items\n$Stars.Hide()\nStart-Sleep -Milliseconds 50\n# We can .Show/.Enable scene items\n$Stars.Show()\nStart-Sleep -Milliseconds 50\n# We can make an item small\n$Stars.Scale(0.1)\nStart-Sleep -Milliseconds 50\n# We can fit it to the screen\n$stars.FitToScreen()\nStart-Sleep -Milliseconds 50\n# and we can make it big again, with an animation\n$Stars.Scale(\"1%\",\"100%\",\"00:00:01\")\nStart-Sleep -Seconds 1\n\n# We can do even more broad animations, like moving things across the screen.\n$Stars.Animate(@{\n    X = \"-25%\"\n    Y = \"50%\"\n    Scale = \"20%\"\n}, @{\n    X = \"125%\"\n    Y = \"50%\"\n    Scale = \"50%\"\n    Rotation = 180\n}, \"00:00:05\")\nStart-Sleep -Seconds 1\n\n# To see what any object can do in obs-powershell, run Get-Member.\n$stars | Get-Member\n~~~\n\n## OBS-PowerShell Effects\n\nobs-powershell gives you the ability to store and create effects that run over time.\n\nFor instance, we can FadeIn our stars\n\n~~~PowerShell\n# Start the FadeIn effect on 'Stars.svg'\n$Stars | Start-OBSEffect -EffectName \"FadeIn\"\nStart-sleep -seconds 1\n\n# Start the FadeOut effect on 'Stars.svg'\n$Stars | Start-OBSEffect -EffectName \"FadeOut\"\nStart-sleep -seconds 1\n\n# Start the Colorloop effect on 'Stars.svg'\n$Stars | Start-OBSEffect -EffectName \"ColorLoop\"\nStart-sleep -seconds 1\n\n# You can get all loaded effects with Get-OBSEffect\nGet-OBSEffect\n~~~\n\n## Examples\n\n### Getting all scenes\n\n~~~PowerShell\nGet-OBSScene\n~~~\n\n### Getting all inputs\n\n~~~PowerShell\nGet-OBSInput\n~~~\n\n### Getting OBS Stats\n~~~PowerShell\nGet-OBSStats\n~~~\n\n### Getting all kinds of available inputs\n~~~PowerShell\nGet-OBSInputKind\n~~~\n\n### Getting all monitors\n\n~~~PowerShell\nGet-OBSMonitor\n~~~\n\n### Getting Recording Status\n~~~PowerShell\nGet-OBSRecordStatus\n~~~\n\n### Starting Recording\n~~~PowerShell\nStart-Recording # an alias to Start-OBSRecord \n~~~\n\n### Stopping Recording\n~~~PowerShell\nStop-Recording # an alias to Stop-OBSRecord\n~~~\n\n### Start Recording, Wait 5 seconds, Stop Recording, and Play the Recording.\n~~~PowerShell\nStart-OBSRecord\n\nStart-Sleep -Seconds 5\n\nStop-OBSRecord |\n    Invoke-Item\n~~~\n\n### Enabling all sources in all scenes\n~~~PowerShell\nGet-OBSScene |\n    Select-Object -ExpandProperty Scene\n    Get-OBSSceneItem |\n    Set-OBSSceneItemEnabled -sceneItemEnabled\n~~~\n\n### Disabling all sources in all scenes\n~~~PowerShell\nGet-OBSScene |\n    Select-Object -ExpandProperty Scene\n    Get-OBSSceneItem |\n    Set-OBSSceneItemEnabled -sceneItemEnabled:$false\n~~~\n\n## How it Works\n\nobs-powershell communicates with OBS with the obs websocket.\n\nobs-powershell has a command for every websocket request.\n\nBecause the obs-websocket cleanly documents it's protocol, most commands in obs-powershell are automatically generated with [PipeScript](https://github.com/StartAutomating/PipeScript).\n\n* [Full List Of Commands](docs/obs-powershell-commands.md)\n* [Full list of websocket commands](docs/obs-powershell-websocket-commands.md)\n\n## Depdendencies\n\nTo use obs-powershell, you'll need OBS and PowerShell Core.  You can run both of these on any operating system.\n\n### Specific Command Requirements\n\nSome commands in obs-powershell will not work unless you have additional software installed.\n\n|Commands|Dependency|\n|-|-|\n|Add/Set-OBSVLCSource|[VLC](https://www.videolan.org/vlc/)|\n|Add/Set-OBS3DFilter |[3D Effect](https://obsproject.com/forum/resources/3d-effect.1692/)|\n|Add/Set-OBSShaderFilter|[obs-shaderfilter 2.0+](https://obsproject.com/forum/resources/obs-shaderfilter.1736/)\n|Add/Set/Get-OBSWaveformSource|[waveform source](https://obsproject.com/forum/resources/waveform.1423/)\n\n","funding_links":["https://github.com/sponsors/StartAutomating","https://github.com/sponsors/nyanhp","https://github.com/sponsors/I-Am-Jakoby"],"categories":["PowerShell"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FStartAutomating%2Fobs-powershell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FStartAutomating%2Fobs-powershell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FStartAutomating%2Fobs-powershell/lists"}