fastpixapi 1.1.2 → 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.
- checksums.yaml +4 -4
- data/lib/crystalline/metadata_fields.rb +56 -48
- data/lib/crystalline/types.rb +3 -3
- data/lib/crystalline.rb +4 -5
- data/lib/fastpix_client/dimensions.rb +54 -61
- data/lib/fastpix_client/drm_configurations.rb +49 -56
- data/lib/fastpix_client/errors.rb +36 -25
- data/lib/fastpix_client/fastpixapi.rb +2 -4
- data/lib/fastpix_client/in_video_ai_features.rb +108 -168
- data/lib/fastpix_client/input_video.rb +70 -77
- data/lib/fastpix_client/live_playback.rb +82 -99
- data/lib/fastpix_client/manage_live_stream.rb +149 -264
- data/lib/fastpix_client/manage_videos.rb +249 -566
- data/lib/fastpix_client/metrics.rb +79 -123
- data/lib/fastpix_client/models/components/addtrackrequest.rb +6 -2
- data/lib/fastpix_client/models/components/addtrackrequest.rbi +2 -0
- data/lib/fastpix_client/models/components/addtrackresponse.rb +6 -2
- data/lib/fastpix_client/models/components/addtrackresponse.rbi +2 -0
- data/lib/fastpix_client/models/components/audiotrack.rb +6 -2
- data/lib/fastpix_client/models/components/audiotrack.rbi +2 -0
- data/lib/fastpix_client/models/components/createlivestreamresponsedto.rb +10 -18
- data/lib/fastpix_client/models/components/createmediarequest.rb +9 -18
- data/lib/fastpix_client/models/components/generatetrackresponse.rb +6 -2
- data/lib/fastpix_client/models/components/generatetrackresponse.rbi +2 -0
- data/lib/fastpix_client/models/components/getallmediaresponse.rb +20 -38
- data/lib/fastpix_client/models/components/getallmediaresponse.rbi +2 -0
- data/lib/fastpix_client/models/components/getallmediaresponse_mp4support.rb +32 -12
- data/lib/fastpix_client/models/components/getallmediaresponse_mp4support.rbi +11 -1
- data/lib/fastpix_client/models/components/getallmediaresponse_sourceresolution.rb +2 -0
- data/lib/fastpix_client/models/components/getcreatelivestreamresponsedto.rb +9 -20
- data/lib/fastpix_client/models/components/{getmediaresponse.rb → getmediadetailresponse.rb} +25 -43
- data/lib/fastpix_client/models/components/{getmediaresponse.rbi → getmediadetailresponse.rbi} +4 -2
- data/lib/fastpix_client/models/components/{getmediaresponse_maxresolution.rb → getmediadetailresponse_maxresolution.rb} +2 -2
- data/lib/fastpix_client/models/components/getmediadetailresponse_maxresolution.rbi +11 -0
- data/lib/fastpix_client/models/components/{getmediaresponse_mediaquality.rb → getmediadetailresponse_mediaquality.rb} +2 -2
- data/lib/fastpix_client/models/components/getmediadetailresponse_mediaquality.rbi +11 -0
- data/lib/fastpix_client/models/components/getmediadetailresponse_mp4support.rb +48 -0
- data/lib/fastpix_client/models/components/getmediadetailresponse_mp4support.rbi +21 -0
- data/lib/fastpix_client/models/components/{getmediaresponse_sourceresolution.rb → getmediadetailresponse_sourceresolution.rb} +4 -2
- data/lib/fastpix_client/models/components/getmediadetailresponse_sourceresolution.rbi +11 -0
- data/lib/fastpix_client/models/components/{getmediaresponse_status.rb → getmediadetailresponse_status.rb} +2 -2
- data/lib/fastpix_client/models/components/getmediadetailresponse_status.rbi +11 -0
- data/lib/fastpix_client/models/components/{getmediaresponse_track.rb → getmediadetailresponse_track.rb} +1 -1
- data/lib/fastpix_client/models/components/getmediadetailresponse_track.rbi +11 -0
- data/lib/fastpix_client/models/components/live_media_clips.rb +16 -30
- data/lib/fastpix_client/models/components/live_media_clips.rbi +2 -0
- data/lib/fastpix_client/models/components/live_media_clips_mp4support.rb +32 -12
- data/lib/fastpix_client/models/components/live_media_clips_mp4support.rbi +11 -1
- data/lib/fastpix_client/models/components/live_media_clips_sourceresolution.rb +2 -0
- data/lib/fastpix_client/models/components/media.rb +18 -35
- data/lib/fastpix_client/models/components/media.rbi +2 -0
- data/lib/fastpix_client/models/components/media_mp4support.rb +32 -12
- data/lib/fastpix_client/models/components/media_mp4support.rbi +11 -1
- data/lib/fastpix_client/models/components/media_sourceresolution.rb +2 -0
- data/lib/fastpix_client/models/components/patchresponsedata.rb +9 -18
- data/lib/fastpix_client/models/components/sourceaccessmedia.rb +18 -35
- data/lib/fastpix_client/models/components/sourceaccessmedia.rbi +2 -0
- data/lib/fastpix_client/models/components/sourceaccessmedia_mp4support.rb +32 -12
- data/lib/fastpix_client/models/components/sourceaccessmedia_mp4support.rbi +11 -1
- data/lib/fastpix_client/models/components/sourceaccessmedia_sourceresolution.rb +2 -0
- data/lib/fastpix_client/models/components/subtitletrack.rb +6 -2
- data/lib/fastpix_client/models/components/subtitletrack.rbi +2 -0
- data/lib/fastpix_client/models/components/tracksubtitlesgeneraterequest.rb +6 -2
- data/lib/fastpix_client/models/components/tracksubtitlesgeneraterequest.rbi +2 -0
- data/lib/fastpix_client/models/components/update_media.rb +18 -35
- data/lib/fastpix_client/models/components/update_media.rbi +2 -0
- data/lib/fastpix_client/models/components/update_media_maxresolution.rb +0 -1
- data/lib/fastpix_client/models/components/update_media_mp4support.rb +32 -12
- data/lib/fastpix_client/models/components/update_media_mp4support.rbi +11 -1
- data/lib/fastpix_client/models/components/updatetrackrequest.rb +7 -7
- data/lib/fastpix_client/models/components/updatetrackrequest.rbi +2 -2
- data/lib/fastpix_client/models/components/updatetrackresponse.rb +6 -2
- data/lib/fastpix_client/models/components/updatetrackresponse.rbi +2 -0
- data/lib/fastpix_client/models/components/videotrack.rb +6 -2
- data/lib/fastpix_client/models/components/videotrack.rbi +2 -0
- data/lib/fastpix_client/models/components/videotrackforgetall.rb +6 -2
- data/lib/fastpix_client/models/components/videotrackforgetall.rbi +2 -0
- data/lib/fastpix_client/models/components/views.rb +51 -124
- data/lib/fastpix_client/models/components.rb +7 -7
- data/lib/fastpix_client/models/errors/empty_response_error.rb +15 -0
- data/lib/fastpix_client/models/errors.rb +1 -0
- data/lib/fastpix_client/models/operations/get_media_response.rb +1 -1
- data/lib/fastpix_client/models/operations/get_media_responsebody.rb +2 -2
- data/lib/fastpix_client/models/operations/push_media_settings.rb +9 -20
- data/lib/fastpix_client/playback.rb +122 -213
- data/lib/fastpix_client/playlist.rb +152 -297
- data/lib/fastpix_client/sdk_hooks/registration.rb +2 -2
- data/lib/fastpix_client/sdk_hooks/types.rb +4 -0
- data/lib/fastpix_client/sdkconfiguration.rb +3 -3
- data/lib/fastpix_client/signing_keys.rb +76 -120
- data/lib/fastpix_client/simulcast_stream.rb +100 -144
- data/lib/fastpix_client/start_live_stream.rb +55 -37
- data/lib/fastpix_client/utils/forms.rb +97 -101
- data/lib/fastpix_client/utils/headers.rb +44 -34
- data/lib/fastpix_client/utils/query_params.rb +39 -29
- data/lib/fastpix_client/utils/request_bodies.rb +4 -8
- data/lib/fastpix_client/utils/security.rb +30 -18
- data/lib/fastpix_client/utils/url.rb +83 -60
- data/lib/fastpix_client/utils/utils.rb +19 -37
- data/lib/fastpix_client/views.rb +69 -93
- data/lib/fastpixapi.rb +10 -10
- data/lib/openssl_patch.rb +24 -24
- metadata +17 -18
- data/lib/fastpix_client/models/components/getmediaresponse_maxresolution.rbi +0 -11
- data/lib/fastpix_client/models/components/getmediaresponse_mediaquality.rbi +0 -11
- data/lib/fastpix_client/models/components/getmediaresponse_mp4support.rb +0 -28
- data/lib/fastpix_client/models/components/getmediaresponse_mp4support.rbi +0 -11
- data/lib/fastpix_client/models/components/getmediaresponse_sourceresolution.rbi +0 -11
- data/lib/fastpix_client/models/components/getmediaresponse_status.rbi +0 -11
- data/lib/fastpix_client/models/components/getmediaresponse_track.rbi +0 -11
- data/test/sdk_examples_test.rb +0 -20
- data/test/test_helper.rb +0 -29
|
@@ -28,13 +28,8 @@ module FastpixClient
|
|
|
28
28
|
field :playback_ids, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PlaybackId)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('playbackIds') } }
|
|
29
29
|
# A media consists of different media tracks, like video, audio, and subtitle, all combined.
|
|
30
30
|
field :tracks, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack))), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('tracks') } }
|
|
31
|
-
#
|
|
32
|
-
|
|
33
|
-
# - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
|
|
34
|
-
# - **audioOnly**: Provides an MP4 stream containing only the audio.
|
|
35
|
-
# - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
|
|
36
|
-
#
|
|
37
|
-
field :mp4_support, Crystalline::Nilable.new(Models::Components::LiveMediaClipsMp4Support), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support'), 'decoder': Utils.enum_from_string(Models::Components::LiveMediaClipsMp4Support, true) } }
|
|
31
|
+
# The MP4 renditions generated for the media. Present only when MP4 support is enabled.
|
|
32
|
+
field :mp4_support, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::LiveMediaClipsMp4Support)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support') } }
|
|
38
33
|
# The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
|
|
39
34
|
field :duration, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
|
|
40
35
|
# Time the media was created, defined as a localDateTime (UTC Time).
|
|
@@ -55,11 +50,13 @@ module FastpixClient
|
|
|
55
50
|
field :is_audio_only, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('isAudioOnly') } }
|
|
56
51
|
# Indicates whether subtitles are available for the media.
|
|
57
52
|
field :subtitle_available, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('subtitleAvailable') } }
|
|
53
|
+
# Whether the audio track of the media has been volume-normalized.
|
|
54
|
+
field :optimize_audio, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('optimizeAudio') } }
|
|
58
55
|
# The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
|
|
59
56
|
field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
|
|
60
57
|
|
|
61
|
-
sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), stream_id: T.nilable(::String), creator_id: T.nilable(::String), status: T.nilable(Models::Components::LiveMediaClipsStatus), 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)]), mp4_support: T.nilable(Models::Components::LiveMediaClipsMp4Support), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::LiveMediaClipsMaxResolution), source_resolution: T.nilable(Models::Components::LiveMediaClipsSourceResolution), 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 }
|
|
62
|
-
def initialize(id: nil, workspace_id: nil, stream_id: nil, creator_id: nil, status: nil, source_access: nil, playback_ids: nil, tracks: nil, mp4_support: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, title: nil, max_resolution: Models::Components::LiveMediaClipsMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::LiveMediaClipsSourceResolution::ONE_THOUSAND_AND_EIGHTYP, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, aspect_ratio: nil)
|
|
58
|
+
sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), stream_id: T.nilable(::String), creator_id: T.nilable(::String), status: T.nilable(Models::Components::LiveMediaClipsStatus), 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)]), mp4_support: T.nilable(T::Array[Models::Components::LiveMediaClipsMp4Support]), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::LiveMediaClipsMaxResolution), source_resolution: T.nilable(Models::Components::LiveMediaClipsSourceResolution), 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 }
|
|
59
|
+
def initialize(id: nil, workspace_id: nil, stream_id: nil, creator_id: nil, status: nil, source_access: nil, playback_ids: nil, tracks: nil, mp4_support: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, title: nil, max_resolution: Models::Components::LiveMediaClipsMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::LiveMediaClipsSourceResolution::ONE_THOUSAND_AND_EIGHTYP, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
|
|
63
60
|
@id = id
|
|
64
61
|
@workspace_id = workspace_id
|
|
65
62
|
@stream_id = stream_id
|
|
@@ -79,33 +76,22 @@ module FastpixClient
|
|
|
79
76
|
@generated_subtitles = generated_subtitles
|
|
80
77
|
@is_audio_only = is_audio_only
|
|
81
78
|
@subtitle_available = subtitle_available
|
|
79
|
+
@optimize_audio = optimize_audio
|
|
82
80
|
@aspect_ratio = aspect_ratio
|
|
83
81
|
end
|
|
84
82
|
|
|
85
83
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
86
84
|
def ==(other)
|
|
87
85
|
return false unless other.is_a? self.class
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return false unless @duration == other.duration
|
|
98
|
-
return false unless @created_at == other.created_at
|
|
99
|
-
return false unless @updated_at == other.updated_at
|
|
100
|
-
return false unless @thumbnail == other.thumbnail
|
|
101
|
-
return false unless @title == other.title
|
|
102
|
-
return false unless @max_resolution == other.max_resolution
|
|
103
|
-
return false unless @source_resolution == other.source_resolution
|
|
104
|
-
return false unless @generated_subtitles == other.generated_subtitles
|
|
105
|
-
return false unless @is_audio_only == other.is_audio_only
|
|
106
|
-
return false unless @subtitle_available == other.subtitle_available
|
|
107
|
-
return false unless @aspect_ratio == other.aspect_ratio
|
|
108
|
-
true
|
|
86
|
+
|
|
87
|
+
[@id, @workspace_id, @stream_id, @creator_id, @status,
|
|
88
|
+
@source_access, @playback_ids, @tracks, @mp4_support, @duration,
|
|
89
|
+
@created_at, @updated_at, @thumbnail, @title, @max_resolution,
|
|
90
|
+
@source_resolution, @generated_subtitles, @is_audio_only, @subtitle_available, @optimize_audio, @aspect_ratio] ==
|
|
91
|
+
[other.id, other.workspace_id, other.stream_id, other.creator_id, other.status,
|
|
92
|
+
other.source_access, other.playback_ids, other.tracks, other.mp4_support, other.duration,
|
|
93
|
+
other.created_at, other.updated_at, other.thumbnail, other.title, other.max_resolution,
|
|
94
|
+
other.source_resolution, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.optimize_audio, other.aspect_ratio]
|
|
109
95
|
end
|
|
110
96
|
end
|
|
111
97
|
end
|
|
@@ -46,6 +46,8 @@ class FastpixClient::Models::Components::LiveMediaClips
|
|
|
46
46
|
def is_audio_only=(str_); end
|
|
47
47
|
def subtitle_available(); end
|
|
48
48
|
def subtitle_available=(str_); end
|
|
49
|
+
def optimize_audio(); end
|
|
50
|
+
def optimize_audio=(str_); end
|
|
49
51
|
def aspect_ratio(); end
|
|
50
52
|
def aspect_ratio=(str_); end
|
|
51
53
|
end
|
|
@@ -7,20 +7,40 @@
|
|
|
7
7
|
module FastpixClient
|
|
8
8
|
module Models
|
|
9
9
|
module Components
|
|
10
|
-
# LiveMediaClipsMp4Support -
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
# - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
|
|
15
|
-
#
|
|
16
|
-
class LiveMediaClipsMp4Support < T::Enum
|
|
10
|
+
# LiveMediaClipsMp4Support - One MP4 rendition generated for the media when MP4 support is requested.
|
|
11
|
+
class LiveMediaClipsMp4Support
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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::LiveMediaClipsMp4Support
|
|
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,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
|
-
#
|
|
26
|
-
|
|
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,38 +92,24 @@ 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
|
|
|
101
99
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
102
100
|
def ==(other)
|
|
103
101
|
return false unless other.is_a? self.class
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
return false unless @moderation == other.moderation
|
|
116
|
-
return false unless @duration == other.duration
|
|
117
|
-
return false unless @created_at == other.created_at
|
|
118
|
-
return false unless @updated_at == other.updated_at
|
|
119
|
-
return false unless @thumbnail == other.thumbnail
|
|
120
|
-
return false unless @metadata == other.metadata
|
|
121
|
-
return false unless @title == other.title
|
|
122
|
-
return false unless @max_resolution == other.max_resolution
|
|
123
|
-
return false unless @source_resolution == other.source_resolution
|
|
124
|
-
return false unless @source_access == other.source_access
|
|
125
|
-
return false unless @generated_subtitles == other.generated_subtitles
|
|
126
|
-
return false unless @is_audio_only == other.is_audio_only
|
|
127
|
-
return false unless @subtitle_available == other.subtitle_available
|
|
128
|
-
return false unless @aspect_ratio == other.aspect_ratio
|
|
129
|
-
true
|
|
102
|
+
|
|
103
|
+
[@id, @workspace_id, @media_quality, @creator_id, @status,
|
|
104
|
+
@mp4_support, @playback_ids, @tracks, @summary, @chapters,
|
|
105
|
+
@named_entities, @moderation, @duration, @created_at, @updated_at,
|
|
106
|
+
@thumbnail, @metadata, @title, @max_resolution, @source_resolution,
|
|
107
|
+
@source_access, @generated_subtitles, @is_audio_only, @subtitle_available, @optimize_audio, @aspect_ratio] ==
|
|
108
|
+
[other.id, other.workspace_id, other.media_quality, other.creator_id, other.status,
|
|
109
|
+
other.mp4_support, other.playback_ids, other.tracks, other.summary, other.chapters,
|
|
110
|
+
other.named_entities, other.moderation, other.duration, other.created_at, other.updated_at,
|
|
111
|
+
other.thumbnail, other.metadata, other.title, other.max_resolution, other.source_resolution,
|
|
112
|
+
other.source_access, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.optimize_audio, other.aspect_ratio]
|
|
130
113
|
end
|
|
131
114
|
end
|
|
132
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 -
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
|
@@ -71,24 +71,15 @@ module FastpixClient
|
|
|
71
71
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
72
72
|
def ==(other)
|
|
73
73
|
return false unless other.is_a? self.class
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return false unless @enable_recording == other.enable_recording
|
|
84
|
-
return false unless @enable_dvr_mode == other.enable_dvr_mode
|
|
85
|
-
return false unless @media_policy == other.media_policy
|
|
86
|
-
return false unless @metadata == other.metadata
|
|
87
|
-
return false unless @low_latency == other.low_latency
|
|
88
|
-
return false unless @closed_captions == other.closed_captions
|
|
89
|
-
return false unless @playback_ids == other.playback_ids
|
|
90
|
-
return false unless @srt_playback_response == other.srt_playback_response
|
|
91
|
-
true
|
|
74
|
+
|
|
75
|
+
[@stream_id, @stream_key, @srt_secret, @trial, @status,
|
|
76
|
+
@max_resolution, @max_duration, @created_at, @reconnect_window, @enable_recording,
|
|
77
|
+
@enable_dvr_mode, @media_policy, @metadata, @low_latency, @closed_captions,
|
|
78
|
+
@playback_ids, @srt_playback_response] ==
|
|
79
|
+
[other.stream_id, other.stream_key, other.srt_secret, other.trial, other.status,
|
|
80
|
+
other.max_resolution, other.max_duration, other.created_at, other.reconnect_window, other.enable_recording,
|
|
81
|
+
other.enable_dvr_mode, other.media_policy, other.metadata, other.low_latency, other.closed_captions,
|
|
82
|
+
other.playback_ids, other.srt_playback_response]
|
|
92
83
|
end
|
|
93
84
|
end
|
|
94
85
|
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
|
-
#
|
|
26
|
-
|
|
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,38 +92,24 @@ 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
|
|
|
101
99
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
102
100
|
def ==(other)
|
|
103
101
|
return false unless other.is_a? self.class
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
return false unless @moderation == other.moderation
|
|
116
|
-
return false unless @duration == other.duration
|
|
117
|
-
return false unless @created_at == other.created_at
|
|
118
|
-
return false unless @updated_at == other.updated_at
|
|
119
|
-
return false unless @thumbnail == other.thumbnail
|
|
120
|
-
return false unless @metadata == other.metadata
|
|
121
|
-
return false unless @title == other.title
|
|
122
|
-
return false unless @max_resolution == other.max_resolution
|
|
123
|
-
return false unless @source_resolution == other.source_resolution
|
|
124
|
-
return false unless @source_access == other.source_access
|
|
125
|
-
return false unless @generated_subtitles == other.generated_subtitles
|
|
126
|
-
return false unless @is_audio_only == other.is_audio_only
|
|
127
|
-
return false unless @subtitle_available == other.subtitle_available
|
|
128
|
-
return false unless @aspect_ratio == other.aspect_ratio
|
|
129
|
-
true
|
|
102
|
+
|
|
103
|
+
[@id, @workspace_id, @media_quality, @creator_id, @status,
|
|
104
|
+
@mp4_support, @playback_ids, @tracks, @summary, @chapters,
|
|
105
|
+
@named_entities, @moderation, @duration, @created_at, @updated_at,
|
|
106
|
+
@thumbnail, @metadata, @title, @max_resolution, @source_resolution,
|
|
107
|
+
@source_access, @generated_subtitles, @is_audio_only, @subtitle_available, @optimize_audio, @aspect_ratio] ==
|
|
108
|
+
[other.id, other.workspace_id, other.media_quality, other.creator_id, other.status,
|
|
109
|
+
other.mp4_support, other.playback_ids, other.tracks, other.summary, other.chapters,
|
|
110
|
+
other.named_entities, other.moderation, other.duration, other.created_at, other.updated_at,
|
|
111
|
+
other.thumbnail, other.metadata, other.title, other.max_resolution, other.source_resolution,
|
|
112
|
+
other.source_access, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.optimize_audio, other.aspect_ratio]
|
|
130
113
|
end
|
|
131
114
|
end
|
|
132
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 -
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
|
@@ -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
|