package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.operations.*;
import dev.plexapi.sdk.models.shared.*;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws Exception {
PlexAPI sdk = PlexAPI.builder()
.accepts(Accepts.APPLICATION_XML)
.clientIdentifier("abc123")
.product("Plex for Roku")
.version("2.4.1")
.platform("Roku")
.platformVersion("4.3 build 1057")
.device("Roku 3")
.model("4200X")
.deviceVendor("Roku")
.deviceName("Living Room TV")
.marketplace("googlePlay")
.token(System.getenv().getOrDefault("TOKEN", ""))
.build();
StartTranscodeSessionRequest req = StartTranscodeSessionRequest.builder()
.transcodeType(TranscodeType.MUSIC)
.extension(Extension.MPD)
.advancedSubtitles(AdvancedSubtitles.BURN)
.audioBoost(50L)
.audioChannelCount(5L)
.autoAdjustQuality(BoolInt.True)
.autoAdjustSubtitle(BoolInt.True)
.directPlay(BoolInt.True)
.directStream(BoolInt.True)
.directStreamAudio(BoolInt.True)
.disableResolutionRotation(BoolInt.True)
.hasMDE(BoolInt.True)
.location(StartTranscodeSessionQueryParamLocation.WAN)
.mediaBufferSize(102400L)
.mediaIndex(0L)
.musicBitrate(5000L)
.offset(90.5)
.partIndex(0L)
.path("/library/metadata/151671")
.peakBitrate(12000L)
.photoResolution("1080x1080")
.protocol(StartTranscodeSessionQueryParamProtocol.DASH)
.secondsPerSegment(5L)
.subtitleSize(50L)
.subtitles(StartTranscodeSessionQueryParamSubtitles.BURN)
.videoResolution("1080x1080")
.copyts(BoolInt.True)
.videoBitrate(12000L)
.videoQuality(50L)
.xPlexClientProfileExtra("add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.frameRate&value=60&replace=true)+append-transcode-target-codec(type=videoProfile&context=streaming&videoCodec=h264%2Chevc&audioCodec=aac&protocol=dash)")
.xPlexClientProfileName("generic")
.build();
StartTranscodeSessionResponse res = sdk.transcoder().startTranscodeSession()
.request(req)
.call();
if (res.twoHundredApplicationVndAppleMpegurlBinaryResponse().isPresent()) {
// handle response
}
}
}