plexWatch - Windows Branch

Kurtis do you know a of a way to change how the recently added email sends out? I have made the other ones but not sure where the code is stored for the recently added or the commands can add?

TBH - I can't really say. I never looked at that feature since I had no use for it. I think there are settings in the PL file for emails. In there you might be able to choose what info is included in the email. Otherwise, I think there is a whole seperate 3rd party application that will provide more Email features. I think the PlexWatch email feature may be limited in comparison.

struggling to get this working, if anyone can help.

trying to enable email/gmail notifications and getting "array found where operator expected, lines 213 - 215, at end of line (missing operator before ?)

which is where I enter from, to, and username fields  (all the same user@domain.com)

Make sure to encapsulate the email address in single quotes. Feel free to PM me the config or post the config here removing any identifying info, and someone will help.

struggling to get this working, if anyone can help.

trying to enable email/gmail notifications and getting "array found where operator expected, lines 213 - 215, at end of line (missing operator before ?)

which is where I enter from, to, and username fields  (all the same user@domain.com)

Make sure to encapsulate the email address in single quotes. Feel free to PM me the config or post the config here removing any identifying info, and someone will help.

 OK I will give it a try again tonight.  Pretty sure I had each encapsulated with single quotes, and each line ending with a comma, but it was still giving me an error when running plexwatch.exe from cmd.  Thanks and I will definitely post the config if it fails on me.

Need some help here guys..."config file missing data" - trying to use email and/or pushbullet

$data_dir = 'C:\\PlexWatch'; ## to store the DB, logfile - can be the same as this script

$server_log = 'C:\Users\Kenneth\AppData\Local\Plex Media Server\Logs\Plex Media Server.log'; ## used to log IP address of user (alpha)
$log_client_ip = 1; ## requires $server_log to be available too. (requires File::ReadBackwards)
## also required DEBUG log to be turned on in the PMS

$debug_logging = 1; ## logs to $data_dir/debug.log ( not verbose enough yet.. still todo )

## myplex user/pass ONLY required if you have set the PMS to 'Require authentication on local networks' and $server is not set to localhost
$myPlex_user = 'user';
$myPlex_pass = 'password';

$server = 'localhost'; ## IP of PMS - or localhost
$port = 32400;         ## port of PMS

$notify_started = 1;   # !deprecated -- does nothing anymore (use push_watched, push_watching in $notify)
$notify_stopped = 1;   # !deprecated -- does nothing anymore (use push_watched, push_watching in $notify)

$appname = 'PlexWatch';

## Give a user a more friendly name. I.E. REAL_USER will now be Ken
## you may also specify the platform with user+platform
$user_display = {'REAL_USER1' => 'Ken',
                 'REAL_USER2' => 'Rob & Carrie',
                 'REAL_USER2+Roku 3' => 'Family Room',
                 'REAL_USER2+Roku' => 'Family Room',
                 'REAL_USER2+iOS' => 'Rob',
};

## format of alert - default. You can also override this per provider  ($notify below)
## run ./plexWatch.pl --format_options -- to see all
#       start = notification for start of video
#       stop = notification for stop of video
#       watched = cli output for watched content
#       watching = cli output content being watched
$alert_format = {'start'    =>  '{title} [{streamtype}] [{year}] [{rating}] on {platform} [{progress} in] {ip_address}',
                 'paused'   =>  '{title} [{streamtype}] [{year}] [{rating}] on {platform} [{progress} in] [{percent_complete}%] {ip_address}',
                 'resumed'  =>  '{title} [{streamtype}] [{year}] [{rating}] on {platform} [{progress} in] [{percent_complete}%] {ip_address}',
                 'stop'     =>  '{title} [{streamtype}] [{year}] [{rating}] on {platform} for {duration} [{percent_complete}%] {ip_address}',
                 'watched'  =>  '{user} watched {title} [{streamtype}] [{year}] [{length}] [{rating}] on {platform} for {duration} [{percent_complete}%] {ip_address}',
                 'watching' =>  '{user} {state} {title} [{streamtype}] [{year}] [{rating}] [{length}] on {platform} for {duration} [{percent_complete}%] [{time_left} left] {ip_address}'
};

## Notification Options
$notify = {

    'file' => {
        'enabled' => 0,  ## 0 or 1 - set to 1 to enable File Logging
        'filename' => "$data_dir/plexWatch.log", ## default is plexWatch.log
    },

    'prowl' => {
        'enabled' => 0, ## 0 or 1 - set to 1 to enable PROWL
        'push_recentlyadded'  => 0,
        'push_watched'        => 0,
        'push_watching'       => 0,
        'push_paused'         => 0,
        'push_resumed'        => 0,
        'apikey' => 'YOUR API KEY', ## your API key
        'application' => '{user}',
        'priority' => 0,
        'url' => '',
    },

    'pushover' => {
        'enabled' => 0, ## set to 1 to enable Pushover
        'push_recentlyadded'  => 0,
        'push_watched'        => 0,
        'push_watching'       => 0,
        'push_paused'         => 0,
        'push_resumed'        => 0,
        'token' => 'YOUR APP TOKEN', ## your app token
        'user' => 'YOUR USER TOKEN',  ## your user token
        'title' => '{user}',
        'sound' => 'intermission',
    },

    'growl' => {
        'enabled' => 0, ## set to 1 to enable local growl (You should probably used GNTP - growl supported for multiple platforms - below)
        'push_recentlyadded'  => 0,
        'push_watched'        => 0,
        'push_watching'       => 0,
        'push_paused'         => 0,
        'push_resumed'        => 0,
        'application' => '{user}',
        'script' => '/usr/local/bin/growlnotify',
        'icon' => '/Applications/Plex Media Server.app/Contents/Resources/MyPlex.icns',
    },

    'twitter' => {
        'enabled'             => 0, ## set to 1 to enable local twitter
        'push_recentlyadded'  => 0,
        'push_watched'        => 0,
        'push_watching'       => 0,
        'push_paused'         => 0,
        'push_resumed'        => 0,
        'title'               => '{user}',
        'consumer_key'        => '',
        'consumer_secret'     => '',
        'access_token'        => '',
        'access_token_secret' => '',
        'alert_format' => {
            'start'    =>  '{title} [{streamtype}] [{year}] [{rating}] on {platform} [{progress} in]',
            'paused'   =>  '{title} [{streamtype}] [{year}] [{rating}] on {platform} [{progress} in] [{percent_complete}%]',
            'resumed'  =>  '{title} [{streamtype}] [{year}] [{rating}] on {platform} [{progress} in] [{percent_complete}%]',
            'stop'     =>  '{title} [{streamtype}] [{year}] [{rating}] on {platform} for {duration} [{percent_complete}%]',
        },
    },

    'boxcar' => {
        'enabled' => 0, ## set to 1 to enable local boxcar
        'push_recentlyadded'  => 0,
        'push_watched'        => 0,
        'push_watching'       => 0,
        'push_paused'         => 0,
        'push_resumed'        => 0,
        'email' => '',                          ## YOUR email address registered at boxcar
        'from' => '{user}',                     ## From Name displayed on boxcar
        'provider_key' => 'o2eI7rcwya5XFETaXdlh',                        ## plexWatch app is 'o2eI7rcwya5XFETaXdlh'. You may supply your own.
        'provider_secret' => 'h4pJjyBoEMk1rwK2EH3NLemO4fQ0ql9HnRgVfwg4', ## plexWatch app is 'h4pJjyBoEMk1rwK2EH3NLemO4fQ0ql9HnRgVfwg4'. You may supply your own.
        'icon_url' => '', # Leave empty ('') for plexWatch icon. You may supply your own (57x57)
    },

    'boxcar_v2' => {
        'enabled' => 0, ## set to 1 to enable local boxcar_v2 ( device specific )
        'push_recentlyadded'  => 0,
        'push_watched'        => 0,
        'push_watching'       => 0,
        'push_paused'         => 0,
        'push_resumed'        => 0,
        'access_token'        => '', ## Access token from your Device
        'from'                => '{user}', ## From Name displayed on boxcar
        'sound'               => 'bird-1',
        'icon_url'            => 'https://rarforge.com/images/plexWatch.57x57.png'
    },

    'pushbullet' => {
        'enabled' => 1,
        'push_recentlyadded'  => 0,
        'push_watched'        => 0,
        'push_watching'       => 1,
        'push_paused'         => 1,
        'push_resumed'        => 1,
        'title'              => '{user}',
        'apikey'              => 'xxxxxxxxxxxxxxxxxxxxxxx', # Pushbullet API key https://www.pushbullet.com/account
        'device'              => 'xxxxxxxxxxxxxxxxxxxxxxx', # https://api.pushbullet.com/v2/devices put yor API key as username and password empty - Leave blank to use all or channel
        'channel'             => , # Channel tag from https://www.pushbullet.com/my-channels - Leave blank if unused
    },

    'pushalot' => {
        'enabled' => 0,
        'push_recentlyadded'  => 0,
        'push_watched'        => 0,
        'push_watching'       => 0,
        'push_paused'         => 0,
        'push_resumed'        => 0,
        'title'               => '{user}',
        'token'               => 'AUTHORIZATION TOKEN', # Pushalot API authorization token from https://pushalot.com/manager/authorizations
        'isimportant'         => 'False', # True or False, Indicator whether the message should be visually marked as important within client app. Does not have any other implication on message delivery.
        'issilent'            => 'False', # True or False, If set to True will prevent sending toast notifications to connected devices, resulting in silent delivery, as only badge icon will indicate new message.
        'timetolive'          => '0', # Time in minutes after which message automatically gets purged.
    },

    ## GNTP (GROWL) -- multiple destinations are supported
    'GNTP' => {
        '1' =>  {
            'enabled' => 0, ## set to 1 to enable local growl
            'push_recentlyadded'  => 0,
            'push_watched'        => 0,
            'push_watching'       => 0,
            'push_paused'         => 0,
            'push_resumed'        => 0,
            'application' => $appname,
            'title' => '{user}',
            'server' => '10.0.0.1', # destination ip/host
            'port' => '23053',      # default 23053
            'password' => '',       # '' for no pass
            'icon_url' => 'https://rarforge.com/images/plexWatch.57x57.png'
            'sticky' => 1,
        },

        '2' =>  {
            'enabled' => 0, ## set to 1 to enable local growl
            'push_recentlyadded'  => 0,
            'push_watched'        => 0,
            'push_watching'       => 0,
            'push_paused'         => 0,
            'push_resumed'        => 0,
            'application' => '{user}',
            'server' => '192.168.10.100', # destination ip/host
            'port' => '23053',      # default 23053
            'password' => '',       # '' for no pass
            'icon_url' => 'https://rarforge.com/images/plexWatch.57x57.png'
            'sticky' => 0,
        },
    },

    ## EMAIL -- multiple destinations are supported
    'EMAIL' => {

        1 =>  {
            'enabled => 1, ## set to 1 to enable local EMAIL
            'push_recentlyadded'  => 1,
            'push_watched'        => 1,
            'push_watching'       => 1,
            'push_paused'         => 1,
            'push_resumed'        => 1,
            'server' => 'imap.gmail.com', # your mail server
            'port' => 993, # your mail server port defalt 25 (587 is also a good choice)
            'from' => 'vermillion42@gmail.com',     # Email address to receive notification: 'user@domain.com'
            'username' =>
$watched_grouping_maxhr = 2;  ## advanced config -- do not group shows together if start/restart is > X hours
$count_paused = 0;            ## included paused time in time watched ( probably do not want this )
$inc_non_library_content = 0; ## non library content (channels) are excluded. Set to 1 to include them

#@exclude_library_ids = (999, 998); ## exclude this library section (by id) -- full exclusion

@bigverm23

your server-log destination seems to be wrong. Use double \\

mine is like:

$server_log = 'D:\\Plex Media Server\\Plex Media Server\\Logs\\Plex Media Server.log'; ## used to log IP address of user (alpha) 

an put your login credentials for Plex just to be sure (and maybe mandatory??)

(and hide your Pushbullet API-key ;))

anyone got gmail notifications working properly?  I cant seem to get any notifications out of it...

'server' => 'smtp.gmail.com',#our mail server
 'port' => '25', # your mail server port defalt 25 (587 is also a good choice)

anyone got gmail notifications working properly?  I cant seem to get any notifications out of it...

'server' => 'smtp.gmail.com',#our mail server
 'port' => '25', # your mail server port defalt 25 (587 is also a good choice)

Simply put you are using the wrong port.

https://support.google.com/a/answer/176600?hl=en

use 587

Hi All, 

I'm trying to get PlexWatch working and i'm running into an error I haven't seen posted anywhere:

pushalot: missing a notify function subroutine --

check 'sub GetNotifyfuncs<>'

Died at plexWatch.pl line 3547

I got it! 

plexWatch v0.3.3 Released (2015-03-29)

 

Requirements:
* PMS 0.9.11.4 or greater
* PlexPass subscription ( everything but recently added content )
* PMS logs ( with debug enabled ) if you want IP logging
* Clients that support Now Playing  i.e. user must show up in now playing on plex/Web
                                                       note: PMC does not work - use PHT
* Recently added notifications will work with any current version.

 

DownloadsplexWatch.exe and config.pl-dist-win32   ( I will be adding a windows directory for binaries for the final release )

 * VBS scripts:  plexWatchNotify.vbs & plexWatchRecentlyAdded.vbs

GitHub:https://github.com/ljunkie/plexWatch (source: plexWatch.pl )

Screenshots: iOS Boxcar // iOS Prowl // iOS Pushover // Win7 Growl

 

Please use the plexWatch.exe and config.pl-dist-win32 instead of the plexWatch.pl/config.pl-dist files (even though it's included in the repo/zip)

 

I also suggest to edit the config.pl in notepad++

 

 

** Install Notes **

 

Install

* unzip contents to c:\plexWatch\

* rename config.pl-dist-win32 to c:\plexWatch\config.pl

* Edit (with notepad++) c:\plexWatch\config.pl

* open a command prompt 

* cd c:\plexWatch

* run: plexWatch.exe   (and verify no errors -- don't expect any output yet)

 

Test the script:

* open a command prompt 

* cd c:\plexWatch

* start a show

* run: plexWatch.exe

* stop the show

* run: plexWatch.exe

 

Automatically notify/log watching/watched content:  ( You must enable this script for plexWatch to work )

* schedule a task (every minute) to execute c:\plexWatch\plexWatchNotify.vbs  ( specify the start in folder as c:\plexWatch\

 

Automatically notify on Recently Added Content:

* schedule a task (every 5 minutes or more) to execute c:\plexWatch\plexWatchRecentlyAdded.vbs  ( specify the start in folder as c:\plexWatch\

 

 

* IP logging: log location: http://forums.plexapp.com/index.php/topic/25417-where-are-the-pms-logs-on-windows/

 

 

Frontends


Things known not to work

* --start= , --stop= options on the cli:  not a huge deal and can possible be fixed later

In theory, couldn't I clone the notify task a few times and have them each run on schedule like every 15 seconds? in order to produce faster notifications? 

sometimes I'm 45 seconds+ into a movie before I get a notifciation to react to.

Hello! I have been using PlexWatch/Web successfully for a while now. I just recently started to notice something odd…

When I watch something locally from the host PC, my IP address comes up really weird. Plex Web appears as 192.168.21.1 and Plex Home Theater appears as 192.168.223.1.

My host PC has a static IP of 192.168.1.20. All other devices on my local network display the correct IP when streaming.

Does any one have any insight?

@Sitruk86 said:
Hello! I have been using PlexWatch/Web successfully for a while now. I just recently started to notice something odd…

When I watch something locally from the host PC, my IP address comes up really weird. Plex Web appears as 192.168.21.1 and Plex Home Theater appears as 192.168.223.1.

My host PC has a static IP of 192.168.1.20. All other devices on my local network display the correct IP when streaming.

Does any one have any insight?

Do you have multiple network interfaces on the machine with those subnets?

I have a VPN interface but its inactive…

I lied… I have Tunngle, VMware, VirtualBox, and my VPN. Only my primary (physical NIC) is in use though.

@Sitruk86 said:
I have a VPN interface but its inactive…

I lied… I have Tunngle, VMware, VirtualBox, and my VPN. Only my primary (physical NIC) is in use though.

What subnets are those devices on and does it correspond to any that you’re seeing in PlexWatch? It’s highly unlikely the issue lies with PlexWatch as it just uses the Plex Server log to grab the IPs. The issue is most likely with PMS itself misreporting the IP.

@drzoidberg33 said:
What subnets are those devices on and does it correspond to any that you’re seeing in PlexWatch? It’s highly unlikely the issue lies with PlexWatch as it just uses the Plex Server log to grab the IPs. The issue is most likely with PMS itself misreporting the IP.

Yea, I am going to uninstall all the Virtual software and see if that makes a difference. I think I succumbed to laziness and posted my question a little prematurely.

After removing all NIC related software my IP address appears correctly.

Hey guys. I noticed that I have not been getting alerts on Prowl, which is running on my iPhone, for about a week now. I checked the computer running plexWatch, and the scheduled tasks are running as scripted. When I load up Growl and check the history there, it’s empty. Growl is supposed to forward alerts to Prowl, but if Growl is not registering anything, then my system doesn’t work.

What could be causing plexwatch to stop reporting to Growl all of a sudden? I changed no settings, so I’m confused as all hell…

Okay, so I updated the plexWatch executable to the latest version, made the appropriate changes to the config.pl file (added direct Prowl notifications, as well as Boxcar v.2), and this is what I’m getting now:

And here’s what my plexwatch log file looks like, towards the end of it:

Fri Aug 28 22:57:04 2015: Corey Watching: The Longest Ride [D] on Stephanie's iPhone (2) [0 in] Fri Aug 28 22:57:15 2015: Corey Paused: The Longest Ride [T] on Stephanie's iPhone (2) [0 seconds in] [0%] Fri Aug 28 23:01:12 2015: Corey Watched: The Longest Ride [T] on Stephanie's iPhone (2) for 10 seconds [3%] Fri Aug 28 23:12:20 2015: ADMIN Watching: The Office (NBC) - Andy's Ancestry - s09e03 [D] on PHT @ Home [10 minutes in] 192.168.1.8 Fri Aug 28 23:15:03 2015: ADMIN Paused: The Office (NBC) - Andy's Ancestry - s09e03 [D] on PHT @ Home [13 minutes in] [58%] 192.168.1.8 Fri Aug 28 23:37:11 2015: ADMIN Watching: Parks and Recreation - Two Parties - s05e10 [D] on Living Room [4 minutes in] 192.168.1.6 Fri Aug 28 23:38:14 2015: ADMIN Resumed: The Office (NBC) - Andy's Ancestry - s09e03 [D] on PHT @ Home [13 minutes in] [58%] 192.168.1.8 Fri Aug 28 23:48:13 2015: ADMIN Watched: The Office (NBC) - Andy's Ancestry - s09e03 [D] on PHT @ Home for 13 minutes [100%] 192.168.1.8 Fri Aug 28 23:48:22 2015: ADMIN Watching: The Office (NBC) - Work Bus - s09e04 [D] on PHT @ Home [0 seconds in] 192.168.1.8 Tue Sep 8 23:59:51 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:01:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:02:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:03:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:04:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:05:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:06:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:07:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:08:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:09:22 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:10:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:11:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:12:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:13:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:14:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:15:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:16:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:17:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:18:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:19:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:20:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:21:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:22:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:23:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:24:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6 Wed Sep 9 00:25:00 2015: ADMIN Watched: Parks and Recreation - Two Parties - s05e10 [D] on Living Room for 11 days and 23 minutes [77%] 192.168.1.6

It looks like it’s catching the same thing every minute, when it’s run automatically. On my phone and computer, the only device that’s receiving these notifications is Boxcar - they are not registering in either Growl (running on the PMS server, Windwos 7) or Prowl (running on my iPhone). What the hell is going on? I feel plexWatch withdrawal…

Sigh. Never mind - I rebooted the machine to see if that would help, and lo and behold it did. Growl, Prowl, and Boxcar v.2 notifications are all working.

What a strange hiccup. I still don’t understand why it stopped working completely more than a week ago, and why my previous attempt at a reboot didn’t help matters any…

Question: would it be possible for PlexWatch to make the difference between Direct Play, Direct Stream and transcoding?
T is used in both right now I think… (Direct Stream and full Transcoding)
If you really want to keep it short DP, DT and T would do it (although, I would prefer “Direct Play” “Direct Stream” and “Transcode” personally…
This presuming PW can get this info from PMS API…