{"id":14063721,"url":"https://github.com/PowerShellCrack/PSPMSMAM","last_synced_at":"2025-07-29T16:31:34.672Z","repository":{"id":111449986,"uuid":"421626308","full_name":"PowerShellCrack/PSPMSMAM","owner":"PowerShellCrack","description":"Powershell scripts to monitor and manage a Plex Media System","archived":false,"fork":false,"pushed_at":"2022-01-25T02:15:23.000Z","size":1955,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-29T11:58:06.105Z","etag":null,"topics":["imdb-api","movies","plex","plex-api","plex-media-server","radarr","radarr-api","rtorrent-script","tautulli","tmdb-api","tmdb-movie-search","tvshows","xmlrpc-api"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PowerShellCrack.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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}},"created_at":"2021-10-27T00:32:00.000Z","updated_at":"2023-08-09T19:49:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"cd724f4d-d694-4c57-8a69-14f7bbd682bc","html_url":"https://github.com/PowerShellCrack/PSPMSMAM","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PowerShellCrack/PSPMSMAM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShellCrack%2FPSPMSMAM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShellCrack%2FPSPMSMAM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShellCrack%2FPSPMSMAM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShellCrack%2FPSPMSMAM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PowerShellCrack","download_url":"https://codeload.github.com/PowerShellCrack/PSPMSMAM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShellCrack%2FPSPMSMAM/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267718275,"owners_count":24133448,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["imdb-api","movies","plex","plex-api","plex-media-server","radarr","radarr-api","rtorrent-script","tautulli","tmdb-api","tmdb-movie-search","tvshows","xmlrpc-api"],"created_at":"2024-08-13T07:03:28.529Z","updated_at":"2025-07-29T16:31:34.644Z","avatar_url":"https://github.com/PowerShellCrack.png","language":"PowerShell","funding_links":[],"categories":["PowerShell"],"sub_categories":[],"readme":"# PSPMSMAM\n\n**P**owerShell **S**cript **P**lex **M**edia **S**erver **M**anager **a**nd **M**onitor\n\n\n## What does it do?\n\nThis is a still a Work in Progress. Currently I wrote a PowerShell script that can be scheduled in Windows Task Scheduler\nto monitor a Plex media server and services. The main focus is to properly manage movies within Radarr, but it can be used for much more.\nWhat it currently does is:\n\n\n- Monitor services\n- Monitor services URL's\n- Monitor processes\n- Processes new content\n- moves new movie to appropriate folder based on genre, and other attributes\n\n\n## Why use this?\n\nWhen there are alot of custom folders for movie collections and folder structure, Radarr cannot manage the videos properly.\nThis is not the fault of Radarr but something more for those that like an organized structure.\n\nAlso as movie collections get larger and larger, navigating a single folder with thousands of other folders degrades the Windows Explorer's experience as well as makes it difficult to manage.\n\nFor example I broke my library up into grouped genre folders:\n\n- Holidays \u0026 Hallmark\n- Superhero \u0026 Comics\n- Children (Boys \u0026 Family)\n- Children (Girls \u0026 Barbie)\n- Children (Disney \u0026 Pixar)\n- Sci-Fi \u0026 Fantasy\n- Mysteries \u0026 Horrors\n- Classics \u0026 History\n- Action \u0026 Adventure\n- Thrillers \u0026 Crime Fiction\n- Drama \u0026 Romance\n- Comedies \u0026 Standup\n- Sports \u0026 Westerns\n\nAs you can see there are alot of root folders where I have my movies. __On top of that__ I have additional subfolders for collections such as:\n\n- rozen Collection\n- Monsters, Inc. Collection\n- Mulan Collection\n- Gozilla Collection\n- Halloween Collection\n- Spider-Man Collection\n- The Avengers Collection\n- Superman Collection\n- X-Men Collection\n\nThese are just to name a few. Radarr cannot manage these folders; and even though all the Genre folders are loaded into Radarr it is a pain to select the folder the movie goes into without knowing it genre category.\n\n## How?\n\nTo manage these movies. I wrote a xml driven script to properly map the movie to it appropriate folder using both IMDB and TMDB data.\n\nThere are many other cxml files in the config folder, but the two that are mainly used are _MediaServer.xml_ and _Radarr.xml_\n\nIn the _Radarr.xml_ file, there is a section for genre mappings (\\\u003cGenreMappings\u003e\\). It doesn't just look at genre but looks at specific _property_ of a movie\nobject and its value (_tag_) to determine the _binding folder_. This list run in order so that means that even though a movie has a genre of sci-fi,\nits studio may be from Marvel and that comes first.\n\nPlex and even Radarr may need credentials. If they are you would need to cred their corresponding credential file for each.\n\n``` powershell\nGet-Credential | Export-CliXML RadarrAuth.xml\n```\nThis file can only be decrypted by the user and system it was encrypted with.\n\n\u003cspan color=\"Yellow\"\u003eKeep in mind if your schedule a script to run using the SYSTEM accoutn, you must also generate the file using the SYSTEM account (use psexec.exe for that)\u003c/span\u003e\n\n\n## Script information\n\nI have collected alot of script over the net and have written a collection of API's for many services and functionalities.\n\nFilename | Location | Use case | Comments\n--|--|--|--\nMonitorMediaServer.ps1 | root | Main script |\nEnvironments.ps1 | Extensions | cmdlets to manage script environment | Not used\nHttpAPI.ps1 | Extensions | cmdlets for web crawling | Not used\nImdbMovieAPI.ps1 | Extensions | cmdlets for pulling video details from IMDB | used both webcrawling and OMDB API\nINIAPI.ps1 | Extensions | cmdlets to manage and parse Ini files | advanced method\nIniContent.ps1 | Extensions | cmdlets to manage and parse Ini files | Taken from [Oliver Lipkau ](https://github.com/lipkau/PsIni)\nLogging.ps1 | Extensions | cmdlet to generate log file with console output | Logs in CMtrace format\nPlexAPI.ps1 | Extensions | Manage Plex library and users |\nRadarrAPI.ps1 | Extensions | cmdlets to manage videos in Radarr |\nSupportFunctions.ps1 | Extensions | cmdlets to manage objects and other string data|\nTautulliAPI.ps1 | Extensions | cmdlets to monitor videos history in Tautulli | Work-in-Progress\nTmdbAPI.ps1 | Extensions | cmdlets for TMDB | Uses TMDB API\nvideoparser.ps1 | Extensions | transcode FFMPeg and creates NFO | used to shrink large movies and create missing NFO files.\nWinscpAPI.ps1 | Extensions | Cmdets to WinSCP Cmdlets | Not used\nXmlRpc.ps1 | Extensions | cmdlets to convert xml rpc api calls to psobjects | Testing with rtorrent\nCleanFolder.ps1 | Helpers | Cmdets to remove old and empty folders |\nMovieSearch.ps1 | Helpers | Cmdets used to find movies with OMDB and IMDB | Used with main script\n\n\n## What Else?\n\nI have also been exporting IMDB and TMDB data into PSObjects. the OMDB APi has a 1000 query limit per day. If I were to run this every day to manage my movie collection\nI wouldn't finish; this way I can call the objects first to query their details. There is a downfall to this; it is offline so the data can be outdated or obsolete\n\nI have also included form test scripts. These scritps were my original script before OMBI came along and how I use dot manage Radarr.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPowerShellCrack%2FPSPMSMAM","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPowerShellCrack%2FPSPMSMAM","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPowerShellCrack%2FPSPMSMAM/lists"}