
    g                     %   d dl Z d dlZd dlmZ d dlmZ dZ ej                         Z ej                         Z
 ej
                         Zdj                  d  e j                         D              Z ej                         Z ej"                         Zej&                  Zej*                  Zdj/                  eeee
      ZdZd	Zd
ZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%eeeeeeedZ&ddddddddddd
Z'i d d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCiZ(dDdEdFdGdFdHdIdIdJZ)dKdLiZ*i dMdMdNdOdPdPdQdQdRdRdSdSdTdUdVdVdWdVdXdVdYdYdZdZd[dMd\d\d]d^d_d`dadai dbd\dcdcdddedfdedgdgdhdidjdjdkdkdldldididmdmdndldodOdpdadqd`drdrdsdsdtdudvdwZ+ e e, e-e+j]                               dx dyz            Z+d{d|d}d~ddZ/ddddZ0ddiZ1ddddZ2ddddddddZ3ddddddddddddddZ4 e e, e-e4j]                               d dyz            Z4dddddddZ5 e e, e-e5j]                               d dyz            Z5g dZ6g dZ7ddddddddZ8g dZ9 ee9      Z9dddddddddgddddddddddddddddddddddgddddddddddddddgddddddddddddddgddddddddddddddddddddddgddddddddddddddddddgddddddddddgddddddddddgddddddd dddgddddddddddgdd	d
dddgdgZ:ddddddddddddddddddddddddddddd d!dd"d#d$d%dd&dd'd(dd)dd*d+dd,dd-d.dd/dd0d1dd2dd3d4dd5d#d6d7dd8d#d9d:d;d<d=d#d>d?d@d<dAd#dBdCdDd<dEd#dFdGdHd<dId#dJdKdHd<dLd#dMdNdOd<dPd#dQdRdSd<dTddUdVdd	ddWdXddYd#dZd[dd\d#d]d^dgdd_g d`d#dadbddcd#dddeddfd#dgdhddid#djdkddld#dmdnddod#dpdqddrd#dsdtdudvdwd#dxdydudvdzd#d{d|dudvd}d#d~dddd#ddddd#ddddd#ddddddddddddddddddddddddddddddddddddddddddddddddddddddd#dddd<ddddddddddddddddd#ddddddddddddddd#ddddd#ddddÐd#dĐdŐddƐddǐdȐddɐd#dʐdːdd̐d#d͐dΐddϐddАdѐddҐd#dӐdԐddՐd#d֐dאddؐddِdڐddېd#dܐdݐddސd#dߐddddddddddddddddddddddddddddddddd<dd#dddd<ddddddd#dddd<dd#dddd<d d#ddddd#ddddd#dddd<d	d#d
ddd<dddddddddddddddddddddddddddddddd#dddd<d d#d!d"dd<d#d#d$d%dd<d&dd'd(d)d<d*d#d+d,dudvd-dd.d/dd0d#d1d2dd3d4d5d6dd7dd8d9dd:d#d;d<dd=d#d>d?dd@d#dAdBddCddDdEddFddGdHddIddJdKddLddMdNddOddPdQddRddSdTdUd<dVd#dWdXdd<dYd#dZd[dd\d#d]d^dd_dd`daddbddcdddded#dfdgddhddidjddkddldmddnd#dodpddqd#drdsddtddudvddwddxdyddzd#d{d|dd}dd~ddd<ddddddd4dddddddddd#dddddddddddddddddddddddddddddd#dddd<ddddddddddddddddddddddddddd#ddddd#dddddddddd4ddddd#dddd<dd#dddd<ddddddÐddĐdŐddƐd#dǐdȐdd<dɐddʐdːdd̐dd͐dΐddϐddАdѐddҐddӐdԐddՐdd֐dאddؐd#dِdڐddېddܐdݐdddg dߐddddd<ddddddddddddddddddddddddddddddddddddddddddddddddd ddd#dddd<dd#dddd<d	d#d
ddd<dd#dddd<dd#dddd<dd#dddd<dd#dddd<dd#ddd d<d!d#d"d#dd$d#d%d&dd'd#d(d)dd*d#d+d,ddd#d-d.dd/d#d0d1dd2dd3d4dd5dd6d7dd8dd9d:dd;dd<d=dd>dd?d@ddAddBdCddDddEdFdGd<dHddIdJddKddLdMddNddOdPddQddRdSddTddUdVddWddXdYddZdd[d\dd]dd^d_dd`d4dadbddcd#dddedfdvdgd4dhdidjdvdkd4dldmddnd#dodpddqd#drdsddtd#dudvddwddxdyddzdd{d|dd}dd~ddd<ddddddddddddddddddddd<ddddddd#dddd<ddddddd#dddd<ddddddd#dddd<ddddddddddd<ddddddddddddddddddvddddddvdddddddddddd#ddddÐd4dĐdŐddƐddǐdȐddɐd#dʐdːdd̐d#d͐dΐddϐd#dАdѐddҐddӐdԐddՐdd֐dאddؐddِdڐddېddܐdݐddސddߐdddddddUd<dd#dddd<dd#ddddd#ddddddddddddddd#ddddddddddddddd#ddddd#d dddddddddddddd#d	d
ddddddd<ddddddd4dddddddddd#dddddddddddddd dd!d"dd#dd$d%dd&dd'd(dd)d#d*ddd<d+dd,d-dd.dd/d0dd1dd2d3dd4dd5d6dd7dd8d9dd:dd;d<d=d<d>d#d?d@ddAddBdCddDd#dEdFddGd#dHdIddJd#dKdLddMd#dNdOddPddQdRddSddTdUddVddWdXddYddZd[dd\dd]d^dd_dd`daddbd#dcdddd<ddedfddgdhddiddjdkddlddmdnddoddpdqddrddsdtdduddvdwddxddydzdgdd{d|dd}d~ddddddddddddddddd<dddd+dddddddddddddddddddddddddddddddgddddddddddddddddddddddddddddddddddddddd#ddddddddg	dgZ;ddddddddddddddddd5d#d6ddd8d#d9dd;d<d=d#d>dd@d<dAd#dBddDd<dEd#dFdÐdHd<dId#dJdĐdHd<dLd#dMdŐdOd<dPd#dQdƐdSd<dǐd#dȐdɐddʐddːd̐dd͐ddΐdϐddАddѐdҐddӐddԐdՐdd֐d#dאdؐddِd#dڐdېddܐddݐdސdgddߐdddddgdgZ<e;D  ci c]  } | d   D ]  }|d   |d     c}} Z=yc c}} w (      N)OrderedDict)versionTautulli c              #   &   K   | ]	  }|s|  y w)N ).0xs     /opt/Tautulli/plexpy/common.py	<genexpr>r      s      Mq1 Ms   z{}/{} ({} {})z4interfaces/default/images/gravatar-default-80x80.pngz$interfaces/default/images/poster.pngz#interfaces/default/images/cover.pngz!interfaces/default/images/art.pngz)interfaces/default/images/poster-live.pngz&interfaces/default/images/art-live.pngz+interfaces/default/images/art-live-full.pngz,interfaces/default/images/libraries/live.pngz&https://tautulli.com/images/poster.pngz%https://tautulli.com/images/cover.pngz#https://tautulli.com/images/art.pngi?B zLive TV)postercoverartzposter-livezart-livezart-live-fulluserMovieszTV ShowsSeasonsEpisodesArtistsAlbumsTracksVideosPhotos)
movieshowseasonepisodeartistalbumtrackvideoaudiophoto   r      r      r      r      trailer   comic   person   r   	   r   
   r      picture   clip   r"      
photoalbum   playlist   playlistFolder   
collection*   optimizedVersionzPlex Media PlayerzPlaystation 3zPlaystation 4zXbox 360WindowsmacOS)Konvergoz	Mystery 3z	Mystery 4z	Mystery 5WebMAFwindowsosxmacosMacOSXMacandroidzapple tvatvchrome
chromecastdlnafirefoxzinternet explorerieiosipadiphonekodilinuxnexusrE   zmicrosoft edgemsedgenetcastlgoperarD   playstationzplex home theaterplexzplex media playerplexampplextogether
syncloungerokusafarisamsungtivotizentvosvizioweboswiiurC   wpxbmcxbox)zwindows phonerh   ri   c                     | d   S Nr   r   ks    r   <lambda>rn      s    PQRSPT     T)keyreversedolby_digitaldolby_truehddtszdca-maogg)zac.?3truehdz	(dca|dta)zdts(hd_|-hd|-)?mavorbish264wmvwmvhd)avc1zwmv(1|2)wmv3rv   TrueHDSD2k4k)sdr   r   MonoStereoz2.1z3.1z5.1z6.1z7.1)1234678z20 Mbps 1080pz12 Mbps 1080pz10 Mbps 1080pz8 Mbps 1080pz4 Mbps 720pz3 Mbps 720pz2 Mbps 720pz1.5 Mbps 480pz0.7 Mbps 328pz0.3 Mbps 240pz0.2 Mbps 160pz
0.096 Mbpsz
0.064 Mbps)i N  i.  i'  i@  i  i  i  i  i  @     `   @   c                     | d   S rk   r   rl   s    r   rn   rn          `abc`d ro   z512 kbpsz320 kbpsz256 kbpsz192 kbpsz128 kbpsz96 kbps)i   r            r   c                     | d   S rk   r   rl   s    r   rn   rn      r   ro   )d3d11vadxva2videotoolboxmediacodecndkvaapinvdec)qsvmfr   r   r   nvencTrailerzDeleted Scene	InterviewzBehind the ScenesScene
FeaturetteShort)r   r   r   5r   1011))zCheck GitHub for updates	scheduled)zCheck for server response	websocket)zCheck for active sessionsr   )zCheck for recently added itemsr   )zCheck for server remote accessr   )zCheck for Plex updatesr   )zRefresh users listr   )zRefresh libraries listr   )zRefresh Plex server URLsr   )zOptimize Tautulli databaser   )zBackup Tautulli databaser   )zBackup Tautulli configr   YearYYYYzNumeric, four digitsz
1999, 2003)valuedescriptionexampleYYzNumeric, two digitsz99, 03)category
parametersMonthMMMMzTextual, fullzJanuary-DecemberMMMzTextual, three letterszJan-DecMMzNumeric, with leading zerosz01-12MzNumeric, without leading zerosz1-12MozNumeric, with suffixz1st, 2nd ... 12thzDay of the YearDDDDz001-365DDDz1-365DDDoz1st, 2nd, ... 365thzDay of the MonthDDz01-31Dz1-31Doz1st, 2nd ... 31stzDay of the WeekddddzSunday-SaturdaydddzSun-SatddzTextual, two letterszSu-SadNumericz0-6doz0th, 1st ... 6thHourHHz24-hour, with leading zerosz00-23Hz24-hour, without leading zerosz0-23hhz12-hour, with leading zeroshz12-hour, without leading zerosMinutemmz00-59mz0-59SecondssszAM / PMAzAM/PM uppercasezAM, PMazam/pm lowercasezam, pmTimezoneZZz
UTC offsetz+0100, -0700Zz+01:00, -07:00	TimestampXzUnix timestampzE.g. 1456887825GlobalzTautulli Versionstrtautulli_versionz The current version of Tautulli.)nametyper   r   zTautulli Remotetautulli_remotez#The current git remote of Tautulli.zTautulli Branchtautulli_branchz#The current git branch of Tautulli.zTautulli Committautulli_commitz(The current git commit hash of Tautulli.zServer Nameserver_namezThe name of your Plex Server.z	Server IP	server_ipz/The connection IP address for your Plex Server.zServer Portintserver_portz)The connection port for your Plex Server.z
Server URL
server_urlz(The connection URL for your Plex Server.zServer Platformserver_platformz!The platform of your Plex Server.zServer Versionserver_versionz(The current version of your Plex Server.z	Server IDserver_machine_idz+The unique identifier for your Plex Server.Actionactionz+The action that triggered the notification.zCurrent Yearcurrent_yearz,The year when the notification is triggered.zCurrent Monthcurrent_monthz-The month when the notification is triggered.z1 to 12)r   r   r   r   r   zCurrent Daycurrent_dayz+The day when the notification is triggered.z1 to 31zCurrent Hourcurrent_hourz,The hour when the notification is triggered.z0 to 23zCurrent Minutecurrent_minutez.The minute when the notification is triggered.z0 to 59zCurrent Secondcurrent_secondz.The second when the notification is triggered.zCurrent Weekdaycurrent_weekdayz3The ISO weekday when the notification is triggered.z1 (Mon) to 7 (Sun)zCurrent Weekcurrent_weekz7The ISO week number when the notification is triggered.z1 to 52	Datestamp	datestampz=The date (in date format) when the notification is triggered.	timestampz=The time (in time format) when the notification is triggered.z	Unix Timeunixtimez6The unix timestamp when the notification is triggered.zUTC TimeutctimezCThe UTC timestamp in ISO format when the notification is triggered.zStream DetailsStreamsstreamsz'The total number of concurrent streams.zLAN Streamslan_streamsz+The total number of concurrent LAN streams.zWAN Streamswan_streamsz+The total number of concurrent WAN streams.zDirect Playsdirect_playsz,The total number of concurrent direct plays.zDirect Streamsdirect_streamsz.The total number of concurrent direct streams.
Transcodes
transcodesz*The total number of concurrent transcodes.zTotal Bandwidthtotal_bandwidthz<The total Plex Streaming Brain reserved bandwidth (in kbps).znot the used bandwidth)r   r   r   r   	help_textzLAN Bandwidthlan_bandwidthz@The total Plex Streaming Brain reserved LAN bandwidth (in kbps).zWAN Bandwidthwan_bandwidthz@The total Plex Streaming Brain reserved WAN bandwidth (in kbps).zUser Streamsuser_streamsz7The number of concurrent streams by the user streaming.zUser Direct Playsuser_direct_playsz<The number of concurrent direct plays by the user streaming.zUser Direct Streamsuser_direct_streamsz>The number of concurrent direct streams by the user streaming.zUser Transcodesuser_transcodesz:The number of concurrent transcodes by the user streaming.Userr   z(The friendly name of the user streaming.Usernameusernamez#The username of the user streaming.z
User Email
user_emailz(The email address of the user streaming.z
User Thumb
user_thumbz.The profile picture URL of the user streaming.Devicedevicez2The type of client device being used for playback.Platformplatformz4The type of client platform being used for playback.zPlatform Versionplatform_versionzBThe version number of the client platform being used for playback.Productproductz3The type of client product being used for playback.zProduct Versionproduct_versionz=The version number of client product being used for playback.Playerplayerz/The name of the player being used for playback.zInitial Streaminitial_streamzFIf the stream is the initial stream of a continuous streaming session.z0 or 1z
IP Address
ip_addressz5The IP address of the device being used for playback.zStarted Datestampstarted_datestampz2The date (in date format) when the stream started.zStarted Timestampstarted_timestampz2The time (in time format) when the stream started.zStarted Unix Timestarted_unixtimez+The unix timestamp when the stream started.zStopped Datestampstopped_datestampz2The date (in date format) when the stream stopped.zStopped Timestampstopped_timestampz2The time (in time format) when the stream stopped.zStopped Unix Timestopped_unixtimez+The unix timestamp when the stream stopped.zStream Durationstream_durationz)The duration (in minutes) for the stream.zStream Duration (sec)stream_duration_secz)The duration (in seconds) for the stream.zStream Timestream_timez,The duration (in time format) of the stream.zRemaining Durationremaining_durationz2The remaining duration (in minutes) of the stream.zRemaining Duration (sec)remaining_duration_secz2The remaining duration (in seconds) of the stream.zRemaining Timeremaining_timez6The remaining duration (in time format) of the stream.zProgress Durationprogress_durationz4The last reported offset (in minutes) of the stream.zProgress Duration (sec)progress_duration_secz4The last reported offset (in seconds) of the stream.zProgress Timeprogress_timez8The last reported offset (in time format) of the stream.zProgress Percentprogress_percentz1The last reported progress percent of the stream.zView Offset (ms)view_offsetz9The current view offset (in milliseconds) for the stream.zTranscode Decisiontranscode_decisionz%The transcode decision of the stream.zContainer Decisioncontainer_decisionz/The container transcode decision of the stream.zVideo Decisionvideo_decisionz+The video transcode decision of the stream.zAudio Decisionaudio_decisionz+The audio transcode decision of the stream.zSubtitle Decisionsubtitle_decisionz.The subtitle transcode decision of the stream.zQuality Profilequality_profilez'The Plex quality profile of the stream.z e.g. Original, 4 Mbps 720p, etc.zOptimized Versionoptimized_versionz&If the stream is an optimized version.zOptimized Version Profileoptimized_version_profilez,The optimized version profile of the stream.zSynced Versionsynced_versionz#If the stream is an synced version.LivelivezIf the stream is live TV.zMarker Start Timemarker_startz>The intro or credits marker start time offset in milliseconds.zMarker End Time
marker_endz<The intro or credits marker end time offset in milliseconds.zCredits Marker Firstcredits_marker_firstz*If the marker is the first credits marker.zCredits Marker Finalcredits_marker_finalz*If the marker is the final credits marker.zChannel Call Signchannel_call_signzThe Live TV channel call sign.z
Channel ID
channel_idzThe Live TV channel number.zChannel Identifierchannel_identifierzThe Live TV channel identifier.zChannel Titlechannel_titlezThe Live TV channel title.zChannel Thumbchannel_thumbz%The URL for the Live TV channel logo.zChannel VCNz!The Live TV tuner channel number.Securesecurez+If the stream is using a secure connection.Relayedrelayedz"If the stream is using Plex Relay.zStream Localstream_localzIf the stream is local.zStream Locationstream_locationz#The network location of the stream.z
lan or wanzStream Bandwidthstream_bandwidthzDThe Plex Streaming Brain reserved bandwidth (in kbps) of the stream.zStream Containerstream_containerz"The media container of the stream.zStream Bitratestream_bitratez$The bitrate (in kbps) of the stream.zStream Aspect Ratiofloatstream_aspect_ratiozThe aspect ratio of the stream.zStream Video Codecstream_video_codeczThe video codec of the stream.zStream Video Codec Levelstream_video_codec_levelz$The video codec level of the stream.zStream Video Bitratestream_video_bitratez*The video bitrate (in kbps) of the stream.zStream Video Bit Depthstream_video_bit_depthz"The video bit depth of the stream.zStream Video Chroma Subsamplingstream_video_chroma_subsamplingz+The video chroma subsampling of the stream.zStream Video Color Primariesstream_video_color_primariesz(The video color primaries of the stream.zStream Video Color Rangestream_video_color_rangez$The video color range of the stream.zStream Video Color Spacestream_video_color_spacez$The video color space of the stream.z$Stream Video Color Transfer Functionstream_video_color_trcz*The video transfer function of the stream.zStream Video Dynamic Rangestream_video_dynamic_rangez&The video dynamic range of the stream.z
HDR or SDRzStream Video DOVI Presentstream_video_dovi_presentz)If Dolby Vision is present in the stream.zStream Video DOVI Levelstream_video_dovi_levelz%The Dolby Vision level of the stream.zStream Video DOVI Profilestream_video_dovi_profilez'The Dolby Vision profile of the stream.zStream Video Frameratestream_video_frameratez"The video framerate of the stream.zStream Video Full Resolutionstream_video_full_resolutionz2The video resolution of the stream with scan type.zStream Video Ref Framesstream_video_ref_framesz)The video reference frames of the stream.zStream Video Resolutionstream_video_resolutionz#The video resolution of the stream.zStream Video Scan Typestream_video_scan_typez"The video scan type of the stream.zStream Video Heightstream_video_heightzThe video height of the stream.zStream Video Widthstream_video_widthzThe video width of the stream.zStream Video Languagestream_video_languagez!The video language of the stream.zStream Video Language Codestream_video_language_codez&The video language code of the stream.zStream Audio Bitratestream_audio_bitratez The audio bitrate of the stream.zStream Audio Bitrate Modestream_audio_bitrate_modez%The audio bitrate mode of the stream.z
cbr or vbrzStream Audio Codecstream_audio_codeczThe audio codec of the stream.zStream Audio Channelsstream_audio_channelsz!The audio channels of the stream.zStream Audio Channel Layoutstream_audio_channel_layoutz'The audio channel layout of the stream.zStream Audio Sample Ratestream_audio_sample_ratez,The audio sample rate (in Hz) of the stream.zStream Audio Languagestream_audio_languagez!The audio language of the stream.zStream Audio Language Codestream_audio_language_codez&The audio language code of the stream.zStream Subtitle Codecstream_subtitle_codecz!The subtitle codec of the stream.zStream Subtitle Containerstream_subtitle_containerz%The subtitle container of the stream.zStream Subtitle Formatstream_subtitle_formatz"The subtitle format of the stream.zStream Subtitle Forcedstream_subtitle_forcedzIf the subtitles are forced.zStream Subtitle Languagestream_subtitle_languagez$The subtitle language of the stream.zStream Subtitle Language Codestream_subtitle_language_codez)The subtitle language code of the stream.zStream Subtitle Locationstream_subtitle_locationz$The subtitle location of the stream.zTranscode Containertranscode_containerz-The media container of the transcoded stream.zTranscode Video Codectranscode_video_codecz)The video codec of the transcoded stream.zTranscode Video Widthtranscode_video_widthz)The video width of the transcoded stream.zTranscode Video Heighttranscode_video_heightz*The video height of the transcoded stream.zTranscode Audio Codectranscode_audio_codecz)The audio codec of the transcoded stream.zTranscode Audio Channelstranscode_audio_channelsz,The audio channels of the transcoded stream.zTranscode HW Requestedtranscode_hw_requestedz,If hardware decoding/encoding was requested.zTranscode HW Decodingtranscode_hw_decodingzIf hardware decoding is used.zTranscode HW Decoding Codectranscode_hw_decodezThe hardware decoding codec.zTranscode HW Decoding Titletranscode_hw_decode_titlez"The hardware decoding codec title.zTranscode HW Encodingtranscode_hw_encodingzIf hardware encoding is used.zTranscode HW Encoding Codectranscode_hw_encodezThe hardware encoding codec.zTranscode HW Encoding Titletranscode_hw_encode_titlez"The hardware encoding codec title.zSession Keysession_keyz&The unique identifier for the session.zTranscode Keytranscode_keyz0The unique identifier for the transcode session.z
Session ID
session_idz%The unique identifier for the stream.zUser IDuser_idz#The unique identifier for the user.z
Machine ID
machine_idz%The unique identifier for the player.zSource Metadata Detailsz
Media Type
media_typezThe type of media.z8movie, show, season, episode, artist, album, track, clipzLibrary Namelibrary_namezThe library name of the item.TitletitlezThe full title of the item.zEdition Titleedition_titlezThe edition title of the movie.z	Show Name	show_namezThe title of the TV show.zSeason Nameseason_namezThe title of the TV season.zEpisode Nameepisode_namezThe title of the TV episode.zArtist Nameartist_namezThe name of the artist.z
Album Name
album_namezThe title of the album.z
Track Name
track_namezThe title of the track.zTrack Artisttrack_artistz$The name of the artist of the track.zSeason Number
season_numzThe season number.ze.g. 1, or 1-3zSeason Number 00season_num00zThe two digit season number.ze.g. 01, or 01-03zEpisode Numberepisode_numzThe episode number.ze.g. 6, or 6-10zEpisode Number 00episode_num00zThe two digit episode number.ze.g. 06, or 06-10zDisc Numberdisc_numzThe disc number.ze.g. 2zDisc Number 00
disc_num00zThe two digit disc number.ze.g. 02zTrack Number	track_numzThe track number.ze.g. 4, or 4-10zTrack Number 00track_num00zThe two digit track number.ze.g. 04, or 04-10zSeason Countseason_countz?The number of seasons in a grouped recently added notification.zEpisode Countepisode_countz@The number of episodes in a grouped recently added notification.zAlbum Countalbum_countz>The number of albums in a grouped recently added notification.zTrack Counttrack_countz>The number of tracks in a grouped recently added notification.yearzThe release year for the item.z	Show Year	show_yearz The release year of the TV show.zRelease Daterelease_datez/The release date (in date format) for the item.zAir Dateair_datez+The air date (in date format) for the item.z
Added Date
added_datez5The date (in date format) the item was added to Plex.zUpdated Dateupdated_datez7The date (in date format) the item was updated on Plex.zLast Viewed Datelast_viewed_datez;The date (in date format) the item was last viewed on Plex.StudiostudiozThe studio for the item.zContent Ratingcontent_ratingz The content rating for the item.ze.g. TV-MA, TV-PG, etc.	Directors	directorsz!A list of directors for the item.WriterswriterszA list of writers for the item.ActorsactorszA list of actors for the item.GenresgenreszA list of genres for the item.LabelslabelszA list of labels for the item.Collectionscollectionsz#A list of collections for the item.Summarysummaryz"A short plot summary for the item.TaglinetaglinezA tagline for the media item.Ratingratingz$The rating (out of 10) for the item.zCritic Ratingcritic_ratingz#The critic rating (%) for the item.z?Ratings source must be Rotten Tomatoes for the Plex Movie agentzAudience Ratingaudience_ratingz!The audience rating for the item.zGRating out of 10 for IMDB, percentage (%) for Rotten Tomatoes and TMDB.zUser Ratinguser_ratingz0The user (star) rating (out of 10) for the item.Durationdurationz'The duration (in minutes) for the item.zDuration (sec)duration_secz'The duration (in seconds) for the item.zDuration (ms)duration_msz,The duration (in milliseconds) for the item.zDuration Timeduration_timez+The duration (in time format) for the item.z
Poster URL
poster_urlz.A URL for the movie, TV show, or album poster.zPlex IDplex_idzThe Plex ID for the item.ze.g. 5d7769a9594b2b001e6a6b7ezPlex URLplex_urlz)The Plex URL to your server for the item.z	Plex Slug	plex_slugzThe Plex URL slug for the item.zPlex Watch URLplex_watch_urlz+The Plex URL to watch.plex.tv for the item.zIMDB IDimdb_idz%The IMDB ID for the movie or TV show.ze.g. tt2488496zIMDB URLimdb_urlz&The IMDB URL for the movie or TV show.zTVDB ID
thetvdb_idz%The TVDB ID for the movie or TV show.ze.g. 121361zTVDB URLthetvdb_urlz&The TVDB URL for the movie or TV show.zTMDB IDthemoviedb_idz%The TMDb ID for the movie or TV show.z
e.g. 15260zTMDB URLthemoviedb_urlz&The TMDb URL for the movie or TV show.z	TVmaze ID	tvmaze_idzThe TVmaze ID for the TV show.ze.g. 290z
TVmaze URL
tvmaze_urlzThe TVmaze URL for the TV show.zMusicBrainz IDmusicbrainz_idz3The MusicBrainz ID for the artist, album, or track.z)e.g. b670dfcf-9824-4309-a57e-03595aaba286zMusicBrainz URLmusicbrainz_urlz4The MusicBrainz URL for the artist, album, or track.zAniDB IDanidb_idzThe AniDB ID for the Animeze.g. 69z"TV show library agent must be HAMA)r   r   r   r   r   r   z	AniDB URL	anidb_urlzThe AniDB URL for the AnimezLast.fm URL
lastfm_urlzThe Last.fm URL for the album.z#Music library agent must be Last.fmzTrakt.tv URL	trakt_urlz*The trakt.tv URL for the movie or TV show.	Container	containerz*The media container of the original media.Bitratebitratez"The bitrate of the original media.zAspect Ratioaspect_ratioz'The aspect ratio of the original media.zVideo Codecvideo_codecz&The video codec of the original media.zVideo Codec Levelvideo_codec_levelz,The video codec level of the original media.zVideo Bitratevideo_bitratez(The video bitrate of the original media.zVideo Bit Depthvideo_bit_depthz*The video bit depth of the original media.zVideo Chroma Subsamplingvideo_chroma_subsamplingz3The video chroma subsampling of the original media.zVideo Color Primariesvideo_color_primariesz0The video color primaries of the original media.zVideo Color Rangevideo_color_rangez,The video color range of the original media.zVideo Color Spacevideo_color_spacez,The video color space of the original media.zVideo Color Transfer Functionvideo_color_trcz2The video transfer function of the original media.zVideo Dynamic Rangevideo_dynamic_rangez.The video dynamic range of the original media.zVideo DOVI Presentvideo_dovi_presentz1If Dolby Vision is present in the original media.zVideo DOVI Levelvideo_dovi_levelz-The Dolby Vision level of the original media.zVideo DOVI Profilevideo_dovi_profilez/The Dolby Vision profile of the original media.zVideo Frameratevideo_frameratez*The video framerate of the original media.zVideo Full Resolutionvideo_full_resolutionz:The video resolution of the original media with scan type.zVideo Ref Framesvideo_ref_framesz1The video reference frames of the original media.zVideo Resolutionvideo_resolutionz+The video resolution of the original media.zVideo Scan Typevideo_scan_typez*The video scan type of the original media.zVideo Heightvideo_heightz'The video height of the original media.zVideo Widthvideo_widthz&The video width of the original media.zVideo Languagevideo_languagez)The video language of the original media.zVideo Language Codevideo_language_codez.The video language code of the original media.zAudio Bitrateaudio_bitratez(The audio bitrate of the original media.zAudio Bitrate Modeaudio_bitrate_modez-The audio bitrate mode of the original media.zAudio Codecaudio_codecz&The audio codec of the original media.zAudio Channelsaudio_channelsz)The audio channels of the original media.zAudio Channel Layoutaudio_channel_layoutz/The audio channel layout of the original media.zAudio Sample Rateaudio_sample_ratez4The audio sample rate (in Hz) of the original media.zAudio Languageaudio_languagez)The audio language of the original media.zAudio Language Codeaudio_language_codez.The audio language code of the original media.zSubtitle Codecsubtitle_codecz)The subtitle codec of the original media.zSubtitle Containersubtitle_containerz-The subtitle container of the original media.zSubtitle Formatsubtitle_formatz*The subtitle format of the original media.zSubtitle Forcedsubtitle_forcedzSubtitle Locationsubtitle_locationz,The subtitle location of the original media.zSubtitle Languagesubtitle_languagez,The subtitle language of the original media.zSubtitle Language Codesubtitle_language_codez1The subtitle language code of the original media.FilefilezThe file path to the item.FilenamefilenamezThe file name of the item.z	File Size	file_sizez3The file size of the item in human readable format.z1.2 GBzFile Size Bytesfile_size_bytesz#The file size of the item in bytes.GuidguidzThe full guid for the item.z
Section ID
section_idz&The unique identifier for the library.z
Rating Key
rating_keyz7The unique identifier for the movie, episode, or track.zParent Rating Keyparent_rating_keyz.The unique identifier for the season or album.zGrandparent Rating Keygrandparent_rating_keyz0The unique identifier for the TV show or artist.Artr   z6The Plex API path to the background art for the media.Thumbthumbz<The Plex API path to the thumbnail for the movie or episode.zParent Thumbparent_thumbz;The Plex API path to the thumbnail for the season or album.zGrandparent Thumbgrandparent_thumbz=The Plex API path to the thumbnail for the TV show or artist.zPoster Thumbposter_thumbz8The Plex API path to the thumbnail for the poster image.zPoster Titleposter_titlezThe title for the poster image.Indexesindexesz*If the media has video preview thumbnails.zPlex Remote AccesszRemote Access Mapping Stateremote_access_mapping_statez1The mapping state of the Plex remote access port.zRemote Access Mapping Errorremote_access_mapping_errorz1The mapping error of the Plex remote access port.zRemote Access Public IP Addressremote_access_public_addressz)The Plex remote access public IP address.zRemote Access Public Portremote_access_public_portz#The Plex remote access public port.z Remote Access Private IP Addressremote_access_private_addressz*The Plex remote access private IP address.zRemote Access Private Portremote_access_private_portz$The Plex remote access private port.zRemote Access Failure Reasonremote_access_reasonz5The failure reason for Plex remote access going down.zPlex Update AvailablezUpdate Versionupdate_versionz2The available update version for your Plex Server.z
Update Url
update_urlz*The download URL for the available update.zUpdate Release Dateupdate_release_datez:The release date (in date format) of the available update.zUpdate Channelupdate_channelzThe update channel.zPublic or Plex PasszUpdate Platformupdate_platformzUpdate Distroupdate_distrozThe distro of your Plex Server.zUpdate Distro Buildupdate_distro_buildz%The distro build of your Plex Server.zUpdate Requirementsupdate_requirementsz*The requirements for the available update.zUpdate Extra Infoupdate_extra_infoz(Any extra info for the available update.zUpdate Changelog Addedupdate_changelog_addedz-The added changelog for the available update.zUpdate Changelog Fixedupdate_changelog_fixedz-The fixed changelog for the available update.zTautulli Update AvailablezTautulli Update Versiontautulli_update_versionz*The available update version for Tautulli.zTautulli Update Release URLtautulli_update_release_urlzThe release page URL on GitHub.zTautulli Update Exetautulli_update_exez6The Windows exe download URL for the available update.zTautulli Update Pkgtautulli_update_pkgz4The MacOS pkg download URL for the available update.zTautulli Update Tartautulli_update_tarz.The tar download URL for the available update.zTautulli Update Ziptautulli_update_zipz.The zip download URL for the available update.zTautulli Update Committautulli_update_commitz)The commit hash for the available update.zTautulli Update Behindtautulli_update_behindz6The number of commits behind for the available update.zTautulli Update Changelogtautulli_update_changelogz'The changelog for the available update.z
Start Date
start_datez!The start date of the newsletter.zEnd Dateend_datezThe end date of the newsletter.z-The year of the start date of the newsletter.z.The month of the start date of the newsletter.z,The day of the start date of the newsletter.z-The hour of the start date of the newsletter.z/The minute of the start date of the newsletter.z/The second of the start date of the newsletter.z4The ISO weekday of the start date of the newsletter.z8The ISO week number of the start date of the newsletter.zNewsletter Time Framenewsletter_time_framez*The time frame included in the newsletter.zNewsletter Time Frame Unitsnewsletter_time_frame_unitsz0The time frame units included in the newsletter.zNewsletter URLnewsletter_urlz&The self-hosted URL to the newsletter.zNewsletter Static URLnewsletter_static_urlzLThe static self-hosted URL to the latest scheduled newsletter for the agent.zNewsletter UUIDnewsletter_uuidz)The unique identifier for the newsletter.zNewsletter IDnewsletter_idz.The unique ID number for the newsletter agent.zNewsletter ID Namenewsletter_id_namez,The unique ID name for the newsletter agent.zNewsletter Passwordnewsletter_passwordz8The password required to view the newsletter if enabled.zRecently AddedzIncluded Librariesnewsletter_librariesz1The list of libraries included in the newsletter.r   r   r   )>distror  r  r   plexpyr   PRODUCTsystemPLATFORMreleasePLATFORM_RELEASEPLATFORM_VERSIONjoinlinux_distributionPLATFORM_LINUX_DISTROnodePLATFORM_DEVICE_NAMEpython_versionPYTHON_VERSIONPLEXPY_BRANCHBRANCHPLEXPY_RELEASE_VERSIONRELEASEformat
USER_AGENTDEFAULT_USER_THUMBDEFAULT_POSTER_THUMBDEFAULT_COVER_THUMBDEFAULT_ARTDEFAULT_LIVE_TV_POSTER_THUMBDEFAULT_LIVE_TV_ARTDEFAULT_LIVE_TV_ART_FULLDEFAULT_LIVE_TV_THUMBONLINE_POSTER_THUMBONLINE_COVER_THUMB
ONLINE_ARTLIVE_TV_SECTION_IDLIVE_TV_SECTION_NAMEDEFAULT_IMAGESMEDIA_TYPE_HEADERSMEDIA_TYPE_VALUESPLATFORM_NAME_OVERRIDESPMS_PLATFORM_NAME_OVERRIDESPLATFORM_NAMESsortedlistitemsMEDIA_FLAGS_AUDIOMEDIA_FLAGS_VIDEOAUDIO_CODEC_OVERRIDESVIDEO_RESOLUTION_OVERRIDESAUDIO_CHANNELSVIDEO_QUALITY_PROFILESAUDIO_QUALITY_PROFILESHW_DECODERSHW_ENCODERSEXTRA_TYPESSCHEDULER_LISTDATE_TIME_FORMATSNOTIFICATION_PARAMETERSNEWSLETTER_PARAMETERSNOTIFICATION_PARAMETERS_TYPES)r   	parameters   00r   <module>rj     s+  $   #  8??#8##% #8##%  M,EF,E,E,G MM $x}} (((*			

(
(##GWh@PQ
K = ; 1J > H F > < 2
    # /#-  wv x y	
 y w x x w  	    
  !" #$ % , $  	  e &y&& h& ,	&
 F& y& & 
5& E& e& F& W& Y& W& h&  t!&" W#&$ 
7%&& ='&( )&* +&, y-&. L/&0 F1&2 h3&4 y5&6 ,7&8 F9&: Y;&< E=&> W?&@ TA&B FC&D yE&F K&N VD)=)=)?$@n^bcd !    h 
 

  
						 




			  %VD1G1M1M1O,PVdnr%st  
				  %VD1G1M1M1O,PVdnr%st  
				

 ^, -CP\]+@XV
 _I[\,DQZ[+HU\]*JW]^+ANab
	 &-JW`a,LY`a-CPef
 '+HU\]*JW]^+ANab
 &_IZ[,DQZ[+AgV)F+AN`a
	 +HU\]*JW]^+HU\]*JW]^	
 +HU\]*JW]^
 +HU\]*JW]^
 *;Q*;Q
 <NS,CST
  *:GXY
cW v (%BT  fH  I'AR  dI  J'AR  dI  J'AR  dN  O#U][z{!5;  XI  J#U]  \G  H"EL  ZD  E'AR  dG  H&@P  bL  M!5;N  `M  NQ~$en  ^L  M%u  `O  \e  f#U]  \I  V_  `$en  ^L  Yb  c&@P  bR  _h  i&@P  bR  _h  i'AR  dY  fz  {$en  ^W  dm  n!5;  XW  X!5;  XW  X!5:  WO  P %)  UZ  [1
< %~S|}~#U]  \I  J~ $U]  \I  J~ %en  ^L  M	~
 '@P  bR  S~ #EL  ZF  G~ (AR  db  qI  J~ &u  `b  qI  J~ &u  `b  qI  J~ %en  ^W  X~ *5CV  hf  g~ ,UEZ  ll  m~ (AR  d`  a~ efMwx~ !%*Uz{~  #EL  ZD  E!~" #EL  ZJ  K#~$   RF  G%~& !%*  VL  M'~( )%BT  fj  k)~*    TI  J+~, (AR  dc  d-~.   RC  D/~0 '@P  bj  w  @1~2 #EL  ZQ  R3~4 *5CV  h\  ]5~6 *5CV  h\  ]7~8 *5CU  gT  U9~: *5CV  h\  ];~< *5CV  h\  ]=~> *5CU  gT  U?~@ (AR  dO  PA~B .uG\  nY  ZC~D $U]  \J  KE~F +EDX  j^  _G~H 1%Jb  th  iI~J '@P  bZ  [K~L *5CV  h^  _M~N 0I`  rh  iO~P &u  `Z  [Q~R )%BT  fY  ZS~T )%-  a\  ]U~V +EDX  jQ  RW~X +EDX  j[  \Y~Z '@P  bO  P[~\ '@P  bO  P]~^ *5CV  hX  Y_~` (AR  dM  Z|  }a~b *5CV  hP  ]e  fc~d 25Kf  xf  ge~f '@P  bG  T\  ]g~h efMhu}~i~j *5>  cc  dk~l (  _]  ^m~n -eF\  nZ  go  po~p -eF\  nZ  go  pq~r *5CV  hH  Is~t #ELYvwu~v +EDX  jK  Lw~x &u_{|y~z &u  `G  H{~| $U_  ^A  B}~~ Q~  LT  U~@  Sw  EM  NA~B %en]v  DL  MC~D (AR  dI  Vb  cE~F )%BT  fl  {S  TG~H )%BT  fJ  KI~J '@P  bH  IK~L ,WG\  nO  PM~N +EDX  jJ  KO~P 1%Jd  v\  ]Q~R -eF\  nZ  [S~T /H`  rV  WU~V 8Qr  Dq  rW~X 5eNl  ~h  iY~Z 1%Jd  v\  ][~\ 1%Jd  v\  ]]~^ =eVn  @l  m_~` 3ELh  zb  o{  |a~b 25Kf  xc  px  yc~d 0Ib  t[  \e~f 25Kf  xa  cg~h /H`  rV  Wi~j 5eNl  ~r  sk~l 0Ib  t_  `m~n 0Ib  tY  Zo~p /H`  rV  Wq~r ,UEZ  lM  Ns~t +EDX  jJ  Ku~v .uG^  pS  Tw~x 3ELh  zb  cy~z -eF\  nP  Q{~| 25Kf  x_  lx  y}~~ +EDX  jJ  K~@ .wI`  rU  VA~B 4UMj  |e  fC~D 1%Jd  vd  eE~F .uG^  pS  TG~H 3ELh  zb  cI~J .uG^  pS  TK~L 25Kf  x_  `M~N /H`  rV  WO~P /H`  rP  ]e  fQ~R 1%Jd  v\  ]S~T 6uOn  @k  lU~V 1%Jd  v\  ]W~X ,UEZ  l[  \Y~Z .uG^  p[  \[~\ .uG^  p[  \]~^ /H`  r^  __~` .uG^  p[  \a~b 1'Lf  xf  gc~d /H`  r`  mu  ve~f .uG^  pO  \d  eg~h 4UMb  tR  Si~j 4UMh  z^  _k~l .uG^  pO  \d  em~n 4UMb  tR  So~p 4UMh  z^  _q~r $U]  \D  Es~t &u  `R  Su~v #EL  ZA  Bw~x  Sxyy~z #EL  ZA  B{~AF .|"ELYm  {u  v|$en]|}| uwOlm| &u  `A  B	|
 "5;Wrs| $U][xy| %en]{|| $U][tu| #ELYrs| #ELYrs| %en  ^D  E| &u|\p  ~N  O| )%.a  M`  a| '^s  AR  S| *5?  dC  Pc  d|  $UZXjw  A!|" ']y  GP  Q#|$ %ekZm  {L  M%|& (_|  J]  ^'|( %en  ^_  `)|* &u  `b  c+|, $U]  \\  ]-|. $U]  \\  ]/|0 efMmn1|2 "5;Wyz3|4 %en  ^O  P5|6 !%*  VC  D7|8 #EL  ZQ  R9|: %en  ^W  X;|< )%BT  fc  d=|> Qkl?|@ '@P  bD  Qj  kA|B "5;Wz{C|D  StuE|F QqrG|H QqrI|J QqrK|L $U]  \A  BM|N  SwxO|P  SrsQ|R (SyzS|T &u  `E  TU  VU|V (CT  fI  Xa  bW|X $W}  ^P  QY|Z !%*U~[|\ '  `I  J]|^ &u}  ^L  M_|` &u  `M  Na|b #EL  ZJ  Kc|d  Sn  |[  \e|f !%*  VA  Bg|h "5;Wxyi|j '@P  bO  Pk|l  Sz  HX  Ym|n !%*U}~o|p  V}  KX  Yq|r !%-  YA  Bs|t    ZA  NZ  [u|v !%:J  \D  Ew|x "5;Ww  EO  Py|z #ELYz{{|| '@P  bW  dO  P}|~ (AR  dZ  [|@ !%*Uq  H  W{  |A|B "5;Wt  Dh  iC|D $U\Zz  Jo  pE|F %ek  [G  HG|H "5;  XD  EI|J  SwxK|L %g  `I  JM|N $U]  \D  EO|P *5CV  hV  WQ|R &u  `J  KS|T (AR  dP  QU|V 1%Jd  vk  lW|X .uG^  pb  cY|Z *5CV  hV  W[|\ *5CV  hV  W]|^ 6uO`  rf  g_|` ,UEZ  l\  iu  va|b +EDX  j]  jr  sc|d )%BT  fU  Ve|f +EDX  j[  ]g|h (AR  dP  Qi|j .uG^  pl  mk|l )%BT  fY  Zm|n )%BT  fS  To|p (AR  dP  Qq|r %en  ^G  Hs|t $U]  \D  Eu|v '@P  bM  Nw|x ,UEZ  l\  ]y|z &u  `J  K{|| +EDX  jY  fr  s}|~ $U]  \D  E|@ 'BR  dO  PA|B -eF\  n_  `C|D *5CV  h^  _E|F '@P  bM  NG|H ,UEZ  l\  ]I|J '@P  bM  NK|L +EDX  jY  ZM|N (AR  dP  QO|P (AR  dB  OW  XQ|R *5CV  hV  WS|T *5CV  hV  WU|V /H`  re  fW|X efMijY|Z !%*Uqr[|\ "5;  XM  Zb  c]|^ (AR  dI  J_|` efMjka|b #EL  ZB  Cc|d #EL  ZS  Te|f *5CV  hX  Yg|h /H`  rd  ei|j UU  LD  Ek|l uw  PN  Om|n %en  ^[  \o|p *5CV  hg  hq|r %en  ^X  Ys|t %en]~u|v  S  MU  Vw|B )2ELi  {n  o2ELi  {n  o6Pn  @k  l0%Je  w\  ]7Qp  Bn  o15Kg  y_  `3UMc  ul  m
 ,&@P  bV  W"EL  ZF  G+UEZ  lh  i&@Pav  DY  Z'AR  dG  H%u  `A  B+UEZ  lS  T+UEZ  lX  Y)5CV  hR  S.H`  ra  b.H`  ra  b" 0/Ib  t`  a3UMj  |]  ^+UEZ  ld  e+UEZ  lb  c+UEZ  l\  ]+UEZ  l\  ].H`  r]  ^.H`  rj  k15Kf  xa  b

y	J \
 "EMZyz!5<X{|Tuv#U^  ]L  M$eo  _O  \e  f"EM  [I  V_  `#U^  ]L  Yb  c%u?O  aR  _h  i%u?O  aR  _h  i&@Q  cY  fz  {#U^  ]W  dm  n,eF]  o[  \2ELi  {m  n%u?O  aI  J,eF]  o}  ~&@Q  cN  O$eo  _O  P)5CW  iW  X*EDY  ke  f'
2 %)5CY  k^  _
3 F ;R!.6cklxcy!V_Ig	&))!!  !s   J)AK