mirror of
https://github.com/LukeHagar/plexjava.git
synced 2025-12-06 04:20:46 +00:00
485 lines
22 KiB
Markdown
485 lines
22 KiB
Markdown
# plexapi
|
|
|
|
<div align="left">
|
|
<a href="https://speakeasyapi.dev/"><img src="https://custom-icon-badges.demolab.com/badge/-Built%20By%20Speakeasy-212015?style=for-the-badge&logoColor=FBE331&logo=speakeasy&labelColor=545454" /></a>
|
|
<a href="https://mit-license.org/">
|
|
<img src="https://img.shields.io/badge/License-MIT-blue.svg" style="width: 100px; height: 28px;" />
|
|
</a>
|
|
</div>
|
|
|
|
|
|
<!-- Start Summary [summary] -->
|
|
## Summary
|
|
|
|
Plex-API: An Open API Spec for interacting with Plex.tv and Plex Media Server
|
|
|
|
# Plex Media Server OpenAPI Specification
|
|
|
|
An Open Source OpenAPI Specification for Plex Media Server
|
|
|
|
Automation and SDKs provided by [Speakeasy](https://speakeasyapi.dev/)
|
|
|
|
## Documentation
|
|
|
|
[API Documentation](https://plexapi.dev)
|
|
|
|
## SDKs
|
|
|
|
The following SDKs are generated from the OpenAPI Specification. They are automatically generated and may not be fully tested. If you find any issues, please open an issue on the [main specification Repository](https://github.com/LukeHagar/plex-api-spec).
|
|
|
|
| Language | Repository | Releases | Other |
|
|
| --------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------- |
|
|
| Python | [GitHub](https://github.com/LukeHagar/plexpy) | [PyPI](https://pypi.org/project/plex-api-client/) | - |
|
|
| JavaScript/TypeScript | [GitHub](https://github.com/LukeHagar/plexjs) | [NPM](https://www.npmjs.com/package/@lukehagar/plexjs) \ [JSR](https://jsr.io/@lukehagar/plexjs) | - |
|
|
| Go | [GitHub](https://github.com/LukeHagar/plexgo) | [Releases](https://github.com/LukeHagar/plexgo/releases) | [GoDoc](https://pkg.go.dev/github.com/LukeHagar/plexgo) |
|
|
| Ruby | [GitHub](https://github.com/LukeHagar/plexruby) | [Releases](https://github.com/LukeHagar/plexruby/releases) | - |
|
|
| Swift | [GitHub](https://github.com/LukeHagar/plexswift) | [Releases](https://github.com/LukeHagar/plexswift/releases) | - |
|
|
| PHP | [GitHub](https://github.com/LukeHagar/plexphp) | [Releases](https://github.com/LukeHagar/plexphp/releases) | - |
|
|
| Java | [GitHub](https://github.com/LukeHagar/plexjava) | [Releases](https://github.com/LukeHagar/plexjava/releases) | - |
|
|
| C# | [GitHub](https://github.com/LukeHagar/plexcsharp) | [Releases](https://github.com/LukeHagar/plexcsharp/releases) | -
|
|
<!-- End Summary [summary] -->
|
|
|
|
<!-- Start Table of Contents [toc] -->
|
|
## Table of Contents
|
|
<!-- $toc-max-depth=2 -->
|
|
* [plexapi](#plexapi)
|
|
* [Plex Media Server OpenAPI Specification](#plex-media-server-openapi-specification)
|
|
* [Documentation](#documentation)
|
|
* [SDKs](#sdks)
|
|
* [SDK Installation](#sdk-installation)
|
|
* [SDK Example Usage](#sdk-example-usage)
|
|
* [Available Resources and Operations](#available-resources-and-operations)
|
|
* [Error Handling](#error-handling)
|
|
* [Server Selection](#server-selection)
|
|
* [Authentication](#authentication)
|
|
* [Development](#development)
|
|
* [Maturity](#maturity)
|
|
* [Contributions](#contributions)
|
|
|
|
<!-- End Table of Contents [toc] -->
|
|
|
|
<!-- Start SDK Installation [installation] -->
|
|
## SDK Installation
|
|
|
|
### Getting started
|
|
|
|
JDK 11 or later is required.
|
|
|
|
The samples below show how a published SDK artifact is used:
|
|
|
|
Gradle:
|
|
```groovy
|
|
implementation 'dev.plexapi:plexapi:0.14.2'
|
|
```
|
|
|
|
Maven:
|
|
```xml
|
|
<dependency>
|
|
<groupId>dev.plexapi</groupId>
|
|
<artifactId>plexapi</artifactId>
|
|
<version>0.14.2</version>
|
|
</dependency>
|
|
```
|
|
|
|
### How to build
|
|
After cloning the git repository to your file system you can build the SDK artifact from source to the `build` directory by running `./gradlew build` on *nix systems or `gradlew.bat` on Windows systems.
|
|
|
|
If you wish to build from source and publish the SDK artifact to your local Maven repository (on your filesystem) then use the following command (after cloning the git repo locally):
|
|
|
|
On *nix:
|
|
```bash
|
|
./gradlew publishToMavenLocal -Pskip.signing
|
|
```
|
|
On Windows:
|
|
```bash
|
|
gradlew.bat publishToMavenLocal -Pskip.signing
|
|
```
|
|
<!-- End SDK Installation [installation] -->
|
|
|
|
<!-- Start SDK Example Usage [usage] -->
|
|
## SDK Example Usage
|
|
|
|
### Example
|
|
|
|
```java
|
|
package hello.world;
|
|
|
|
import dev.plexapi.sdk.PlexAPI;
|
|
import dev.plexapi.sdk.models.errors.GetServerCapabilitiesBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetServerCapabilitiesUnauthorized;
|
|
import dev.plexapi.sdk.models.operations.GetServerCapabilitiesResponse;
|
|
import java.lang.Exception;
|
|
|
|
public class Application {
|
|
|
|
public static void main(String[] args) throws GetServerCapabilitiesBadRequest, GetServerCapabilitiesUnauthorized, Exception {
|
|
|
|
PlexAPI sdk = PlexAPI.builder()
|
|
.accessToken("<YOUR_API_KEY_HERE>")
|
|
.build();
|
|
|
|
GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
|
|
.call();
|
|
|
|
if (res.object().isPresent()) {
|
|
// handle response
|
|
}
|
|
}
|
|
}
|
|
```
|
|
<!-- End SDK Example Usage [usage] -->
|
|
|
|
<!-- Start Available Resources and Operations [operations] -->
|
|
## Available Resources and Operations
|
|
|
|
<details open>
|
|
<summary>Available methods</summary>
|
|
|
|
### [activities()](docs/sdks/activities/README.md)
|
|
|
|
* [getServerActivities](docs/sdks/activities/README.md#getserveractivities) - Get Server Activities
|
|
* [cancelServerActivities](docs/sdks/activities/README.md#cancelserveractivities) - Cancel Server Activities
|
|
|
|
### [authentication()](docs/sdks/authentication/README.md)
|
|
|
|
* [getTransientToken](docs/sdks/authentication/README.md#gettransienttoken) - Get a Transient Token
|
|
* [getSourceConnectionInformation](docs/sdks/authentication/README.md#getsourceconnectioninformation) - Get Source Connection Information
|
|
* [getTokenDetails](docs/sdks/authentication/README.md#gettokendetails) - Get Token Details
|
|
* [postUsersSignInData](docs/sdks/authentication/README.md#postuserssignindata) - Get User Sign In Data
|
|
|
|
### [butler()](docs/sdks/butler/README.md)
|
|
|
|
* [getButlerTasks](docs/sdks/butler/README.md#getbutlertasks) - Get Butler tasks
|
|
* [startAllTasks](docs/sdks/butler/README.md#startalltasks) - Start all Butler tasks
|
|
* [stopAllTasks](docs/sdks/butler/README.md#stopalltasks) - Stop all Butler tasks
|
|
* [startTask](docs/sdks/butler/README.md#starttask) - Start a single Butler task
|
|
* [stopTask](docs/sdks/butler/README.md#stoptask) - Stop a single Butler task
|
|
|
|
### [hubs()](docs/sdks/hubs/README.md)
|
|
|
|
* [getGlobalHubs](docs/sdks/hubs/README.md#getglobalhubs) - Get Global Hubs
|
|
* [getRecentlyAdded](docs/sdks/hubs/README.md#getrecentlyadded) - Get Recently Added
|
|
* [getLibraryHubs](docs/sdks/hubs/README.md#getlibraryhubs) - Get library specific hubs
|
|
|
|
### [library()](docs/sdks/library/README.md)
|
|
|
|
* [getFileHash](docs/sdks/library/README.md#getfilehash) - Get Hash Value
|
|
* [getRecentlyAddedLibrary](docs/sdks/library/README.md#getrecentlyaddedlibrary) - Get Recently Added
|
|
* [getAllLibraries](docs/sdks/library/README.md#getalllibraries) - Get All Libraries
|
|
* [getLibraryDetails](docs/sdks/library/README.md#getlibrarydetails) - Get Library Details
|
|
* [deleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section
|
|
* [getLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items
|
|
* [getAllMediaLibrary](docs/sdks/library/README.md#getallmedialibrary) - Get all media of library
|
|
* [getRefreshLibraryMetadata](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library
|
|
* [getSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library
|
|
* [getGenresLibrary](docs/sdks/library/README.md#getgenreslibrary) - Get Genres of library media
|
|
* [getCountriesLibrary](docs/sdks/library/README.md#getcountrieslibrary) - Get Countries of library media
|
|
* [getActorsLibrary](docs/sdks/library/README.md#getactorslibrary) - Get Actors of library media
|
|
* [getSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries
|
|
* [getMediaMetaData](docs/sdks/library/README.md#getmediametadata) - Get Media Metadata
|
|
* [getMediaArts](docs/sdks/library/README.md#getmediaarts) - Get Media Background Artwork
|
|
* [postMediaArts](docs/sdks/library/README.md#postmediaarts) - Upload Media Background Artwork
|
|
* [getMediaPosters](docs/sdks/library/README.md#getmediaposters) - Get Media Posters
|
|
* [postMediaPoster](docs/sdks/library/README.md#postmediaposter) - Upload Media Poster
|
|
* [getMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
|
|
* [getTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content
|
|
|
|
### [log()](docs/sdks/log/README.md)
|
|
|
|
* [logLine](docs/sdks/log/README.md#logline) - Logging a single line message.
|
|
* [logMultiLine](docs/sdks/log/README.md#logmultiline) - Logging a multi-line message
|
|
* [enablePaperTrail](docs/sdks/log/README.md#enablepapertrail) - Enabling Papertrail
|
|
|
|
### [media()](docs/sdks/media/README.md)
|
|
|
|
* [markPlayed](docs/sdks/media/README.md#markplayed) - Mark Media Played
|
|
* [markUnplayed](docs/sdks/media/README.md#markunplayed) - Mark Media Unplayed
|
|
* [updatePlayProgress](docs/sdks/media/README.md#updateplayprogress) - Update Media Play Progress
|
|
* [getBannerImage](docs/sdks/media/README.md#getbannerimage) - Get Banner Image
|
|
* [getThumbImage](docs/sdks/media/README.md#getthumbimage) - Get Thumb Image
|
|
|
|
### [playlists()](docs/sdks/playlists/README.md)
|
|
|
|
* [createPlaylist](docs/sdks/playlists/README.md#createplaylist) - Create a Playlist
|
|
* [getPlaylists](docs/sdks/playlists/README.md#getplaylists) - Get All Playlists
|
|
* [getPlaylist](docs/sdks/playlists/README.md#getplaylist) - Retrieve Playlist
|
|
* [deletePlaylist](docs/sdks/playlists/README.md#deleteplaylist) - Deletes a Playlist
|
|
* [updatePlaylist](docs/sdks/playlists/README.md#updateplaylist) - Update a Playlist
|
|
* [getPlaylistContents](docs/sdks/playlists/README.md#getplaylistcontents) - Retrieve Playlist Contents
|
|
* [clearPlaylistContents](docs/sdks/playlists/README.md#clearplaylistcontents) - Delete Playlist Contents
|
|
* [addPlaylistContents](docs/sdks/playlists/README.md#addplaylistcontents) - Adding to a Playlist
|
|
* [uploadPlaylist](docs/sdks/playlists/README.md#uploadplaylist) - Upload Playlist
|
|
|
|
### [plex()](docs/sdks/plex/README.md)
|
|
|
|
* [getCompanionsData](docs/sdks/plex/README.md#getcompanionsdata) - Get Companions Data
|
|
* [getUserFriends](docs/sdks/plex/README.md#getuserfriends) - Get list of friends of the user logged in
|
|
* [getGeoData](docs/sdks/plex/README.md#getgeodata) - Get Geo Data
|
|
* [getHomeData](docs/sdks/plex/README.md#gethomedata) - Get Plex Home Data
|
|
* [getServerResources](docs/sdks/plex/README.md#getserverresources) - Get Server Resources
|
|
* [getPin](docs/sdks/plex/README.md#getpin) - Get a Pin
|
|
* [getTokenByPinId](docs/sdks/plex/README.md#gettokenbypinid) - Get Access Token by PinId
|
|
|
|
|
|
### [search()](docs/sdks/search/README.md)
|
|
|
|
* [performSearch](docs/sdks/search/README.md#performsearch) - Perform a search
|
|
* [performVoiceSearch](docs/sdks/search/README.md#performvoicesearch) - Perform a voice search
|
|
* [getSearchResults](docs/sdks/search/README.md#getsearchresults) - Get Search Results
|
|
|
|
### [server()](docs/sdks/server/README.md)
|
|
|
|
* [getServerCapabilities](docs/sdks/server/README.md#getservercapabilities) - Get Server Capabilities
|
|
* [getServerPreferences](docs/sdks/server/README.md#getserverpreferences) - Get Server Preferences
|
|
* [getAvailableClients](docs/sdks/server/README.md#getavailableclients) - Get Available Clients
|
|
* [getDevices](docs/sdks/server/README.md#getdevices) - Get Devices
|
|
* [getServerIdentity](docs/sdks/server/README.md#getserveridentity) - Get Server Identity
|
|
* [getMyPlexAccount](docs/sdks/server/README.md#getmyplexaccount) - Get MyPlex Account
|
|
* [getResizedPhoto](docs/sdks/server/README.md#getresizedphoto) - Get a Resized Photo
|
|
* [getMediaProviders](docs/sdks/server/README.md#getmediaproviders) - Get Media Providers
|
|
* [getServerList](docs/sdks/server/README.md#getserverlist) - Get Server List
|
|
|
|
### [sessions()](docs/sdks/sessions/README.md)
|
|
|
|
* [getSessions](docs/sdks/sessions/README.md#getsessions) - Get Active Sessions
|
|
* [getSessionHistory](docs/sdks/sessions/README.md#getsessionhistory) - Get Session History
|
|
* [getTranscodeSessions](docs/sdks/sessions/README.md#gettranscodesessions) - Get Transcode Sessions
|
|
* [stopTranscodeSession](docs/sdks/sessions/README.md#stoptranscodesession) - Stop a Transcode Session
|
|
|
|
### [statistics()](docs/sdks/statistics/README.md)
|
|
|
|
* [getStatistics](docs/sdks/statistics/README.md#getstatistics) - Get Media Statistics
|
|
* [getResourcesStatistics](docs/sdks/statistics/README.md#getresourcesstatistics) - Get Resources Statistics
|
|
* [getBandwidthStatistics](docs/sdks/statistics/README.md#getbandwidthstatistics) - Get Bandwidth Statistics
|
|
|
|
### [updater()](docs/sdks/updater/README.md)
|
|
|
|
* [getUpdateStatus](docs/sdks/updater/README.md#getupdatestatus) - Querying status of updates
|
|
* [checkForUpdates](docs/sdks/updater/README.md#checkforupdates) - Checking for updates
|
|
* [applyUpdates](docs/sdks/updater/README.md#applyupdates) - Apply Updates
|
|
|
|
### [users()](docs/sdks/users/README.md)
|
|
|
|
* [getUsers](docs/sdks/users/README.md#getusers) - Get list of all connected users
|
|
|
|
### [video()](docs/sdks/video/README.md)
|
|
|
|
* [getTimeline](docs/sdks/video/README.md#gettimeline) - Get the timeline for a media item
|
|
* [startUniversalTranscode](docs/sdks/video/README.md#startuniversaltranscode) - Start Universal Transcode
|
|
|
|
### [watchlist()](docs/sdks/watchlist/README.md)
|
|
|
|
* [getWatchList](docs/sdks/watchlist/README.md#getwatchlist) - Get User Watchlist
|
|
|
|
</details>
|
|
<!-- End Available Resources and Operations [operations] -->
|
|
|
|
<!-- Start Error Handling [errors] -->
|
|
## Error Handling
|
|
|
|
Handling errors in this SDK should largely match your expectations. All operations return a response object or raise an exception.
|
|
|
|
By default, an API error will throw a `models/errors/SDKError` exception. When custom error responses are specified for an operation, the SDK may also throw their associated exception. You can refer to respective *Errors* tables in SDK docs for more details on possible exception types for each operation. For example, the `getServerCapabilities` method throws the following exceptions:
|
|
|
|
| Error Type | Status Code | Content Type |
|
|
| ----------------------------------------------- | ----------- | ---------------- |
|
|
| models/errors/GetServerCapabilitiesBadRequest | 400 | application/json |
|
|
| models/errors/GetServerCapabilitiesUnauthorized | 401 | application/json |
|
|
| models/errors/SDKError | 4XX, 5XX | \*/\* |
|
|
|
|
### Example
|
|
|
|
```java
|
|
package hello.world;
|
|
|
|
import dev.plexapi.sdk.PlexAPI;
|
|
import dev.plexapi.sdk.models.errors.GetServerCapabilitiesBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetServerCapabilitiesUnauthorized;
|
|
import dev.plexapi.sdk.models.operations.GetServerCapabilitiesResponse;
|
|
import java.lang.Exception;
|
|
|
|
public class Application {
|
|
|
|
public static void main(String[] args) throws GetServerCapabilitiesBadRequest, GetServerCapabilitiesUnauthorized, Exception {
|
|
|
|
PlexAPI sdk = PlexAPI.builder()
|
|
.accessToken("<YOUR_API_KEY_HERE>")
|
|
.build();
|
|
|
|
GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
|
|
.call();
|
|
|
|
if (res.object().isPresent()) {
|
|
// handle response
|
|
}
|
|
}
|
|
}
|
|
```
|
|
<!-- End Error Handling [errors] -->
|
|
|
|
<!-- Start Server Selection [server] -->
|
|
## Server Selection
|
|
|
|
### Server Variables
|
|
|
|
The default server `{protocol}://{ip}:{port}` contains variables and is set to `https://10.10.10.47:32400` by default. To override default values, the following builder methods are available when initializing the SDK client instance:
|
|
|
|
| Variable | BuilderMethod | Supported Values | Default | Description |
|
|
| ---------- | ----------------------------------- | -------------------------- | --------------- | ---------------------------------------------- |
|
|
| `protocol` | `protocol(ServerProtocol protocol)` | - `"http"`<br/>- `"https"` | `"https"` | The protocol to use for the server connection |
|
|
| `ip` | `ip(String ip)` | java.lang.String | `"10.10.10.47"` | The IP address or hostname of your Plex Server |
|
|
| `port` | `port(String port)` | java.lang.String | `"32400"` | The port of your Plex Server |
|
|
|
|
#### Example
|
|
|
|
```java
|
|
package hello.world;
|
|
|
|
import dev.plexapi.sdk.PlexAPI;
|
|
import dev.plexapi.sdk.SDK.Builder.ServerProtocol;
|
|
import dev.plexapi.sdk.models.errors.GetServerCapabilitiesBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetServerCapabilitiesUnauthorized;
|
|
import dev.plexapi.sdk.models.operations.GetServerCapabilitiesResponse;
|
|
import java.lang.Exception;
|
|
|
|
public class Application {
|
|
|
|
public static void main(String[] args) throws GetServerCapabilitiesBadRequest, GetServerCapabilitiesUnauthorized, Exception {
|
|
|
|
PlexAPI sdk = PlexAPI.builder()
|
|
.protocol(ServerProtocol.HTTPS)
|
|
.ip("e0c3:bcc0:6bac:dccc:c4ec:34b1:ca98:4cb9")
|
|
.port("40311")
|
|
.accessToken("<YOUR_API_KEY_HERE>")
|
|
.build();
|
|
|
|
GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
|
|
.call();
|
|
|
|
if (res.object().isPresent()) {
|
|
// handle response
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Override Server URL Per-Client
|
|
|
|
The default server can be overridden globally using the `.serverURL(String serverUrl)` builder method when initializing the SDK client instance. For example:
|
|
```java
|
|
package hello.world;
|
|
|
|
import dev.plexapi.sdk.PlexAPI;
|
|
import dev.plexapi.sdk.models.errors.GetServerCapabilitiesBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetServerCapabilitiesUnauthorized;
|
|
import dev.plexapi.sdk.models.operations.GetServerCapabilitiesResponse;
|
|
import java.lang.Exception;
|
|
|
|
public class Application {
|
|
|
|
public static void main(String[] args) throws GetServerCapabilitiesBadRequest, GetServerCapabilitiesUnauthorized, Exception {
|
|
|
|
PlexAPI sdk = PlexAPI.builder()
|
|
.serverURL("https://10.10.10.47:32400")
|
|
.accessToken("<YOUR_API_KEY_HERE>")
|
|
.build();
|
|
|
|
GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
|
|
.call();
|
|
|
|
if (res.object().isPresent()) {
|
|
// handle response
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Override Server URL Per-Operation
|
|
|
|
The server URL can also be overridden on a per-operation basis, provided a server list was specified for the operation. For example:
|
|
```java
|
|
package hello.world;
|
|
|
|
import dev.plexapi.sdk.PlexAPI;
|
|
import dev.plexapi.sdk.models.errors.GetCompanionsDataBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetCompanionsDataUnauthorized;
|
|
import dev.plexapi.sdk.models.operations.GetCompanionsDataResponse;
|
|
import java.lang.Exception;
|
|
|
|
public class Application {
|
|
|
|
public static void main(String[] args) throws GetCompanionsDataBadRequest, GetCompanionsDataUnauthorized, Exception {
|
|
|
|
PlexAPI sdk = PlexAPI.builder()
|
|
.accessToken("<YOUR_API_KEY_HERE>")
|
|
.build();
|
|
|
|
GetCompanionsDataResponse res = sdk.plex().getCompanionsData()
|
|
.serverURL("https://plex.tv/api/v2")
|
|
.call();
|
|
|
|
if (res.responseBodies().isPresent()) {
|
|
// handle response
|
|
}
|
|
}
|
|
}
|
|
```
|
|
<!-- End Server Selection [server] -->
|
|
|
|
<!-- Start Authentication [security] -->
|
|
## Authentication
|
|
|
|
### Per-Client Security Schemes
|
|
|
|
This SDK supports the following security scheme globally:
|
|
|
|
| Name | Type | Scheme |
|
|
| ------------- | ------ | ------- |
|
|
| `accessToken` | apiKey | API key |
|
|
|
|
To authenticate with the API the `accessToken` parameter must be set when initializing the SDK client instance. For example:
|
|
```java
|
|
package hello.world;
|
|
|
|
import dev.plexapi.sdk.PlexAPI;
|
|
import dev.plexapi.sdk.models.errors.GetServerCapabilitiesBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetServerCapabilitiesUnauthorized;
|
|
import dev.plexapi.sdk.models.operations.GetServerCapabilitiesResponse;
|
|
import java.lang.Exception;
|
|
|
|
public class Application {
|
|
|
|
public static void main(String[] args) throws GetServerCapabilitiesBadRequest, GetServerCapabilitiesUnauthorized, Exception {
|
|
|
|
PlexAPI sdk = PlexAPI.builder()
|
|
.accessToken("<YOUR_API_KEY_HERE>")
|
|
.build();
|
|
|
|
GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
|
|
.call();
|
|
|
|
if (res.object().isPresent()) {
|
|
// handle response
|
|
}
|
|
}
|
|
}
|
|
```
|
|
<!-- End Authentication [security] -->
|
|
|
|
<!-- Placeholder for Future Speakeasy SDK Sections -->
|
|
|
|
# Development
|
|
|
|
## Maturity
|
|
|
|
This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
|
|
to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
|
|
looking for the latest version.
|
|
|
|
## Contributions
|
|
|
|
While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation.
|
|
We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
|
|
|
|
### SDK Created by [Speakeasy](https://docs.speakeasyapi.dev/docs/using-speakeasy/client-sdks)
|