mirror of
https://github.com/LukeHagar/plexcsharp.git
synced 2025-12-06 04:20:46 +00:00
## Csharp SDK Changes:
* `PlexApi.LibraryPlaylists.AddPlaylistItems()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryPlaylists.ClearPlaylistItems()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryCollections.MoveCollectionItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryCollections.DeleteCollectionItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryCollections.AddCollectionItems()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetSonicallySimilar()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Butler.StopTask()`: `request` **Changed** **Breaking** ⚠️ * `PlexApi.Butler.StartTask()`: `request` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetSonicPath()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.DownloadQueue.GetItemDecision()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetAllHubs()`: * `request.OnlyTransient` **Changed** * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetContinueWatching()`: `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetPromotedHubs()`: `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetMetadataHubs()`: * `request.OnlyTransient` **Changed** * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetPostplayHubs()`: * `request.OnlyTransient` **Changed** * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetRelatedHubs()`: * `request.OnlyTransient` **Changed** * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetSectionHubs()`: * `request.OnlyTransient` **Changed** * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetAllLeaves()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Content.ListContent()`: * `request` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Search.SearchHubs()`: `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetAlbums()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetLibraryItems()`: * `request.MediaQuery` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.IngestTransientItem()`: * `request` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetLibraryMatches()`: * `request` **Changed** **Breaking** ⚠️ * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetMetadataItem()`: * `request` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetSections()`: `response.mediaContainer.Directory.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.AddSection()`: * `request` **Changed** * `response.mediaContainer.Directory.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetTags()`: * `request.Type` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetCollectionItems()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetAllItemLeaves()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Status.ListSessions()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.MovePlayQueueItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetExtras()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.DeletePlayQueueItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.Unshuffle()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.ListMatches()`: * `request.Manual` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.ListSonicallySimilar()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.Shuffle()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetRelatedItems()`: `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.ListSimilar()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.ResetPlayQueue()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetItemTree()`: `response.mediaContainer.MetadataItem.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.ClearPlayQueue()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.AddToPlayQueue()`: * `request.Next` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetCommon()`: * `request.MediaQuery` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetPerson()`: `response.mediaContainer.Directory.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.ListPersonMedia()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.GetPlayQueue()`: * `request` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetLibraryDetails()`: * `request.IncludeDetails` **Changed** * `response.mediaContainer.Directory.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryPlaylists.MovePlaylistItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.Autocomplete()`: * `request.MediaQuery` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetCollections()`: * `request.MediaQuery` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryPlaylists.GetPlaylistGeneratorItems()`: `response.mediaContainer.Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryPlaylists.DeletePlaylistItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Search.VoiceSearchHubs()`: * `request.Type` **Changed** **Breaking** ⚠️ * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryPlaylists.CreatePlaylist()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Playlist.GetPlaylistItems()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Playlist.GetPlaylist()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Playlist.ListPlaylists()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Collections.CreateCollection()`: * `request.Type` **Changed** **Breaking** ⚠️ * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.DvRs.TuneChannel()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LiveTv.GetSessions()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LiveTv.GetLiveTvSession()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Transcoder.MakeDecision()`: * `request` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.GetAllSubscriptions()`: * `request` **Changed** * `response.mediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.CreateSubscription()`: `response.mediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.GetScheduledRecordings()`: `response.mediaContainer.MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.GetTemplate()`: `response.mediaContainer.SubscriptionTemplate.[].MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.GetSubscription()`: * `request` **Changed** * `response.mediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.EditSubscriptionPreferences()`: `response.mediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.ReorderSubscription()`: `response.mediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Library.AddSubtitles()`: `request` **Changed** * `PlexApi.LibraryPlaylists.UploadPlaylist()`: * `request.Force` **Changed** * `PlexApi.Transcoder.TranscodeSubtitles()`: `request` **Changed** * `PlexApi.Transcoder.StartTranscodeSession()`: `request` **Changed** * `PlexApi.Library.GetMediaPart()`: * `request.Download` **Changed** * `PlexApi.Library.DetectIntros()`: * `request.Force` **Changed** * `PlexApi.Library.GetSectionImage()`: * `request.MediaQuery` **Changed** * `PlexApi.Library.DeleteMediaItem()`: * `request.Proxy` **Changed** * `PlexApi.Library.RefreshItemsMetadata()`: * `request.MarkUpdated` **Changed** * `PlexApi.Authentication.Post-Users-Sign-In-Data()`: **Added** * `PlexApi.Authentication.GetTokenDetails()`: **Added** * `PlexApi.Library.DetectCredits()`: `request` **Changed** * `PlexApi.Library.SetStreamSelection()`: * `request.AllParts` **Changed** * `PlexApi.Library.UpdateItems()`: * `request.Field.locked` **Changed** * `PlexApi.PlayQueue.CreatePlayQueue()`: `request` **Changed** * `PlexApi.Library.DeleteLibrarySection()`: * `request.Async` **Changed** * `PlexApi.Library.GetAugmentationStatus()`: * `request.Wait` **Changed** * `PlexApi.Transcoder.TranscodeImage()`: `request` **Changed** * `PlexApi.Devices.ModifyDevice()`: * `request.Enabled` **Changed** * `PlexApi.Library.DetectVoiceActivity()`: `request` **Changed** * `PlexApi.Library.GetStream()`: * `request.AutoAdjustSubtitle` **Changed** * `PlexApi.Library.StartBifGeneration()`: * `request.Force` **Changed** * `PlexApi.Library.GetFirstCharacters()`: * `request.MediaQuery` **Changed** * `PlexApi.UltraBlur.GetImage()`: * `request.Noise` **Changed** * `PlexApi.Library.GenerateThumbs()`: * `request.Force` **Changed** * `PlexApi.Updater.ApplyUpdates()`: `request` **Changed** * `PlexApi.Updater.CheckUpdates()`: * `request.Download` **Changed** * `PlexApi.Library.DeleteMetadataItem()`: * `request.Proxy` **Changed** * `PlexApi.Library.OptimizeDatabase()`: * `request.Async` **Changed** * `PlexApi.Library.RefreshSection()`: * `request.Force` **Changed** * `PlexApi.Hubs.UpdateHubVisibility()`: `request` **Changed** * `PlexApi.Hubs.CreateCustomHub()`: `request` **Changed** * `PlexApi.DownloadQueue.AddDownloadQueueItems()`: `request` **Changed** * `PlexApi.Timeline.Report()`: `request` **Changed** * `PlexApi.General.GetSourceConnectionInformation()`: * `request.Refresh` **Changed** * `PlexApi.Plex.Get-Server-Resources()`: **Added** * `PlexApi.Users.Get-Users()`: **Added**
This commit is contained in:
@@ -23,113 +23,306 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public class Stream
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if this stream is default.
|
||||
/// </summary>
|
||||
[JsonProperty("default")]
|
||||
public bool? Default { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Audio channel layout.
|
||||
/// </summary>
|
||||
[JsonProperty("audioChannelLayout")]
|
||||
public object? AudioChannelLayout { get; set; }
|
||||
|
||||
[JsonProperty("bitDepth")]
|
||||
public long? BitDepth { get; set; }
|
||||
|
||||
[JsonProperty("bitrate")]
|
||||
public long? Bitrate { get; set; }
|
||||
public string? AudioChannelLayout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// For subtitle streams only. If `true` then the server can attempt to automatically sync the subtitle timestamps with the video.
|
||||
/// Number of audio channels (for audio streams).
|
||||
/// </summary>
|
||||
[JsonProperty("channels")]
|
||||
public int? Channels { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bit depth of the video stream.
|
||||
/// </summary>
|
||||
[JsonProperty("bitDepth")]
|
||||
public int? BitDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision BL compatibility ID.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIBLCompatID")]
|
||||
public int? DOVIBLCompatID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision BL is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIBLPresent")]
|
||||
public bool? DOVIBLPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision EL is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIELPresent")]
|
||||
public bool? DOVIELPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision level.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVILevel")]
|
||||
public int? DOVILevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIPresent")]
|
||||
public bool? DOVIPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision profile.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIProfile")]
|
||||
public int? DOVIProfile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision RPU is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIRPUPresent")]
|
||||
public bool? DOVIRPUPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision version.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIVersion")]
|
||||
public string? DOVIVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitrate of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("bitrate")]
|
||||
public int? Bitrate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the stream can auto-sync.
|
||||
/// </summary>
|
||||
[JsonProperty("canAutoSync")]
|
||||
public bool? CanAutoSync { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Chroma sample location.
|
||||
/// </summary>
|
||||
[JsonProperty("chromaLocation")]
|
||||
public object? ChromaLocation { get; set; }
|
||||
|
||||
[JsonProperty("chromaSubsampling")]
|
||||
public object? ChromaSubsampling { get; set; }
|
||||
public string? ChromaLocation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The codec of the stream, such as `h264` or `aac`
|
||||
/// Chroma subsampling format.
|
||||
/// </summary>
|
||||
[JsonProperty("chromaSubsampling")]
|
||||
public string? ChromaSubsampling { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Coded video height.
|
||||
/// </summary>
|
||||
[JsonProperty("codedHeight")]
|
||||
public int? CodedHeight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Coded video width.
|
||||
/// </summary>
|
||||
[JsonProperty("codedWidth")]
|
||||
public int? CodedWidth { get; set; }
|
||||
|
||||
[JsonProperty("closedCaptions")]
|
||||
public bool? ClosedCaptions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Codec used by the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("codec")]
|
||||
public object? Codec { get; set; }
|
||||
|
||||
[JsonProperty("colorPrimaries")]
|
||||
public object? ColorPrimaries { get; set; }
|
||||
|
||||
[JsonProperty("colorRange")]
|
||||
public object? ColorRange { get; set; }
|
||||
|
||||
[JsonProperty("colorSpace")]
|
||||
public object? ColorSpace { get; set; }
|
||||
|
||||
[JsonProperty("colorTrc")]
|
||||
public object? ColorTrc { get; set; }
|
||||
public string Codec { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// A friendly name for the stream, often comprised of the language and codec information
|
||||
/// Color primaries used.
|
||||
/// </summary>
|
||||
[JsonProperty("colorPrimaries")]
|
||||
public string? ColorPrimaries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Color range (e.g., tv).
|
||||
/// </summary>
|
||||
[JsonProperty("colorRange")]
|
||||
public string? ColorRange { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Color space.
|
||||
/// </summary>
|
||||
[JsonProperty("colorSpace")]
|
||||
public string? ColorSpace { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Color transfer characteristics.
|
||||
/// </summary>
|
||||
[JsonProperty("colorTrc")]
|
||||
public string? ColorTrc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display title for the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("displayTitle")]
|
||||
public object? DisplayTitle { get; set; }
|
||||
public string DisplayTitle { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Extended display title for the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("extendedDisplayTitle")]
|
||||
public string? ExtendedDisplayTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Frame rate of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("frameRate")]
|
||||
public double? FrameRate { get; set; }
|
||||
public float? FrameRate { get; set; }
|
||||
|
||||
[JsonProperty("hasScalingMatrix")]
|
||||
public object? HasScalingMatrix { get; set; }
|
||||
|
||||
[JsonProperty("height")]
|
||||
public long? Height { get; set; }
|
||||
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
public bool? HasScalingMatrix { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the stream is part of the `Part` and not an external resource, the index of the stream within that part
|
||||
/// Height of the video stream.
|
||||
/// </summary>
|
||||
[JsonProperty("height")]
|
||||
public int? Height { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unique stream identifier.
|
||||
/// </summary>
|
||||
[JsonProperty("id")]
|
||||
public int Id { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Index of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("index")]
|
||||
public long? Index { get; set; }
|
||||
public int? Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the stream is independently streamable, the key from which it can be streamed
|
||||
/// Key to access this stream part.
|
||||
/// </summary>
|
||||
[JsonProperty("key")]
|
||||
public object? Key { get; set; }
|
||||
|
||||
[JsonProperty("language")]
|
||||
public object? Language { get; set; }
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The three character language code for the stream contents
|
||||
/// Language of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("language")]
|
||||
public string? Language { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ISO language code.
|
||||
/// </summary>
|
||||
[JsonProperty("languageCode")]
|
||||
public object? LanguageCode { get; set; }
|
||||
public string? LanguageCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Language tag (e.g., en).
|
||||
/// </summary>
|
||||
[JsonProperty("languageTag")]
|
||||
public string? LanguageTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Format of the stream (e.g., srt).
|
||||
/// </summary>
|
||||
[JsonProperty("format")]
|
||||
public string? Format { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether header compression is enabled.
|
||||
/// </summary>
|
||||
[JsonProperty("headerCompression")]
|
||||
public bool? HeaderCompression { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Video level.
|
||||
/// </summary>
|
||||
[JsonProperty("level")]
|
||||
public long? Level { get; set; }
|
||||
public int? Level { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if this is the original stream.
|
||||
/// </summary>
|
||||
[JsonProperty("original")]
|
||||
public bool? Original { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Video profile.
|
||||
/// </summary>
|
||||
[JsonProperty("profile")]
|
||||
public object? Profile { get; set; }
|
||||
public string? Profile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of reference frames.
|
||||
/// </summary>
|
||||
[JsonProperty("refFrames")]
|
||||
public long? RefFrames { get; set; }
|
||||
public int? RefFrames { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sampling rate for the audio stream.
|
||||
/// </summary>
|
||||
[JsonProperty("samplingRate")]
|
||||
public long? SamplingRate { get; set; }
|
||||
public int? SamplingRate { get; set; }
|
||||
|
||||
[JsonProperty("scanType")]
|
||||
public string? ScanType { get; set; }
|
||||
|
||||
[JsonProperty("embeddedInVideo")]
|
||||
public string? EmbeddedInVideo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if this stream is selected (applicable for audio streams).
|
||||
/// </summary>
|
||||
[JsonProperty("selected")]
|
||||
public bool? Selected { get; set; }
|
||||
|
||||
[JsonProperty("streamIdentifier")]
|
||||
public long? StreamIdentifier { get; set; }
|
||||
[JsonProperty("forced")]
|
||||
public bool? Forced { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A number indicating the type of the stream. `1` for video, `2` for audio, `3` for subtitles, `4` for lyrics
|
||||
/// Indicates if the stream is for the hearing impaired.
|
||||
/// </summary>
|
||||
[JsonProperty("hearingImpaired")]
|
||||
public bool? HearingImpaired { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the stream is a dub.
|
||||
/// </summary>
|
||||
[JsonProperty("dub")]
|
||||
public bool? Dub { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional title for the stream (e.g., language variant).
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public string? Title { get; set; }
|
||||
|
||||
[JsonProperty("streamIdentifier")]
|
||||
public int? StreamIdentifier { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Stream type:<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
/// - VIDEO = 1<br/>
|
||||
/// - AUDIO = 2<br/>
|
||||
/// - SUBTITLE = 3<br/>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[JsonProperty("streamType")]
|
||||
public long? StreamType { get; set; }
|
||||
public long StreamType { get; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// Width of the video stream.
|
||||
/// </summary>
|
||||
[JsonProperty("width")]
|
||||
public long? Width { get; set; }
|
||||
public int? Width { get; set; }
|
||||
|
||||
[JsonProperty("additionalProperties")]
|
||||
public Dictionary<string, object>? AdditionalProperties { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user