fastpixapi 1.1.3 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fastpix_client/dimensions.rb +3 -3
  3. data/lib/fastpix_client/errors.rb +1 -1
  4. data/lib/fastpix_client/in_video_ai_features.rb +8 -8
  5. data/lib/fastpix_client/input_video.rb +4 -3
  6. data/lib/fastpix_client/manage_live_stream.rb +13 -12
  7. data/lib/fastpix_client/manage_videos.rb +21 -23
  8. data/lib/fastpix_client/metrics.rb +3 -3
  9. data/lib/fastpix_client/models/components/addtrackrequest.rb +6 -2
  10. data/lib/fastpix_client/models/components/addtrackrequest.rbi +2 -0
  11. data/lib/fastpix_client/models/components/addtrackresponse.rb +6 -2
  12. data/lib/fastpix_client/models/components/addtrackresponse.rbi +2 -0
  13. data/lib/fastpix_client/models/components/audiotrack.rb +6 -2
  14. data/lib/fastpix_client/models/components/audiotrack.rbi +2 -0
  15. data/lib/fastpix_client/models/components/generatetrackresponse.rb +6 -2
  16. data/lib/fastpix_client/models/components/generatetrackresponse.rbi +2 -0
  17. data/lib/fastpix_client/models/components/getallmediaresponse.rb +9 -11
  18. data/lib/fastpix_client/models/components/getallmediaresponse.rbi +2 -0
  19. data/lib/fastpix_client/models/components/getallmediaresponse_mp4support.rb +32 -12
  20. data/lib/fastpix_client/models/components/getallmediaresponse_mp4support.rbi +11 -1
  21. data/lib/fastpix_client/models/components/getallmediaresponse_sourceresolution.rb +2 -0
  22. data/lib/fastpix_client/models/components/{getmediaresponse.rb → getmediadetailresponse.rb} +14 -16
  23. data/lib/fastpix_client/models/components/{getmediaresponse.rbi → getmediadetailresponse.rbi} +4 -2
  24. data/lib/fastpix_client/models/components/{getmediaresponse_maxresolution.rb → getmediadetailresponse_maxresolution.rb} +2 -2
  25. data/lib/fastpix_client/models/components/getmediadetailresponse_maxresolution.rbi +11 -0
  26. data/lib/fastpix_client/models/components/{getmediaresponse_mediaquality.rb → getmediadetailresponse_mediaquality.rb} +2 -2
  27. data/lib/fastpix_client/models/components/getmediadetailresponse_mediaquality.rbi +11 -0
  28. data/lib/fastpix_client/models/components/getmediadetailresponse_mp4support.rb +48 -0
  29. data/lib/fastpix_client/models/components/getmediadetailresponse_mp4support.rbi +21 -0
  30. data/lib/fastpix_client/models/components/{getmediaresponse_sourceresolution.rb → getmediadetailresponse_sourceresolution.rb} +4 -2
  31. data/lib/fastpix_client/models/components/getmediadetailresponse_sourceresolution.rbi +11 -0
  32. data/lib/fastpix_client/models/components/{getmediaresponse_status.rb → getmediadetailresponse_status.rb} +2 -2
  33. data/lib/fastpix_client/models/components/getmediadetailresponse_status.rbi +11 -0
  34. data/lib/fastpix_client/models/components/{getmediaresponse_track.rb → getmediadetailresponse_track.rb} +1 -1
  35. data/lib/fastpix_client/models/components/getmediadetailresponse_track.rbi +11 -0
  36. data/lib/fastpix_client/models/components/live_media_clips.rb +9 -11
  37. data/lib/fastpix_client/models/components/live_media_clips.rbi +2 -0
  38. data/lib/fastpix_client/models/components/live_media_clips_mp4support.rb +32 -12
  39. data/lib/fastpix_client/models/components/live_media_clips_mp4support.rbi +11 -1
  40. data/lib/fastpix_client/models/components/live_media_clips_sourceresolution.rb +2 -0
  41. data/lib/fastpix_client/models/components/media.rb +9 -11
  42. data/lib/fastpix_client/models/components/media.rbi +2 -0
  43. data/lib/fastpix_client/models/components/media_mp4support.rb +32 -12
  44. data/lib/fastpix_client/models/components/media_mp4support.rbi +11 -1
  45. data/lib/fastpix_client/models/components/media_sourceresolution.rb +2 -0
  46. data/lib/fastpix_client/models/components/sourceaccessmedia.rb +9 -11
  47. data/lib/fastpix_client/models/components/sourceaccessmedia.rbi +2 -0
  48. data/lib/fastpix_client/models/components/sourceaccessmedia_mp4support.rb +32 -12
  49. data/lib/fastpix_client/models/components/sourceaccessmedia_mp4support.rbi +11 -1
  50. data/lib/fastpix_client/models/components/sourceaccessmedia_sourceresolution.rb +2 -0
  51. data/lib/fastpix_client/models/components/subtitletrack.rb +6 -2
  52. data/lib/fastpix_client/models/components/subtitletrack.rbi +2 -0
  53. data/lib/fastpix_client/models/components/tracksubtitlesgeneraterequest.rb +6 -2
  54. data/lib/fastpix_client/models/components/tracksubtitlesgeneraterequest.rbi +2 -0
  55. data/lib/fastpix_client/models/components/update_media.rb +9 -11
  56. data/lib/fastpix_client/models/components/update_media.rbi +2 -0
  57. data/lib/fastpix_client/models/components/update_media_maxresolution.rb +0 -1
  58. data/lib/fastpix_client/models/components/update_media_mp4support.rb +32 -12
  59. data/lib/fastpix_client/models/components/update_media_mp4support.rbi +11 -1
  60. data/lib/fastpix_client/models/components/updatetrackrequest.rb +7 -7
  61. data/lib/fastpix_client/models/components/updatetrackrequest.rbi +2 -2
  62. data/lib/fastpix_client/models/components/updatetrackresponse.rb +6 -2
  63. data/lib/fastpix_client/models/components/updatetrackresponse.rbi +2 -0
  64. data/lib/fastpix_client/models/components/videotrack.rb +6 -2
  65. data/lib/fastpix_client/models/components/videotrack.rbi +2 -0
  66. data/lib/fastpix_client/models/components/videotrackforgetall.rb +6 -2
  67. data/lib/fastpix_client/models/components/videotrackforgetall.rbi +2 -0
  68. data/lib/fastpix_client/models/components.rb +7 -7
  69. data/lib/fastpix_client/models/operations/get_media_response.rb +1 -1
  70. data/lib/fastpix_client/models/operations/get_media_responsebody.rb +2 -2
  71. data/lib/fastpix_client/playlist.rb +2 -1
  72. data/lib/fastpix_client/sdkconfiguration.rb +2 -2
  73. data/lib/fastpix_client/simulcast_stream.rb +3 -3
  74. data/lib/fastpix_client/start_live_stream.rb +4 -4
  75. data/lib/fastpix_client/views.rb +3 -3
  76. metadata +16 -18
  77. data/lib/fastpix_client/models/components/getmediaresponse_maxresolution.rbi +0 -11
  78. data/lib/fastpix_client/models/components/getmediaresponse_mediaquality.rbi +0 -11
  79. data/lib/fastpix_client/models/components/getmediaresponse_mp4support.rb +0 -28
  80. data/lib/fastpix_client/models/components/getmediaresponse_mp4support.rbi +0 -11
  81. data/lib/fastpix_client/models/components/getmediaresponse_sourceresolution.rbi +0 -11
  82. data/lib/fastpix_client/models/components/getmediaresponse_status.rbi +0 -11
  83. data/lib/fastpix_client/models/components/getmediaresponse_track.rbi +0 -11
  84. data/test/sdk_examples_test.rb +0 -20
  85. data/test/test_helper.rb +0 -29
@@ -22,13 +22,8 @@ module FastpixClient
22
22
  field :creator_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('creatorId') } }
23
23
  # Determines the media’s status, which can be one of the possible values.
24
24
  field :status, Crystalline::Nilable.new(Models::Components::MediaStatus), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Components::MediaStatus, true) } }
25
- # Determines the type of MP4 support for the media.
26
- # - **none**: Disables MP4 support.
27
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
28
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
29
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
30
- #
31
- field :mp4_support, Crystalline::Nilable.new(Models::Components::MediaMp4Support), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support'), 'decoder': Utils.enum_from_string(Models::Components::MediaMp4Support, true) } }
25
+ # The MP4 renditions generated for the media. Present only when MP4 support is enabled.
26
+ field :mp4_support, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::MediaMp4Support)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support') } }
32
27
  # A collection of Playback ID objects utilized for crafting HLS playback URLs.
33
28
  field :playback_ids, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PlaybackId)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('playbackIds') } }
34
29
  # A media consists of different media tracks, like video, audio, and subtitle, all combined.
@@ -66,11 +61,13 @@ module FastpixClient
66
61
  field :is_audio_only, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('isAudioOnly') } }
67
62
  # Indicates whether subtitles are available for the media.
68
63
  field :subtitle_available, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('subtitleAvailable') } }
64
+ # Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
65
+ field :optimize_audio, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('optimizeAudio') } }
69
66
  # The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
70
67
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
71
68
 
72
- sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::MediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::MediaStatus), mp4_support: T.nilable(Models::Components::MediaMp4Support), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::MediaMaxResolution), source_resolution: T.nilable(Models::Components::MediaSourceResolution), source_access: T.nilable(T::Boolean), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
73
- def initialize(id: nil, workspace_id: nil, media_quality: nil, creator_id: nil, status: nil, mp4_support: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::MediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::MediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, aspect_ratio: nil)
69
+ sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::MediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::MediaStatus), mp4_support: T.nilable(T::Array[Models::Components::MediaMp4Support]), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::MediaMaxResolution), source_resolution: T.nilable(Models::Components::MediaSourceResolution), source_access: T.nilable(T::Boolean), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), optimize_audio: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
70
+ def initialize(id: nil, workspace_id: nil, media_quality: nil, creator_id: nil, status: nil, mp4_support: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::MediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::MediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
74
71
  @id = id
75
72
  @workspace_id = workspace_id
76
73
  @media_quality = media_quality
@@ -95,6 +92,7 @@ module FastpixClient
95
92
  @generated_subtitles = generated_subtitles
96
93
  @is_audio_only = is_audio_only
97
94
  @subtitle_available = subtitle_available
95
+ @optimize_audio = optimize_audio
98
96
  @aspect_ratio = aspect_ratio
99
97
  end
100
98
 
@@ -106,12 +104,12 @@ module FastpixClient
106
104
  @mp4_support, @playback_ids, @tracks, @summary, @chapters,
107
105
  @named_entities, @moderation, @duration, @created_at, @updated_at,
108
106
  @thumbnail, @metadata, @title, @max_resolution, @source_resolution,
109
- @source_access, @generated_subtitles, @is_audio_only, @subtitle_available, @aspect_ratio] ==
107
+ @source_access, @generated_subtitles, @is_audio_only, @subtitle_available, @optimize_audio, @aspect_ratio] ==
110
108
  [other.id, other.workspace_id, other.media_quality, other.creator_id, other.status,
111
109
  other.mp4_support, other.playback_ids, other.tracks, other.summary, other.chapters,
112
110
  other.named_entities, other.moderation, other.duration, other.created_at, other.updated_at,
113
111
  other.thumbnail, other.metadata, other.title, other.max_resolution, other.source_resolution,
114
- other.source_access, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.aspect_ratio]
112
+ other.source_access, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.optimize_audio, other.aspect_ratio]
115
113
  end
116
114
  end
117
115
  end
@@ -56,6 +56,8 @@ class FastpixClient::Models::Components::Media
56
56
  def is_audio_only=(str_); end
57
57
  def subtitle_available(); end
58
58
  def subtitle_available=(str_); end
59
+ def optimize_audio(); end
60
+ def optimize_audio=(str_); end
59
61
  def aspect_ratio(); end
60
62
  def aspect_ratio=(str_); end
61
63
  end
@@ -7,20 +7,40 @@
7
7
  module FastpixClient
8
8
  module Models
9
9
  module Components
10
- # MediaMp4Support - Determines the type of MP4 support for the media.
11
- # - **none**: Disables MP4 support.
12
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
13
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
14
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
15
- #
16
- class MediaMp4Support < T::Enum
10
+ # MediaMp4Support - One MP4 rendition generated for the media when MP4 support is requested.
11
+ class MediaMp4Support
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
17
14
 
15
+ # The MP4 rendition type. `capped_4k` is a downloadable MP4 video capped at 4K resolution, `audioOnly` is a downloadable m4a audio-only file.
16
+ field :type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type') } }
17
+ # Generation status of this MP4 rendition. One of `preparing`, `ready`, or `failed`.
18
+ field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
19
+ # Pixel height of the rendition. Omitted for the `audioOnly` type.
20
+ field :height, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('height') } }
21
+ # Pixel width of the rendition. Omitted for the `audioOnly` type.
22
+ field :width, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('width') } }
23
+ # File extension of the downloadable rendition. One of `mp4` or `m4a`.
24
+ field :ext, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('ext') } }
18
25
 
19
- enums do
20
- NONE = new('none')
21
- CAPPED_4K = new('capped_4k')
22
- AUDIO_ONLY = new('audioOnly')
23
- AUDIO_ONLY_CAPPED_4K = new('audioOnly,capped_4k')
26
+ sig { params(type: T.nilable(::String), status: T.nilable(::String), height: T.nilable(::Integer), width: T.nilable(::Integer), ext: T.nilable(::String)).void }
27
+ def initialize(type: nil, status: nil, height: nil, width: nil, ext: nil)
28
+ @type = type
29
+ @status = status
30
+ @height = height
31
+ @width = width
32
+ @ext = ext
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @type == other.type
39
+ return false unless @status == other.status
40
+ return false unless @height == other.height
41
+ return false unless @width == other.width
42
+ return false unless @ext == other.ext
43
+ true
24
44
  end
25
45
  end
26
46
  end
@@ -8,4 +8,14 @@ end
8
8
 
9
9
 
10
10
  class FastpixClient::Models::Components::MediaMp4Support
11
- end
11
+ def type(); end
12
+ def type=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ def height(); end
16
+ def height=(str_); end
17
+ def width(); end
18
+ def width=(str_); end
19
+ def ext(); end
20
+ def ext=(str_); end
21
+ end
@@ -22,6 +22,8 @@ module FastpixClient
22
22
  SEVEN_HUNDRED_AND_TWENTY = new('720')
23
23
  FOUR_HUNDRED_AND_EIGHTYP = new('480p')
24
24
  FOUR_HUNDRED_AND_EIGHTY = new('480')
25
+ THREE_HUNDRED_AND_SIXTYP = new('360p')
26
+ THREE_HUNDRED_AND_SIXTY = new('360')
25
27
  end
26
28
  end
27
29
  end
@@ -22,13 +22,8 @@ module FastpixClient
22
22
  field :creator_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('creatorId') } }
23
23
  # Determines the media's status, which can be one of the possible values.
24
24
  field :status, Crystalline::Nilable.new(Models::Components::SourceAccessMediaStatus), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Components::SourceAccessMediaStatus, true) } }
25
- # Determines the type of MP4 support for the media.
26
- # - **none**: Disables MP4 support.
27
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
28
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
29
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
30
- #
31
- field :mp4_support, Crystalline::Nilable.new(Models::Components::SourceAccessMediaMp4Support), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support'), 'decoder': Utils.enum_from_string(Models::Components::SourceAccessMediaMp4Support, true) } }
25
+ # The MP4 renditions generated for the media. Present only when MP4 support is enabled.
26
+ field :mp4_support, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::SourceAccessMediaMp4Support)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support') } }
32
27
  # A collection of Playback ID objects utilized for crafting HLS playback URLs.
33
28
  field :playback_ids, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PlaybackId)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('playbackIds') } }
34
29
  # A media consists of different media tracks, like video, audio, and subtitle, all combined.
@@ -66,11 +61,13 @@ module FastpixClient
66
61
  field :is_audio_only, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('isAudioOnly') } }
67
62
  # Indicates whether subtitles are available for the media.
68
63
  field :subtitle_available, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('subtitleAvailable') } }
64
+ # Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
65
+ field :optimize_audio, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('optimizeAudio') } }
69
66
  # The aspect ratio of a video describes its shape based on the relationship between its width and height.
70
67
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
71
68
 
72
- sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::SourceAccessMediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::SourceAccessMediaStatus), mp4_support: T.nilable(Models::Components::SourceAccessMediaMp4Support), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::SourceAccessMediaMaxResolution), source_resolution: T.nilable(Models::Components::SourceAccessMediaSourceResolution), source_access: T.nilable(T::Boolean), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
73
- def initialize(id: nil, workspace_id: nil, media_quality: nil, creator_id: nil, status: nil, mp4_support: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::SourceAccessMediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::SourceAccessMediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, aspect_ratio: nil)
69
+ sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::SourceAccessMediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::SourceAccessMediaStatus), mp4_support: T.nilable(T::Array[Models::Components::SourceAccessMediaMp4Support]), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::SourceAccessMediaMaxResolution), source_resolution: T.nilable(Models::Components::SourceAccessMediaSourceResolution), source_access: T.nilable(T::Boolean), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), optimize_audio: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
70
+ def initialize(id: nil, workspace_id: nil, media_quality: nil, creator_id: nil, status: nil, mp4_support: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::SourceAccessMediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::SourceAccessMediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
74
71
  @id = id
75
72
  @workspace_id = workspace_id
76
73
  @media_quality = media_quality
@@ -95,6 +92,7 @@ module FastpixClient
95
92
  @generated_subtitles = generated_subtitles
96
93
  @is_audio_only = is_audio_only
97
94
  @subtitle_available = subtitle_available
95
+ @optimize_audio = optimize_audio
98
96
  @aspect_ratio = aspect_ratio
99
97
  end
100
98
 
@@ -106,12 +104,12 @@ module FastpixClient
106
104
  @mp4_support, @playback_ids, @tracks, @summary, @chapters,
107
105
  @named_entities, @moderation, @duration, @created_at, @updated_at,
108
106
  @thumbnail, @metadata, @title, @max_resolution, @source_resolution,
109
- @source_access, @generated_subtitles, @is_audio_only, @subtitle_available, @aspect_ratio] ==
107
+ @source_access, @generated_subtitles, @is_audio_only, @subtitle_available, @optimize_audio, @aspect_ratio] ==
110
108
  [other.id, other.workspace_id, other.media_quality, other.creator_id, other.status,
111
109
  other.mp4_support, other.playback_ids, other.tracks, other.summary, other.chapters,
112
110
  other.named_entities, other.moderation, other.duration, other.created_at, other.updated_at,
113
111
  other.thumbnail, other.metadata, other.title, other.max_resolution, other.source_resolution,
114
- other.source_access, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.aspect_ratio]
112
+ other.source_access, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.optimize_audio, other.aspect_ratio]
115
113
  end
116
114
  end
117
115
  end
@@ -56,6 +56,8 @@ class FastpixClient::Models::Components::SourceAccessMedia
56
56
  def is_audio_only=(str_); end
57
57
  def subtitle_available(); end
58
58
  def subtitle_available=(str_); end
59
+ def optimize_audio(); end
60
+ def optimize_audio=(str_); end
59
61
  def aspect_ratio(); end
60
62
  def aspect_ratio=(str_); end
61
63
  end
@@ -7,20 +7,40 @@
7
7
  module FastpixClient
8
8
  module Models
9
9
  module Components
10
- # SourceAccessMediaMp4Support - Determines the type of MP4 support for the media.
11
- # - **none**: Disables MP4 support.
12
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
13
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
14
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
15
- #
16
- class SourceAccessMediaMp4Support < T::Enum
10
+ # SourceAccessMediaMp4Support - One MP4 rendition generated for the media when MP4 support is requested.
11
+ class SourceAccessMediaMp4Support
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
17
14
 
15
+ # The MP4 rendition type. `capped_4k` is a downloadable MP4 video capped at 4K resolution, `audioOnly` is a downloadable m4a audio-only file.
16
+ field :type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type') } }
17
+ # Generation status of this MP4 rendition. One of `preparing`, `ready`, or `failed`.
18
+ field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
19
+ # Pixel height of the rendition. Omitted for the `audioOnly` type.
20
+ field :height, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('height') } }
21
+ # Pixel width of the rendition. Omitted for the `audioOnly` type.
22
+ field :width, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('width') } }
23
+ # File extension of the downloadable rendition. One of `mp4` or `m4a`.
24
+ field :ext, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('ext') } }
18
25
 
19
- enums do
20
- NONE = new('none')
21
- CAPPED_4K = new('capped_4k')
22
- AUDIO_ONLY = new('audioOnly')
23
- AUDIO_ONLY_CAPPED_4K = new('audioOnly,capped_4k')
26
+ sig { params(type: T.nilable(::String), status: T.nilable(::String), height: T.nilable(::Integer), width: T.nilable(::Integer), ext: T.nilable(::String)).void }
27
+ def initialize(type: nil, status: nil, height: nil, width: nil, ext: nil)
28
+ @type = type
29
+ @status = status
30
+ @height = height
31
+ @width = width
32
+ @ext = ext
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @type == other.type
39
+ return false unless @status == other.status
40
+ return false unless @height == other.height
41
+ return false unless @width == other.width
42
+ return false unless @ext == other.ext
43
+ true
24
44
  end
25
45
  end
26
46
  end
@@ -8,4 +8,14 @@ end
8
8
 
9
9
 
10
10
  class FastpixClient::Models::Components::SourceAccessMediaMp4Support
11
- end
11
+ def type(); end
12
+ def type=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ def height(); end
16
+ def height=(str_); end
17
+ def width(); end
18
+ def width=(str_); end
19
+ def ext(); end
20
+ def ext=(str_); end
21
+ end
@@ -22,6 +22,8 @@ module FastpixClient
22
22
  SEVEN_HUNDRED_AND_TWENTY = new('720')
23
23
  FOUR_HUNDRED_AND_EIGHTYP = new('480p')
24
24
  FOUR_HUNDRED_AND_EIGHTY = new('480')
25
+ THREE_HUNDRED_AND_SIXTYP = new('360p')
26
+ THREE_HUNDRED_AND_SIXTY = new('360')
25
27
  end
26
28
  end
27
29
  end
@@ -18,6 +18,8 @@ module FastpixClient
18
18
  field :type, Crystalline::Nilable.new(Models::Components::SubtitleTrackType), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Models::Components::SubtitleTrackType, true) } }
19
19
  # Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
20
20
  field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
21
+ # Title of the track.
22
+ field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('title') } }
21
23
  # Name of the language in which the subtitles will be generated.
22
24
  #
23
25
  field :language_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageName') } }
@@ -25,11 +27,12 @@ module FastpixClient
25
27
  #
26
28
  field :language_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageCode') } }
27
29
 
28
- sig { params(id: T.nilable(::String), type: T.nilable(Models::Components::SubtitleTrackType), status: T.nilable(::String), language_name: T.nilable(::String), language_code: T.nilable(::String)).void }
29
- def initialize(id: nil, type: nil, status: nil, language_name: nil, language_code: nil)
30
+ sig { params(id: T.nilable(::String), type: T.nilable(Models::Components::SubtitleTrackType), status: T.nilable(::String), title: T.nilable(::String), language_name: T.nilable(::String), language_code: T.nilable(::String)).void }
31
+ def initialize(id: nil, type: nil, status: nil, title: nil, language_name: nil, language_code: nil)
30
32
  @id = id
31
33
  @type = type
32
34
  @status = status
35
+ @title = title
33
36
  @language_name = language_name
34
37
  @language_code = language_code
35
38
  end
@@ -40,6 +43,7 @@ module FastpixClient
40
43
  return false unless @id == other.id
41
44
  return false unless @type == other.type
42
45
  return false unless @status == other.status
46
+ return false unless @title == other.title
43
47
  return false unless @language_name == other.language_name
44
48
  return false unless @language_code == other.language_code
45
49
  true
@@ -14,6 +14,8 @@ class FastpixClient::Models::Components::SubtitleTrack
14
14
  def type=(str_); end
15
15
  def status(); end
16
16
  def status=(str_); end
17
+ def title(); end
18
+ def title=(str_); end
17
19
  def language_name(); end
18
20
  def language_name=(str_); end
19
21
  def language_code(); end
@@ -19,12 +19,15 @@ module FastpixClient
19
19
  field :language_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageName') } }
20
20
  # Language code for content localization
21
21
  field :language_code, Crystalline::Nilable.new(Models::Components::LanguageCode), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageCode'), 'decoder': Utils.enum_from_string(Models::Components::LanguageCode, true) } }
22
+ # Title of the track.
23
+ field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('title') } }
22
24
 
23
- sig { params(metadata: T.nilable(T::Hash[Symbol, ::String]), language_name: T.nilable(::String), language_code: T.nilable(Models::Components::LanguageCode)).void }
24
- def initialize(metadata: nil, language_name: 'English', language_code: Models::Components::LanguageCode::EN_US)
25
+ sig { params(metadata: T.nilable(T::Hash[Symbol, ::String]), language_name: T.nilable(::String), language_code: T.nilable(Models::Components::LanguageCode), title: T.nilable(::String)).void }
26
+ def initialize(metadata: nil, language_name: 'English', language_code: Models::Components::LanguageCode::EN_US, title: nil)
25
27
  @metadata = metadata
26
28
  @language_name = language_name
27
29
  @language_code = language_code
30
+ @title = title
28
31
  end
29
32
 
30
33
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -33,6 +36,7 @@ module FastpixClient
33
36
  return false unless @metadata == other.metadata
34
37
  return false unless @language_name == other.language_name
35
38
  return false unless @language_code == other.language_code
39
+ return false unless @title == other.title
36
40
  true
37
41
  end
38
42
  end
@@ -14,4 +14,6 @@ class FastpixClient::Models::Components::TrackSubtitlesGenerateRequest
14
14
  def language_name=(str_); end
15
15
  def language_code(); end
16
16
  def language_code=(str_); end
17
+ def title(); end
18
+ def title=(str_); end
17
19
  end
@@ -22,13 +22,8 @@ module FastpixClient
22
22
  field :media_quality, Crystalline::Nilable.new(Models::Components::UpdateMediaMediaQuality), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mediaQuality'), 'decoder': Utils.enum_from_string(Models::Components::UpdateMediaMediaQuality, true) } }
23
23
  # Determines the media's status, which can be one of the possible values.
24
24
  field :status, Crystalline::Nilable.new(Models::Components::UpdateMediaStatus), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Components::UpdateMediaStatus, true) } }
25
- # Determines the type of MP4 support for the media.
26
- # - **none**: Disables MP4 support.
27
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
28
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
29
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
30
- #
31
- field :mp4_support, Crystalline::Nilable.new(Models::Components::UpdateMediaMp4Support), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support'), 'decoder': Utils.enum_from_string(Models::Components::UpdateMediaMp4Support, true) } }
25
+ # The MP4 renditions generated for the media. Present only when MP4 support is enabled.
26
+ field :mp4_support, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::UpdateMediaMp4Support)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support') } }
32
27
  # The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it
33
28
  field :source_access, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('sourceAccess') } }
34
29
  # A collection of Playback ID objects utilized for crafting HLS playback URLs.
@@ -45,6 +40,8 @@ module FastpixClient
45
40
  field :moderation, Crystalline::Nilable.new(Models::Components::AiResponseRecord), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('moderation') } }
46
41
  # Specifies whether subtitle tracks are available for the media.
47
42
  field :subtitle_available, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('subtitleAvailable') } }
43
+ # Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
44
+ field :optimize_audio, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('optimizeAudio') } }
48
45
  # The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
49
46
  field :duration, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
50
47
  # The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
@@ -68,8 +65,8 @@ module FastpixClient
68
65
  # Indicates whether the media contains only audio (no video track).
69
66
  field :is_audio_only, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('isAudioOnly') } }
70
67
 
71
- sig { params(thumbnail: T.nilable(::String), id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::UpdateMediaMediaQuality), status: T.nilable(Models::Components::UpdateMediaStatus), mp4_support: T.nilable(Models::Components::UpdateMediaMp4Support), source_access: T.nilable(T::Boolean), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), subtitle_available: T.nilable(T::Boolean), duration: T.nilable(::String), aspect_ratio: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), metadata: T.nilable(T::Hash[Symbol, ::String]), creator_id: T.nilable(::String), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::UpdateMediaMaxResolution), source_resolution: T.nilable(Models::Components::UpdateMediaSourceResolution), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean)).void }
72
- def initialize(thumbnail: nil, id: nil, workspace_id: nil, media_quality: nil, status: nil, mp4_support: nil, source_access: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, subtitle_available: nil, duration: nil, aspect_ratio: nil, created_at: nil, updated_at: nil, metadata: nil, creator_id: '8fa85f64-5717-4562-b3fc-2c963f66afa6', title: 'My Video Title', max_resolution: Models::Components::UpdateMediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::UpdateMediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, generated_subtitles: nil, is_audio_only: nil)
68
+ sig { params(thumbnail: T.nilable(::String), id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::UpdateMediaMediaQuality), status: T.nilable(Models::Components::UpdateMediaStatus), mp4_support: T.nilable(T::Array[Models::Components::UpdateMediaMp4Support]), source_access: T.nilable(T::Boolean), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), subtitle_available: T.nilable(T::Boolean), optimize_audio: T.nilable(T::Boolean), duration: T.nilable(::String), aspect_ratio: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), metadata: T.nilable(T::Hash[Symbol, ::String]), creator_id: T.nilable(::String), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::UpdateMediaMaxResolution), source_resolution: T.nilable(Models::Components::UpdateMediaSourceResolution), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean)).void }
69
+ def initialize(thumbnail: nil, id: nil, workspace_id: nil, media_quality: nil, status: nil, mp4_support: nil, source_access: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, subtitle_available: nil, optimize_audio: nil, duration: nil, aspect_ratio: nil, created_at: nil, updated_at: nil, metadata: nil, creator_id: '8fa85f64-5717-4562-b3fc-2c963f66afa6', title: 'My Video Title', max_resolution: Models::Components::UpdateMediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::UpdateMediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, generated_subtitles: nil, is_audio_only: nil)
73
70
  @thumbnail = thumbnail
74
71
  @id = id
75
72
  @workspace_id = workspace_id
@@ -84,6 +81,7 @@ module FastpixClient
84
81
  @named_entities = named_entities
85
82
  @moderation = moderation
86
83
  @subtitle_available = subtitle_available
84
+ @optimize_audio = optimize_audio
87
85
  @duration = duration
88
86
  @aspect_ratio = aspect_ratio
89
87
  @created_at = created_at
@@ -103,12 +101,12 @@ module FastpixClient
103
101
 
104
102
  [@thumbnail, @id, @workspace_id, @media_quality, @status,
105
103
  @mp4_support, @source_access, @playback_ids, @tracks, @summary,
106
- @chapters, @named_entities, @moderation, @subtitle_available, @duration,
104
+ @chapters, @named_entities, @moderation, @subtitle_available, @optimize_audio, @duration,
107
105
  @aspect_ratio, @created_at, @updated_at, @metadata, @creator_id,
108
106
  @title, @max_resolution, @source_resolution, @generated_subtitles, @is_audio_only] ==
109
107
  [other.thumbnail, other.id, other.workspace_id, other.media_quality, other.status,
110
108
  other.mp4_support, other.source_access, other.playback_ids, other.tracks, other.summary,
111
- other.chapters, other.named_entities, other.moderation, other.subtitle_available, other.duration,
109
+ other.chapters, other.named_entities, other.moderation, other.subtitle_available, other.optimize_audio, other.duration,
112
110
  other.aspect_ratio, other.created_at, other.updated_at, other.metadata, other.creator_id,
113
111
  other.title, other.max_resolution, other.source_resolution, other.generated_subtitles, other.is_audio_only]
114
112
  end
@@ -36,6 +36,8 @@ class FastpixClient::Models::Components::UpdateMedia
36
36
  def moderation=(str_); end
37
37
  def subtitle_available(); end
38
38
  def subtitle_available=(str_); end
39
+ def optimize_audio(); end
40
+ def optimize_audio=(str_); end
39
41
  def duration(); end
40
42
  def duration=(str_); end
41
43
  def aspect_ratio(); end
@@ -17,7 +17,6 @@ module FastpixClient
17
17
  ONE_THOUSAND_AND_EIGHTYP = new('1080p')
18
18
  SEVEN_HUNDRED_AND_TWENTYP = new('720p')
19
19
  FOUR_HUNDRED_AND_EIGHTYP = new('480p')
20
- THREE_HUNDRED_AND_SIXTYP = new('360p')
21
20
  end
22
21
  end
23
22
  end
@@ -7,20 +7,40 @@
7
7
  module FastpixClient
8
8
  module Models
9
9
  module Components
10
- # UpdateMediaMp4Support - Determines the type of MP4 support for the media.
11
- # - **none**: Disables MP4 support.
12
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
13
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
14
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
15
- #
16
- class UpdateMediaMp4Support < T::Enum
10
+ # UpdateMediaMp4Support - One MP4 rendition generated for the media when MP4 support is requested.
11
+ class UpdateMediaMp4Support
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
17
14
 
15
+ # The MP4 rendition type. `capped_4k` is a downloadable MP4 video capped at 4K resolution, `audioOnly` is a downloadable m4a audio-only file.
16
+ field :type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type') } }
17
+ # Generation status of this MP4 rendition. One of `preparing`, `ready`, or `failed`.
18
+ field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
19
+ # Pixel height of the rendition. Omitted for the `audioOnly` type.
20
+ field :height, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('height') } }
21
+ # Pixel width of the rendition. Omitted for the `audioOnly` type.
22
+ field :width, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('width') } }
23
+ # File extension of the downloadable rendition. One of `mp4` or `m4a`.
24
+ field :ext, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('ext') } }
18
25
 
19
- enums do
20
- NONE = new('none')
21
- CAPPED_4K = new('capped_4k')
22
- AUDIO_ONLY = new('audioOnly')
23
- AUDIO_ONLY_CAPPED_4K = new('audioOnly,capped_4k')
26
+ sig { params(type: T.nilable(::String), status: T.nilable(::String), height: T.nilable(::Integer), width: T.nilable(::Integer), ext: T.nilable(::String)).void }
27
+ def initialize(type: nil, status: nil, height: nil, width: nil, ext: nil)
28
+ @type = type
29
+ @status = status
30
+ @height = height
31
+ @width = width
32
+ @ext = ext
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @type == other.type
39
+ return false unless @status == other.status
40
+ return false unless @height == other.height
41
+ return false unless @width == other.width
42
+ return false unless @ext == other.ext
43
+ true
24
44
  end
25
45
  end
26
46
  end
@@ -8,4 +8,14 @@ end
8
8
 
9
9
 
10
10
  class FastpixClient::Models::Components::UpdateMediaMp4Support
11
- end
11
+ def type(); end
12
+ def type=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ def height(); end
16
+ def height=(str_); end
17
+ def width(); end
18
+ def width=(str_); end
19
+ def ext(); end
20
+ def ext=(str_); end
21
+ end
@@ -7,31 +7,31 @@
7
7
  module FastpixClient
8
8
  module Models
9
9
  module Components
10
- # Contains details about the track being added to the media file.
10
+ # Contains details about the track being updated. The track's file (`url`) cannot be changed — only its language and title.
11
11
  class UpdateTrackRequest
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # The direct URL of the track file. It must point to a valid audio or subtitle file.
16
- field :url, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('url') } }
17
15
  # The BCP 47 language code representing the track’s language.
18
16
  field :language_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageCode') } }
19
17
  # The full name of the language corresponding to the `languageCode`.
20
18
  field :language_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageName') } }
19
+ # Title of the track.
20
+ field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('title') } }
21
21
 
22
- sig { params(url: T.nilable(::String), language_code: T.nilable(::String), language_name: T.nilable(::String)).void }
23
- def initialize(url: 'http://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt', language_code: 'fr', language_name: 'French')
24
- @url = url
22
+ sig { params(language_code: T.nilable(::String), language_name: T.nilable(::String), title: T.nilable(::String)).void }
23
+ def initialize(language_code: 'fr', language_name: 'French', title: nil)
25
24
  @language_code = language_code
26
25
  @language_name = language_name
26
+ @title = title
27
27
  end
28
28
 
29
29
  sig { params(other: T.untyped).returns(T::Boolean) }
30
30
  def ==(other)
31
31
  return false unless other.is_a? self.class
32
- return false unless @url == other.url
33
32
  return false unless @language_code == other.language_code
34
33
  return false unless @language_name == other.language_name
34
+ return false unless @title == other.title
35
35
  true
36
36
  end
37
37
  end
@@ -8,10 +8,10 @@ end
8
8
 
9
9
 
10
10
  class FastpixClient::Models::Components::UpdateTrackRequest
11
- def url(); end
12
- def url=(str_); end
13
11
  def language_code(); end
14
12
  def language_code=(str_); end
15
13
  def language_name(); end
16
14
  def language_name=(str_); end
15
+ def title(); end
16
+ def title=(str_); end
17
17
  end