Documentation
¶
Index ¶
- Constants
- type Account
- type Client
- func (p *Client) CheckPin(pin *Pin) (bool, error)
- func (p *Client) CreateCollection(title, section, firstKey string) (*PlexCollectionCreate, error)
- func (p *Client) CreatePin() (*Pin, error)
- func (p *Client) DeleteCollection(ratingKey string) error
- func (p *Client) GetAuthUrl(redirect string, pin *Pin) string
- func (p *Client) GetClients() (*ClientsResponse, error)
- func (p *Client) GetCollection(ratingKey string) (*PlexCollection, error)
- func (p *Client) GetCollectionChildren(ratingKey string) ([]*PlexCollectionChild, error)
- func (p *Client) GetDevices() (map[string]any, error)
- func (p *Client) GetLibraries() ([]*PlexLibrary, error)
- func (p *Client) GetMetadataByKey(key string) (string, error)
- func (p *Client) GetResources() ([]*Resource, error)
- func (p *Client) GetSeriesEpisodes(key string) ([]*PlexLeavesMetadata, error)
- func (p *Client) GetSeriesEpisodesUnwatched(key string) (*PlexLeavesMetadata, error)
- func (p *Client) GetSessions() ([]*PlexSessionMetadata, error)
- func (p *Client) GetUser(token string) (*PlexUser, error)
- func (p *Client) GetViewedByKey(key string) (*PlexLibraryMetadata, error)
- func (p *Client) GetWatchlist(token string) (*PlexWatchlist, error)
- func (p *Client) GetWatchlistDetail(token string, w *PlexWatchlist) ([]*PlexWatchlistDetail, error)
- func (p *Client) LibraryByPath(path string) (*PlexLibrary, error)
- func (p *Client) LibraryType(section string) (int, error)
- func (p *Client) LibraryTypeID(t string) int
- func (p *Client) LibraryTypeName(section string) (string, error)
- func (p *Client) ListCollections(section string) ([]*PlexCollection, error)
- func (p *Client) Play(ratingKey, player string) error
- func (p *Client) RefreshLibraryPath(path string) error
- func (p *Client) Search(query, section string) ([]SearchMetadata, error)
- func (p *Client) Stop(session string) error
- func (p *Client) UpdateCollection(section, ratingKey string, keys []string) error
- type ClientOptions
- type ClientsResponse
- type Connection
- type Country
- type Director
- type Field
- type GUID
- type Genre
- type HookData
- type HookPayload
- type HookPayloadMetadata
- type Image
- type Location
- type Media
- type Part
- type Pin
- type Player
- type PlexCollection
- type PlexCollectionChild
- type PlexCollectionChildrenResponse
- type PlexCollectionCreate
- type PlexCollectionResponse
- type PlexLeavesMetadata
- type PlexLeavesMetadataContainer
- type PlexLibraries
- type PlexLibrariesCollectionResponse
- type PlexLibrary
- type PlexLibraryLocation
- type PlexLibraryMetadata
- type PlexLibraryMetadataContainer
- type PlexQueue
- type PlexSearch
- type PlexSessionContainer
- type PlexSessionMetadata
- type PlexUser
- type PlexWatchlist
- type PlexWatchlistDetail
- type Rating
- type Resource
- type Role
- type SearchMetadata
- type Server
- type ServerClient
- type Session
- type SessionMedia
- type SessionPart
- type SessionPlayer
- type Similar
- type Stream
- type Style
- type TranscodeSession
- type User
- type WatchlistOpts
Constants ¶
View Source
const ( PlexLibraryTypeUnknown = iota PlexLibraryTypeMovie PlexLibraryTypeShow )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
URL string
Token string
Debug bool
MachineIdentifier string
ClientIdentifier string
Product string
Device string
AppName string
MetadataURL string
PlexTVURL string
Headers map[string]string
// contains filtered or unexported fields
}
func New ¶
func New(opt *ClientOptions) *Client
func (*Client) CreateCollection ¶
func (p *Client) CreateCollection(title, section, firstKey string) (*PlexCollectionCreate, error)
func (*Client) DeleteCollection ¶
func (*Client) GetClients ¶
func (p *Client) GetClients() (*ClientsResponse, error)
func (*Client) GetCollection ¶
func (p *Client) GetCollection(ratingKey string) (*PlexCollection, error)
func (*Client) GetCollectionChildren ¶
func (p *Client) GetCollectionChildren(ratingKey string) ([]*PlexCollectionChild, error)
func (*Client) GetLibraries ¶
func (p *Client) GetLibraries() ([]*PlexLibrary, error)
func (*Client) GetResources ¶
func (*Client) GetSeriesEpisodes ¶
func (p *Client) GetSeriesEpisodes(key string) ([]*PlexLeavesMetadata, error)
func (*Client) GetSeriesEpisodesUnwatched ¶
func (p *Client) GetSeriesEpisodesUnwatched(key string) (*PlexLeavesMetadata, error)
func (*Client) GetSessions ¶
func (p *Client) GetSessions() ([]*PlexSessionMetadata, error)
func (*Client) GetViewedByKey ¶
func (p *Client) GetViewedByKey(key string) (*PlexLibraryMetadata, error)
func (*Client) GetWatchlist ¶
func (p *Client) GetWatchlist(token string) (*PlexWatchlist, error)
func (*Client) GetWatchlistDetail ¶
func (p *Client) GetWatchlistDetail(token string, w *PlexWatchlist) ([]*PlexWatchlistDetail, error)
func (*Client) LibraryByPath ¶
func (p *Client) LibraryByPath(path string) (*PlexLibrary, error)
func (*Client) LibraryTypeID ¶
func (*Client) ListCollections ¶
func (p *Client) ListCollections(section string) ([]*PlexCollection, error)
func (*Client) RefreshLibraryPath ¶
type ClientOptions ¶
type ClientsResponse ¶
type ClientsResponse struct {
MediaContainer struct {
Size int64 `json:"size"`
Server []*ServerClient `json:"Server"`
} `json:"MediaContainer"`
}
type Connection ¶
type HookData ¶
type HookData struct {
Payload HookPayload `json:"payload"`
}
type HookPayload ¶
type HookPayloadMetadata ¶
type HookPayloadMetadata struct {
LibrarySectionType string `json:"librarySectionType"`
RatingKey string `json:"ratingKey"`
Key string `json:"key"`
ParentRatingKey string `json:"parentRatingKey"`
GrandparentRatingKey string `json:"grandparentRatingKey"`
GUID string `json:"guid"`
LibrarySectionID int64 `json:"librarySectionID"`
Type string `json:"type"`
Title string `json:"title"`
GrandparentKey string `json:"grandparentKey"`
ParentKey string `json:"parentKey"`
GrandparentTitle string `json:"grandparentTitle"`
ParentTitle string `json:"parentTitle"`
Summary string `json:"summary"`
Index int64 `json:"index"`
ParentIndex int64 `json:"parentIndex"`
RatingCount int64 `json:"ratingCount"`
Thumb string `json:"thumb"`
Art string `json:"art"`
ParentThumb string `json:"parentThumb"`
GrandparentThumb string `json:"grandparentThumb"`
GrandparentArt string `json:"grandparentArt"`
AddedAt int64 `json:"addedAt"`
UpdatedAt int64 `json:"updatedAt"`
}
type Media ¶
type Media struct {
ID int64 `json:"id"`
Duration int64 `json:"duration"`
Bitrate int64 `json:"bitrate"`
Width int64 `json:"width"`
Height int64 `json:"height"`
AspectRatio float64 `json:"aspectRatio"`
AudioChannels int64 `json:"audioChannels"`
AudioCodec string `json:"audioCodec"`
VideoCodec string `json:"videoCodec"`
VideoResolution string `json:"videoResolution"`
Container string `json:"container"`
VideoFrameRate string `json:"videoFrameRate"`
AudioProfile *string `json:"audioProfile,omitempty"`
VideoProfile string `json:"videoProfile"`
Part []Part `json:"Part"`
OptimizedForStreaming *int64 `json:"optimizedForStreaming,omitempty"`
Has64BitOffsets *bool `json:"has64bitOffsets,omitempty"`
}
type Part ¶
type Part struct {
ID int64 `json:"id"`
Key string `json:"key"`
Duration int64 `json:"duration"`
File string `json:"file"`
Size int64 `json:"size"`
AudioProfile *string `json:"audioProfile,omitempty"`
Container string `json:"container"`
VideoProfile string `json:"videoProfile"`
Has64BitOffsets *bool `json:"has64bitOffsets,omitempty"`
OptimizedForStreaming *bool `json:"optimizedForStreaming,omitempty"`
}
type PlexCollection ¶
type PlexCollection struct {
RatingKey string `json:"ratingKey"`
Key string `json:"key"`
GUID string `json:"guid"`
Type string `json:"type"`
Title string `json:"title"`
LibraryID int64 `json:"librarySectionID"`
LibraryTitle string `json:"librarySectionTitle"`
LibraryKey string `json:"librarySectionKey"`
Subtype string `json:"subtype"`
Summary string `json:"summary"`
Thumb string `json:"thumb"`
AddedAt int64 `json:"addedAt"`
UpdatedAt int64 `json:"updatedAt"`
ChildCount string `json:"childCount"`
MaxYear string `json:"maxYear"`
MinYear string `json:"minYear"`
Children []*PlexCollectionChild `json:"children,omitempty"`
}
type PlexCollectionChild ¶
type PlexCollectionChild struct {
RatingKey string `json:"ratingKey"`
Key string `json:"key"`
GUID string `json:"guid"`
Type string `json:"type"`
Title string `json:"title"`
LibraryID int64 `json:"librarySectionID"`
LibraryTitle string `json:"librarySectionTitle"`
LibraryKey string `json:"librarySectionKey"`
Summary string `json:"summary"`
Thumb string `json:"thumb"`
AddedAt int64 `json:"addedAt"`
UpdatedAt int64 `json:"updatedAt"`
}
type PlexCollectionChildrenResponse ¶
type PlexCollectionChildrenResponse struct {
MediaContainer struct {
Size int64 `json:"size"`
Directory []*PlexCollectionChild `json:"Metadata,omitempty"`
} `json:"MediaContainer"`
}
type PlexCollectionCreate ¶
type PlexCollectionCreate struct {
MediaContainer struct {
Directory []struct {
RatingKey string `json:"ratingKey"`
Key string `json:"key"`
Guid string `json:"guid"`
Type string `json:"type"`
Title string `json:"title"`
Subtype string `json:"subtype"`
Summary string `json:"summary"`
Thumb string `json:"thumb"`
AddedAt int64 `json:"addedAt"`
UpdatedAt int64 `json:"updatedAt"`
} `json:"Metadata"`
} `json:"MediaContainer"`
}
type PlexCollectionResponse ¶
type PlexCollectionResponse struct {
MediaContainer struct {
Size int64 `json:"size"`
AllowSync bool `json:"allowSync"`
Identifier string `json:"identifier"`
LibraryID int64 `json:"librarySectionID"`
LibraryTitle string `json:"librarySectionTitle"`
LibraryUUID string `json:"librarySectionUUID"`
Title string `json:"title1"`
Subtitle string `json:"title2"`
Directory []*PlexCollection `json:"Metadata,omitempty"`
} `json:"MediaContainer"`
}
type PlexLeavesMetadata ¶
type PlexLeavesMetadata struct {
Key string `json:"key"`
RatingKey string `json:"ratingKey"`
LastViewedAt int64 `json:"lastViewedAt"`
Title string `json:"title"`
ParentTitle string `json:"parentTitle"`
GrandparentTitle string `json:"grandparentTitle"`
Index int `json:"index"`
AddedAt int64 `json:"addedAt"`
UpdatedAt int64 `json:"updatedAt"`
Media []*Media `json:"Media"`
}
type PlexLeavesMetadataContainer ¶
type PlexLeavesMetadataContainer struct {
MediaContainer struct {
Size int64 `json:"size"`
Metadata []*PlexLeavesMetadata `json:"Metadata"`
} `json:"MediaContainer"`
}
type PlexLibraries ¶
type PlexLibraries struct {
MediaContainer struct {
Size int64 `json:"size"`
Directories []*PlexLibrary `json:"Directory"`
} `json:"MediaContainer"`
}
type PlexLibrariesCollectionResponse ¶
type PlexLibrariesCollectionResponse struct {
MediaContainer struct {
Size int64 `json:"size"`
AllowSync bool `json:"allowSync"`
Identifier string `json:"identifier"`
LibraryID int64 `json:"librarySectionID"`
LibraryTitle string `json:"librarySectionTitle"`
LibraryUUID string `json:"librarySectionUUID"`
Title string `json:"title1"`
Subtitle string `json:"title2"`
Metadata []*PlexCollection `json:"Metadata,omitempty"`
} `json:"MediaContainer"`
}
type PlexLibrary ¶
type PlexLibrary struct {
AllowSync bool `json:"allowSync"`
Art string `json:"art"`
Composite string `json:"composite"`
Filters bool `json:"filters"`
Refreshing bool `json:"refreshing"`
Thumb string `json:"thumb"`
Key string `json:"key"`
Type string `json:"type"`
Title string `json:"title"`
Agent string `json:"agent"`
Scanner string `json:"scanner"`
Language string `json:"language"`
UUID string `json:"uuid"`
UpdatedAt int64 `json:"updatedAt"`
CreatedAt int64 `json:"createdAt"`
ScannedAt int64 `json:"scannedAt"`
Content bool `json:"content"`
Directory bool `json:"directory"`
ContentChangedAt int64 `json:"contentChangedAt"`
Hidden int64 `json:"hidden"`
Locations []*PlexLibraryLocation `json:"Location"`
}
type PlexLibraryLocation ¶
{
"allowSync": true,
"art": "/:/resources/show-fanart.jpg",
"composite": "/library/sections/2/composite/1704818054",
"filters": true,
"refreshing": true,
"thumb": "/:/resources/show.png",
"key": "2",
"type": "show",
"title": "TV Shows",
"agent": "tv.plex.agents.series",
"scanner": "Plex TV Series",
"language": "en-US",
"uuid": "e35a54e6-79ff-4cde-98c6-c05c1a09c821",
"updatedAt": 1704818112,
"createdAt": 1384056048,
"scannedAt": 1704818054,
"content": true,
"directory": true,
"contentChangedAt": 41632394,
"hidden": 0,
"Location": [
{
"id": 29,
"path": "/mnt/media/tv"
}
]
},
type PlexLibraryMetadata ¶
type PlexLibraryMetadataContainer ¶
type PlexLibraryMetadataContainer struct {
MediaContainer struct {
Size int64 `json:"size"`
Metadata []*PlexLibraryMetadata `json:"Metadata"`
} `json:"MediaContainer"`
}
type PlexQueue ¶
type PlexQueue struct {
MediaContainer struct {
Size int64 `json:"size"`
Identifier string `json:"identifier"`
MediaTagPrefix string `json:"mediaTagPrefix"`
MediaTagVersion int64 `json:"mediaTagVersion"`
Shuffled bool `json:"playQueueShuffled"`
Source string `json:"playQueueSourceURI"`
Version int64 `json:"playQueueVersion"`
ID int64 `json:"playQueueID"`
}
}
type PlexSearch ¶
type PlexSearch struct {
MediaContainer struct {
Size int64 `json:"size"`
SectionID int64 `json:"sectionID"`
AllowSync bool `json:"allowSync"`
Art string `json:"art"`
Identifier string `json:"identifier"`
SectionTitle string `json:"librarySectionTitle"`
SectionUUID string `json:"librarySectionUUID"`
Title string `json:"title1"`
Subtitle string `json:"title2"`
Metadata []SearchMetadata `json:"Metadata,omitempty"`
} `json:"MediaContainer"`
}
type PlexSessionContainer ¶
type PlexSessionContainer struct {
MediaContainer struct {
Size int64 `json:"size"`
Metadata []*PlexSessionMetadata `json:"Metadata"`
} `json:"MediaContainer"`
}
type PlexSessionMetadata ¶
type PlexSessionMetadata struct {
AddedAt int64 `json:"addedAt"`
Art string `json:"art"`
ContentRating string `json:"contentRating"`
Duration int64 `json:"duration"`
GrandparentArt string `json:"grandparentArt"`
GrandparentGUID string `json:"grandparentGuid"`
GrandparentKey string `json:"grandparentKey"`
GrandparentRatingKey string `json:"grandparentRatingKey"`
GrandparentSlug string `json:"grandparentSlug"`
GrandparentThumb string `json:"grandparentThumb"`
GrandparentTitle string `json:"grandparentTitle"`
GUID string `json:"guid"`
Index int64 `json:"index"`
Key string `json:"key"`
LibrarySectionID string `json:"librarySectionID"`
LibrarySectionKey string `json:"librarySectionKey"`
LibrarySectionTitle string `json:"librarySectionTitle"`
OriginalTitle string `json:"originalTitle"`
OriginallyAvailableAt string `json:"originallyAvailableAt"`
ParentGUID string `json:"parentGuid"`
ParentIndex int64 `json:"parentIndex"`
ParentKey string `json:"parentKey"`
ParentRatingKey string `json:"parentRatingKey"`
ParentTitle string `json:"parentTitle"`
RatingKey string `json:"ratingKey"`
SessionKey string `json:"sessionKey"`
Summary string `json:"summary"`
Thumb string `json:"thumb"`
Title string `json:"title"`
Type string `json:"type"`
UpdatedAt int64 `json:"updatedAt"`
ViewOffset int64 `json:"viewOffset"`
Year int64 `json:"year"`
Media []*SessionMedia `json:"Media"`
// Role []*Role `json:"Role"`
User *User `json:"User"`
Player *SessionPlayer `json:"Player"`
Session *Session `json:"Session"`
TranscodeSession *TranscodeSession `json:"TranscodeSession"`
}
type PlexUser ¶
type PlexUser struct {
ID int64 `json:"id"`
UUID string `json:"uuid"`
Username string `json:"username"`
// Title string `json:"title"`
Email string `json:"email"`
// FriendlyName string `json:"friendlyName"`
// Locale interface{} `json:"locale"`
Confirmed bool `json:"confirmed"`
JoinedAt int64 `json:"joinedAt"`
// EmailOnlyAuth bool `json:"emailOnlyAuth"`
// HasPassword bool `json:"hasPassword"`
// Protected bool `json:"protected"`
Thumb string `json:"thumb"`
// AuthToken string `json:"authToken"`
// MailingListStatus string `json:"mailingListStatus"`
// MailingListActive bool `json:"mailingListActive"`
// ScrobbleTypes string `json:"scrobbleTypes"`
// Country string `json:"country"`
// Pin string `json:"pin"`
// Subscription struct {
// Active bool `json:"active"`
// SubscribedAt string `json:"subscribedAt"`
// Status string `json:"status"`
// PaymentService string `json:"paymentService"`
// Plan string `json:"plan"`
// Features []string `json:"features"`
// } `json:"subscription"`
// SubscriptionDescription string `json:"subscriptionDescription"`
// Restricted bool `json:"restricted"`
// Anonymous bool `json:"anonymous"`
Home bool `json:"home"`
// Guest bool `json:"guest"`
HomeSize int64 `json:"homeSize"`
HomeAdmin bool `json:"homeAdmin"`
}
type PlexWatchlist ¶
type PlexWatchlist struct {
MediaContainer struct {
LibrarySectionID string `json:"librarySectionID"`
LibrarySectionTitle string `json:"librarySectionTitle"`
Offset int64 `json:"offset"`
TotalSize int64 `json:"totalSize"`
Identifier string `json:"identifier"`
Size int64 `json:"size"`
Metadata []struct {
Art string `json:"art"`
Banner string `json:"banner"`
GUID string `json:"guid"`
Key string `json:"key"`
Rating float64 `json:"rating"`
RatingKey string `json:"ratingKey"`
Studio string `json:"studio"`
Type string `json:"type"`
Theme *string `json:"theme,omitempty"`
Thumb string `json:"thumb"`
AddedAt int64 `json:"addedAt"`
Duration int64 `json:"duration"`
PublicPagesURL string `json:"publicPagesURL"`
Slug string `json:"slug"`
UserState bool `json:"userState"`
Title string `json:"title"`
OriginalTitle *string `json:"originalTitle,omitempty"`
LeafCount *int64 `json:"leafCount,omitempty"`
ChildCount *int64 `json:"childCount,omitempty"`
ContentRating string `json:"contentRating"`
OriginallyAvailableAt string `json:"originallyAvailableAt"`
Year int64 `json:"year"`
RatingImage string `json:"ratingImage"`
ImdbRatingCount int64 `json:"imdbRatingCount"`
Image []Image `json:"Image"`
PrimaryExtraKey *string `json:"primaryExtraKey,omitempty"`
IsContinuingSeries *bool `json:"isContinuingSeries,omitempty"`
Tagline *string `json:"tagline,omitempty"`
AudienceRating *float64 `json:"audienceRating,omitempty"`
AudienceRatingImage *string `json:"audienceRatingImage,omitempty"`
Subtype *string `json:"subtype,omitempty"`
SkipChildren *bool `json:"skipChildren,omitempty"`
} `json:"Metadata"`
} `json:"MediaContainer"`
}
type PlexWatchlistDetail ¶
type PlexWatchlistDetail struct {
MediaContainer struct {
Offset int64 `json:"offset"`
TotalSize int64 `json:"totalSize"`
Identifier string `json:"identifier"`
Size int64 `json:"size"`
Metadata []struct {
Art string `json:"art"`
Banner string `json:"banner"`
MetadatumGUID string `json:"guid"`
Key string `json:"key"`
MetadatumRating float64 `json:"rating"`
RatingKey string `json:"ratingKey"`
MetadatumStudio string `json:"studio"`
Summary string `json:"summary"`
Tagline string `json:"tagline"`
Type string `json:"type"`
Theme string `json:"theme"`
Thumb string `json:"thumb"`
AddedAt int64 `json:"addedAt"`
Duration int64 `json:"duration"`
PublicPagesURL string `json:"publicPagesURL"`
Slug string `json:"slug"`
UserState bool `json:"userState"`
Title string `json:"title"`
LeafCount int64 `json:"leafCount"`
ChildCount int64 `json:"childCount"`
ContentRating string `json:"contentRating"`
OriginallyAvailableAt string `json:"originallyAvailableAt"`
Year int64 `json:"year"`
RatingImage string `json:"ratingImage"`
ImdbRatingCount int64 `json:"imdbRatingCount"`
Image []Image `json:"Image"`
Genre []Genre `json:"Genre"`
GUID []GUID `json:"Guid"`
Country []Country `json:"Country"`
Role []Role `json:"Role"`
Director []Director `json:"Director"`
Producer []Director `json:"Producer"`
Writer []Director `json:"Writer"`
Network []Country `json:"Network"`
Rating []Rating `json:"Rating"`
Similar []Similar `json:"Similar"`
Studio []Country `json:"Studio"`
} `json:"Metadata"`
} `json:"MediaContainer"`
}
type Resource ¶
type Resource struct {
Name string `json:"name"`
Product string `json:"product"`
ProductVersion string `json:"productVersion"`
Platform string `json:"platform"`
PlatformVersion string `json:"platformVersion"`
Device string `json:"device"`
ClientIdentifier string `json:"clientIdentifier"`
CreatedAt string `json:"createdAt"`
LastSeenAt string `json:"lastSeenAt"`
Provides string `json:"provides"`
// OwnerID interface{} `json:"ownerId"`
// SourceTitle interface{} `json:"sourceTitle"`
PublicAddress string `json:"publicAddress"`
AccessToken *string `json:"accessToken"`
Owned bool `json:"owned"`
Home bool `json:"home"`
Synced bool `json:"synced"`
Relay bool `json:"relay"`
Presence bool `json:"presence"`
HTTPSRequired bool `json:"httpsRequired"`
PublicAddressMatches bool `json:"publicAddressMatches"`
DNSRebindingProtection *bool `json:"dnsRebindingProtection,omitempty"`
NatLoopbackSupported *bool `json:"natLoopbackSupported,omitempty"`
Connections []Connection `json:"connections"`
}
type SearchMetadata ¶
type SearchMetadata struct {
LibrarySectionTitle string `json:"librarySectionTitle"`
Score string `json:"score"`
RatingKey string `json:"ratingKey"`
Key string `json:"key"`
GUID string `json:"guid"`
Slug *string `json:"slug,omitempty"`
Studio *string `json:"studio,omitempty"`
Type string `json:"type"`
Title string `json:"title"`
LibrarySectionID int64 `json:"librarySectionID"`
LibrarySectionKey string `json:"librarySectionKey"`
ContentRating string `json:"contentRating"`
Summary string `json:"summary"`
Index *int64 `json:"index,omitempty"`
AudienceRating *float64 `json:"audienceRating,omitempty"`
ViewCount *int64 `json:"viewCount,omitempty"`
LastViewedAt *int64 `json:"lastViewedAt,omitempty"`
Year *int64 `json:"year,omitempty"`
Tagline *string `json:"tagline,omitempty"`
Thumb string `json:"thumb"`
Art string `json:"art"`
Theme *string `json:"theme,omitempty"`
Duration int64 `json:"duration"`
OriginallyAvailableAt string `json:"originallyAvailableAt"`
LeafCount *int64 `json:"leafCount,omitempty"`
ViewedLeafCount *int64 `json:"viewedLeafCount,omitempty"`
ChildCount *int64 `json:"childCount,omitempty"`
AddedAt int64 `json:"addedAt"`
UpdatedAt int64 `json:"updatedAt"`
AudienceRatingImage *string `json:"audienceRatingImage,omitempty"`
Genre []Country `json:"Genre,omitempty"`
Country []Country `json:"Country,omitempty"`
Role []Country `json:"Role,omitempty"`
Location []Location `json:"Location,omitempty"`
SkipCount *int64 `json:"skipCount,omitempty"`
SeasonCount *int64 `json:"seasonCount,omitempty"`
Field []Field `json:"Field,omitempty"`
Rating *float64 `json:"rating,omitempty"`
PrimaryExtraKey *string `json:"primaryExtraKey,omitempty"`
RatingImage *string `json:"ratingImage,omitempty"`
Media []Media `json:"Media,omitempty"`
Director []Country `json:"Director,omitempty"`
Writer []Country `json:"Writer,omitempty"`
ChapterSource *string `json:"chapterSource,omitempty"`
ParentRatingKey *string `json:"parentRatingKey,omitempty"`
GrandparentRatingKey *string `json:"grandparentRatingKey,omitempty"`
ParentGUID *string `json:"parentGuid,omitempty"`
GrandparentGUID *string `json:"grandparentGuid,omitempty"`
TitleSort *string `json:"titleSort,omitempty"`
GrandparentKey *string `json:"grandparentKey,omitempty"`
ParentKey *string `json:"parentKey,omitempty"`
GrandparentTitle *string `json:"grandparentTitle,omitempty"`
ParentTitle *string `json:"parentTitle,omitempty"`
OriginalTitle *string `json:"originalTitle,omitempty"`
ParentIndex *int64 `json:"parentIndex,omitempty"`
ParentYear *int64 `json:"parentYear,omitempty"`
ParentThumb *string `json:"parentThumb,omitempty"`
GrandparentThumb *string `json:"grandparentThumb,omitempty"`
GrandparentArt *string `json:"grandparentArt,omitempty"`
GrandparentTheme *string `json:"grandparentTheme,omitempty"`
GrandparentSlug *string `json:"grandparentSlug,omitempty"`
}
type ServerClient ¶
type ServerClient struct {
Name string `json:"name"`
Host string `json:"host"`
Address string `json:"address"`
Port int64 `json:"port"`
MachineIdentifier string `json:"machineIdentifier"`
Version string `json:"version"`
Protocol string `json:"protocol"`
Product string `json:"product"`
DeviceClass string `json:"deviceClass"`
ProtocolVersion string `json:"protocolVersion"`
ProtocolCapabilities string `json:"protocolCapabilities"`
}
type SessionMedia ¶
type SessionMedia struct {
AudioProfile string `json:"audioProfile"`
ID string `json:"id"`
VideoProfile string `json:"videoProfile"`
AudioChannels int64 `json:"audioChannels"`
AudioCodec string `json:"audioCodec"`
Bitrate int64 `json:"bitrate"`
Container string `json:"container"`
Duration int64 `json:"duration"`
Height int64 `json:"height"`
OptimizedForStreaming bool `json:"optimizedForStreaming"`
Protocol string `json:"protocol"`
VideoCodec string `json:"videoCodec"`
VideoFrameRate string `json:"videoFrameRate"`
VideoResolution string `json:"videoResolution"`
Width int64 `json:"width"`
Selected bool `json:"selected"`
Part []*SessionPart `json:"Part"`
}
type SessionPart ¶
type SessionPart struct {
AudioProfile string `json:"audioProfile"`
ID string `json:"id"`
VideoProfile string `json:"videoProfile"`
Bitrate int64 `json:"bitrate"`
Container string `json:"container"`
Duration int64 `json:"duration"`
Height int64 `json:"height"`
OptimizedForStreaming bool `json:"optimizedForStreaming"`
Protocol string `json:"protocol"`
Width int64 `json:"width"`
Decision string `json:"decision"`
Selected bool `json:"selected"`
Stream []*Stream `json:"Stream"`
}
type SessionPlayer ¶
type SessionPlayer struct {
Address string `json:"address"`
Device string `json:"device"`
MachineIdentifier string `json:"machineIdentifier"`
Model string `json:"model"`
Platform string `json:"platform"`
PlatformVersion string `json:"platformVersion"`
Product string `json:"product"`
Profile string `json:"profile"`
RemotePublicAddress string `json:"remotePublicAddress"`
State string `json:"state"`
Title string `json:"title"`
Version string `json:"version"`
Local bool `json:"local"`
Relayed bool `json:"relayed"`
Secure bool `json:"secure"`
UserID int64 `json:"userID"`
}
type Stream ¶
type Stream struct {
Bitrate int64 `json:"bitrate"`
Codec string `json:"codec"`
Default bool `json:"default"`
DisplayTitle string `json:"displayTitle"`
ExtendedDisplayTitle string `json:"extendedDisplayTitle"`
FrameRate *float64 `json:"frameRate,omitempty"`
Height *int64 `json:"height,omitempty"`
ID string `json:"id"`
Language string `json:"language"`
LanguageCode string `json:"languageCode"`
LanguageTag string `json:"languageTag"`
StreamType int64 `json:"streamType"`
Width *int64 `json:"width,omitempty"`
Decision string `json:"decision"`
Location string `json:"location"`
AudioChannelLayout *string `json:"audioChannelLayout,omitempty"`
BitrateMode *string `json:"bitrateMode,omitempty"`
Channels *int64 `json:"channels,omitempty"`
Profile *string `json:"profile,omitempty"`
SamplingRate *int64 `json:"samplingRate,omitempty"`
Selected *bool `json:"selected,omitempty"`
Burn *string `json:"burn,omitempty"`
Title *string `json:"title,omitempty"`
}
type TranscodeSession ¶
type TranscodeSession struct {
Key string `json:"key"`
Throttled bool `json:"throttled"`
Complete bool `json:"complete"`
Progress float64 `json:"progress"`
Size int64 `json:"size"`
Speed float64 `json:"speed"`
Error bool `json:"error"`
Duration int64 `json:"duration"`
Remaining int64 `json:"remaining"`
Context string `json:"context"`
SourceVideoCodec string `json:"sourceVideoCodec"`
SourceAudioCodec string `json:"sourceAudioCodec"`
VideoDecision string `json:"videoDecision"`
AudioDecision string `json:"audioDecision"`
SubtitleDecision string `json:"subtitleDecision"`
Protocol string `json:"protocol"`
Container string `json:"container"`
VideoCodec string `json:"videoCodec"`
AudioCodec string `json:"audioCodec"`
AudioChannels int64 `json:"audioChannels"`
TranscodeHwRequested bool `json:"transcodeHwRequested"`
TranscodeHwDecoding string `json:"transcodeHwDecoding"`
TranscodeHwEncoding string `json:"transcodeHwEncoding"`
TranscodeHwDecodingTitle string `json:"transcodeHwDecodingTitle"`
TranscodeHwFullPipeline bool `json:"transcodeHwFullPipeline"`
TranscodeHwEncodingTitle string `json:"transcodeHwEncodingTitle"`
TimeStamp float64 `json:"timeStamp"`
MaxOffsetAvailable float64 `json:"maxOffsetAvailable"`
MinOffsetAvailable float64 `json:"minOffsetAvailable"`
}
type WatchlistOpts ¶
Click to show internal directories.
Click to hide internal directories.