mirror of
https://github.com/LukeHagar/plexjava.git
synced 2025-12-06 04:20:46 +00:00
19 KiB
19 KiB
Plex
(plex())
Overview
API Calls that perform operations directly against https://Plex.tv
Available Operations
- getCompanionsData - Get Companions Data
- getUserFriends - Get list of friends of the user logged in
- getGeoData - Get Geo Data
- getHomeData - Get Plex Home Data
- getServerResources - Get Server Resources
- getPin - Get a Pin
- getTokenByPinId - Get Access Token by PinId
getCompanionsData
Get Companions Data
Example Usage
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>")
.clientID("gcgzw5rz2xovp84b4vha3a40")
.clientName("Plex Web")
.clientVersion("4.133.0")
.clientPlatform("Chrome")
.deviceName("Linux")
.build();
GetCompanionsDataResponse res = sdk.plex().getCompanionsData()
.call();
if (res.responseBodies().isPresent()) {
// handle response
}
}
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
serverURL |
String | ➖ | An optional server URL to use. |
Response
Errors
| Error Object | Status Code | Content Type |
|---|---|---|
| models/errors/GetCompanionsDataBadRequest | 400 | application/json |
| models/errors/GetCompanionsDataUnauthorized | 401 | application/json |
| models/errors/SDKError | 4xx-5xx | */* |
getUserFriends
Get friends of provided auth token.
Example Usage
package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetUserFriendsBadRequest;
import dev.plexapi.sdk.models.errors.GetUserFriendsUnauthorized;
import dev.plexapi.sdk.models.operations.GetUserFriendsResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws GetUserFriendsBadRequest, GetUserFriendsUnauthorized, Exception {
PlexAPI sdk = PlexAPI.builder()
.accessToken("<YOUR_API_KEY_HERE>")
.clientID("gcgzw5rz2xovp84b4vha3a40")
.clientName("Plex Web")
.clientVersion("4.133.0")
.clientPlatform("Chrome")
.deviceName("Linux")
.build();
GetUserFriendsResponse res = sdk.plex().getUserFriends()
.call();
if (res.friends().isPresent()) {
// handle response
}
}
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
serverURL |
String | ➖ | An optional server URL to use. |
Response
Errors
| Error Object | Status Code | Content Type |
|---|---|---|
| models/errors/GetUserFriendsBadRequest | 400 | application/json |
| models/errors/GetUserFriendsUnauthorized | 401 | application/json |
| models/errors/SDKError | 4xx-5xx | */* |
getGeoData
Returns the geolocation and locale data of the caller
Example Usage
package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetGeoDataBadRequest;
import dev.plexapi.sdk.models.errors.GetGeoDataUnauthorized;
import dev.plexapi.sdk.models.operations.GetGeoDataResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws GetGeoDataBadRequest, GetGeoDataUnauthorized, Exception {
PlexAPI sdk = PlexAPI.builder()
.clientID("gcgzw5rz2xovp84b4vha3a40")
.clientName("Plex Web")
.clientVersion("4.133.0")
.clientPlatform("Chrome")
.deviceName("Linux")
.build();
GetGeoDataResponse res = sdk.plex().getGeoData()
.call();
if (res.geoData().isPresent()) {
// handle response
}
}
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
serverURL |
String | ➖ | An optional server URL to use. |
Response
Errors
| Error Object | Status Code | Content Type |
|---|---|---|
| models/errors/GetGeoDataBadRequest | 400 | application/json |
| models/errors/GetGeoDataUnauthorized | 401 | application/json |
| models/errors/SDKError | 4xx-5xx | */* |
getHomeData
Retrieves the home data for the authenticated user, including details like home ID, name, guest access information, and subscription status.
Example Usage
package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetHomeDataBadRequest;
import dev.plexapi.sdk.models.errors.GetHomeDataUnauthorized;
import dev.plexapi.sdk.models.operations.GetHomeDataResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws GetHomeDataBadRequest, GetHomeDataUnauthorized, Exception {
PlexAPI sdk = PlexAPI.builder()
.accessToken("<YOUR_API_KEY_HERE>")
.clientID("gcgzw5rz2xovp84b4vha3a40")
.clientName("Plex Web")
.clientVersion("4.133.0")
.clientPlatform("Chrome")
.deviceName("Linux")
.build();
GetHomeDataResponse res = sdk.plex().getHomeData()
.call();
if (res.object().isPresent()) {
// handle response
}
}
}
Response
Errors
| Error Object | Status Code | Content Type |
|---|---|---|
| models/errors/GetHomeDataBadRequest | 400 | application/json |
| models/errors/GetHomeDataUnauthorized | 401 | application/json |
| models/errors/SDKError | 4xx-5xx | */* |
getServerResources
Get Plex server access tokens and server connections
Example Usage
package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetServerResourcesBadRequest;
import dev.plexapi.sdk.models.errors.GetServerResourcesUnauthorized;
import dev.plexapi.sdk.models.operations.GetServerResourcesResponse;
import dev.plexapi.sdk.models.operations.IncludeHttps;
import dev.plexapi.sdk.models.operations.IncludeIPv6;
import dev.plexapi.sdk.models.operations.IncludeRelay;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws GetServerResourcesBadRequest, GetServerResourcesUnauthorized, Exception {
PlexAPI sdk = PlexAPI.builder()
.accessToken("<YOUR_API_KEY_HERE>")
.clientID("gcgzw5rz2xovp84b4vha3a40")
.clientName("Plex Web")
.clientVersion("4.133.0")
.clientPlatform("Chrome")
.deviceName("Linux")
.build();
GetServerResourcesResponse res = sdk.plex().getServerResources()
.includeHttps(IncludeHttps.Enable)
.includeRelay(IncludeRelay.Enable)
.includeIPv6(IncludeIPv6.Enable)
.call();
if (res.plexDevices().isPresent()) {
// handle response
}
}
}
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
includeHttps |
Optional | ➖ | Include Https entries in the results | 1 |
includeRelay |
Optional | ➖ | Include Relay addresses in the results E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400 |
1 |
includeIPv6 |
Optional | ➖ | Include IPv6 entries in the results | 1 |
serverURL |
String | ➖ | An optional server URL to use. | http://localhost:8080 |
Response
Errors
| Error Object | Status Code | Content Type |
|---|---|---|
| models/errors/GetServerResourcesBadRequest | 400 | application/json |
| models/errors/GetServerResourcesUnauthorized | 401 | application/json |
| models/errors/SDKError | 4xx-5xx | */* |
getPin
Retrieve a Pin ID from Plex.tv to use for authentication flows
Example Usage
package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetPinBadRequest;
import dev.plexapi.sdk.models.operations.GetPinRequest;
import dev.plexapi.sdk.models.operations.GetPinResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws GetPinBadRequest, Exception {
PlexAPI sdk = PlexAPI.builder()
.clientID("gcgzw5rz2xovp84b4vha3a40")
.clientName("Plex Web")
.clientVersion("4.133.0")
.clientPlatform("Chrome")
.deviceName("Linux")
.build();
GetPinRequest req = GetPinRequest.builder()
.build();
GetPinResponse res = sdk.plex().getPin()
.request(req)
.call();
if (res.authPinContainer().isPresent()) {
// handle response
}
}
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
request |
GetPinRequest | ✔️ | The request object to use for the request. |
serverURL |
String | ➖ | An optional server URL to use. |
Response
Errors
| Error Object | Status Code | Content Type |
|---|---|---|
| models/errors/GetPinBadRequest | 400 | application/json |
| models/errors/SDKError | 4xx-5xx | */* |
getTokenByPinId
Retrieve an Access Token from Plex.tv after the Pin has been authenticated
Example Usage
package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetTokenByPinIdBadRequest;
import dev.plexapi.sdk.models.errors.GetTokenByPinIdResponseBody;
import dev.plexapi.sdk.models.operations.GetTokenByPinIdResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws GetTokenByPinIdBadRequest, GetTokenByPinIdResponseBody, Exception {
PlexAPI sdk = PlexAPI.builder()
.clientID("gcgzw5rz2xovp84b4vha3a40")
.clientName("Plex Web")
.clientVersion("4.133.0")
.clientPlatform("Chrome")
.deviceName("Linux")
.build();
GetTokenByPinIdResponse res = sdk.plex().getTokenByPinId()
.pinID(408895L)
.call();
if (res.authPinContainer().isPresent()) {
// handle response
}
}
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
pinID |
long | ✔️ | The PinID to retrieve an access token for |
serverURL |
String | ➖ | An optional server URL to use. |
Response
Errors
| Error Object | Status Code | Content Type |
|---|---|---|
| models/errors/GetTokenByPinIdBadRequest | 400 | application/json |
| models/errors/GetTokenByPinIdResponseBody | 404 | application/json |
| models/errors/SDKError | 4xx-5xx | */* |