Skip to main content
POST
/
:
/
timeline
PlexGO
package main

import(
	"context"
	"github.com/LukeHagar/plexgo/models/components"
	"github.com/LukeHagar/plexgo"
	"github.com/LukeHagar/plexgo/models/operations"
	"log"
)

func main() {
    ctx := context.Background()

    s := plexgo.New(
        plexgo.WithAccepts(components.AcceptsApplicationXML),
        plexgo.WithClientIdentifier("abc123"),
        plexgo.WithProduct("Plex for Roku"),
        plexgo.WithVersion("2.4.1"),
        plexgo.WithPlatform("Roku"),
        plexgo.WithPlatformVersion("4.3 build 1057"),
        plexgo.WithDevice("Roku 3"),
        plexgo.WithModel("4200X"),
        plexgo.WithDeviceVendor("Roku"),
        plexgo.WithDeviceName("Living Room TV"),
        plexgo.WithMarketplace("googlePlay"),
        plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
    )

    res, err := s.Timeline.Report(ctx, operations.ReportRequest{
        Key: plexgo.Pointer("/foo"),
        RatingKey: plexgo.Pointer("xyz"),
        State: operations.StatePlaying.ToPointer(),
        PlayQueueItemID: plexgo.Pointer("123"),
        Time: plexgo.Pointer[int64](0),
        Duration: plexgo.Pointer[int64](10000),
        Continuing: components.BoolIntOne.ToPointer(),
        Updated: plexgo.Pointer[int64](14200000),
        Offline: components.BoolIntOne.ToPointer(),
        TimeToFirstFrame: plexgo.Pointer[int64](1000),
        TimeStalled: plexgo.Pointer[int64](1000),
        Bandwidth: plexgo.Pointer[int64](100),
        BufferedTime: plexgo.Pointer[int64](100),
        BufferedSize: plexgo.Pointer[int64](1024),
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.Object != nil {
        // handle response
    }
}
{
  "MediaContainer": {
    "identifier": "<string>",
    "offset": 123,
    "size": 123,
    "totalSize": 123,
    "allowCameraUpload": true,
    "allowChannelAccess": true,
    "allowMediaDeletion": true,
    "allowSharing": true,
    "allowSync": true,
    "allowTuners": true,
    "backgroundProcessing": true,
    "certificate": true,
    "companionProxy": true,
    "countryCode": "<string>",
    "diagnostics": "<string>",
    "eventStream": true,
    "friendlyName": "<string>",
    "hubSearch": true,
    "itemClusters": true,
    "livetv": 7,
    "machineIdentifier": "<any>",
    "mediaProviders": true,
    "multiuser": true,
    "musicAnalysis": 2,
    "myPlex": true,
    "myPlexMappingState": "<any>",
    "myPlexSigninState": "<any>",
    "myPlexSubscription": true,
    "myPlexUsername": "<string>",
    "offlineTranscode": "<any>",
    "ownerFeatures": "<string>",
    "platform": "<string>",
    "platformVersion": "<string>",
    "pluginHost": true,
    "pushNotifications": true,
    "readOnlyLibraries": true,
    "streamingBrainABRVersion": 123,
    "streamingBrainVersion": 123,
    "sync": true,
    "transcoderActiveVideoSessions": 123,
    "transcoderAudio": true,
    "transcoderLyrics": true,
    "transcoderPhoto": true,
    "transcoderSubtitles": true,
    "transcoderVideo": true,
    "transcoderVideoBitrates": "<any>",
    "transcoderVideoQualities": "<string>",
    "transcoderVideoResolutions": "<any>",
    "updatedAt": 123,
    "updater": true,
    "version": "<string>",
    "voiceSearch": true,
    "Bandwidths": {
      "Bandwidth": [
        {
          "bandwidth": 123,
          "resolution": "<string>",
          "time": 123
        }
      ]
    },
    "terminationCode": 123,
    "terminationText": "<string>"
  }
}

Authorizations

X-Plex-Token
string
header
required

Headers

accepts
enum<string>
default:application/xml
Available options:
application/json,
application/xml
X-Plex-Client-Identifier
string
required
X-Plex-Product
string
Example:
X-Plex-Version
string
Example:
X-Plex-Platform
string
Example:
X-Plex-Platform-Version
string
Example:
X-Plex-Device
string
Example:
X-Plex-Model
string
Example:
X-Plex-Device-Vendor
string
Example:
X-Plex-Device-Name
string
Example:
X-Plex-Marketplace
string
Example:
X-Plex-Session-Identifier
string

Query Parameters

key
string
ratingKey
string
state
enum<string>
Available options:
stopped,
buffering,
playing,
paused
playQueueItemID
string
time
integer
duration
integer
continuing
enum<integer>
Available options:
0,
1
updated
integer
offline
enum<integer>
Available options:
0,
1
timeToFirstFrame
integer
timeStalled
integer
bandwidth
integer
bufferedTime
integer
bufferedSize
integer

Response

MediaContainer
object