livepeer 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/livepeer.rb +14 -12
- data/lib/sdk/asset.rb +81 -9
- data/lib/sdk/metrics.rb +12 -4
- data/lib/sdk/models/operations/addmultistreamtarget.rb +49 -0
- data/lib/sdk/models/operations/createsigningkey.rb +5 -5
- data/lib/sdk/models/operations/createstream.rb +4 -4
- data/lib/sdk/models/operations/deletewebhook.rb +1 -1
- data/lib/sdk/models/operations/get_session_id_clips.rb +4 -4
- data/lib/sdk/models/operations/get_stream_id_clips.rb +4 -4
- data/lib/sdk/models/operations/getassets.rb +4 -4
- data/lib/sdk/models/operations/getcreatormetrics.rb +4 -4
- data/lib/sdk/models/operations/getmultistreamtargets.rb +4 -4
- data/lib/sdk/models/operations/getpublictotalviewsmetrics.rb +5 -5
- data/lib/sdk/models/operations/getrecordedsessions.rb +4 -4
- data/lib/sdk/models/operations/getsessions.rb +4 -4
- data/lib/sdk/models/operations/getsigningkeys.rb +4 -4
- data/lib/sdk/models/operations/getstreams.rb +5 -5
- data/lib/sdk/models/operations/gettasks.rb +4 -4
- data/lib/sdk/models/operations/getviewershipsmetrics.rb +4 -4
- data/lib/sdk/models/operations/getwebhook.rb +1 -1
- data/lib/sdk/models/operations/getwebhooks.rb +4 -4
- data/lib/sdk/models/operations/post_clip.rb +5 -5
- data/lib/sdk/models/operations/removemultistreamtarget.rb +48 -0
- data/lib/sdk/models/operations/requestupload.rb +5 -5
- data/lib/sdk/models/operations/terminatestream.rb +45 -0
- data/lib/sdk/models/operations/{patch_asset_assetid_.rb → updateasset.rb} +2 -2
- data/lib/sdk/models/operations/updatewebhook.rb +1 -1
- data/lib/sdk/models/operations/uploadassetviaurl.rb +5 -5
- data/lib/sdk/models/shared/asset.rb +11 -17
- data/lib/sdk/models/shared/attestation.rb +5 -11
- data/lib/sdk/models/shared/encryption.rb +2 -6
- data/lib/sdk/models/shared/ffmpeg_profile.rb +6 -2
- data/lib/sdk/models/shared/ipfs_export_params.rb +5 -16
- data/lib/sdk/models/shared/multistream.rb +2 -50
- data/lib/sdk/models/shared/multistream_target.rb +3 -1
- data/lib/sdk/models/shared/new_asset_payload.rb +8 -3
- data/lib/sdk/models/shared/playback_info.rb +50 -4
- data/lib/sdk/models/shared/session.rb +3 -3
- data/lib/sdk/models/shared/stream.rb +5 -29
- data/lib/sdk/models/shared/stream_patch_payload.rb +5 -2
- data/lib/sdk/models/shared/target.rb +61 -0
- data/lib/sdk/models/shared/target_add_payload.rb +61 -0
- data/lib/sdk/models/shared/target_output.rb +35 -0
- data/lib/sdk/models/shared/task.rb +54 -231
- data/lib/sdk/models/shared/transcode_payload.rb +105 -0
- data/lib/sdk/models/shared/transcode_profile.rb +75 -0
- data/lib/sdk/multistream_target.rb +4 -1
- data/lib/sdk/sdk.rb +33 -3
- data/lib/sdk/sdkconfiguration.rb +3 -3
- data/lib/sdk/session.rb +40 -40
- data/lib/sdk/{access_control.rb → signing_key.rb} +15 -40
- data/lib/sdk/stream.rb +148 -7
- data/lib/sdk/task.rb +1 -1
- data/lib/sdk/transcode.rb +123 -1
- data/lib/sdk/webhook.rb +3 -1
- metadata +17 -15
- data/lib/sdk/models/shared/encryption_output.rb +0 -21
- data/lib/sdk/models/shared/nftmetadata.rb +0 -24
- data/lib/sdk/models/shared/nftmetadatatemplate.rb +0 -23
- data/lib/sdk/models/shared/signing_key_response_payload.rb +0 -43
- data/lib/sdk/models/shared/upload.rb +0 -34
- data/lib/sdk/models/shared/upload_output.rb +0 -34
@@ -7,8 +7,6 @@ require 'sorbet-runtime'
|
|
7
7
|
require 'faraday'
|
8
8
|
require_relative '../shared/encryption'
|
9
9
|
require_relative '../shared/ipfs_export_params'
|
10
|
-
require_relative '../shared/ffmpeg_profile'
|
11
|
-
require_relative '../shared/upload'
|
12
10
|
|
13
11
|
module Livepeer
|
14
12
|
module Shared
|
@@ -16,10 +14,8 @@ module Livepeer
|
|
16
14
|
class TaskType < T::Enum
|
17
15
|
enums do
|
18
16
|
UPLOAD = new('upload')
|
19
|
-
IMPORT = new('import')
|
20
17
|
EXPORT = new('export')
|
21
18
|
EXPORT_DATA = new('export-data')
|
22
|
-
TRANSCODE = new('transcode')
|
23
19
|
TRANSCODE_FILE = new('transcode-file')
|
24
20
|
CLIP = new('clip')
|
25
21
|
end
|
@@ -27,23 +23,21 @@ module Livepeer
|
|
27
23
|
|
28
24
|
|
29
25
|
# Parameters for the upload task
|
30
|
-
class
|
26
|
+
class Upload < Livepeer::Utils::FieldAugmented
|
31
27
|
extend T::Sig
|
32
28
|
|
29
|
+
# Decides if the output video should include C2PA signature
|
30
|
+
field :c2pa, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('c2pa') } }
|
33
31
|
|
34
|
-
field :encryption, T.nilable(Shared::
|
35
|
-
# ID of the original recorded session to avoid re-transcoding
|
36
|
-
# of the same content. Only used for import task.
|
37
|
-
#
|
38
|
-
field :recorded_session_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('recordedSessionId') } }
|
32
|
+
field :encryption, T.nilable(Shared::Encryption), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encryption') } }
|
39
33
|
# URL of the asset to "upload"
|
40
34
|
field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
|
41
35
|
|
42
36
|
|
43
|
-
sig { params(
|
44
|
-
def initialize(
|
37
|
+
sig { params(c2pa: T.nilable(T::Boolean), encryption: T.nilable(Shared::Encryption), url: T.nilable(String)).void }
|
38
|
+
def initialize(c2pa: nil, encryption: nil, url: nil)
|
39
|
+
@c2pa = c2pa
|
45
40
|
@encryption = encryption
|
46
|
-
@recorded_session_id = recorded_session_id
|
47
41
|
@url = url
|
48
42
|
end
|
49
43
|
end
|
@@ -81,20 +75,6 @@ module Livepeer
|
|
81
75
|
end
|
82
76
|
end
|
83
77
|
|
84
|
-
# Parameters for the transcode task
|
85
|
-
class Transcode < Livepeer::Utils::FieldAugmented
|
86
|
-
extend T::Sig
|
87
|
-
|
88
|
-
# LMPS ffmpeg profile
|
89
|
-
field :profile, T.nilable(Shared::FfmpegProfile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profile') } }
|
90
|
-
|
91
|
-
|
92
|
-
sig { params(profile: T.nilable(Shared::FfmpegProfile)).void }
|
93
|
-
def initialize(profile: nil)
|
94
|
-
@profile = profile
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
78
|
# Input video file to transcode
|
99
79
|
class Input < Livepeer::Utils::FieldAugmented
|
100
80
|
extend T::Sig
|
@@ -128,7 +108,7 @@ module Livepeer
|
|
128
108
|
end
|
129
109
|
|
130
110
|
# HLS output format
|
131
|
-
class
|
111
|
+
class TaskHls < Livepeer::Utils::FieldAugmented
|
132
112
|
extend T::Sig
|
133
113
|
|
134
114
|
# Path for the HLS output
|
@@ -142,7 +122,7 @@ module Livepeer
|
|
142
122
|
end
|
143
123
|
|
144
124
|
# MP4 output format
|
145
|
-
class
|
125
|
+
class TaskMp4 < Livepeer::Utils::FieldAugmented
|
146
126
|
extend T::Sig
|
147
127
|
|
148
128
|
# Path for the MP4 output
|
@@ -156,16 +136,16 @@ module Livepeer
|
|
156
136
|
end
|
157
137
|
|
158
138
|
# Output formats
|
159
|
-
class
|
139
|
+
class TaskOutputs < Livepeer::Utils::FieldAugmented
|
160
140
|
extend T::Sig
|
161
141
|
|
162
142
|
# HLS output format
|
163
|
-
field :hls, T.nilable(Shared::
|
143
|
+
field :hls, T.nilable(Shared::TaskHls), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hls') } }
|
164
144
|
# MP4 output format
|
165
|
-
field :mp4, T.nilable(Shared::
|
145
|
+
field :mp4, T.nilable(Shared::TaskMp4), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('mp4') } }
|
166
146
|
|
167
147
|
|
168
|
-
sig { params(hls: T.nilable(Shared::
|
148
|
+
sig { params(hls: T.nilable(Shared::TaskHls), mp4: T.nilable(Shared::TaskMp4)).void }
|
169
149
|
def initialize(hls: nil, mp4: nil)
|
170
150
|
@hls = hls
|
171
151
|
@mp4 = mp4
|
@@ -176,14 +156,16 @@ module Livepeer
|
|
176
156
|
class TranscodeFile < Livepeer::Utils::FieldAugmented
|
177
157
|
extend T::Sig
|
178
158
|
|
159
|
+
# Decides if the output video should include C2PA signature
|
160
|
+
field :c2pa, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('c2pa') } }
|
179
161
|
|
180
162
|
field :creator_id, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('creatorId') } }
|
181
163
|
# Input video file to transcode
|
182
164
|
field :input, T.nilable(Shared::Input), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('input') } }
|
183
165
|
# Output formats
|
184
|
-
field :outputs, T.nilable(Shared::
|
166
|
+
field :outputs, T.nilable(Shared::TaskOutputs), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputs') } }
|
185
167
|
|
186
|
-
field :profiles, T.nilable(T::Array[Shared::
|
168
|
+
field :profiles, T.nilable(T::Array[Shared::TranscodeProfile]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profiles') } }
|
187
169
|
# Storage for the output files
|
188
170
|
field :storage, T.nilable(Shared::TaskStorage), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('storage') } }
|
189
171
|
# How many seconds the duration of each output segment should
|
@@ -192,8 +174,9 @@ module Livepeer
|
|
192
174
|
field :target_segment_size_secs, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('targetSegmentSizeSecs') } }
|
193
175
|
|
194
176
|
|
195
|
-
sig { params(creator_id: T.nilable(Object), input: T.nilable(Shared::Input), outputs: T.nilable(Shared::
|
196
|
-
def initialize(creator_id: nil, input: nil, outputs: nil, profiles: nil, storage: nil, target_segment_size_secs: nil)
|
177
|
+
sig { params(c2pa: T.nilable(T::Boolean), creator_id: T.nilable(Object), input: T.nilable(Shared::Input), outputs: T.nilable(Shared::TaskOutputs), profiles: T.nilable(T::Array[Shared::TranscodeProfile]), storage: T.nilable(Shared::TaskStorage), target_segment_size_secs: T.nilable(Float)).void }
|
178
|
+
def initialize(c2pa: nil, creator_id: nil, input: nil, outputs: nil, profiles: nil, storage: nil, target_segment_size_secs: nil)
|
179
|
+
@c2pa = c2pa
|
197
180
|
@creator_id = creator_id
|
198
181
|
@input = input
|
199
182
|
@outputs = outputs
|
@@ -203,35 +186,6 @@ module Livepeer
|
|
203
186
|
end
|
204
187
|
end
|
205
188
|
|
206
|
-
# Parameters of the task
|
207
|
-
class TaskParams < Livepeer::Utils::FieldAugmented
|
208
|
-
extend T::Sig
|
209
|
-
|
210
|
-
# Parameters for the export task
|
211
|
-
field :export, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('export') } }
|
212
|
-
# Parameters for the export-data task
|
213
|
-
field :export_data, T.nilable(Shared::ExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
|
214
|
-
# Parameters for the upload task
|
215
|
-
field :import, T.nilable(Shared::UploadOutput), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('import') } }
|
216
|
-
# Parameters for the transcode task
|
217
|
-
field :transcode, T.nilable(Shared::Transcode), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode') } }
|
218
|
-
# Parameters for the transcode-file task
|
219
|
-
field :transcode_file, T.nilable(Shared::TranscodeFile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode-file') } }
|
220
|
-
# Parameters for the upload task
|
221
|
-
field :upload, T.nilable(Shared::TaskUploadOutput), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
|
222
|
-
|
223
|
-
|
224
|
-
sig { params(export: T.nilable(Object), export_data: T.nilable(Shared::ExportData), import: T.nilable(Shared::UploadOutput), transcode: T.nilable(Shared::Transcode), transcode_file: T.nilable(Shared::TranscodeFile), upload: T.nilable(Shared::TaskUploadOutput)).void }
|
225
|
-
def initialize(export: nil, export_data: nil, import: nil, transcode: nil, transcode_file: nil, upload: nil)
|
226
|
-
@export = export
|
227
|
-
@export_data = export_data
|
228
|
-
@import = import
|
229
|
-
@transcode = transcode
|
230
|
-
@transcode_file = transcode_file
|
231
|
-
@upload = upload
|
232
|
-
end
|
233
|
-
end
|
234
|
-
|
235
189
|
# Strategy to use for clipping the asset. If not specified, the default strategy that Catalyst is configured for will be used. This field only available for admin users, and is only used for E2E testing.
|
236
190
|
class ClipStrategy < Livepeer::Utils::FieldAugmented
|
237
191
|
extend T::Sig
|
@@ -291,6 +245,32 @@ module Livepeer
|
|
291
245
|
end
|
292
246
|
end
|
293
247
|
|
248
|
+
# Parameters of the task
|
249
|
+
class Params < Livepeer::Utils::FieldAugmented
|
250
|
+
extend T::Sig
|
251
|
+
|
252
|
+
|
253
|
+
field :clip, T.nilable(Shared::Clip), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('clip') } }
|
254
|
+
# Parameters for the export task
|
255
|
+
field :export, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('export') } }
|
256
|
+
# Parameters for the export-data task
|
257
|
+
field :export_data, T.nilable(Shared::ExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
|
258
|
+
# Parameters for the transcode-file task
|
259
|
+
field :transcode_file, T.nilable(Shared::TranscodeFile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode-file') } }
|
260
|
+
# Parameters for the upload task
|
261
|
+
field :upload, T.nilable(Shared::Upload), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
|
262
|
+
|
263
|
+
|
264
|
+
sig { params(clip: T.nilable(Shared::Clip), export: T.nilable(Object), export_data: T.nilable(Shared::ExportData), transcode_file: T.nilable(Shared::TranscodeFile), upload: T.nilable(Shared::Upload)).void }
|
265
|
+
def initialize(clip: nil, export: nil, export_data: nil, transcode_file: nil, upload: nil)
|
266
|
+
@clip = clip
|
267
|
+
@export = export
|
268
|
+
@export_data = export_data
|
269
|
+
@transcode_file = transcode_file
|
270
|
+
@upload = upload
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
294
274
|
# TaskPhase - Phase of the task
|
295
275
|
class TaskPhase < T::Enum
|
296
276
|
enums do
|
@@ -403,20 +383,6 @@ module Livepeer
|
|
403
383
|
end
|
404
384
|
end
|
405
385
|
|
406
|
-
|
407
|
-
class TaskTranscode < Livepeer::Utils::FieldAugmented
|
408
|
-
extend T::Sig
|
409
|
-
|
410
|
-
|
411
|
-
field :asset, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('asset') } }
|
412
|
-
|
413
|
-
|
414
|
-
sig { params(asset: T.nilable(T::Hash[Symbol, Object])).void }
|
415
|
-
def initialize(asset: nil)
|
416
|
-
@asset = asset
|
417
|
-
end
|
418
|
-
end
|
419
|
-
|
420
386
|
# Output of the task
|
421
387
|
class Output < Livepeer::Utils::FieldAugmented
|
422
388
|
extend T::Sig
|
@@ -426,19 +392,13 @@ module Livepeer
|
|
426
392
|
# Output of the export data task
|
427
393
|
field :export_data, T.nilable(Shared::TaskExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
|
428
394
|
# Output of the upload task
|
429
|
-
field :import, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('import') } }
|
430
|
-
|
431
|
-
field :transcode, T.nilable(Shared::TaskTranscode), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode') } }
|
432
|
-
# Output of the upload task
|
433
395
|
field :upload, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
|
434
396
|
|
435
397
|
|
436
|
-
sig { params(export: T.nilable(Shared::Export), export_data: T.nilable(Shared::TaskExportData),
|
437
|
-
def initialize(export: nil, export_data: nil,
|
398
|
+
sig { params(export: T.nilable(Shared::Export), export_data: T.nilable(Shared::TaskExportData), upload: T.nilable(T::Hash[Symbol, Object])).void }
|
399
|
+
def initialize(export: nil, export_data: nil, upload: nil)
|
438
400
|
@export = export
|
439
401
|
@export_data = export_data
|
440
|
-
@import = import
|
441
|
-
@transcode = transcode
|
442
402
|
@upload = upload
|
443
403
|
end
|
444
404
|
end
|
@@ -447,8 +407,6 @@ module Livepeer
|
|
447
407
|
class Task < Livepeer::Utils::FieldAugmented
|
448
408
|
extend T::Sig
|
449
409
|
|
450
|
-
|
451
|
-
field :clip, T.nilable(Shared::Clip), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('clip') } }
|
452
410
|
# Timestamp (in milliseconds) at which task was created
|
453
411
|
field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
|
454
412
|
# Task ID
|
@@ -460,7 +418,9 @@ module Livepeer
|
|
460
418
|
# ID of the output asset
|
461
419
|
field :output_asset_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputAssetId') } }
|
462
420
|
# Parameters of the task
|
463
|
-
field :params, T.nilable(Shared::
|
421
|
+
field :params, T.nilable(Shared::Params), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('params') } }
|
422
|
+
# ID of the requester hash(IP + SALT + PlaybackId)
|
423
|
+
field :requester_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('requesterId') } }
|
464
424
|
# Timestamp (in milliseconds) at which the task was scheduled for
|
465
425
|
# execution (e.g. after file upload finished).
|
466
426
|
#
|
@@ -471,156 +431,19 @@ module Livepeer
|
|
471
431
|
field :type, T.nilable(Shared::TaskType), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::TaskType, true) } }
|
472
432
|
|
473
433
|
|
474
|
-
sig { params(
|
475
|
-
def initialize(
|
476
|
-
@clip = clip
|
434
|
+
sig { params(created_at: T.nilable(Float), id: T.nilable(String), input_asset_id: T.nilable(String), output: T.nilable(Shared::Output), output_asset_id: T.nilable(String), params: T.nilable(Shared::Params), requester_id: T.nilable(String), scheduled_at: T.nilable(Float), status: T.nilable(Shared::TaskStatus), type: T.nilable(Shared::TaskType)).void }
|
435
|
+
def initialize(created_at: nil, id: nil, input_asset_id: nil, output: nil, output_asset_id: nil, params: nil, requester_id: nil, scheduled_at: nil, status: nil, type: nil)
|
477
436
|
@created_at = created_at
|
478
437
|
@id = id
|
479
438
|
@input_asset_id = input_asset_id
|
480
439
|
@output = output
|
481
440
|
@output_asset_id = output_asset_id
|
482
441
|
@params = params
|
442
|
+
@requester_id = requester_id
|
483
443
|
@scheduled_at = scheduled_at
|
484
444
|
@status = status
|
485
445
|
@type = type
|
486
446
|
end
|
487
447
|
end
|
488
|
-
|
489
|
-
# Parameters for the upload task
|
490
|
-
class TaskUpload < Livepeer::Utils::FieldAugmented
|
491
|
-
extend T::Sig
|
492
|
-
|
493
|
-
|
494
|
-
field :encryption, T.nilable(Shared::Encryption), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encryption') } }
|
495
|
-
# ID of the original recorded session to avoid re-transcoding
|
496
|
-
# of the same content. Only used for import task.
|
497
|
-
#
|
498
|
-
field :recorded_session_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('recordedSessionId') } }
|
499
|
-
# URL of the asset to "upload"
|
500
|
-
field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
|
501
|
-
|
502
|
-
|
503
|
-
sig { params(encryption: T.nilable(Shared::Encryption), recorded_session_id: T.nilable(String), url: T.nilable(String)).void }
|
504
|
-
def initialize(encryption: nil, recorded_session_id: nil, url: nil)
|
505
|
-
@encryption = encryption
|
506
|
-
@recorded_session_id = recorded_session_id
|
507
|
-
@url = url
|
508
|
-
end
|
509
|
-
end
|
510
|
-
|
511
|
-
# Parameters of the task
|
512
|
-
class Params < Livepeer::Utils::FieldAugmented
|
513
|
-
extend T::Sig
|
514
|
-
|
515
|
-
# Parameters for the export task
|
516
|
-
field :export, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('export') } }
|
517
|
-
# Parameters for the export-data task
|
518
|
-
field :export_data, T.nilable(Shared::ExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
|
519
|
-
# Parameters for the upload task
|
520
|
-
field :import, T.nilable(Shared::Upload), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('import') } }
|
521
|
-
# Parameters for the transcode task
|
522
|
-
field :transcode, T.nilable(Shared::Transcode), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode') } }
|
523
|
-
# Parameters for the transcode-file task
|
524
|
-
field :transcode_file, T.nilable(Shared::TranscodeFile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode-file') } }
|
525
|
-
# Parameters for the upload task
|
526
|
-
field :upload, T.nilable(Shared::TaskUpload), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
|
527
|
-
|
528
|
-
|
529
|
-
sig { params(export: T.nilable(Object), export_data: T.nilable(Shared::ExportData), import: T.nilable(Shared::Upload), transcode: T.nilable(Shared::Transcode), transcode_file: T.nilable(Shared::TranscodeFile), upload: T.nilable(Shared::TaskUpload)).void }
|
530
|
-
def initialize(export: nil, export_data: nil, import: nil, transcode: nil, transcode_file: nil, upload: nil)
|
531
|
-
@export = export
|
532
|
-
@export_data = export_data
|
533
|
-
@import = import
|
534
|
-
@transcode = transcode
|
535
|
-
@transcode_file = transcode_file
|
536
|
-
@upload = upload
|
537
|
-
end
|
538
|
-
end
|
539
|
-
|
540
|
-
|
541
|
-
class TaskIpfsInput < Livepeer::Utils::FieldAugmented
|
542
|
-
extend T::Sig
|
543
|
-
|
544
|
-
# IPFS CID of the exported video file
|
545
|
-
field :video_file_cid, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoFileCid') } }
|
546
|
-
# IPFS CID of the default metadata exported for the video
|
547
|
-
field :nft_metadata_cid, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('nftMetadataCid') } }
|
548
|
-
|
549
|
-
|
550
|
-
sig { params(video_file_cid: String, nft_metadata_cid: T.nilable(String)).void }
|
551
|
-
def initialize(video_file_cid: nil, nft_metadata_cid: nil)
|
552
|
-
@video_file_cid = video_file_cid
|
553
|
-
@nft_metadata_cid = nft_metadata_cid
|
554
|
-
end
|
555
|
-
end
|
556
|
-
|
557
|
-
# Output of the export task
|
558
|
-
class TaskExport < Livepeer::Utils::FieldAugmented
|
559
|
-
extend T::Sig
|
560
|
-
|
561
|
-
|
562
|
-
field :ipfs, T.nilable(Shared::TaskIpfsInput), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ipfs') } }
|
563
|
-
|
564
|
-
|
565
|
-
sig { params(ipfs: T.nilable(Shared::TaskIpfsInput)).void }
|
566
|
-
def initialize(ipfs: nil)
|
567
|
-
@ipfs = ipfs
|
568
|
-
end
|
569
|
-
end
|
570
|
-
|
571
|
-
# Output of the task
|
572
|
-
class TaskOutput < Livepeer::Utils::FieldAugmented
|
573
|
-
extend T::Sig
|
574
|
-
|
575
|
-
# Output of the export task
|
576
|
-
field :export, T.nilable(Shared::TaskExport), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('export') } }
|
577
|
-
# Output of the export data task
|
578
|
-
field :export_data, T.nilable(Shared::TaskExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
|
579
|
-
# Output of the upload task
|
580
|
-
field :import, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('import') } }
|
581
|
-
|
582
|
-
field :transcode, T.nilable(Shared::TaskTranscode), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode') } }
|
583
|
-
# Output of the upload task
|
584
|
-
field :upload, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
|
585
|
-
|
586
|
-
|
587
|
-
sig { params(export: T.nilable(Shared::TaskExport), export_data: T.nilable(Shared::TaskExportData), import: T.nilable(T::Hash[Symbol, Object]), transcode: T.nilable(Shared::TaskTranscode), upload: T.nilable(T::Hash[Symbol, Object])).void }
|
588
|
-
def initialize(export: nil, export_data: nil, import: nil, transcode: nil, upload: nil)
|
589
|
-
@export = export
|
590
|
-
@export_data = export_data
|
591
|
-
@import = import
|
592
|
-
@transcode = transcode
|
593
|
-
@upload = upload
|
594
|
-
end
|
595
|
-
end
|
596
|
-
|
597
|
-
|
598
|
-
class TaskInput < Livepeer::Utils::FieldAugmented
|
599
|
-
extend T::Sig
|
600
|
-
|
601
|
-
|
602
|
-
field :clip, T.nilable(Shared::Clip), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('clip') } }
|
603
|
-
# ID of the input asset
|
604
|
-
field :input_asset_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('inputAssetId') } }
|
605
|
-
# Output of the task
|
606
|
-
field :output, T.nilable(Shared::TaskOutput), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('output') } }
|
607
|
-
# ID of the output asset
|
608
|
-
field :output_asset_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputAssetId') } }
|
609
|
-
# Parameters of the task
|
610
|
-
field :params, T.nilable(Shared::Params), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('params') } }
|
611
|
-
# Type of the task
|
612
|
-
field :type, T.nilable(Shared::TaskType), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::TaskType, true) } }
|
613
|
-
|
614
|
-
|
615
|
-
sig { params(clip: T.nilable(Shared::Clip), input_asset_id: T.nilable(String), output: T.nilable(Shared::TaskOutput), output_asset_id: T.nilable(String), params: T.nilable(Shared::Params), type: T.nilable(Shared::TaskType)).void }
|
616
|
-
def initialize(clip: nil, input_asset_id: nil, output: nil, output_asset_id: nil, params: nil, type: nil)
|
617
|
-
@clip = clip
|
618
|
-
@input_asset_id = input_asset_id
|
619
|
-
@output = output
|
620
|
-
@output_asset_id = output_asset_id
|
621
|
-
@params = params
|
622
|
-
@type = type
|
623
|
-
end
|
624
|
-
end
|
625
448
|
end
|
626
449
|
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
2
|
+
|
3
|
+
# typed: true
|
4
|
+
# frozen_string_literal: true
|
5
|
+
|
6
|
+
require 'sorbet-runtime'
|
7
|
+
require 'faraday'
|
8
|
+
|
9
|
+
module Livepeer
|
10
|
+
module Shared
|
11
|
+
# HLS output format
|
12
|
+
class Hls < Livepeer::Utils::FieldAugmented
|
13
|
+
extend T::Sig
|
14
|
+
|
15
|
+
# Path for the HLS output
|
16
|
+
field :path, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('path') } }
|
17
|
+
|
18
|
+
|
19
|
+
sig { params(path: String).void }
|
20
|
+
def initialize(path: nil)
|
21
|
+
@path = path
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# MP4 output format
|
26
|
+
class Mp4 < Livepeer::Utils::FieldAugmented
|
27
|
+
extend T::Sig
|
28
|
+
|
29
|
+
# Path for the MP4 output
|
30
|
+
field :path, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('path') } }
|
31
|
+
|
32
|
+
|
33
|
+
sig { params(path: String).void }
|
34
|
+
def initialize(path: nil)
|
35
|
+
@path = path
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# FMP4 output format
|
40
|
+
class Fmp4 < Livepeer::Utils::FieldAugmented
|
41
|
+
extend T::Sig
|
42
|
+
|
43
|
+
# Path for the FMP4 output
|
44
|
+
field :path, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('path') } }
|
45
|
+
|
46
|
+
|
47
|
+
sig { params(path: String).void }
|
48
|
+
def initialize(path: nil)
|
49
|
+
@path = path
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
# Output formats
|
54
|
+
class Outputs < Livepeer::Utils::FieldAugmented
|
55
|
+
extend T::Sig
|
56
|
+
|
57
|
+
# FMP4 output format
|
58
|
+
field :fmp4, T.nilable(Shared::Fmp4), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('fmp4') } }
|
59
|
+
# HLS output format
|
60
|
+
field :hls, T.nilable(Shared::Hls), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hls') } }
|
61
|
+
# MP4 output format
|
62
|
+
field :mp4, T.nilable(Shared::Mp4), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('mp4') } }
|
63
|
+
|
64
|
+
|
65
|
+
sig { params(fmp4: T.nilable(Shared::Fmp4), hls: T.nilable(Shared::Hls), mp4: T.nilable(Shared::Mp4)).void }
|
66
|
+
def initialize(fmp4: nil, hls: nil, mp4: nil)
|
67
|
+
@fmp4 = fmp4
|
68
|
+
@hls = hls
|
69
|
+
@mp4 = mp4
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
class TranscodePayload < Livepeer::Utils::FieldAugmented
|
75
|
+
extend T::Sig
|
76
|
+
|
77
|
+
|
78
|
+
field :input, Object, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('input') } }
|
79
|
+
# Output formats
|
80
|
+
field :outputs, Shared::Outputs, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputs') } }
|
81
|
+
|
82
|
+
field :storage, Object, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('storage') } }
|
83
|
+
# Decides if the output video should include C2PA signature
|
84
|
+
field :c2pa, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('c2pa') } }
|
85
|
+
|
86
|
+
field :creator_id, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('creatorId') } }
|
87
|
+
|
88
|
+
field :profiles, T.nilable(T::Array[Shared::TranscodeProfile]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profiles') } }
|
89
|
+
# How many seconds the duration of each output segment should be
|
90
|
+
field :target_segment_size_secs, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('targetSegmentSizeSecs') } }
|
91
|
+
|
92
|
+
|
93
|
+
sig { params(input: Object, outputs: Shared::Outputs, storage: Object, c2pa: T.nilable(T::Boolean), creator_id: T.nilable(Object), profiles: T.nilable(T::Array[Shared::TranscodeProfile]), target_segment_size_secs: T.nilable(Float)).void }
|
94
|
+
def initialize(input: nil, outputs: nil, storage: nil, c2pa: nil, creator_id: nil, profiles: nil, target_segment_size_secs: nil)
|
95
|
+
@input = input
|
96
|
+
@outputs = outputs
|
97
|
+
@storage = storage
|
98
|
+
@c2pa = c2pa
|
99
|
+
@creator_id = creator_id
|
100
|
+
@profiles = profiles
|
101
|
+
@target_segment_size_secs = target_segment_size_secs
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
2
|
+
|
3
|
+
# typed: true
|
4
|
+
# frozen_string_literal: true
|
5
|
+
|
6
|
+
require 'sorbet-runtime'
|
7
|
+
require 'faraday'
|
8
|
+
|
9
|
+
module Livepeer
|
10
|
+
module Shared
|
11
|
+
|
12
|
+
class TranscodeProfileProfile < T::Enum
|
13
|
+
enums do
|
14
|
+
H264_BASELINE = new('H264Baseline')
|
15
|
+
H264_MAIN = new('H264Main')
|
16
|
+
H264_HIGH = new('H264High')
|
17
|
+
H264_CONSTRAINED_HIGH = new('H264ConstrainedHigh')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
class TranscodeProfileEncoder < T::Enum
|
24
|
+
enums do
|
25
|
+
H264 = new('h264')
|
26
|
+
HEVC = new('hevc')
|
27
|
+
VP8 = new('vp8')
|
28
|
+
VP9 = new('vp9')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
# Transcode API profile
|
34
|
+
class TranscodeProfile < Livepeer::Utils::FieldAugmented
|
35
|
+
extend T::Sig
|
36
|
+
|
37
|
+
|
38
|
+
field :bitrate, Integer, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('bitrate') } }
|
39
|
+
|
40
|
+
field :encoder, T.nilable(Shared::TranscodeProfileEncoder), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encoder'), 'decoder': Utils.enum_from_string(Shared::TranscodeProfileEncoder, true) } }
|
41
|
+
|
42
|
+
field :fps, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('fps') } }
|
43
|
+
|
44
|
+
field :fps_den, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('fpsDen') } }
|
45
|
+
|
46
|
+
field :gop, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('gop') } }
|
47
|
+
|
48
|
+
field :height, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('height') } }
|
49
|
+
|
50
|
+
field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
|
51
|
+
|
52
|
+
field :profile, T.nilable(Shared::TranscodeProfileProfile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profile'), 'decoder': Utils.enum_from_string(Shared::TranscodeProfileProfile, true) } }
|
53
|
+
# Restricts the size of the output video using the constant quality feature. Increasing this value will result in a lower quality video. Note that this parameter might not work if the transcoder lacks support for it.
|
54
|
+
#
|
55
|
+
field :quality, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('quality') } }
|
56
|
+
|
57
|
+
field :width, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('width') } }
|
58
|
+
|
59
|
+
|
60
|
+
sig { params(bitrate: Integer, encoder: T.nilable(Shared::TranscodeProfileEncoder), fps: T.nilable(Integer), fps_den: T.nilable(Integer), gop: T.nilable(String), height: T.nilable(Integer), name: T.nilable(String), profile: T.nilable(Shared::TranscodeProfileProfile), quality: T.nilable(Integer), width: T.nilable(Integer)).void }
|
61
|
+
def initialize(bitrate: nil, encoder: nil, fps: nil, fps_den: nil, gop: nil, height: nil, name: nil, profile: nil, quality: nil, width: nil)
|
62
|
+
@bitrate = bitrate
|
63
|
+
@encoder = encoder
|
64
|
+
@fps = fps
|
65
|
+
@fps_den = fps_den
|
66
|
+
@gop = gop
|
67
|
+
@height = height
|
68
|
+
@name = name
|
69
|
+
@profile = profile
|
70
|
+
@quality = quality
|
71
|
+
@width = width
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -40,7 +40,7 @@ module Livepeer
|
|
40
40
|
if r.status == 200
|
41
41
|
if Utils.match_content_type(content_type, 'application/json')
|
42
42
|
out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::MultistreamTarget])
|
43
|
-
res.
|
43
|
+
res.classes = out
|
44
44
|
end
|
45
45
|
end
|
46
46
|
res
|
@@ -88,6 +88,9 @@ module Livepeer
|
|
88
88
|
sig { params(id: String).returns(Utils::FieldAugmented) }
|
89
89
|
def delete(id)
|
90
90
|
# delete - Delete a multistream target
|
91
|
+
# Make sure to remove any references to the target on existing
|
92
|
+
# streams before actually deleting it from the API.
|
93
|
+
#
|
91
94
|
request = Operations::DeleteMultistreamTargetRequest.new(
|
92
95
|
|
93
96
|
id: id
|