-
-
Save KakersUK/d090e1836ffb881d29c9f529b380f795 to your computer and use it in GitHub Desktop.
# Plex on Windows Anti-Sleep | |
# | |
# References | |
# Gist: https://gist.github.com/KakersUK/d090e1836ffb881d29c9f529b380f795 | |
# Install PowerShell 7: https://learn.microsoft.com/en-gb/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.3#winget | |
# X-Plex-Token: https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/ | |
# Host variables | |
$PlexHost = '127.0.0.1' | |
$PlexPort = 32400 | |
$PlexToken = '' | |
# Create Windows shell object. | |
$WshShell = New-Object -ComObject WScript.Shell | |
# GET the active play session information from our Plex API. | |
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 | |
$xmlResponseIRM = Invoke-RestMethod "https://${PlexHost}:${PlexPort}/status/sessions?X-Plex-Token=${PlexToken}" -Method Get | |
# If the sessions are greater than 0, Plex is streaming. Send a Shift + F15 key combo to keep the PC awake. | |
If([int]$xmlResponseIRM.MediaContainer.size -gt 0){ | |
$WshShell.SendKeys('+{F15}') | |
} |
THANK YOU!
Awesome! Thank you very much!
love the idea of this but cannot get it working, I get the following
Invoke-RestMethod : A parameter cannot be found that matches parameter name 'SkipCertificateCheck'.
At C:\plex-anti-sleep.ps1:17 char:113
- ... tus/sessions?X-Plex-Token=${PlexToken}" -SkipCertificateCheck -Method ...
-
~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (:) [Invoke-RestMethod], ParameterBindingException
- FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
hi the script isn't working can you please rectify
Tried everything allowing executionpolicy in PowerShell both versions to remotesigned and unrestricted
allowing in firewall exceptions ,running pwsh.exe as admin shortening time to when task scheduler runs the script ,script runs fine and completes via windows task scheduler
trying on two separate machines
double checked plex tokens and they are fine too
UPDATE: no does not work on any machine plex servers still sleep when streaming from
Script works if you change line 16 and 17 to the below
GET the active play session information from our Plex API.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Thanks! I don't use this method anymore after I migrated to Proxmox.
I've updated the script with your change.
Setup Instructions:
Links can be found in the script's references.
Plex settings:
"Support Away Mode when preventing system sleep" Not too sure on this setting, but I've turned this off to ensure the machine goes to sleep when not being used.