Plex Framework 2.5.0 Plugin Manifest
I’ve found that the documentation on the website doesn’t tie up with the API that is currently included with Plex. So here’s the bits of data I’ve gleaned.
The plugins & directory structure of Plex is based around OSX / iOS Bundle Structures. Each plugin has an Info.plist file which is based off Apple’s one (the documentation is here) with some extra properties. Some of these are documented on Plex's site but some were missing. This is a near complete list of them all and what I could work out their purpose to be.
The latest version of the Framework as of writing is 2.6.2. I'll regenerate and post some stubs I created in a later post. These stubs allow the python code to compile in Eclipse without errors and also allows autocomplete in the python editor.
The plugins & directory structure of Plex is based around OSX / iOS Bundle Structures. Each plugin has an Info.plist file which is based off Apple’s one (the documentation is here) with some extra properties. Some of these are documented on Plex's site but some were missing. This is a near complete list of them all and what I could work out their purpose to be.
CFBundleIdentifier | Plugin name |
PlexPluginClass | Type of plugin, default ‘Content’ (but is ‘Channel’ under bundleservices). Values from constants.py:[‘Content’, ‘Agent’, ‘Channel’, ‘Resource’, ‘System’] |
PlexPluginTitle | The display name |
PlexPluginIconResourceName | Default: 'icon-default.png' |
PlexPluginArtResourceName | Default: 'art-default.jpg' |
PlexPluginTitleBarResourceName | Default: 'titlebar-default.png' |
PlexPluginDevMode | 1 or 0. If set to 1, don’t auto update |
PlexPluginCodePolicy | ‘Standard’ or ‘Elevated’ also ‘cloud’, ‘model’, ‘service’, ‘unpickle’. Default: ‘Standard’ |
PlexPluginModuleWhitelist | optional, only seems to apply to ‘Could’ PluginClass’ |
PlexPluginAPIExclusions | Name of variables/types to exclude from the __main__ globals |
PlexPluginConsoleLogging | 1 or 0. Whether it should log to the console, handy if you’ve manually started it up. |
PlexPluginLogLevel | Default is ‘Debug’ |
PlexAudioCodec | optional supported audio codec |
PlexVideoCodec | optional supported video codec |
PlexMediaContainer | optional supported media container (file type) |
PlexMinimumServerVersion | optional |
PlexFrameworkFlags | ['SystemVerboseLogPeerService', 'UserMyPlexDevServer', 'LogServiceLoads', 'EnableDebugging', 'UseExtendedPython', 'LogMetadataCombination', 'UseRealRTMP', 'LogRouteConnections', 'LogModelClassGeneration', 'LogAllRouteConnections', 'SystemVerboseLogStoreService'] |
PlexBundleVersion | stores the version of the Framework API, only on the Framework.bundle |
PlexBundleCompatibleVersion | Defaults to ‘2.0a1’ |
PlexPluginLegacyPrefix | defaults to ‘/plugins/’ + plugin.identifier |
PlexClientPlatforms | Doesn’t appear to be used |
PlexClientPlatformExclusions | “We use these later to warn users that the channel is unsupported.” |
PlexFrameworkVersion | Target framework api version to load. set to 2 |
PlexRelatedContentServices | Doesn’t appear to be used |
PlexSearchServices | |
PlexURLServices |
Comments
Post a Comment