JBOPS - Just a Bunch Of Plex Scripts
Scripts utilize a combination of PlexPy and python-plexapi.
Scripts List
Scripts pulled from my gist profile. https://gist.github.com/blacktwin
Maps
|
File |
Description |
|
Maps |
Use PlexPy draw a map connecting Server to Clients based on IP addresses.) |
Fun
|
File |
Description |
|
aired_today_playlist |
Create a Plex Playlist with what was aired on this today's month-day, sort by oldest first. If Playlist from yesterday exists delete and create today's. If today's Playlist exists exit. |
|
plexapi_haiku |
Create a hiaku from titles found in Plex. |
Kill stream
|
File |
Description |
|
create_wait_kill_all |
Receive session_key from PlexPy when paused. Use session_id to create sub-script to wait for X time then check if still paused. If paused kill. |
|
create_wait_kill_trans |
Receive session_key from PlexPy when paused. Use session_id to create sub-script to wait for X time then check if transcoding still paused. If so, kill. |
|
kill_all_more_than |
If user has 2 or more concurrent streams kill all streams |
|
kill_else_if_buffering |
Kill concurrent transcode streams of other users if Admin user is experiencing buffering warnings from PlexPy. |
|
kill_more_than |
If user has 2 or more concurrent streams and the IP of the 2nd stream differs from 1st kill 2nd. If 2nd stream IP is the same as 1st stream don't kill. |
|
kill_outsider_stream |
Kill stream if user is outside of local network. |
|
kill_plex_stream |
Kill any Plex stream for whatever reason you want. |
|
kill_session_bitrate |
Kill stream if bitrate is greater than 4 Mbps |
|
kill_trans_exp_audio |
Kill Plex video transcoding streams only. All audio streams are left alone. Kill message based on platform. |
|
new_kill_trans_pause |
Kill Plex paused video transcoding streams using PlexPy. |
Notify
|
File |
Description |
|
find_unwatched_notify |
Find what was added TFRAME ago and not watched and notify admin using PlexPy. |
|
notify_added_custom |
Send an email with what was added to Plex in the past week using PlexPy. Email includes title (TV: Show Name: Episode Name; Movie: Movie Title), time added, image, and summary. |
|
notify_fav_tv_all_movie |
Notify users of recently added episode to show that they have watched at least LIMIT times via email. Also notify users of new movies. |
|
notify_newip |
If a new IP is found send notification via the Email Notification Agent. Email contains User's Avatar image, link to location, IP address, and User's Email address. |
|
notify_on_added |
Send an Email notification when a specific show is added to Plex. Add shows to list that you want notifications for. |
|
notify_user_favorites |
Notify users of recently added episode to show that they have watched at least LIMIT times via email. |
|
notify_user_newip |
Notify user that their account has been accessed by a new IP. IP is cleared to make sure notification is sent again. |
|
twitter_notify |
Post to Twitter when TV/Movie is added to Plex. Include custom message and embed poster image. Option to tweet to TWITTER_USER if title is inside TITLE_FIND. |
Utility
|
File |
Description |
|
bypass_auth_name |
Use PlexPy to pull last IP address from user and add to List of IP addresses and networks that are allowed without auth in Plex. |
|
|
delete_watched_TV |
From a list of TV shows, check if users in a list has watched shows episodes. If all users in list have watched an episode of listed show, then delete episode. |
|
|
find_plex_meta |
Find location of Plex metadata. |
|
|
find_unwatched |
Find what was added TFRAME ago and not watched using PlexPy. |
|
|
grab_gdrive_media |
Grab media (videos, pictures) from Google Drive. All videos and pictures were automatically synced from Google Photos to Google Drive. Puts media into MEDIA_TYPE/YEAR/MONTH-DAY/FILE.ext directory structure. |
|
|
plex_api_poster_pull |
Pull Movie and TV Show poster images from Plex. |
|
|
plex_imgur_dl |
Pull poster images from Imgur and places them inside Shows root folder. |
|
|
plex_theme_songs |
Download theme songs from Plex TV Shows. |
|
|
plexapi_delete_playlists |
Delete all playlists from Plex using PlexAPI. |
|
|
plexapi_search_file |
Find full path for Plex items. |
|
|
refresh_next_episode |
Refresh the next episode of show once current episode is watched. |
|
|
remove_watched_movies |
Find Movies that have been watched by a list of users. If all users have watched movie then delete. |
|
|
stream_limiter_ban_email |
This is indented to restrict a user to the LIMIT amount of concurrent streams. User will be warned, punished, and banned completely if violations continue. |
Reporting
|
File |
Description |
|
added_to_plex |
Find when media was added between STARTFRAME and ENDFRAME to Plex through PlexPy. |
|
|
check_play |
Check if user has play a file more than 3 times but has not finished watching. Hoping to catch play failures. |
|
|
check_plex_log |
Checking plex logs for debug code WARN and 'Failed to obtain a streaming resource for transcode of key /library/metadata/"titleID"'. |
|
|
drive_check |
Check if drive exists. If not then notify via PlexPy notifier agent. |
|
|
userplays_weekly_reporting |
Use PlexPy to count how many plays per user occurred this week and send email via PlexPy. |
Enabling Scripts in PlexPy:
Settings > Notification Agents > Click the Scripts gear
Settings > Notification Agents > Click the Bell next to Scripts
Settings > Notifications > Click Script
PlexPy Script Arguments:
-sn {show_name} -ena {episode_name} -ssn {season_num00} -enu {episode_num00} -srv {server_name} -med {media_type} -pos {poster_url} -tt {title} -sum {summary} -lbn {library_name} -grk {grandparent_rating_key} -ip {ip_address} -us {user} -uid {user_id} -pf {platform} -pl {player} -da {datestamp} -ti {timestamp} -purl {plex_url}