Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/blacktwin/JBOPS

Just a Bunch Of Plex Scripts
https://github.com/blacktwin/JBOPS

hacktoberfest

Last synced: 10 days ago
JSON representation

Just a Bunch Of Plex Scripts

Awesome Lists containing this project

README

        

# JBOPS - Just a Bunch Of Plex Scripts

Most of these scripts utilize a combination of [Tautulli](https://github.com/Tautulli/Tautulli), [python-plexapi](https://github.com/pkkid/python-plexapi), and [requests](http://docs.python-requests.org/en/master/user/install/#install).

For use of config.ini for common variables please use [plexapi.CONFIG](http://python-plexapi.readthedocs.io/en/latest/configuration.html)

Default location `~/.config/plexapi/config.ini`
```python
# To find path
import plexapi
print(plexapi.CONFIG_PATH)
```

### Contact
[![PM](https://img.shields.io/badge/Discord-Scripts-lightgrey.svg?colorB=7289da)](https://discord.gg/tQcWEUp) [![PM](https://img.shields.io/badge/Reddit-Message-lightgrey.svg)](https://www.reddit.com/user/Blacktwin/) [![PM](https://img.shields.io/badge/Plex-Message-orange.svg)](https://forums.plex.tv/u/blacktwin) [![Issue](https://img.shields.io/badge/Submit-Issue-red.svg)](https://github.com/blacktwin/JBOPS/issues/new)

### Donation
Buy Me a Coffee
   or    Buy Me a Beer

Coins?

BTC:
3FCb4F3bv1hHCJxq6HJMQiAMn883v3okdh



BCH:
qr758vkn7nv6hx0ur9m2tlv8q4qjrvg6pg3yw4kzwq



ETH:
0xa76c8EB9A4955023F0dAABfb32FCD2b460910F2b



LTC:
MCw3r6rC8jNCcUvSMSu9EqQyyvEDp8EpEf

## Scripts List
[![Gist](https://img.shields.io/badge/gist-Blacktwin-green.svg)](https://gist.github.com/blacktwin)

Scripts pulled from my gist profile.

Maps


Example
File
Description






Maps
Using Tautulli data, draw a map connecting Server to Clients based on IP addresses.

Fun


Gist
File
Description



playlist_manager
Create and share playlists based on Most Popular TV/Movies from Tautulli and Aired this day in history.



plexapi_haiku
Create a hiaku from titles found in Plex.

Kill stream


Killing streams is a Plex Pass feature. These scripts will only work for Plex Pass users.


Gist
File
Description



limiterr
Limiting Plex users by plays, watches, or total time from Tautulli..
See killsteam section limiterr_readme.md



kill_stream
Use Conditions, Arguements, and Parameters to kill a Plex stream.
See killsteam section readme.md

Notify


Gist
File
Description



notify_delay
Delay Notification Agent message for concurrent streams.



find_unwatched_notify
Find what was added TFRAME ago and not watched and notify admin using Tautulli.



notify_added_custom
Send an email with what was added to Plex in the past week using Tautulli. 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


Gist
File
Description



plex_api_parental_control
Set as cron or task for times of allowing and not allowing user access to server. Unsharing will kill any current stream from user before unsharing.



plex_api_share
Share or unshare libraries



bypass_auth_name
Use Tautulli 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 Tautulli.



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.



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


Gist
File
Description



weekly_stats_reporting
Pull library and user statistics of last week.



added_to_plex
Find when media was added between STARTFRAME and ENDFRAME to Plex through Tautulli.



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 Tautulli notifier agent.



userplays_weekly_reporting
Use Tautulli to count how many plays per user occurred this week and send email via Tautulli.

----
### Setting Up Tautulli for Custom Scripts

#### Enable API in Tautulli:

Tautulli > Settings > Web Interface > API > Enable API

#### Enabling Scripts in Tautulli:

Tautulli > Settings > Notification Agents > Add a Notification Agent > Script

#### Configuration

Tautulli > Settings > Notification Agents > New Script > Configuration:
- [ ] Set scripts location to location of your script
- [ ] Scroll down to option you want to use and select the script from the drop down menu
- [ ] Set desired Script Timeout value
- [ ] Optional - Add a description of the script for easy reference
- [ ] Save

#### Triggers
Tautulli > Settings > Notification Agents > New Script > Triggers:

- [ ] Check desired trigger
- [ ] Save

#### Conditions
Tautulli > Settings > Notification Agents > New Script > Conditions:

- [ ] Set desired conditions
- [ ] Save

For more information on Tautulli conditions see [here](https://github.com/Tautulli/Tautulli/wiki/Custom-Notification-Conditions)

#### Script Arguments
Tautulli > Settings > Notification Agents > New Script > Script Arguments:

- [ ] Select desired trigger
- [ ] Input desired notification parameters (List of parameters will likely be found inside script)
- [ ] Save
- [ ] Close

---
### Common variables

Plex

- [ ] PLEX_URL - Local/Remote IP to connect to Plex ('http://localhost:32400', 'https://x.x.x.x:32412', etc.)
- [ ] PLEX_TOKEN - [Plex](https://support.plex.tv/hc/en-us/articles/204059436-Finding-an-authentication-token-X-Plex-Token) or Tautulli Settings > Plex.tv Account > PMS Token

Tautulli

- [ ] TAUTULLI_URL - Local/Remote IP to connect to Tautulli ('http://localhost:8181', 'https://x.x.x.x:8182', etc.)
- [ ] TAUTULLI_APIKEY - Tautulli Settings > Access Control > Enable API - API Key