@shotstack/schemas 1.0.1
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.
- package/README.md +39 -0
- package/dist/api.bundled.json +5508 -0
- package/dist/index.d.ts +1 -0
- package/dist/schema.d.ts +4240 -0
- package/package.json +50 -0
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,4240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated by openapi-typescript.
|
|
3
|
+
* Do not make direct changes to the file.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export interface paths {
|
|
7
|
+
"/render": {
|
|
8
|
+
parameters: {
|
|
9
|
+
query?: never;
|
|
10
|
+
header?: never;
|
|
11
|
+
path?: never;
|
|
12
|
+
cookie?: never;
|
|
13
|
+
};
|
|
14
|
+
get?: never;
|
|
15
|
+
put?: never;
|
|
16
|
+
/**
|
|
17
|
+
* Render Asset
|
|
18
|
+
* @description Queue and render the contents of an [Edit](#tocs_edit) as a video, image or audio file.
|
|
19
|
+
*
|
|
20
|
+
* **Rendering Process:**
|
|
21
|
+
* 1. **Validation**: The edit JSON is validated
|
|
22
|
+
* 2. **Download**: All assets are downloaded and cached
|
|
23
|
+
* 3. **Preprocessing**: Video assets are automatically processed to fix compatibility issues
|
|
24
|
+
* 4. **Rendering**: The timeline is rendered using the processed assets
|
|
25
|
+
* 5. **Output**: The final media file is generated and stored
|
|
26
|
+
*
|
|
27
|
+
* **Video Preprocessing:**
|
|
28
|
+
* Video assets undergo automatic preprocessing to ensure compatibility. You can force
|
|
29
|
+
* preprocessing by setting `"transcode": true` on video assets. See [Preprocessing](#preprocessing)
|
|
30
|
+
* for more details.
|
|
31
|
+
*
|
|
32
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/edit/{version}</a>
|
|
33
|
+
*/
|
|
34
|
+
post: operations["postRender"];
|
|
35
|
+
delete?: never;
|
|
36
|
+
options?: never;
|
|
37
|
+
head?: never;
|
|
38
|
+
patch?: never;
|
|
39
|
+
trace?: never;
|
|
40
|
+
};
|
|
41
|
+
"/render/{id}": {
|
|
42
|
+
parameters: {
|
|
43
|
+
query?: {
|
|
44
|
+
/**
|
|
45
|
+
* @description Include the data parameter in the response. The data parameter includes the original timeline, output and other settings sent to the API.<br><br><b>Note:</b> the default is currently `true`, this is deprecated and the default will soon be `false`. If you rely on the data being returned in the response you should explicitly set the parameter to `true`.
|
|
46
|
+
* @example false
|
|
47
|
+
*/
|
|
48
|
+
data?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* @description Used when data is set to true, it will show the [merge fields](#tocs_mergefield) merged in to the data response.
|
|
51
|
+
* @example false
|
|
52
|
+
*/
|
|
53
|
+
merged?: boolean;
|
|
54
|
+
};
|
|
55
|
+
header?: never;
|
|
56
|
+
path: {
|
|
57
|
+
/** @description The id of the timeline render task in UUID format */
|
|
58
|
+
id: string;
|
|
59
|
+
};
|
|
60
|
+
cookie?: never;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Get Render Status
|
|
64
|
+
* @description Get the rendering status, temporary asset url and details of a render by ID.
|
|
65
|
+
*
|
|
66
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/edit/{version}</a>
|
|
67
|
+
*/
|
|
68
|
+
get: operations["getRender"];
|
|
69
|
+
put?: never;
|
|
70
|
+
post?: never;
|
|
71
|
+
delete?: never;
|
|
72
|
+
options?: never;
|
|
73
|
+
head?: never;
|
|
74
|
+
patch?: never;
|
|
75
|
+
trace?: never;
|
|
76
|
+
};
|
|
77
|
+
"/templates": {
|
|
78
|
+
parameters: {
|
|
79
|
+
query?: never;
|
|
80
|
+
header?: never;
|
|
81
|
+
path?: never;
|
|
82
|
+
cookie?: never;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* List Templates
|
|
86
|
+
* @description Retrieve a list of templates stored against a users account and stage.
|
|
87
|
+
*
|
|
88
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/edit/{version}</a>
|
|
89
|
+
*/
|
|
90
|
+
get: operations["getTemplates"];
|
|
91
|
+
put?: never;
|
|
92
|
+
/**
|
|
93
|
+
* Create Template
|
|
94
|
+
* @description Save an [Edit](#tocs_edit) as a re-usable template. Templates can be retrieved and modified in your application
|
|
95
|
+
* before being rendered. [Merge fields](#tocs_mergefield) can be also used to merge data in to a template and
|
|
96
|
+
* [render](#render-template) it in a single request.
|
|
97
|
+
*
|
|
98
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/edit/{version}</a>
|
|
99
|
+
*/
|
|
100
|
+
post: operations["postTemplate"];
|
|
101
|
+
delete?: never;
|
|
102
|
+
options?: never;
|
|
103
|
+
head?: never;
|
|
104
|
+
patch?: never;
|
|
105
|
+
trace?: never;
|
|
106
|
+
};
|
|
107
|
+
"/templates/{id}": {
|
|
108
|
+
parameters: {
|
|
109
|
+
query?: never;
|
|
110
|
+
header?: never;
|
|
111
|
+
path: {
|
|
112
|
+
/** @description The id of the template in UUID format */
|
|
113
|
+
id: string;
|
|
114
|
+
};
|
|
115
|
+
cookie?: never;
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Retrieve Template
|
|
119
|
+
* @description Retrieve a template by template id.
|
|
120
|
+
*
|
|
121
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/edit/{version}</a>
|
|
122
|
+
*/
|
|
123
|
+
get: operations["getTemplate"];
|
|
124
|
+
/**
|
|
125
|
+
* Update Template
|
|
126
|
+
* @description Update an existing template by template id.
|
|
127
|
+
*
|
|
128
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/edit/{version}</a>
|
|
129
|
+
*/
|
|
130
|
+
put: operations["putTemplate"];
|
|
131
|
+
post?: never;
|
|
132
|
+
/**
|
|
133
|
+
* Delete Template
|
|
134
|
+
* @description Delete a template by its template id.
|
|
135
|
+
*
|
|
136
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/edit/{version}</a>
|
|
137
|
+
*/
|
|
138
|
+
delete: operations["deleteTemplate"];
|
|
139
|
+
options?: never;
|
|
140
|
+
head?: never;
|
|
141
|
+
patch?: never;
|
|
142
|
+
trace?: never;
|
|
143
|
+
};
|
|
144
|
+
"/templates/render": {
|
|
145
|
+
parameters: {
|
|
146
|
+
query?: never;
|
|
147
|
+
header?: never;
|
|
148
|
+
path?: never;
|
|
149
|
+
cookie?: never;
|
|
150
|
+
};
|
|
151
|
+
get?: never;
|
|
152
|
+
put?: never;
|
|
153
|
+
/**
|
|
154
|
+
* Render Template
|
|
155
|
+
* @description Render an asset from a template id and optional merge fields. Merge fields can be used to replace placeholder
|
|
156
|
+
* variables within the [Edit](#tocs_edit).
|
|
157
|
+
*
|
|
158
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/edit/{version}</a>
|
|
159
|
+
*/
|
|
160
|
+
post: operations["postTemplateRender"];
|
|
161
|
+
delete?: never;
|
|
162
|
+
options?: never;
|
|
163
|
+
head?: never;
|
|
164
|
+
patch?: never;
|
|
165
|
+
trace?: never;
|
|
166
|
+
};
|
|
167
|
+
"/probe/{url}": {
|
|
168
|
+
parameters: {
|
|
169
|
+
query?: never;
|
|
170
|
+
header?: never;
|
|
171
|
+
path: {
|
|
172
|
+
/** @description The URL of the media to inspect, must be **URL encoded**. */
|
|
173
|
+
url: string;
|
|
174
|
+
};
|
|
175
|
+
cookie?: never;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Inspect Media
|
|
179
|
+
* @description Inspects any media asset (image, video, audio) on the internet using a hosted version
|
|
180
|
+
* of [FFprobe](https://ffmpeg.org/ffprobe.html). The probe endpoint returns useful information
|
|
181
|
+
* about an asset such as width, height, duration, rotation, framerate, etc...
|
|
182
|
+
*
|
|
183
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/edit/{version}</a>
|
|
184
|
+
*/
|
|
185
|
+
get: operations["probe"];
|
|
186
|
+
put?: never;
|
|
187
|
+
post?: never;
|
|
188
|
+
delete?: never;
|
|
189
|
+
options?: never;
|
|
190
|
+
head?: never;
|
|
191
|
+
patch?: never;
|
|
192
|
+
trace?: never;
|
|
193
|
+
};
|
|
194
|
+
"/assets/{id}": {
|
|
195
|
+
parameters: {
|
|
196
|
+
query?: never;
|
|
197
|
+
header?: never;
|
|
198
|
+
path: {
|
|
199
|
+
/** @description The id of the asset in UUID format */
|
|
200
|
+
id: string;
|
|
201
|
+
};
|
|
202
|
+
cookie?: never;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Get Asset
|
|
206
|
+
* @description The Serve API is used to interact with, and delete hosted assets including videos, images, audio files,
|
|
207
|
+
* thumbnails and poster images. Use this endpoint to fetch an asset by asset id. Note that an asset id is unique
|
|
208
|
+
* for each asset and different from the render id.
|
|
209
|
+
*
|
|
210
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/serve/{version}</a>
|
|
211
|
+
*/
|
|
212
|
+
get: operations["getAsset"];
|
|
213
|
+
put?: never;
|
|
214
|
+
post?: never;
|
|
215
|
+
/**
|
|
216
|
+
* Delete Asset
|
|
217
|
+
* @description Delete an asset by its asset id. If a render creates multiple assets, such as thumbnail and poster images,
|
|
218
|
+
* each asset must be deleted individually by the asset id.
|
|
219
|
+
*
|
|
220
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/serve/{version}</a>
|
|
221
|
+
*/
|
|
222
|
+
delete: operations["deleteAsset"];
|
|
223
|
+
options?: never;
|
|
224
|
+
head?: never;
|
|
225
|
+
patch?: never;
|
|
226
|
+
trace?: never;
|
|
227
|
+
};
|
|
228
|
+
"/assets/render/{id}": {
|
|
229
|
+
parameters: {
|
|
230
|
+
query?: never;
|
|
231
|
+
header?: never;
|
|
232
|
+
path: {
|
|
233
|
+
/** @description The render id associated with the asset in UUID format */
|
|
234
|
+
id: string;
|
|
235
|
+
};
|
|
236
|
+
cookie?: never;
|
|
237
|
+
};
|
|
238
|
+
/**
|
|
239
|
+
* Get Asset by Render ID
|
|
240
|
+
* @description A render may generate more than one file, such as a video, thumbnail and poster image. When the assets are
|
|
241
|
+
* created the only known id is the render id returned by the original [render request](#render-video), status
|
|
242
|
+
* request or webhook. This endpoint lets you look up one or more assets by the render id.
|
|
243
|
+
*
|
|
244
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/serve/{version}</a>
|
|
245
|
+
*/
|
|
246
|
+
get: operations["getAssetByRenderId"];
|
|
247
|
+
put?: never;
|
|
248
|
+
post?: never;
|
|
249
|
+
delete?: never;
|
|
250
|
+
options?: never;
|
|
251
|
+
head?: never;
|
|
252
|
+
patch?: never;
|
|
253
|
+
trace?: never;
|
|
254
|
+
};
|
|
255
|
+
"/assets": {
|
|
256
|
+
parameters: {
|
|
257
|
+
query?: never;
|
|
258
|
+
header?: never;
|
|
259
|
+
path?: never;
|
|
260
|
+
cookie?: never;
|
|
261
|
+
};
|
|
262
|
+
get?: never;
|
|
263
|
+
put?: never;
|
|
264
|
+
/**
|
|
265
|
+
* Transfer Asset
|
|
266
|
+
* @description Transfer a file from any publicly available URL to one or more Serve API
|
|
267
|
+
* [destinations](#tocs_destinations).
|
|
268
|
+
*
|
|
269
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/serve/{version}</a>
|
|
270
|
+
*/
|
|
271
|
+
post: operations["postServeAsset"];
|
|
272
|
+
delete?: never;
|
|
273
|
+
options?: never;
|
|
274
|
+
head?: never;
|
|
275
|
+
patch?: never;
|
|
276
|
+
trace?: never;
|
|
277
|
+
};
|
|
278
|
+
"/sources": {
|
|
279
|
+
parameters: {
|
|
280
|
+
query?: never;
|
|
281
|
+
header?: never;
|
|
282
|
+
path?: never;
|
|
283
|
+
cookie?: never;
|
|
284
|
+
};
|
|
285
|
+
/**
|
|
286
|
+
* List Sources
|
|
287
|
+
* @description Retrieve a list of ingested source files stored against a users account and stage.
|
|
288
|
+
*
|
|
289
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/ingest/{version}</a>
|
|
290
|
+
*/
|
|
291
|
+
get: operations["getSources"];
|
|
292
|
+
put?: never;
|
|
293
|
+
/**
|
|
294
|
+
* Fetch Source
|
|
295
|
+
* @description Queue a source file to be fetched from a URL and stored by Shotstack. Source files can be videos, images, audio
|
|
296
|
+
* files and fonts. Once ingested, new [output renditions](#tocs_outputs) can be created from the source file.
|
|
297
|
+
*
|
|
298
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/ingest/{version}</a>
|
|
299
|
+
*/
|
|
300
|
+
post: operations["postSource"];
|
|
301
|
+
delete?: never;
|
|
302
|
+
options?: never;
|
|
303
|
+
head?: never;
|
|
304
|
+
patch?: never;
|
|
305
|
+
trace?: never;
|
|
306
|
+
};
|
|
307
|
+
"/sources/{id}": {
|
|
308
|
+
parameters: {
|
|
309
|
+
query?: never;
|
|
310
|
+
header?: never;
|
|
311
|
+
path: {
|
|
312
|
+
/** @description The id of the source file in [KSUID](https://github.com/segmentio/ksuid#what-is-a-ksuid) format. */
|
|
313
|
+
id: string;
|
|
314
|
+
};
|
|
315
|
+
cookie?: never;
|
|
316
|
+
};
|
|
317
|
+
/**
|
|
318
|
+
* Get Source
|
|
319
|
+
* @description Fetch a source file details and status by its id.
|
|
320
|
+
*
|
|
321
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/ingest/{version}</a>
|
|
322
|
+
*/
|
|
323
|
+
get: operations["getSource"];
|
|
324
|
+
put?: never;
|
|
325
|
+
post?: never;
|
|
326
|
+
/**
|
|
327
|
+
* Delete Source
|
|
328
|
+
* @description Delete an ingested source file by its id.
|
|
329
|
+
*
|
|
330
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/ingest/{version}</a>
|
|
331
|
+
*/
|
|
332
|
+
delete: operations["deleteSource"];
|
|
333
|
+
options?: never;
|
|
334
|
+
head?: never;
|
|
335
|
+
patch?: never;
|
|
336
|
+
trace?: never;
|
|
337
|
+
};
|
|
338
|
+
"/upload": {
|
|
339
|
+
parameters: {
|
|
340
|
+
query?: never;
|
|
341
|
+
header?: never;
|
|
342
|
+
path?: never;
|
|
343
|
+
cookie?: never;
|
|
344
|
+
};
|
|
345
|
+
get?: never;
|
|
346
|
+
put?: never;
|
|
347
|
+
/**
|
|
348
|
+
* Direct Upload
|
|
349
|
+
* @description Request a signed URL to upload a file to. The response returns a signed URL that you use to upload the file to.
|
|
350
|
+
* The signed URL looks similar to:
|
|
351
|
+
*
|
|
352
|
+
* https://shotstack-ingest-api-stage-sources.s3.ap-southeast-2.amazonaws.com/5ca6hu7s9k/zzytey4v-32km-kq1z-aftr-3kcuqi0brad2/source?AWSAccessKeyId=ASIAWJV7UWDMGTZLHTXP&Expires=1677209777&Signature=PKR4dGDDdOuMTAQmDASzLGmLOeo%3D&x-amz-acl=public-read&x-amz-security-token=IQoJb3JpZ2luX2VjEGMaDmFwLX......56osBGByztm7WZdbmXzO09KR
|
|
353
|
+
*
|
|
354
|
+
* In a separate API call, use this signed URL to send a PUT request with the binary file. Using cURL you can use
|
|
355
|
+
* a command like:
|
|
356
|
+
*
|
|
357
|
+
* `curl -X PUT -T video.mp4 {data.attributes.url}`
|
|
358
|
+
*
|
|
359
|
+
* Where **video.mp4** is the file you want to upload and **{data.attributes.url}** is the signed URL returned in
|
|
360
|
+
* the response. The request must be a PUT type.
|
|
361
|
+
*
|
|
362
|
+
* The SDK does not currently support the PUT request. You can use the SDK to make the request for the signed URL
|
|
363
|
+
* and then use cURL to make the PUT request.
|
|
364
|
+
*
|
|
365
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/ingest/{version}</a>
|
|
366
|
+
*/
|
|
367
|
+
post: operations["getUploadSignedUrl"];
|
|
368
|
+
delete?: never;
|
|
369
|
+
options?: never;
|
|
370
|
+
head?: never;
|
|
371
|
+
patch?: never;
|
|
372
|
+
trace?: never;
|
|
373
|
+
};
|
|
374
|
+
"/path_alias_createassets": {
|
|
375
|
+
parameters: {
|
|
376
|
+
query?: never;
|
|
377
|
+
header?: never;
|
|
378
|
+
path?: never;
|
|
379
|
+
cookie?: never;
|
|
380
|
+
};
|
|
381
|
+
get?: never;
|
|
382
|
+
put?: never;
|
|
383
|
+
/**
|
|
384
|
+
* Generate Asset
|
|
385
|
+
* @description Generate an asset using a Shotstack or third party provider. Chose the provider, type of asset and provide prompts,
|
|
386
|
+
* inputs and options to generate the asset. Once generated the asset can be used with the [Edit](#tocs_edit) API or
|
|
387
|
+
* downloaded.
|
|
388
|
+
*
|
|
389
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/create/{version}</a>
|
|
390
|
+
*/
|
|
391
|
+
post: operations["postGenerateAsset"];
|
|
392
|
+
delete?: never;
|
|
393
|
+
options?: never;
|
|
394
|
+
head?: never;
|
|
395
|
+
patch?: never;
|
|
396
|
+
trace?: never;
|
|
397
|
+
};
|
|
398
|
+
"/path_alias_createassets/{id}": {
|
|
399
|
+
parameters: {
|
|
400
|
+
query?: never;
|
|
401
|
+
header?: never;
|
|
402
|
+
path: {
|
|
403
|
+
/** @description The id of the source file in [KSUID](https://github.com/segmentio/ksuid#what-is-a-ksuid) format. */
|
|
404
|
+
id: string;
|
|
405
|
+
};
|
|
406
|
+
cookie?: never;
|
|
407
|
+
};
|
|
408
|
+
/**
|
|
409
|
+
* Get Generated Asset
|
|
410
|
+
* @description Get the generated assets status, url and details by ID.
|
|
411
|
+
*
|
|
412
|
+
* **Base URL:** <a href="#">https://api.shotstack.io/create/{version}</a>
|
|
413
|
+
*/
|
|
414
|
+
get: operations["getGeneratedAsset"];
|
|
415
|
+
put?: never;
|
|
416
|
+
post?: never;
|
|
417
|
+
delete?: never;
|
|
418
|
+
options?: never;
|
|
419
|
+
head?: never;
|
|
420
|
+
patch?: never;
|
|
421
|
+
trace?: never;
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
export type webhooks = Record<string, never>;
|
|
425
|
+
export interface components {
|
|
426
|
+
schemas: {
|
|
427
|
+
/** @description An edit defines the arrangement of a video on a timeline, an audio edit or an image design and the output format. Video assets are automatically preprocessed to fix common compatibility issues before rendering. You can control preprocessing behavior using the `transcode` flag on video assets. */
|
|
428
|
+
Edit: {
|
|
429
|
+
timeline: components["schemas"]["Timeline"];
|
|
430
|
+
output: components["schemas"]["Output"];
|
|
431
|
+
/** @description An array of key/value pairs that provides an easy way to create templates with placeholders. The placeholders can be used to find and replace keys with values. For example you can search for the placeholder `{{NAME}}` and replace it with the value `Jane`. */
|
|
432
|
+
merge?: components["schemas"]["MergeField"][];
|
|
433
|
+
/**
|
|
434
|
+
* @description An optional webhook callback URL used to receive status notifications when a render completes or fails. Notifications are also sent when a rendered video is sent to an output [destination](https://shotstack.io/docs/guide/serving-assets/destinations/).
|
|
435
|
+
* See [webhooks](https://shotstack.io/docs/guide/architecting-an-application/webhooks/) for more details.
|
|
436
|
+
* @example https://my-server.com/callback.php
|
|
437
|
+
*/
|
|
438
|
+
callback?: string;
|
|
439
|
+
/**
|
|
440
|
+
* @deprecated
|
|
441
|
+
* @description **Notice: This option is now deprecated and will be removed. Disk types are handled automatically. Setting a disk type has no effect.**
|
|
442
|
+
*
|
|
443
|
+
* The disk type to use for storing footage and assets for each render. See [disk types](https://shotstack.io/docs/guide/architecting-an-application/disk-types/) for more details.
|
|
444
|
+
* <ul>
|
|
445
|
+
* <li>`local` - optimized for high speed rendering with up to 512MB storage</li>
|
|
446
|
+
* <li>`mount` - optimized for larger file sizes and longer videos with 5GB for source footage and 512MB for output render</li>
|
|
447
|
+
* </ul>
|
|
448
|
+
* @enum {string}
|
|
449
|
+
*/
|
|
450
|
+
disk?: "local" | "mount";
|
|
451
|
+
};
|
|
452
|
+
/** @description A timeline represents the contents of a video edit over time, an audio edit over time, in seconds, or an image layout. A timeline consists of layers called tracks. Tracks are composed of titles, images, audio, html or video segments referred to as clips which are placed along the track at specific starting point and lasting for a specific amount of time. */
|
|
453
|
+
Timeline: {
|
|
454
|
+
/** @description A music or audio soundtrack file in mp3 format. */
|
|
455
|
+
soundtrack?: components["schemas"]["Soundtrack"];
|
|
456
|
+
/** @description A hexadecimal value for the timeline background colour. Defaults to #000000 (black). */
|
|
457
|
+
background?: string;
|
|
458
|
+
/** @description An array of custom fonts to be downloaded for use by the HTML assets. */
|
|
459
|
+
fonts?: components["schemas"]["Font"][];
|
|
460
|
+
/** @description A timeline consists of an array of tracks, each track containing clips. Tracks are layered on top of each other in the same order they are added to the array with the top most track layered over the top of those below it. Ensure that a track containing titles is the top most track so that it is displayed above videos and images. */
|
|
461
|
+
tracks: components["schemas"]["Track"][];
|
|
462
|
+
/** @description Disable the caching of ingested source footage and assets. See [caching](https://shotstack.io/docs/guide/architecting-an-application/caching/) for more details. */
|
|
463
|
+
cache?: boolean;
|
|
464
|
+
};
|
|
465
|
+
/** @description A music or audio file in mp3 format that plays for the duration of the rendered video or the length of the audio file, which ever is shortest. */
|
|
466
|
+
Soundtrack: {
|
|
467
|
+
/**
|
|
468
|
+
* @description The URL of the mp3 audio file. The URL must be publicly accessible or include credentials.
|
|
469
|
+
* @example https://s3-ap-northeast-1.amazonaws.com/my-bucket/music.mp3
|
|
470
|
+
*/
|
|
471
|
+
src: string;
|
|
472
|
+
/**
|
|
473
|
+
* @description The effect to apply to the audio file <ul>
|
|
474
|
+
* <li>`fadeIn` - fade volume in only</li>
|
|
475
|
+
* <li>`fadeOut` - fade volume out only</li>
|
|
476
|
+
* <li>`fadeInFadeOut` - fade volume in and out</li>
|
|
477
|
+
* </ul>
|
|
478
|
+
* @enum {string}
|
|
479
|
+
*/
|
|
480
|
+
effect?: "fadeIn" | "fadeOut" | "fadeInFadeOut";
|
|
481
|
+
/** @description Set the volume for the soundtrack between 0 and 1 where 0 is muted and 1 is full volume (defaults to 1). */
|
|
482
|
+
volume?: number;
|
|
483
|
+
};
|
|
484
|
+
/** @description Download a custom font to use with the HTML asset type, using the font name in the CSS or font tag. See our [custom fonts](https://shotstack.io/learn/html-custom-fonts/) getting started guide for more details. */
|
|
485
|
+
Font: {
|
|
486
|
+
/**
|
|
487
|
+
* @description The URL of the font file. The URL must be publicly accessible or include credentials.
|
|
488
|
+
* @example https://s3-ap-northeast-1.amazonaws.com/my-bucket/open-sans.ttf
|
|
489
|
+
*/
|
|
490
|
+
src: string;
|
|
491
|
+
};
|
|
492
|
+
/** @description A track contains an array of clips. Tracks are layered on top of each other in the order in the array. The top most track will render on top of those below it. */
|
|
493
|
+
Track: {
|
|
494
|
+
/** @description An array of Clips comprising of TitleClip, ImageClip or VideoClip. */
|
|
495
|
+
clips: components["schemas"]["Clip"][];
|
|
496
|
+
};
|
|
497
|
+
/** @description A clip is a container for a specific type of asset, i.e. a title, image, video, audio or html. You use a Clip to define when an asset will display on the timeline, how long it will play for and transitions, filters and effects to apply to it. */
|
|
498
|
+
Clip: {
|
|
499
|
+
asset: components["schemas"]["Asset"];
|
|
500
|
+
/** @description The start position of the Clip on the timeline. */
|
|
501
|
+
start: number | "auto";
|
|
502
|
+
/** @description The duration the Clip should play for. */
|
|
503
|
+
length: number | ("auto" | "end");
|
|
504
|
+
/**
|
|
505
|
+
* @description Set how the asset should be scaled to fit the viewport using one of the following options:
|
|
506
|
+
* <ul>
|
|
507
|
+
* <li>`crop` <b>(default)</b> - scale the asset to fill the viewport while maintaining the aspect ratio. The asset will be cropped if it exceeds the bounds of the viewport.</li>
|
|
508
|
+
* <li>`cover` - stretch the asset to fill the viewport without maintaining the aspect ratio.</li>
|
|
509
|
+
* <li>`contain` - fit the entire asset within the viewport while maintaining the original aspect ratio.</li>
|
|
510
|
+
* <li>`none` - preserves the original asset dimensions and does not apply any scaling.</li>
|
|
511
|
+
* </ul>
|
|
512
|
+
* @enum {string}
|
|
513
|
+
*/
|
|
514
|
+
fit?: "cover" | "contain" | "crop" | "none";
|
|
515
|
+
/**
|
|
516
|
+
* @description Scale the asset to a fraction of the viewport size - i.e. setting the scale to 0.5 will scale asset to half the size of the viewport. This is useful for picture-in-picture video and scaling images such as logos and watermarks.
|
|
517
|
+
* @example 0
|
|
518
|
+
*/
|
|
519
|
+
scale?: number;
|
|
520
|
+
/**
|
|
521
|
+
* @description Place the asset in one of nine predefined positions of the viewport. This is most effective for when the asset is scaled and you want to position the element to a specific position. <ul>
|
|
522
|
+
* <li>`top` - top (center)</li>
|
|
523
|
+
* <li>`topRight` - top right</li>
|
|
524
|
+
* <li>`right` - right (center)</li>
|
|
525
|
+
* <li>`bottomRight` - bottom right</li>
|
|
526
|
+
* <li>`bottom` - bottom (center)</li>
|
|
527
|
+
* <li>`bottomLeft` - bottom left</li>
|
|
528
|
+
* <li>`left` - left (center)</li>
|
|
529
|
+
* <li>`topLeft` - top left</li>
|
|
530
|
+
* <li>`center` - center</li>
|
|
531
|
+
* </ul>
|
|
532
|
+
* @enum {string}
|
|
533
|
+
*/
|
|
534
|
+
position?: "top" | "topRight" | "right" | "bottomRight" | "bottom" | "bottomLeft" | "left" | "topLeft" | "center";
|
|
535
|
+
/** @description Offset the location of the asset relative to its position on the viewport. The offset distance is relative to the width of the viewport - for example an x offset of 0.5 will move the asset half the viewport width to the right. */
|
|
536
|
+
offset?: components["schemas"]["Offset"];
|
|
537
|
+
transition?: components["schemas"]["Transition"];
|
|
538
|
+
/**
|
|
539
|
+
* @description A motion effect to apply to the Clip. <ul>
|
|
540
|
+
* <li>`zoomIn` - slow zoom in</li>
|
|
541
|
+
* <li>`zoomOut` - slow zoom out</li>
|
|
542
|
+
* <li>`slideLeft` - slow slide (pan) left</li>
|
|
543
|
+
* <li>`slideRight` - slow slide (pan) right</li>
|
|
544
|
+
* <li>`slideUp` - slow slide (pan) up</li>
|
|
545
|
+
* <li>`slideDown` - slow slide (pan) down</li>
|
|
546
|
+
* </ul> The motion effect speed can also be controlled by appending `Fast` or `Slow` to the effect, e.g. `zoomInFast` or `slideRightSlow`.
|
|
547
|
+
* @enum {string}
|
|
548
|
+
*/
|
|
549
|
+
effect?: "zoomIn" | "zoomInSlow" | "zoomInFast" | "zoomOut" | "zoomOutSlow" | "zoomOutFast" | "slideLeft" | "slideLeftSlow" | "slideLeftFast" | "slideRight" | "slideRightSlow" | "slideRightFast" | "slideUp" | "slideUpSlow" | "slideUpFast" | "slideDown" | "slideDownSlow" | "slideDownFast";
|
|
550
|
+
/**
|
|
551
|
+
* @description A filter effect to apply to the Clip. <ul>
|
|
552
|
+
* <li>`blur` - blur the scene</li>
|
|
553
|
+
* <li>`boost` - boost contrast and saturation</li>
|
|
554
|
+
* <li>`contrast` - increase contrast</li>
|
|
555
|
+
* <li>`darken` - darken the scene</li>
|
|
556
|
+
* <li>`greyscale` - remove colour</li>
|
|
557
|
+
* <li>`lighten` - lighten the scene</li>
|
|
558
|
+
* <li>`muted` - reduce saturation and contrast</li>
|
|
559
|
+
* <li>`negative` - negative colors</li>
|
|
560
|
+
* </ul>
|
|
561
|
+
* @example greyscale
|
|
562
|
+
* @enum {string}
|
|
563
|
+
*/
|
|
564
|
+
filter?: "blur" | "boost" | "contrast" | "darken" | "greyscale" | "lighten" | "muted" | "negative";
|
|
565
|
+
/** @description Offset an asset on the horizontal axis (left or right). Use a number or an array of [Tween](./#tocs_tween) objects to create a custom animation. */
|
|
566
|
+
opacity?: number | components["schemas"]["Tween"][];
|
|
567
|
+
/** @description A transformation lets you modify the visual properties of a clip. Available transformations are <b>rotate</b>, <b>skew</b> and <b>flip</b>. Transformations can be combined to create interesting new shapes and effects. */
|
|
568
|
+
transform?: components["schemas"]["Transformation"];
|
|
569
|
+
};
|
|
570
|
+
/** @description The type of asset to display for the duration of the Clip, i.e. a video clip or an image. Choose from one of the available asset types below. */
|
|
571
|
+
Asset: components["schemas"]["VideoAsset"] | components["schemas"]["ImageAsset"] | components["schemas"]["TextAsset"] | components["schemas"]["RichTextAsset"] | components["schemas"]["AudioAsset"] | components["schemas"]["LumaAsset"] | components["schemas"]["CaptionAsset"] | components["schemas"]["HtmlAsset"] | components["schemas"]["TitleAsset"] | components["schemas"]["ShapeAsset"] | components["schemas"]["TextToImageAsset"] | components["schemas"]["ImageToVideoAsset"];
|
|
572
|
+
/** @description The VideoAsset is used to create video sequences from video files. The src must be a publicly accessible URL to a video resource such as an mp4 file. */
|
|
573
|
+
VideoAsset: {
|
|
574
|
+
/**
|
|
575
|
+
* @description The type of asset - set to `video` for videos.
|
|
576
|
+
* @default video
|
|
577
|
+
*/
|
|
578
|
+
type: string;
|
|
579
|
+
/**
|
|
580
|
+
* @description The video source URL. The URL must be publicly accessible or include credentials.
|
|
581
|
+
* @example https://s3-ap-northeast-1.amazonaws.com/my-bucket/video.mp4
|
|
582
|
+
*/
|
|
583
|
+
src: string;
|
|
584
|
+
/**
|
|
585
|
+
* @description Set to `true` to force re-encoding of the video during preprocessing. This can help resolve compatibility issues, fix rotation problems, synchronize audio, or convert formats. The video will be processed to ensure optimal compatibility with the rendering engine.
|
|
586
|
+
* @default false
|
|
587
|
+
* @example false
|
|
588
|
+
*/
|
|
589
|
+
transcode: boolean;
|
|
590
|
+
/**
|
|
591
|
+
* @description The start trim point of the video clip, in seconds (defaults to 0). Videos will start from the in trim point. The video will play until the file ends or the Clip length is reached.
|
|
592
|
+
* @example 2
|
|
593
|
+
*/
|
|
594
|
+
trim?: number;
|
|
595
|
+
/** @description Set the volume of the video clip. Use a number or an array of [Tween](./#tocs_tween) objects to create custom volume transitions. */
|
|
596
|
+
volume?: number | components["schemas"]["Tween"][];
|
|
597
|
+
/**
|
|
598
|
+
* @description Preset volume effects to apply to the video asset <ul>
|
|
599
|
+
* <li>`fadeIn` - fade volume in only</li>
|
|
600
|
+
* <li>`fadeOut` - fade volume out only</li>
|
|
601
|
+
* <li>`fadeInFadeOut` - fade volume in and out</li>
|
|
602
|
+
* </ul>
|
|
603
|
+
* @enum {string}
|
|
604
|
+
*/
|
|
605
|
+
volumeEffect?: "fadeIn" | "fadeOut" | "fadeInFadeOut";
|
|
606
|
+
/**
|
|
607
|
+
* Format: float
|
|
608
|
+
* @description Adjust the playback speed of the video clip between 0 (paused) and 10 (10x normal speed) where 1 is normal speed (defaults to 1). Adjusting the speed will also adjust the duration of the clip and may require you to adjust the Clip length. For example, if you set speed to 0.5, the clip will need to be 2x as long to play the entire video (i.e. original length / 0.5). If you set speed to 2, the clip will need to be half as long to play the entire video (i.e. original length / 2).
|
|
609
|
+
* @example 1
|
|
610
|
+
*/
|
|
611
|
+
speed?: number;
|
|
612
|
+
crop?: components["schemas"]["Crop"];
|
|
613
|
+
chromaKey?: components["schemas"]["ChromaKey"];
|
|
614
|
+
/**
|
|
615
|
+
* @description discriminator enum property added by openapi-typescript
|
|
616
|
+
* @enum {string}
|
|
617
|
+
*/
|
|
618
|
+
asset: "VideoAsset";
|
|
619
|
+
};
|
|
620
|
+
/** @description The ImageAsset is used to create video from images to compose an image. The src must be a publicly accessible URL to an image resource such as a jpg or png file. */
|
|
621
|
+
ImageAsset: {
|
|
622
|
+
/**
|
|
623
|
+
* @description The type of asset - set to `image` for images.
|
|
624
|
+
* @default image
|
|
625
|
+
*/
|
|
626
|
+
type: string;
|
|
627
|
+
/**
|
|
628
|
+
* @description The image source URL. The URL must be publicly accessible or include credentials.
|
|
629
|
+
* @example https://s3-ap-northeast-1.amazonaws.com/my-bucket/image.jpg
|
|
630
|
+
*/
|
|
631
|
+
src: string;
|
|
632
|
+
crop?: components["schemas"]["Crop"];
|
|
633
|
+
/**
|
|
634
|
+
* @description discriminator enum property added by openapi-typescript
|
|
635
|
+
* @enum {string}
|
|
636
|
+
*/
|
|
637
|
+
asset: "ImageAsset";
|
|
638
|
+
};
|
|
639
|
+
/**
|
|
640
|
+
* @description The TextAsset is used to add text and titles to a video. The text can be styled with built in and custom
|
|
641
|
+
* [Fonts](#tocs_font). You can also add a background bounding box used to control wrapping and overflow. Emoticons are also supported.
|
|
642
|
+
*/
|
|
643
|
+
TextAsset: {
|
|
644
|
+
/**
|
|
645
|
+
* @description The type of asset - set to `text` for text.
|
|
646
|
+
* @default text
|
|
647
|
+
*/
|
|
648
|
+
type: string;
|
|
649
|
+
/**
|
|
650
|
+
* @description The text string to display.
|
|
651
|
+
* @example Hello World
|
|
652
|
+
*/
|
|
653
|
+
text: string;
|
|
654
|
+
/**
|
|
655
|
+
* @description Set the width of the HTML asset bounding box in pixels. Text will wrap to fill the bounding box.
|
|
656
|
+
* @example 400
|
|
657
|
+
*/
|
|
658
|
+
width?: number;
|
|
659
|
+
/**
|
|
660
|
+
* @description Set the width of the HTML asset bounding box in pixels. Text and elements will be masked if they exceed the height of the bounding box.
|
|
661
|
+
* @example 200
|
|
662
|
+
*/
|
|
663
|
+
height?: number;
|
|
664
|
+
/** @description Font styling properties. */
|
|
665
|
+
font?: components["schemas"]["TextFont"];
|
|
666
|
+
/** @description Background styling properties. */
|
|
667
|
+
background?: components["schemas"]["TextBackground"];
|
|
668
|
+
/** @description Alignment properties. */
|
|
669
|
+
alignment?: components["schemas"]["TextAlignment"];
|
|
670
|
+
/**
|
|
671
|
+
* @description discriminator enum property added by openapi-typescript
|
|
672
|
+
* @enum {string}
|
|
673
|
+
*/
|
|
674
|
+
asset: "TextAsset";
|
|
675
|
+
};
|
|
676
|
+
/**
|
|
677
|
+
* @description The RichTextAsset provides advanced text rendering with support for custom fonts, gradients, shadows, strokes,
|
|
678
|
+
* animations, and styling options. It offers more flexibility and visual effects than the basic TextAsset.
|
|
679
|
+
*/
|
|
680
|
+
RichTextAsset: {
|
|
681
|
+
/**
|
|
682
|
+
* @description The type of asset - set to `rich-text` for rich text.
|
|
683
|
+
* @default rich-text
|
|
684
|
+
*/
|
|
685
|
+
type: string;
|
|
686
|
+
/**
|
|
687
|
+
* @description The text string to display. Maximum 5000 characters.
|
|
688
|
+
* @example Hello World
|
|
689
|
+
*/
|
|
690
|
+
text: string;
|
|
691
|
+
/**
|
|
692
|
+
* @description Set the width of the rich text asset bounding box in pixels. Text will wrap to fill the bounding box. Minimum 1px, maximum 4096px.
|
|
693
|
+
* @example 800
|
|
694
|
+
*/
|
|
695
|
+
width?: number;
|
|
696
|
+
/**
|
|
697
|
+
* @description Set the height of the rich text asset bounding box in pixels. Text and elements will be masked if they exceed the height of the bounding box. Minimum 1px, maximum 4096px.
|
|
698
|
+
* @example 600
|
|
699
|
+
*/
|
|
700
|
+
height?: number;
|
|
701
|
+
/** @description Font styling properties. */
|
|
702
|
+
font?: components["schemas"]["RichTextFont"];
|
|
703
|
+
/** @description Text style properties including spacing, line height, and transformations. */
|
|
704
|
+
style?: components["schemas"]["RichTextStyle"];
|
|
705
|
+
/** @description Text stroke (outline) properties. */
|
|
706
|
+
stroke?: components["schemas"]["RichTextStroke"];
|
|
707
|
+
/** @description Text shadow properties. */
|
|
708
|
+
shadow?: components["schemas"]["RichTextShadow"];
|
|
709
|
+
/** @description Background styling properties for the text bounding box. */
|
|
710
|
+
background?: components["schemas"]["RichTextBackground"];
|
|
711
|
+
/** @description Text alignment properties (horizontal and vertical). */
|
|
712
|
+
align?: components["schemas"]["RichTextAlignment"];
|
|
713
|
+
/** @description Animation properties for text entrance effects. */
|
|
714
|
+
animation?: components["schemas"]["RichTextAnimation"];
|
|
715
|
+
/**
|
|
716
|
+
* @description discriminator enum property added by openapi-typescript
|
|
717
|
+
* @enum {string}
|
|
718
|
+
*/
|
|
719
|
+
asset: "RichTextAsset";
|
|
720
|
+
};
|
|
721
|
+
/** @description The AudioAsset is used to add sound effects and audio at specific intervals on the timeline. The src must be a publicly accessible URL to an audio resource such as an mp3 file. */
|
|
722
|
+
AudioAsset: {
|
|
723
|
+
/**
|
|
724
|
+
* @description The type of asset - set to `audio` for audio assets.
|
|
725
|
+
* @default audio
|
|
726
|
+
*/
|
|
727
|
+
type: string;
|
|
728
|
+
/**
|
|
729
|
+
* @description The audio source URL. The URL must be publicly accessible or include credentials.
|
|
730
|
+
* @example https://s3-ap-northeast-1.amazonaws.com/my-bucket/sound.mp3
|
|
731
|
+
*/
|
|
732
|
+
src: string;
|
|
733
|
+
/** @description The start trim point of the audio clip, in seconds (defaults to 0). Audio will start from the in trim point. The audio will play until the file ends or the Clip length is reached. */
|
|
734
|
+
trim?: number;
|
|
735
|
+
/** @description Set the volume of the audio clip. Use a number or an array of [Tween](./#tocs_tween) objects to create custom volume transitions. */
|
|
736
|
+
volume?: number | components["schemas"]["Tween"][];
|
|
737
|
+
/**
|
|
738
|
+
* Format: float
|
|
739
|
+
* @description Adjust the playback speed of the audio clip between 0 (paused) and 10 (10x normal speed), where 1 is normal speed (defaults to 1). Adjusting the speed will also adjust the duration of the clip and may require you to adjust the Clip length. For example, if you set speed to 0.5, the clip will need to be 2x as long to play the entire audio (i.e. original length / 0.5). If you set speed to 2, the clip will need to be half as long to play the entire audio (i.e. original length / 2).
|
|
740
|
+
* @example 1
|
|
741
|
+
*/
|
|
742
|
+
speed?: number;
|
|
743
|
+
/**
|
|
744
|
+
* @description The effect to apply to the audio asset <ul>
|
|
745
|
+
* <li>`fadeIn` - fade volume in only</li>
|
|
746
|
+
* <li>`fadeOut` - fade volume out only</li>
|
|
747
|
+
* <li>`fadeInFadeOut` - fade volume in and out</li>
|
|
748
|
+
* </ul>
|
|
749
|
+
* @enum {string}
|
|
750
|
+
*/
|
|
751
|
+
effect?: "fadeIn" | "fadeOut" | "fadeInFadeOut";
|
|
752
|
+
/**
|
|
753
|
+
* @description discriminator enum property added by openapi-typescript
|
|
754
|
+
* @enum {string}
|
|
755
|
+
*/
|
|
756
|
+
asset: "AudioAsset";
|
|
757
|
+
};
|
|
758
|
+
/**
|
|
759
|
+
* @description The ShapeAsset is used to add shapes to a video. The shape can be styled with a fill and a stroke.
|
|
760
|
+
* You can manipulate properties such as rotation to create dynamic effects like a diamond shape or stripes.
|
|
761
|
+
*/
|
|
762
|
+
ShapeAsset: {
|
|
763
|
+
/**
|
|
764
|
+
* @description The type of asset - set to `shape` for shape.
|
|
765
|
+
* @default shape
|
|
766
|
+
*/
|
|
767
|
+
type: string;
|
|
768
|
+
/**
|
|
769
|
+
* @description The shape to display.
|
|
770
|
+
* @enum {string}
|
|
771
|
+
*/
|
|
772
|
+
shape: "rectangle" | "circle" | "line";
|
|
773
|
+
/**
|
|
774
|
+
* @description Sets the width of the bounding box in pixels. This value should be larger than the shape's width. If omitted, the entire viewport width and height will be used.
|
|
775
|
+
* @example 800
|
|
776
|
+
*/
|
|
777
|
+
width?: number;
|
|
778
|
+
/**
|
|
779
|
+
* @description Sets the height of the bounding box in pixels. This value should be larger than the shape's height. If omitted, the entire viewport width and height will be used.
|
|
780
|
+
* @example 800
|
|
781
|
+
*/
|
|
782
|
+
height?: number;
|
|
783
|
+
/** @description Specifies the fill style of the shape. */
|
|
784
|
+
fill?: {
|
|
785
|
+
/**
|
|
786
|
+
* @description The color of the fill using hexadecimal color notation.
|
|
787
|
+
* @example #ffffff
|
|
788
|
+
*/
|
|
789
|
+
color?: string;
|
|
790
|
+
/**
|
|
791
|
+
* @description The opacity of the fill where 1 is opaque and 0 is transparent.
|
|
792
|
+
* @example 1
|
|
793
|
+
*/
|
|
794
|
+
opacity?: number;
|
|
795
|
+
};
|
|
796
|
+
/** @description Specifies the stroke style of the shape. */
|
|
797
|
+
stroke?: {
|
|
798
|
+
/**
|
|
799
|
+
* @description The stroke color of the font using hexadecimal color notation.
|
|
800
|
+
* @example #000000
|
|
801
|
+
*/
|
|
802
|
+
color?: string;
|
|
803
|
+
/**
|
|
804
|
+
* @description The width of the stroke in pixels.
|
|
805
|
+
* @example 0.8
|
|
806
|
+
*/
|
|
807
|
+
width?: number;
|
|
808
|
+
};
|
|
809
|
+
/** @description Configuration settings for the rectangle shape. Required when `shape` is set to `rectangle`. */
|
|
810
|
+
rectangle?: {
|
|
811
|
+
/**
|
|
812
|
+
* @description Set the width of the rectangle shape in pixels.
|
|
813
|
+
* @example 800
|
|
814
|
+
*/
|
|
815
|
+
width: number;
|
|
816
|
+
/**
|
|
817
|
+
* @description Set the height of the rectangle shape in pixels.
|
|
818
|
+
* @example 800
|
|
819
|
+
*/
|
|
820
|
+
height: number;
|
|
821
|
+
/**
|
|
822
|
+
* @description Set the corner radius of the rectangle shape.
|
|
823
|
+
* @example 20
|
|
824
|
+
*/
|
|
825
|
+
cornerRadius?: number;
|
|
826
|
+
};
|
|
827
|
+
/** @description Configuration settings for the circle shape. Required when `shape` is set to `circle`. */
|
|
828
|
+
circle?: {
|
|
829
|
+
/**
|
|
830
|
+
* @description Set the radius of the circle shape in pixels.
|
|
831
|
+
* @example 800
|
|
832
|
+
*/
|
|
833
|
+
radius: number;
|
|
834
|
+
};
|
|
835
|
+
/** @description Configuration settings for the line shape. Required when `shape` is set to `line`. */
|
|
836
|
+
line?: {
|
|
837
|
+
/**
|
|
838
|
+
* @description Set the length of the line shape in pixels.
|
|
839
|
+
* @example 100
|
|
840
|
+
*/
|
|
841
|
+
length: number;
|
|
842
|
+
/**
|
|
843
|
+
* @description Set the thickness of the line in pixels.
|
|
844
|
+
* @example 4
|
|
845
|
+
*/
|
|
846
|
+
thickness: number;
|
|
847
|
+
};
|
|
848
|
+
/**
|
|
849
|
+
* @description discriminator enum property added by openapi-typescript
|
|
850
|
+
* @enum {string}
|
|
851
|
+
*/
|
|
852
|
+
asset: "ShapeAsset";
|
|
853
|
+
};
|
|
854
|
+
/** @description The LumaAsset is used to create luma matte masks, transitions and effects between other assets. A luma matte is a grey scale image or animated video where the black areas are transparent and the white areas solid. The luma matte animation should be provided as an mp4 video file. The src must be a publicly accessible URL to the file. */
|
|
855
|
+
LumaAsset: {
|
|
856
|
+
/**
|
|
857
|
+
* @description The type of asset - set to `luma` for luma mattes.
|
|
858
|
+
* @default luma
|
|
859
|
+
*/
|
|
860
|
+
type: string;
|
|
861
|
+
/**
|
|
862
|
+
* @description The luma matte source URL. The URL must be publicly accessible or include credentials.
|
|
863
|
+
* @example https://s3-ap-northeast-1.amazonaws.com/my-bucket/mask.mp4
|
|
864
|
+
*/
|
|
865
|
+
src: string;
|
|
866
|
+
/** @description The start trim point of the luma matte clip, in seconds (defaults to 0). Videos will start from the in trim point. A luma matte video will play until the file ends or the Clip length is reached. */
|
|
867
|
+
trim?: number;
|
|
868
|
+
/**
|
|
869
|
+
* @description discriminator enum property added by openapi-typescript
|
|
870
|
+
* @enum {string}
|
|
871
|
+
*/
|
|
872
|
+
asset: "LumaAsset";
|
|
873
|
+
};
|
|
874
|
+
/**
|
|
875
|
+
* @description The CaptionAsset is used to add captions (subtitles) to a video. It uses a supplied SRT or VTT file which will
|
|
876
|
+
* be read and burnt to the video.
|
|
877
|
+
*
|
|
878
|
+
* Captions can be applied independently from a video or audio file for greater
|
|
879
|
+
* flexibility with styling and layout. For example you can scale, position or crop a video without modifying the
|
|
880
|
+
* captions.
|
|
881
|
+
*
|
|
882
|
+
* To sync captions with a video or audio file use a [Video](#tocs_videoasset") or [Audio](#tocs_audioasset") with
|
|
883
|
+
* matching start and end time.
|
|
884
|
+
*/
|
|
885
|
+
CaptionAsset: {
|
|
886
|
+
/**
|
|
887
|
+
* @description The type of asset - set to `caption` for captions.
|
|
888
|
+
* @default caption
|
|
889
|
+
*/
|
|
890
|
+
type: string;
|
|
891
|
+
/**
|
|
892
|
+
* @description The URL to an SRT or VTT subtitles file. The URL must be publicly accessible or include credentials.
|
|
893
|
+
* @example https://s3-ap-northeast-1.amazonaws.com/my-bucket/captions.srt
|
|
894
|
+
*/
|
|
895
|
+
src: string;
|
|
896
|
+
/** @description Font styling properties. */
|
|
897
|
+
font?: components["schemas"]["CaptionFont"];
|
|
898
|
+
/** @description Background styling properties. */
|
|
899
|
+
background?: components["schemas"]["CaptionBackground"];
|
|
900
|
+
/** @description Margin properties. */
|
|
901
|
+
margin?: components["schemas"]["CaptionMargin"];
|
|
902
|
+
/**
|
|
903
|
+
* @description The start trim point of the captions, in seconds (defaults to 0). Remove the trim length from teh start of the captions and allow it to be synced with video or audio. The captions will play until the file ends or the Clip length is reached.
|
|
904
|
+
* @example 2
|
|
905
|
+
*/
|
|
906
|
+
trim?: number;
|
|
907
|
+
/**
|
|
908
|
+
* Format: float
|
|
909
|
+
* @description Adjust the playback speed of the captions between 0 (paused) and 10 (10x normal speed) where 1 is normal speed (defaults to 1). Adjusting the speed will also adjust the duration of the clip and may require you to adjust the Clip length. For example, if you set speed to 0.5, the clip will need to be 2x as long to play the entire captions (i.e. original length / 0.5). If you set speed to 2, the clip will need to be half as long to play the entire captions (i.e. original length / 2).
|
|
910
|
+
* @example 1
|
|
911
|
+
*/
|
|
912
|
+
speed?: number;
|
|
913
|
+
/**
|
|
914
|
+
* @description discriminator enum property added by openapi-typescript
|
|
915
|
+
* @enum {string}
|
|
916
|
+
*/
|
|
917
|
+
asset: "CaptionAsset";
|
|
918
|
+
};
|
|
919
|
+
/** @description The TextToImageAsset lets you create a dynamic image from a text prompt. */
|
|
920
|
+
TextToImageAsset: {
|
|
921
|
+
/**
|
|
922
|
+
* @description The type of asset to generate - set to `text-to-image` for text-to-image.
|
|
923
|
+
* @default text-to-image
|
|
924
|
+
* @enum {string}
|
|
925
|
+
*/
|
|
926
|
+
type: "text-to-image";
|
|
927
|
+
/**
|
|
928
|
+
* @description The text prompt to generate an image from.
|
|
929
|
+
* @example A serene landscape featuring a crystal-clear mountain lake at sunrise. The water reflects the pink and orange sky like a mirror. In the foreground, a majestic pine tree stands tall, its branches framing the view. Snow-capped peaks rise in the distance, their edges softened by a light morning mist. A pair of deer drink from the lake's edge, creating gentle ripples on the otherwise still surface.
|
|
930
|
+
*/
|
|
931
|
+
prompt: string;
|
|
932
|
+
/**
|
|
933
|
+
* @description The width of the image in pixels.
|
|
934
|
+
* @example 512
|
|
935
|
+
*/
|
|
936
|
+
width: number;
|
|
937
|
+
/**
|
|
938
|
+
* @description The height of the image in pixels.
|
|
939
|
+
* @example 512
|
|
940
|
+
*/
|
|
941
|
+
height: number;
|
|
942
|
+
crop?: components["schemas"]["Crop"];
|
|
943
|
+
};
|
|
944
|
+
/** @description The ImageToVideoAsset lets you create a video from an image and a text prompt. */
|
|
945
|
+
ImageToVideoAsset: {
|
|
946
|
+
/**
|
|
947
|
+
* @description The type of asset to generate - set to `image-to-video` for image-to-video.
|
|
948
|
+
* @default image-to-video
|
|
949
|
+
* @enum {string}
|
|
950
|
+
*/
|
|
951
|
+
type: "image-to-video";
|
|
952
|
+
/**
|
|
953
|
+
* @description The image source URL. The URL must be publicly accessible or include credentials.
|
|
954
|
+
* @example https://s3-ap-northeast-1.amazonaws.com/my-bucket/image.jpg
|
|
955
|
+
*/
|
|
956
|
+
src?: string;
|
|
957
|
+
/**
|
|
958
|
+
* @description The instructions for modifying the image into a video sequence.
|
|
959
|
+
* @example Slowly zoom out and orbit left around the object.
|
|
960
|
+
*/
|
|
961
|
+
prompt?: string;
|
|
962
|
+
/**
|
|
963
|
+
* @description The aspect ratio (shape) of the video output.
|
|
964
|
+
* @example 16:9
|
|
965
|
+
* @enum {string}
|
|
966
|
+
*/
|
|
967
|
+
aspectRatio?: "1:1" | "4:3" | "16:9" | "9:16" | "3:4" | "21:9" | "9:21";
|
|
968
|
+
/**
|
|
969
|
+
* Format: float
|
|
970
|
+
* @description Adjust the playback speed of the video clip between 0 (paused) and 10 (10x normal speed) where 1 is normal speed (defaults to 1). Adjusting the speed will also adjust the duration of the clip and may require you to adjust the Clip length. For example, if you set speed to 0.5, the clip will need to be 2x as long to play the entire video (i.e. original length / 0.5). If you set speed to 2, the clip will need to be half as long to play the entire video (i.e. original length / 2).
|
|
971
|
+
* @example 1
|
|
972
|
+
*/
|
|
973
|
+
speed?: number;
|
|
974
|
+
crop?: components["schemas"]["Crop"];
|
|
975
|
+
};
|
|
976
|
+
/**
|
|
977
|
+
* @deprecated
|
|
978
|
+
* @description **Notice: The HtmlAsset is deprecated, use the [TextAsset](#tocs_textasset) instead.**
|
|
979
|
+
*
|
|
980
|
+
* The HtmlAsset clip type lets you create text based layout and formatting using
|
|
981
|
+
* HTML and CSS. You can also set the height and width of a bounding box for the HTML
|
|
982
|
+
* content to sit within. Text and elements will wrap within the bounding box.
|
|
983
|
+
*/
|
|
984
|
+
HtmlAsset: {
|
|
985
|
+
/**
|
|
986
|
+
* @description The type of asset - set to `html` for HTML.
|
|
987
|
+
* @default html
|
|
988
|
+
*/
|
|
989
|
+
type: string;
|
|
990
|
+
/**
|
|
991
|
+
* @description The HTML text string. See list of [supported HTML tags](https://shotstack.io/docs/guide/architecting-an-application/html-support/#supported-html-tags).
|
|
992
|
+
* @example <p>Hello <b>World</b></p>
|
|
993
|
+
*/
|
|
994
|
+
html: string;
|
|
995
|
+
/**
|
|
996
|
+
* @description The CSS text string to apply styling to the HTML. See list of [support CSS properties](https://shotstack.io/docs/guide/architecting-an-application/html-support/#supported-css-properties).
|
|
997
|
+
* @example p { color: #ffffff; } b { color: #ffff00; }
|
|
998
|
+
*/
|
|
999
|
+
css?: string;
|
|
1000
|
+
/**
|
|
1001
|
+
* @description Set the width of the HTML asset bounding box in pixels. Text will wrap to fill the bounding box.
|
|
1002
|
+
* @example 400
|
|
1003
|
+
*/
|
|
1004
|
+
width?: number;
|
|
1005
|
+
/**
|
|
1006
|
+
* @description Set the width of the HTML asset bounding box in pixels. Text and elements will be masked if they exceed the height of the bounding box.
|
|
1007
|
+
* @example 200
|
|
1008
|
+
*/
|
|
1009
|
+
height?: number;
|
|
1010
|
+
/** @description Apply a background color behind the HTML bounding box using. Set the text color using hexadecimal color notation. Transparency is supported by setting the first two characters of the hex string (opposite to HTML), i.e. #80ffffff will be white with 50% transparency. */
|
|
1011
|
+
background?: string;
|
|
1012
|
+
/**
|
|
1013
|
+
* @description Place the HTML in one of nine predefined positions within the HTML area. <ul>
|
|
1014
|
+
* <li>`top` - top (center)</li>
|
|
1015
|
+
* <li>`topRight` - top right</li>
|
|
1016
|
+
* <li>`right` - right (center)</li>
|
|
1017
|
+
* <li>`bottomRight` - bottom right</li>
|
|
1018
|
+
* <li>`bottom` - bottom (center)</li>
|
|
1019
|
+
* <li>`bottomLeft` - bottom left</li>
|
|
1020
|
+
* <li>`left` - left (center)</li>
|
|
1021
|
+
* <li>`topLeft` - top left</li>
|
|
1022
|
+
* <li>`center` - center</li>
|
|
1023
|
+
* </ul>
|
|
1024
|
+
* @enum {string}
|
|
1025
|
+
*/
|
|
1026
|
+
position?: "top" | "topRight" | "right" | "bottomRight" | "bottom" | "bottomLeft" | "left" | "topLeft" | "center";
|
|
1027
|
+
/**
|
|
1028
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1029
|
+
* @enum {string}
|
|
1030
|
+
*/
|
|
1031
|
+
asset: "HtmlAsset";
|
|
1032
|
+
};
|
|
1033
|
+
/**
|
|
1034
|
+
* @deprecated
|
|
1035
|
+
* @description **Notice: The TitleAsset is deprecated, use the [TextAsset](#tocs_textasset) instead.**
|
|
1036
|
+
*
|
|
1037
|
+
* The TitleAsset clip type lets you create video titles from a text string and apply styling and positioning.
|
|
1038
|
+
*/
|
|
1039
|
+
TitleAsset: {
|
|
1040
|
+
/**
|
|
1041
|
+
* @description The type of asset - set to `title` for titles.
|
|
1042
|
+
* @default title
|
|
1043
|
+
*/
|
|
1044
|
+
type: string;
|
|
1045
|
+
/**
|
|
1046
|
+
* @description The title text string - i.e. "My Title".
|
|
1047
|
+
* @example Hello World
|
|
1048
|
+
*/
|
|
1049
|
+
text: string;
|
|
1050
|
+
/**
|
|
1051
|
+
* @description Uses a preset to apply font properties and styling to the title. <ul>
|
|
1052
|
+
* <li>`minimal`</li>
|
|
1053
|
+
* <li>`blockbuster`</li>
|
|
1054
|
+
* <li>`vogue`</li>
|
|
1055
|
+
* <li>`sketchy`</li>
|
|
1056
|
+
* <li>`skinny`</li>
|
|
1057
|
+
* <li>`chunk`</li>
|
|
1058
|
+
* <li>`chunkLight`</li>
|
|
1059
|
+
* <li>`marker`</li>
|
|
1060
|
+
* <li>`future`</li>
|
|
1061
|
+
* <li>`subtitle`</li>
|
|
1062
|
+
* </ul>
|
|
1063
|
+
* @enum {string}
|
|
1064
|
+
*/
|
|
1065
|
+
style?: "minimal" | "blockbuster" | "vogue" | "sketchy" | "skinny" | "chunk" | "chunkLight" | "marker" | "future" | "subtitle";
|
|
1066
|
+
/** @description Set the text color using hexadecimal color notation. Transparency is supported by setting the first two characters of the hex string (opposite to HTML), i.e. #80ffffff will be white with 50% transparency. */
|
|
1067
|
+
color?: string;
|
|
1068
|
+
/**
|
|
1069
|
+
* @description Set the relative size of the text using predefined sizes from xx-small to xx-large. <ul>
|
|
1070
|
+
* <li>`xx-small`</li>
|
|
1071
|
+
* <li>`x-small`</li>
|
|
1072
|
+
* <li>`small`</li>
|
|
1073
|
+
* <li>`medium`</li>
|
|
1074
|
+
* <li>`large`</li>
|
|
1075
|
+
* <li>`x-large`</li>
|
|
1076
|
+
* <li>`xx-large`</li>
|
|
1077
|
+
* </ul>
|
|
1078
|
+
* @enum {string}
|
|
1079
|
+
*/
|
|
1080
|
+
size?: "xx-small" | "x-small" | "small" | "medium" | "large" | "x-large" | "xx-large";
|
|
1081
|
+
/**
|
|
1082
|
+
* @description Apply a background color behind the text. Set the text color using hexadecimal color notation. Transparency is supported by setting the first two characters of the hex string (opposite to HTML), i.e. #80ffffff will be white with 50% transparency. Omit to use transparent background.
|
|
1083
|
+
* @example #000000
|
|
1084
|
+
*/
|
|
1085
|
+
background?: string;
|
|
1086
|
+
/**
|
|
1087
|
+
* @description Place the title in one of nine predefined positions of the viewport. <ul>
|
|
1088
|
+
* <li>`top` - top (center)</li>
|
|
1089
|
+
* <li>`topRight` - top right</li>
|
|
1090
|
+
* <li>`right` - right (center)</li>
|
|
1091
|
+
* <li>`bottomRight` - bottom right</li>
|
|
1092
|
+
* <li>`bottom` - bottom (center)</li>
|
|
1093
|
+
* <li>`bottomLeft` - bottom left</li>
|
|
1094
|
+
* <li>`left` - left (center)</li>
|
|
1095
|
+
* <li>`topLeft` - top left</li>
|
|
1096
|
+
* <li>`center` - center</li>
|
|
1097
|
+
* </ul>
|
|
1098
|
+
* @enum {string}
|
|
1099
|
+
*/
|
|
1100
|
+
position?: "top" | "topRight" | "right" | "bottomRight" | "bottom" | "bottomLeft" | "left" | "topLeft" | "center";
|
|
1101
|
+
/** @description Offset the location of the title relative to its position on the screen. */
|
|
1102
|
+
offset?: components["schemas"]["Offset"];
|
|
1103
|
+
/**
|
|
1104
|
+
* @description discriminator enum property added by openapi-typescript
|
|
1105
|
+
* @enum {string}
|
|
1106
|
+
*/
|
|
1107
|
+
asset: "TitleAsset";
|
|
1108
|
+
};
|
|
1109
|
+
/** @description In and out transitions for a clip - i.e. fade in and fade out */
|
|
1110
|
+
Transition: {
|
|
1111
|
+
/**
|
|
1112
|
+
* @description The transition in. Available transitions are:
|
|
1113
|
+
* <ul>
|
|
1114
|
+
* <li>`fade` - fade in</li>
|
|
1115
|
+
* <li>`reveal` - reveal from left to right</li>
|
|
1116
|
+
* <li>`wipeLeft` - fade across screen to the left</li>
|
|
1117
|
+
* <li>`wipeRight` - fade across screen to the right</li>
|
|
1118
|
+
* <li>`slideLeft` - move slightly left and fade in</li>
|
|
1119
|
+
* <li>`slideRight` - move slightly right and fade in</li>
|
|
1120
|
+
* <li>`slideUp` - move slightly up and fade in</li>
|
|
1121
|
+
* <li>`slideDown` - move slightly down and fade in</li>
|
|
1122
|
+
* <li>`carouselLeft` - slide in from right to left</li>
|
|
1123
|
+
* <li>`carouselRight` - slide in from left to right</li>
|
|
1124
|
+
* <li>`carouselUp` - slide in from bottom to top</li>
|
|
1125
|
+
* <li>`carouselDown` - slide in from top to bottom</li>
|
|
1126
|
+
* <li>`shuffleTopRight` - rotate in from top right</li>
|
|
1127
|
+
* <li>`shuffleRightTop` - rotate in from right top</li>
|
|
1128
|
+
* <li>`shuffleRightBottom` - rotate in from right bottom</li>
|
|
1129
|
+
* <li>`shuffleBottomRight` - rotate in from bottom right</li>
|
|
1130
|
+
* <li>`shuffleBottomLeft` - rotate in from bottom left</li>
|
|
1131
|
+
* <li>`shuffleLeftBottom` - rotate in from left bottom</li>
|
|
1132
|
+
* <li>`shuffleLeftTop` - rotate in from left top</li>
|
|
1133
|
+
* <li>`shuffleTopLeft` - rotate in from top left</li>
|
|
1134
|
+
* <li>`zoom` - fast zoom in</li>
|
|
1135
|
+
* </ul>
|
|
1136
|
+
* The transition speed can also be controlled by appending `Fast` or `Slow` to the transition, e.g. `fadeFast` or `CarouselLeftSlow`.
|
|
1137
|
+
* @enum {string}
|
|
1138
|
+
*/
|
|
1139
|
+
in?: "fade" | "fadeSlow" | "fadeFast" | "reveal" | "revealSlow" | "revealFast" | "wipeLeft" | "wipeLeftSlow" | "wipeLeftFast" | "wipeRight" | "wipeRightSlow" | "wipeRightFast" | "slideLeft" | "slideLeftSlow" | "slideLeftFast" | "slideRight" | "slideRightSlow" | "slideRightFast" | "slideUp" | "slideUpSlow" | "slideUpFast" | "slideDown" | "slideDownSlow" | "slideDownFast" | "carouselLeft" | "carouselLeftSlow" | "carouselLeftFast" | "carouselRight" | "carouselRightSlow" | "carouselRightFast" | "carouselUp" | "carouselUpSlow" | "carouselUpFast" | "carouselDown" | "carouselDownSlow" | "carouselDownFast" | "shuffleTopRight" | "shuffleTopRightSlow" | "shuffleTopRightFast" | "shuffleRightTop" | "shuffleRightTopSlow" | "shuffleRightTopFast" | "shuffleRightBottom" | "shuffleRightBottomSlow" | "shuffleRightBottomFast" | "shuffleBottomRight" | "shuffleBottomRightSlow" | "shuffleBottomRightFast" | "shuffleBottomLeft" | "shuffleBottomLeftSlow" | "shuffleBottomLeftFast" | "shuffleLeftBottom" | "shuffleLeftBottomSlow" | "shuffleLeftBottomFast" | "shuffleLeftTop" | "shuffleLeftTopSlow" | "shuffleLeftTopFast" | "shuffleTopLeft" | "shuffleTopLeftSlow" | "shuffleTopLeftFast" | "zoom";
|
|
1140
|
+
/**
|
|
1141
|
+
* @description The transition out. Available transitions are:
|
|
1142
|
+
* <ul>
|
|
1143
|
+
* <li>`fade` - fade out</li>
|
|
1144
|
+
* <li>`reveal` - reveal from right to left</li>
|
|
1145
|
+
* <li>`wipeLeft` - fade across screen to the left</li>
|
|
1146
|
+
* <li>`wipeRight` - fade across screen to the right</li>
|
|
1147
|
+
* <li>`slideLeft` - move slightly left and fade out</li>
|
|
1148
|
+
* <li>`slideRight` - move slightly right and fade out</li>
|
|
1149
|
+
* <li>`slideUp` - move slightly up and fade out</li>
|
|
1150
|
+
* <li>`slideDown` - move slightly down and fade out</li>
|
|
1151
|
+
* <li>`carouselLeft` - slide out from right to left</li>
|
|
1152
|
+
* <li>`carouselRight` - slide out from left to right</li>
|
|
1153
|
+
* <li>`carouselUp` - slide out from bottom to top</li>
|
|
1154
|
+
* <li>`carouselDown` - slide out from top to bottom</li>
|
|
1155
|
+
* <li>`shuffleTopRight` - rotate out from top right</li>
|
|
1156
|
+
* <li>`shuffleRightTop` - rotate out from right top</li>
|
|
1157
|
+
* <li>`shuffleRightBottom` - rotate out from right bottom</li>
|
|
1158
|
+
* <li>`shuffleBottomRight` - rotate out from bottom right</li>
|
|
1159
|
+
* <li>`shuffleBottomLeft` - rotate out from bottom left</li>
|
|
1160
|
+
* <li>`shuffleLeftBottom` - rotate out from left bottom</li>
|
|
1161
|
+
* <li>`shuffleLeftTop` - rotate out from left top</li>
|
|
1162
|
+
* <li>`shuffleTopLeft` - rotate out from top left</li>
|
|
1163
|
+
* <li>`zoom` - fast zoom out</li>
|
|
1164
|
+
* </ul>
|
|
1165
|
+
* The transition speed can also be controlled by appending `Fast` or `Slow` to the transition, e.g. `fadeFast` or `CarouselLeftSlow`.
|
|
1166
|
+
* @enum {string}
|
|
1167
|
+
*/
|
|
1168
|
+
out?: "fade" | "fadeSlow" | "fadeFast" | "reveal" | "revealSlow" | "revealFast" | "wipeLeft" | "wipeLeftSlow" | "wipeLeftFast" | "wipeRight" | "wipeRightSlow" | "wipeRightFast" | "slideLeft" | "slideLeftSlow" | "slideLeftFast" | "slideRight" | "slideRightSlow" | "slideRightFast" | "slideUp" | "slideUpSlow" | "slideUpFast" | "slideDown" | "slideDownSlow" | "slideDownFast" | "carouselLeft" | "carouselLeftSlow" | "carouselLeftFast" | "carouselRight" | "carouselRightSlow" | "carouselRightFast" | "carouselUp" | "carouselUpSlow" | "carouselUpFast" | "carouselDown" | "carouselDownSlow" | "carouselDownFast" | "shuffleTopRight" | "shuffleTopRightSlow" | "shuffleTopRightFast" | "shuffleRightTop" | "shuffleRightTopSlow" | "shuffleRightTopFast" | "shuffleRightBottom" | "shuffleRightBottomSlow" | "shuffleRightBottomFast" | "shuffleBottomRight" | "shuffleBottomRightSlow" | "shuffleBottomRightFast" | "shuffleBottomLeft" | "shuffleBottomLeftSlow" | "shuffleBottomLeftFast" | "shuffleLeftBottom" | "shuffleLeftBottomSlow" | "shuffleLeftBottomFast" | "shuffleLeftTop" | "shuffleLeftTopSlow" | "shuffleLeftTopFast" | "shuffleTopLeft" | "shuffleTopLeftSlow" | "shuffleTopLeftFast" | "zoom";
|
|
1169
|
+
};
|
|
1170
|
+
/** @description Offsets the position of an asset horizontally or vertically by a relative distance. */
|
|
1171
|
+
Offset: {
|
|
1172
|
+
/** @description Offset an asset on the horizontal axis (left or right). Use a number or an array of [Tween](./#tocs_tween) objects to create a custom animation. */
|
|
1173
|
+
x?: number | components["schemas"]["Tween"][];
|
|
1174
|
+
/** @description Offset an asset on the vertical axis (up or down). Use a number or an array of [Tween](./#tocs_tween) objects to create a custom animation. */
|
|
1175
|
+
y?: number | components["schemas"]["Tween"][];
|
|
1176
|
+
};
|
|
1177
|
+
/** @description Crop the sides of an asset by a relative amount. The size of the crop is specified using a scale between 0 and 1, relative to the screen width - i.e a left crop of 0.5 will crop half of the asset from the left, a top crop of 0.25 will crop the top by quarter of the asset. */
|
|
1178
|
+
Crop: {
|
|
1179
|
+
/**
|
|
1180
|
+
* Format: float
|
|
1181
|
+
* @description Crop from the top of the asset
|
|
1182
|
+
* @example 0.15
|
|
1183
|
+
*/
|
|
1184
|
+
top?: number;
|
|
1185
|
+
/**
|
|
1186
|
+
* Format: float
|
|
1187
|
+
* @description Crop from the bottom of the asset
|
|
1188
|
+
* @example 0.15
|
|
1189
|
+
*/
|
|
1190
|
+
bottom?: number;
|
|
1191
|
+
/**
|
|
1192
|
+
* Format: float
|
|
1193
|
+
* @description Crop from the left of the asset
|
|
1194
|
+
*/
|
|
1195
|
+
left?: number;
|
|
1196
|
+
/**
|
|
1197
|
+
* Format: float
|
|
1198
|
+
* @description Crop from the left of the asset
|
|
1199
|
+
*/
|
|
1200
|
+
right?: number;
|
|
1201
|
+
};
|
|
1202
|
+
/** @description Apply one or more transformations to a clip. Transformations alter the visual properties of a clip and can be combined to create new shapes and effects. */
|
|
1203
|
+
Transformation: {
|
|
1204
|
+
rotate?: components["schemas"]["RotateTransformation"];
|
|
1205
|
+
skew?: components["schemas"]["SkewTransformation"];
|
|
1206
|
+
flip?: components["schemas"]["FlipTransformation"];
|
|
1207
|
+
};
|
|
1208
|
+
/** @description Rotate a clip by the specified angle in degrees. Rotation origin is set based on the clips `position`. */
|
|
1209
|
+
RotateTransformation: {
|
|
1210
|
+
/** @description Rotate a clip by the specified angle in degrees. Use a number or an array of [Tween](./#tocs_tween) objects to create a custom animation. */
|
|
1211
|
+
angle?: number | components["schemas"]["Tween"][];
|
|
1212
|
+
};
|
|
1213
|
+
/** @description Skew a clip so its edges are sheared at an angle. Use values between 0 and 3. Over 3 the clip will be skewed almost flat. */
|
|
1214
|
+
SkewTransformation: {
|
|
1215
|
+
/** @description Skew the clip along it's x axis. */
|
|
1216
|
+
x?: number | components["schemas"]["Tween"][];
|
|
1217
|
+
/** @description Skew the clip along it's y axis. */
|
|
1218
|
+
y?: number | components["schemas"]["Tween"][];
|
|
1219
|
+
};
|
|
1220
|
+
/** @description Flip a clip vertically or horizontally. Acts as a mirror effect of the clip along the selected plane. */
|
|
1221
|
+
FlipTransformation: {
|
|
1222
|
+
/**
|
|
1223
|
+
* @description Flip a clip horizontally.
|
|
1224
|
+
* @example true
|
|
1225
|
+
*/
|
|
1226
|
+
horizontal?: boolean;
|
|
1227
|
+
/**
|
|
1228
|
+
* @description Flip a clip vertically.
|
|
1229
|
+
* @example true
|
|
1230
|
+
*/
|
|
1231
|
+
vertical?: boolean;
|
|
1232
|
+
};
|
|
1233
|
+
/** @description Font properties for text. */
|
|
1234
|
+
TextFont: {
|
|
1235
|
+
/**
|
|
1236
|
+
* @description The font family name. This must be Family name embedded in the font, i.e. "Open Sans".
|
|
1237
|
+
* @example Open Sans
|
|
1238
|
+
*/
|
|
1239
|
+
family?: string;
|
|
1240
|
+
/**
|
|
1241
|
+
* @description The text color using hexadecimal color notation.
|
|
1242
|
+
* @example #ffffff
|
|
1243
|
+
*/
|
|
1244
|
+
color?: string;
|
|
1245
|
+
/**
|
|
1246
|
+
* @description The opacity of the text where 1 is opaque and 0 is transparent.
|
|
1247
|
+
* @example 0.8
|
|
1248
|
+
*/
|
|
1249
|
+
opacity?: number;
|
|
1250
|
+
/**
|
|
1251
|
+
* @description The size of the font in pixels (px).
|
|
1252
|
+
* @example 24
|
|
1253
|
+
*/
|
|
1254
|
+
size?: number;
|
|
1255
|
+
/**
|
|
1256
|
+
* @description The weight of the font. 100 is lightest, 900 is heaviest (boldest).
|
|
1257
|
+
* @example 400
|
|
1258
|
+
*/
|
|
1259
|
+
weight?: number;
|
|
1260
|
+
/**
|
|
1261
|
+
* @description The line height of the font as a ratio of the font size.
|
|
1262
|
+
* @example 0.85
|
|
1263
|
+
*/
|
|
1264
|
+
lineHeight?: number;
|
|
1265
|
+
};
|
|
1266
|
+
/** @description Displays a background box behind the text. */
|
|
1267
|
+
TextBackground: {
|
|
1268
|
+
/**
|
|
1269
|
+
* @description The background color using hexadecimal color notation.
|
|
1270
|
+
* @example #000000
|
|
1271
|
+
*/
|
|
1272
|
+
color?: string;
|
|
1273
|
+
};
|
|
1274
|
+
/** @description Horizontal and vertical alignment properties for text. */
|
|
1275
|
+
TextAlignment: {
|
|
1276
|
+
/**
|
|
1277
|
+
* @description The horizontal alignment of the text. Value must be one of: <ul>
|
|
1278
|
+
* <li>`left`</li>
|
|
1279
|
+
* <li>`center`</li>
|
|
1280
|
+
* <li>`right`</li>
|
|
1281
|
+
* </ul>
|
|
1282
|
+
* @example center
|
|
1283
|
+
* @enum {string}
|
|
1284
|
+
*/
|
|
1285
|
+
horizontal?: "left" | "center" | "right";
|
|
1286
|
+
/**
|
|
1287
|
+
* @description The vertical alignment of the text. Value must be one of: <ul>
|
|
1288
|
+
* <li>`top`</li>
|
|
1289
|
+
* <li>`center`</li>
|
|
1290
|
+
* <li>`bottom`</li>
|
|
1291
|
+
* </ul>
|
|
1292
|
+
* @example center
|
|
1293
|
+
* @enum {string}
|
|
1294
|
+
*/
|
|
1295
|
+
vertical?: "top" | "center" | "bottom";
|
|
1296
|
+
};
|
|
1297
|
+
/** @description Font properties for rich text. */
|
|
1298
|
+
RichTextFont: {
|
|
1299
|
+
/**
|
|
1300
|
+
* @description The font family name. This must be the Family name embedded in the font, i.e. "Open Sans". For custom fonts, use the family name specified in the customFonts array.
|
|
1301
|
+
* @default Open Sans
|
|
1302
|
+
* @example Open Sans
|
|
1303
|
+
*/
|
|
1304
|
+
family: string;
|
|
1305
|
+
/**
|
|
1306
|
+
* @description The size of the font in pixels (px). Must be between 1 and 500.
|
|
1307
|
+
* @default 24
|
|
1308
|
+
* @example 48
|
|
1309
|
+
*/
|
|
1310
|
+
size: number;
|
|
1311
|
+
/**
|
|
1312
|
+
* @description The weight of the font. Can be a number (100-900) or a string ('normal', 'bold', etc.). 100 is lightest, 900 is heaviest (boldest).
|
|
1313
|
+
* @default 400
|
|
1314
|
+
*/
|
|
1315
|
+
weight: unknown;
|
|
1316
|
+
/**
|
|
1317
|
+
* @description The font style.
|
|
1318
|
+
* @default normal
|
|
1319
|
+
* @example italic
|
|
1320
|
+
* @enum {string}
|
|
1321
|
+
*/
|
|
1322
|
+
style: "normal" | "italic" | "oblique";
|
|
1323
|
+
/**
|
|
1324
|
+
* @description The text color using hexadecimal color notation.
|
|
1325
|
+
* @default #ffffff
|
|
1326
|
+
* @example #ff0000
|
|
1327
|
+
*/
|
|
1328
|
+
color: string;
|
|
1329
|
+
/**
|
|
1330
|
+
* @description The opacity of the text where 1 is opaque and 0 is transparent.
|
|
1331
|
+
* @default 1
|
|
1332
|
+
* @example 0.9
|
|
1333
|
+
*/
|
|
1334
|
+
opacity: number;
|
|
1335
|
+
};
|
|
1336
|
+
/** @description Text style properties including spacing, line height, and transformations. */
|
|
1337
|
+
RichTextStyle: {
|
|
1338
|
+
/**
|
|
1339
|
+
* @description Additional spacing between letters in pixels. Can be negative for tighter spacing.
|
|
1340
|
+
* @default 0
|
|
1341
|
+
* @example 2
|
|
1342
|
+
*/
|
|
1343
|
+
letterSpacing: number;
|
|
1344
|
+
/**
|
|
1345
|
+
* @description The line height as a multiplier of the font size. Must be between 0 and 10.
|
|
1346
|
+
* @default 1.2
|
|
1347
|
+
* @example 1.5
|
|
1348
|
+
*/
|
|
1349
|
+
lineHeight: number;
|
|
1350
|
+
/**
|
|
1351
|
+
* @description Text transformation to apply.
|
|
1352
|
+
* @default none
|
|
1353
|
+
* @example uppercase
|
|
1354
|
+
* @enum {string}
|
|
1355
|
+
*/
|
|
1356
|
+
textTransform: "none" | "uppercase" | "lowercase" | "capitalize";
|
|
1357
|
+
/**
|
|
1358
|
+
* @description Text decoration to apply.
|
|
1359
|
+
* @default none
|
|
1360
|
+
* @example underline
|
|
1361
|
+
* @enum {string}
|
|
1362
|
+
*/
|
|
1363
|
+
textDecoration: "none" | "underline" | "line-through";
|
|
1364
|
+
/** @description Gradient fill for text instead of solid color. */
|
|
1365
|
+
gradient?: components["schemas"]["RichTextGradient"];
|
|
1366
|
+
};
|
|
1367
|
+
/** @description Gradient properties for text fill. */
|
|
1368
|
+
RichTextGradient: {
|
|
1369
|
+
/**
|
|
1370
|
+
* @description The type of gradient.
|
|
1371
|
+
* @default linear
|
|
1372
|
+
* @example linear
|
|
1373
|
+
* @enum {string}
|
|
1374
|
+
*/
|
|
1375
|
+
type: "linear" | "radial";
|
|
1376
|
+
/**
|
|
1377
|
+
* @description The angle of the gradient in degrees (for linear gradients). Must be between 0 and 360.
|
|
1378
|
+
* @default 0
|
|
1379
|
+
* @example 45
|
|
1380
|
+
*/
|
|
1381
|
+
angle: number;
|
|
1382
|
+
/** @description Gradient color stops. Must have at least 2 stops. */
|
|
1383
|
+
stops: {
|
|
1384
|
+
/**
|
|
1385
|
+
* @description Position of the color stop between 0 (start) and 1 (end).
|
|
1386
|
+
* @example 0.5
|
|
1387
|
+
*/
|
|
1388
|
+
offset: number;
|
|
1389
|
+
/**
|
|
1390
|
+
* @description Color at this stop using hexadecimal color notation.
|
|
1391
|
+
* @example #ff0000
|
|
1392
|
+
*/
|
|
1393
|
+
color: string;
|
|
1394
|
+
}[];
|
|
1395
|
+
};
|
|
1396
|
+
/** @description Text stroke (outline) properties. */
|
|
1397
|
+
RichTextStroke: {
|
|
1398
|
+
/**
|
|
1399
|
+
* @description The width of the stroke in pixels. Must be 0 or greater.
|
|
1400
|
+
* @default 0
|
|
1401
|
+
* @example 2
|
|
1402
|
+
*/
|
|
1403
|
+
width: number;
|
|
1404
|
+
/**
|
|
1405
|
+
* @description The stroke color using hexadecimal color notation.
|
|
1406
|
+
* @default #000000
|
|
1407
|
+
* @example #000000
|
|
1408
|
+
*/
|
|
1409
|
+
color: string;
|
|
1410
|
+
/**
|
|
1411
|
+
* @description The opacity of the stroke where 1 is opaque and 0 is transparent.
|
|
1412
|
+
* @default 1
|
|
1413
|
+
* @example 0.8
|
|
1414
|
+
*/
|
|
1415
|
+
opacity: number;
|
|
1416
|
+
};
|
|
1417
|
+
/** @description Text shadow properties. */
|
|
1418
|
+
RichTextShadow: {
|
|
1419
|
+
/**
|
|
1420
|
+
* @description Horizontal offset of the shadow in pixels. Positive values move right, negative left.
|
|
1421
|
+
* @default 0
|
|
1422
|
+
* @example 4
|
|
1423
|
+
*/
|
|
1424
|
+
offsetX: number;
|
|
1425
|
+
/**
|
|
1426
|
+
* @description Vertical offset of the shadow in pixels. Positive values move down, negative up.
|
|
1427
|
+
* @default 0
|
|
1428
|
+
* @example 4
|
|
1429
|
+
*/
|
|
1430
|
+
offsetY: number;
|
|
1431
|
+
/**
|
|
1432
|
+
* @description The blur radius of the shadow in pixels. Must be 0 or greater.
|
|
1433
|
+
* @default 0
|
|
1434
|
+
* @example 8
|
|
1435
|
+
*/
|
|
1436
|
+
blur: number;
|
|
1437
|
+
/**
|
|
1438
|
+
* @description The shadow color using hexadecimal color notation.
|
|
1439
|
+
* @default #000000
|
|
1440
|
+
* @example #000000
|
|
1441
|
+
*/
|
|
1442
|
+
color: string;
|
|
1443
|
+
/**
|
|
1444
|
+
* @description The opacity of the shadow where 1 is opaque and 0 is transparent.
|
|
1445
|
+
* @default 0.5
|
|
1446
|
+
* @example 0.7
|
|
1447
|
+
*/
|
|
1448
|
+
opacity: number;
|
|
1449
|
+
};
|
|
1450
|
+
/** @description Background styling properties for the text bounding box. */
|
|
1451
|
+
RichTextBackground: {
|
|
1452
|
+
/**
|
|
1453
|
+
* @description The background color using hexadecimal color notation.
|
|
1454
|
+
* @example #000000
|
|
1455
|
+
*/
|
|
1456
|
+
color?: string;
|
|
1457
|
+
/**
|
|
1458
|
+
* @description The opacity of the background where 1 is opaque and 0 is transparent.
|
|
1459
|
+
* @default 1
|
|
1460
|
+
* @example 0.5
|
|
1461
|
+
*/
|
|
1462
|
+
opacity: number;
|
|
1463
|
+
/**
|
|
1464
|
+
* @description The border radius of the background box in pixels. Must be 0 or greater.
|
|
1465
|
+
* @default 0
|
|
1466
|
+
* @example 10
|
|
1467
|
+
*/
|
|
1468
|
+
borderRadius: number;
|
|
1469
|
+
};
|
|
1470
|
+
/** @description Text alignment properties (horizontal and vertical). */
|
|
1471
|
+
RichTextAlignment: {
|
|
1472
|
+
/**
|
|
1473
|
+
* @description The horizontal alignment of the text.
|
|
1474
|
+
* @default center
|
|
1475
|
+
* @example center
|
|
1476
|
+
* @enum {string}
|
|
1477
|
+
*/
|
|
1478
|
+
horizontal: "left" | "center" | "right";
|
|
1479
|
+
/**
|
|
1480
|
+
* @description The vertical alignment of the text within the bounding box.
|
|
1481
|
+
* @default middle
|
|
1482
|
+
* @example middle
|
|
1483
|
+
* @enum {string}
|
|
1484
|
+
*/
|
|
1485
|
+
vertical: "top" | "middle" | "bottom";
|
|
1486
|
+
};
|
|
1487
|
+
/** @description Animation properties for text entrance effects. */
|
|
1488
|
+
RichTextAnimation: {
|
|
1489
|
+
/**
|
|
1490
|
+
* @description The animation preset to apply. Available presets: <ul>
|
|
1491
|
+
* <li>`fadeIn` - fadeIn in animation</li>
|
|
1492
|
+
* <li>`slideIn` - slide in from a direction</li>
|
|
1493
|
+
* <li>`typewriter` - typewriter effect</li>
|
|
1494
|
+
* <li>`ascend` - ascend from a direction</li>
|
|
1495
|
+
* <li>`shift` - shift in from a direction</li>
|
|
1496
|
+
* <li>`movingLetters` - letters move in from a direction</li>
|
|
1497
|
+
* </ul>
|
|
1498
|
+
* @example shift
|
|
1499
|
+
* @enum {string}
|
|
1500
|
+
*/
|
|
1501
|
+
preset: "fadeIn" | "slideIn" | "typewriter" | "ascend" | "shift" | "movingLetters";
|
|
1502
|
+
/**
|
|
1503
|
+
* @description Animation speed multiplier. Must be between 0.1 and 10. Higher is faster.
|
|
1504
|
+
* @default 1
|
|
1505
|
+
* @example 1.5
|
|
1506
|
+
*/
|
|
1507
|
+
speed: number;
|
|
1508
|
+
/**
|
|
1509
|
+
* @description Override animation duration in seconds. If not specified, calculated based on text length and speed. Must be between 0.1 and 30 seconds.
|
|
1510
|
+
* @example 2
|
|
1511
|
+
*/
|
|
1512
|
+
duration?: number;
|
|
1513
|
+
/**
|
|
1514
|
+
* @description Animation style - animate by character or by word. Only applicable for typewriter and shift animations.
|
|
1515
|
+
* @example character
|
|
1516
|
+
* @enum {string}
|
|
1517
|
+
*/
|
|
1518
|
+
style?: "character" | "word";
|
|
1519
|
+
/**
|
|
1520
|
+
* @description Direction for directional animations. Required for slideIn, ascend, shift, and movingLetters presets. <ul>
|
|
1521
|
+
* <li>`ascend` - supports: up, down</li>
|
|
1522
|
+
* <li>`shift` - supports: left, right, up, down</li>
|
|
1523
|
+
* <li>`slideIn` - supports: left, right, up, down</li>
|
|
1524
|
+
* <li>`movingLetters` - supports: left, right, up, down</li>
|
|
1525
|
+
* </ul>
|
|
1526
|
+
* @example up
|
|
1527
|
+
* @enum {string}
|
|
1528
|
+
*/
|
|
1529
|
+
direction?: "left" | "right" | "up" | "down";
|
|
1530
|
+
};
|
|
1531
|
+
/** @description Font properties for captions text. */
|
|
1532
|
+
CaptionFont: {
|
|
1533
|
+
/**
|
|
1534
|
+
* @description The font family name. This must be Family name embedded in the font, i.e. "Open Sans".
|
|
1535
|
+
* @example Open Sans
|
|
1536
|
+
*/
|
|
1537
|
+
family?: string;
|
|
1538
|
+
/**
|
|
1539
|
+
* @description The text color using hexadecimal color notation.
|
|
1540
|
+
* @example #ffffff
|
|
1541
|
+
*/
|
|
1542
|
+
color?: string;
|
|
1543
|
+
/**
|
|
1544
|
+
* @description The opacity of the text where 1 is opaque and 0 is transparent.
|
|
1545
|
+
* @example 0.8
|
|
1546
|
+
*/
|
|
1547
|
+
opacity?: number;
|
|
1548
|
+
/**
|
|
1549
|
+
* @description The size of the font in pixels (px).
|
|
1550
|
+
* @example 24
|
|
1551
|
+
*/
|
|
1552
|
+
size?: number;
|
|
1553
|
+
/**
|
|
1554
|
+
* @description The line height of the font as a ratio of the font size.
|
|
1555
|
+
* @example 0.85
|
|
1556
|
+
*/
|
|
1557
|
+
lineHeight?: number;
|
|
1558
|
+
/**
|
|
1559
|
+
* @description The stroke color of the font using hexadecimal color notation.
|
|
1560
|
+
* @example #ff6600
|
|
1561
|
+
*/
|
|
1562
|
+
stroke?: string;
|
|
1563
|
+
/**
|
|
1564
|
+
* @description The width of the stroke in pixels.
|
|
1565
|
+
* @example 0.8
|
|
1566
|
+
*/
|
|
1567
|
+
strokeWidth?: number;
|
|
1568
|
+
};
|
|
1569
|
+
/** @description Displays a background box behind the caption text. */
|
|
1570
|
+
CaptionBackground: {
|
|
1571
|
+
/**
|
|
1572
|
+
* @description The background color using hexadecimal color notation.
|
|
1573
|
+
* @example #000000
|
|
1574
|
+
*/
|
|
1575
|
+
color?: string;
|
|
1576
|
+
/**
|
|
1577
|
+
* @description The opacity of the background color.
|
|
1578
|
+
* @example 0.4
|
|
1579
|
+
*/
|
|
1580
|
+
opacity?: number;
|
|
1581
|
+
/**
|
|
1582
|
+
* @description The padding inside the background box in pixels.
|
|
1583
|
+
* @example 30
|
|
1584
|
+
*/
|
|
1585
|
+
padding?: number;
|
|
1586
|
+
/**
|
|
1587
|
+
* @description The border radius of the background box in pixels.
|
|
1588
|
+
* @example 18
|
|
1589
|
+
*/
|
|
1590
|
+
borderRadius?: number;
|
|
1591
|
+
};
|
|
1592
|
+
/** @description The margin properties for captions. Margins are used to position the caption text and background on the screen. */
|
|
1593
|
+
CaptionMargin: {
|
|
1594
|
+
/**
|
|
1595
|
+
* @description The margin above the text. Pushes captions down the screen.
|
|
1596
|
+
* @example 0.25
|
|
1597
|
+
*/
|
|
1598
|
+
top?: number;
|
|
1599
|
+
/**
|
|
1600
|
+
* @description The margin to the left of the text. Pushes captions to the right.
|
|
1601
|
+
* @example 0.05
|
|
1602
|
+
*/
|
|
1603
|
+
left?: number;
|
|
1604
|
+
/**
|
|
1605
|
+
* @description The margin to the right of the text. Pushes captions to the left.
|
|
1606
|
+
* @example 0.45
|
|
1607
|
+
*/
|
|
1608
|
+
right?: number;
|
|
1609
|
+
};
|
|
1610
|
+
/** @description Chroma key, commonly known as green screen, is a technique that replaces a specific color in a video with a different background image or video, enabling seamless integration of diverse environments. */
|
|
1611
|
+
ChromaKey: {
|
|
1612
|
+
/**
|
|
1613
|
+
* @description The chroma key color as a hex value. For a green screen, use a green hex value.
|
|
1614
|
+
* @example #00b140
|
|
1615
|
+
*/
|
|
1616
|
+
color?: string;
|
|
1617
|
+
/**
|
|
1618
|
+
* @description Pixels within this distance from the key color are eliminated by setting their alpha values to zero.
|
|
1619
|
+
* @example 150
|
|
1620
|
+
*/
|
|
1621
|
+
threshold?: number;
|
|
1622
|
+
/**
|
|
1623
|
+
* @description Pixels within the halo distance from the threshold boundary are given an increasing alpha value based on their distance from the threshold.
|
|
1624
|
+
* @example 100
|
|
1625
|
+
*/
|
|
1626
|
+
halo?: number;
|
|
1627
|
+
};
|
|
1628
|
+
/**
|
|
1629
|
+
* @description Use a Tween to [animate properties over time](/docs/guide/architecting-an-application/animations/). The following properties are currently supported and can be animated:
|
|
1630
|
+
* <ul>
|
|
1631
|
+
* <li>Opacity - animate the transparency of a clip.</li>
|
|
1632
|
+
* <li>Offset - animate the x and y position of a clip.</li>
|
|
1633
|
+
* <li>Rotation - animate the rotation of a clip.</li>
|
|
1634
|
+
* <li>Skew - animate the horizontal and vertical shearing effect.</li>
|
|
1635
|
+
* <li>Volume - animate the audio volume of a clip.</li>
|
|
1636
|
+
* </ul>
|
|
1637
|
+
*/
|
|
1638
|
+
Tween: {
|
|
1639
|
+
/**
|
|
1640
|
+
* @description The initial property value at the start of the animation.
|
|
1641
|
+
* @example 0
|
|
1642
|
+
*/
|
|
1643
|
+
from?: unknown;
|
|
1644
|
+
/**
|
|
1645
|
+
* @description The final property value at the end of the animation.
|
|
1646
|
+
* @example 1
|
|
1647
|
+
*/
|
|
1648
|
+
to?: unknown;
|
|
1649
|
+
/**
|
|
1650
|
+
* @description The time in seconds when the animation starts, relative to the clip, not the timeline.
|
|
1651
|
+
* @example 0
|
|
1652
|
+
*/
|
|
1653
|
+
start?: number;
|
|
1654
|
+
/**
|
|
1655
|
+
* @description The duration of the animation in seconds.
|
|
1656
|
+
* @example 3
|
|
1657
|
+
*/
|
|
1658
|
+
length?: number;
|
|
1659
|
+
/**
|
|
1660
|
+
* @description The interpolation method to use for the animation. Available options are: <ul>
|
|
1661
|
+
* <li>`linear` - a linear interpolation between the start and end values.</li>
|
|
1662
|
+
* <li>`bezier` - a bezier curve interpolation between the start and end values.</li>
|
|
1663
|
+
* <li>`constant` - an interpolation where the property instantly jumps from the start to the end value, without any gradual transition.</li>
|
|
1664
|
+
* </ul>
|
|
1665
|
+
* @example bezier
|
|
1666
|
+
* @enum {string}
|
|
1667
|
+
*/
|
|
1668
|
+
interpolation?: "linear" | "bezier" | "constant";
|
|
1669
|
+
/**
|
|
1670
|
+
* @description The easing function to use for the animation. Easing controls the rate of change of the animated value, allowing for more natural motion by speeding up or slowing down the animation at different points. Only applicable if interpolation is set to `bezier`.
|
|
1671
|
+
* @enum {string}
|
|
1672
|
+
*/
|
|
1673
|
+
easing?: "ease" | "easeIn" | "easeOut" | "easeInOut" | "easeInQuad" | "easeInCubic" | "easeInQuart" | "easeInQuint" | "easeInSine" | "easeInExpo" | "easeInCirc" | "easeInBack" | "easeOutQuad" | "easeOutCubic" | "easeOutQuart" | "easeOutQuint" | "easeOutSine" | "easeOutExpo" | "easeOutCirc" | "easeOutBack" | "easeInOutQuad" | "easeInOutCubic" | "easeInOutQuart" | "easeInOutQuint" | "easeInOutSine" | "easeInOutExpo" | "easeInOutCirc" | "easeInOutBack";
|
|
1674
|
+
};
|
|
1675
|
+
/** @description A merge field consists of a key; `find`, and a value; `replace`. Merge fields can be used to replace placeholders within the JSON edit to create re-usable templates. Placeholders should be a string with double brace delimiters, i.e. `"{{NAME}}"`. A placeholder can be used for any value within the JSON edit. */
|
|
1676
|
+
MergeField: {
|
|
1677
|
+
/**
|
|
1678
|
+
* @description The string to find <u>without</u> delimiters.
|
|
1679
|
+
* @example NAME
|
|
1680
|
+
*/
|
|
1681
|
+
find: string;
|
|
1682
|
+
/**
|
|
1683
|
+
* @description The replacement value. The replacement can be any valid JSON type - string, boolean, number, etc...
|
|
1684
|
+
* @example Jane
|
|
1685
|
+
*/
|
|
1686
|
+
replace: unknown;
|
|
1687
|
+
};
|
|
1688
|
+
/** @description The output format, render range and type of media to generate. */
|
|
1689
|
+
Output: {
|
|
1690
|
+
/**
|
|
1691
|
+
* @description The output format and type of media file to generate. <ul>
|
|
1692
|
+
* <li>`mp4` - mp4 video file</li>
|
|
1693
|
+
* <li>`gif` - animated gif</li>
|
|
1694
|
+
* <li>`jpg` - jpg image file</li>
|
|
1695
|
+
* <li>`png` - png image file</li>
|
|
1696
|
+
* <li>`bmp` - bmp image file</li>
|
|
1697
|
+
* <li>`mp3` - mp3 audio file (audio only)</li>
|
|
1698
|
+
* </ul>
|
|
1699
|
+
* @example mp4
|
|
1700
|
+
* @enum {string}
|
|
1701
|
+
*/
|
|
1702
|
+
format: "mp4" | "gif" | "mp3" | "jpg" | "png" | "bmp";
|
|
1703
|
+
/**
|
|
1704
|
+
* @description The preset output resolution of the video or image. For custom sizes use the `size` property. <ul>
|
|
1705
|
+
* <li>`preview` - 512px x 288px @ 15fps</li>
|
|
1706
|
+
* <li>`mobile` - 640px x 360px @ 25fps</li>
|
|
1707
|
+
* <li>`sd` - 1024px x 576px @ 25fps</li>
|
|
1708
|
+
* <li>`hd` - 1280px x 720px @ 25fps</li>
|
|
1709
|
+
* <li>`1080` - 1920px x 1080px @ 25fps</li>
|
|
1710
|
+
* <li>`4k` - 3840px x 2160px @ 25fps</li>
|
|
1711
|
+
* </ul>
|
|
1712
|
+
* @example hd
|
|
1713
|
+
* @enum {string}
|
|
1714
|
+
*/
|
|
1715
|
+
resolution?: "preview" | "mobile" | "sd" | "hd" | "1080" | "4k";
|
|
1716
|
+
/**
|
|
1717
|
+
* @description The aspect ratio (shape) of the video or image. Useful for social media output formats. Options are: <ul>
|
|
1718
|
+
* <li>`16:9` (default) - regular landscape/horizontal aspect ratio</li>
|
|
1719
|
+
* <li>`9:16` - vertical/portrait aspect ratio</li>
|
|
1720
|
+
* <li>`1:1` - square aspect ratio</li>
|
|
1721
|
+
* <li>`4:5` - short vertical/portrait aspect ratio</li>
|
|
1722
|
+
* <li>`4:3` - legacy TV aspect ratio</li>
|
|
1723
|
+
* </ul>
|
|
1724
|
+
* @example 16:9
|
|
1725
|
+
* @enum {string}
|
|
1726
|
+
*/
|
|
1727
|
+
aspectRatio?: "16:9" | "9:16" | "1:1" | "4:5" | "4:3";
|
|
1728
|
+
size?: components["schemas"]["Size"];
|
|
1729
|
+
/**
|
|
1730
|
+
* @description Override the default frames per second. Useful for when the source footage is recorded at 30fps, i.e. on mobile devices. Lower frame rates can be used to add cinematic quality (24fps) or to create smaller file size/faster render times or animated gifs (12 or 15fps). Default is 25fps. <ul>
|
|
1731
|
+
* <li>`12` - 12fps</li>
|
|
1732
|
+
* <li>`15` - 15fps</li>
|
|
1733
|
+
* <li>`24` - 24fps</li>
|
|
1734
|
+
* <li>`23.976` - 23.976fps</li>
|
|
1735
|
+
* <li>`25` (default) - 25fps</li>
|
|
1736
|
+
* <li>`29.97` - 29.97fps</li>
|
|
1737
|
+
* <li>`30` - 30fps</li>
|
|
1738
|
+
* <li>`48` - 48fps</li>
|
|
1739
|
+
* <li>`50` - 50fps</li>
|
|
1740
|
+
* <li>`59.94` - 59.94fps</li>
|
|
1741
|
+
* <li>`60` - 60fps</li>
|
|
1742
|
+
* </ul>
|
|
1743
|
+
* @example 25
|
|
1744
|
+
* @enum {number}
|
|
1745
|
+
*/
|
|
1746
|
+
fps?: 12 | 15 | 23.976 | 24 | 25 | 29.97 | 30 | 48 | 50 | 59.94 | 60;
|
|
1747
|
+
/**
|
|
1748
|
+
* @description Override the resolution and scale the video or image to render at a different size. When using scaleTo the asset should be edited at the resolution dimensions, i.e. use font sizes that look best at HD, then use scaleTo to output the file at SD and the text will be scaled to the correct size. This is useful if you want to create multiple asset sizes. <ul>
|
|
1749
|
+
* <li>`preview` - 512px x 288px @ 15fps</li>
|
|
1750
|
+
* <li>`mobile` - 640px x 360px @ 25fps</li>
|
|
1751
|
+
* <li>`sd` - 1024px x 576px @25fps</li>
|
|
1752
|
+
* <li>`hd` - 1280px x 720px @25fps</li>
|
|
1753
|
+
* <li>`1080` - 1920px x 1080px @25fps</li>
|
|
1754
|
+
* </ul>
|
|
1755
|
+
* @enum {string}
|
|
1756
|
+
*/
|
|
1757
|
+
scaleTo?: "preview" | "mobile" | "sd" | "hd" | "1080";
|
|
1758
|
+
/**
|
|
1759
|
+
* @description Adjust the output quality of the video, image or audio. Adjusting quality affects render speed, download speeds and storage requirements due to file size. The default `medium` provides the most optimized choice for all three factors. <ul>
|
|
1760
|
+
* <li>`verylow` - reduced quality, smallest file size</li>
|
|
1761
|
+
* <li>`low` - slightly reduced quality, smaller file size</li>
|
|
1762
|
+
* <li>`medium` (default) - optimized quality, render speeds and file size</li>
|
|
1763
|
+
* <li>`high` - slightly increased quality, larger file size</li>
|
|
1764
|
+
* <li>`veryhigh` - highest quality, largest file size</li>
|
|
1765
|
+
* </ul>
|
|
1766
|
+
* @example medium
|
|
1767
|
+
* @enum {string}
|
|
1768
|
+
*/
|
|
1769
|
+
quality?: "verylow" | "low" | "medium" | "high" | "veryhigh";
|
|
1770
|
+
/**
|
|
1771
|
+
* @description Loop settings for gif files. Set to `true` to loop, `false` to play only once.
|
|
1772
|
+
* @example true
|
|
1773
|
+
*/
|
|
1774
|
+
repeat?: boolean;
|
|
1775
|
+
/**
|
|
1776
|
+
* @description Mute the audio track of the output video. Set to `true` to mute, `false` to un-mute.
|
|
1777
|
+
* @example false
|
|
1778
|
+
*/
|
|
1779
|
+
mute?: boolean;
|
|
1780
|
+
range?: components["schemas"]["Range"];
|
|
1781
|
+
/** @description Generate a poster image from a specific point on the timeline. */
|
|
1782
|
+
poster?: components["schemas"]["Poster"];
|
|
1783
|
+
/** @description Generate a thumbnail image from a specific point on the timeline. */
|
|
1784
|
+
thumbnail?: components["schemas"]["Thumbnail"];
|
|
1785
|
+
/** @description Specify the storage locations and hosting services to send rendered videos to. */
|
|
1786
|
+
destinations?: components["schemas"]["Destinations"][];
|
|
1787
|
+
};
|
|
1788
|
+
/** @description Set a custom size for a video or image in pixels. When using a custom size omit the `resolution` and `aspectRatio`. Custom sizes must be divisible by 2 based on the encoder specifications. */
|
|
1789
|
+
Size: {
|
|
1790
|
+
/**
|
|
1791
|
+
* @description Set a custom width for the video or image file in pixels. Value must be divisible by 2. Maximum video width is 1920px, maximum image width is 4096px.
|
|
1792
|
+
* @example 1200
|
|
1793
|
+
*/
|
|
1794
|
+
width?: number;
|
|
1795
|
+
/**
|
|
1796
|
+
* @description Set a custom height for the video or image file in pixels. Value must be divisible by 2. Maximum video height is 1920px, maximum image height is 4096px.
|
|
1797
|
+
* @example 800
|
|
1798
|
+
*/
|
|
1799
|
+
height?: number;
|
|
1800
|
+
};
|
|
1801
|
+
/** @description Specify a time range to render, i.e. to render only a portion of a video or audio file. Omit this setting to export the entire video. Range can also be used to render a frame at a specific time point - setting a range and output format as `jpg` will output a single frame image at the range `start` point. */
|
|
1802
|
+
Range: {
|
|
1803
|
+
/**
|
|
1804
|
+
* Format: float
|
|
1805
|
+
* @description The point on the timeline, in seconds, to start the render from - i.e. start at second 3.
|
|
1806
|
+
* @example 3
|
|
1807
|
+
*/
|
|
1808
|
+
start?: number;
|
|
1809
|
+
/**
|
|
1810
|
+
* Format: float
|
|
1811
|
+
* @description The length of the portion of the video or audio to render - i.e. render 6 seconds of the video.
|
|
1812
|
+
* @example 6
|
|
1813
|
+
*/
|
|
1814
|
+
length?: number;
|
|
1815
|
+
};
|
|
1816
|
+
/** @description Generate a poster image for the video at a specific point from the timeline. The poster image size will match the size of the output video. */
|
|
1817
|
+
Poster: {
|
|
1818
|
+
/**
|
|
1819
|
+
* @description The point on the timeline in seconds to capture a single frame to use as the poster image.
|
|
1820
|
+
* @example 1
|
|
1821
|
+
*/
|
|
1822
|
+
capture: number;
|
|
1823
|
+
};
|
|
1824
|
+
/** @description Generate a thumbnail image for the video or image at a specific point from the timeline. */
|
|
1825
|
+
Thumbnail: {
|
|
1826
|
+
/**
|
|
1827
|
+
* @description The point on the timeline in seconds to capture a single frame to use as the thumbnail image.
|
|
1828
|
+
* @example 1
|
|
1829
|
+
*/
|
|
1830
|
+
capture: number;
|
|
1831
|
+
/**
|
|
1832
|
+
* @description Scale the thumbnail size to a fraction of the viewport size - i.e. setting the scale to 0.5 will scale the thumbnail to half the size of the viewport.
|
|
1833
|
+
* @example 0.3
|
|
1834
|
+
*/
|
|
1835
|
+
scale: number;
|
|
1836
|
+
};
|
|
1837
|
+
/**
|
|
1838
|
+
* @description A destination is a location where assets can be sent to for serving or hosting. Videos, images and audio files that are rendered by the [Edit API](#shotstack-edit) and [source](#tocs_source) and [rendition](#tocs_rendition) files generated by the [Ingest API](#shotstack-ingest) can be sent to destinations. You can also fetch a file from any public URL and [transfer](#transfer-asset) it to a destination. A file can be sent to one or more destinations including 3rd party destinations.
|
|
1839
|
+
*
|
|
1840
|
+
* By default all ingested and generated assets are automatically sent to the [Shotstack hosting destination](https://shotstack.io/docs/guide/serving-assets/hosting/). You can [opt-out](https://shotstack.io/docs/guide/serving-assets/self-host/) from by setting the Shotstack destination **exclude** property to **true**.
|
|
1841
|
+
*/
|
|
1842
|
+
Destinations: components["schemas"]["ShotstackDestination"] | components["schemas"]["MuxDestination"] | components["schemas"]["S3Destination"] | components["schemas"]["GoogleCloudStorageDestination"] | components["schemas"]["GoogleDriveDestination"] | components["schemas"]["VimeoDestination"];
|
|
1843
|
+
/** @description Send videos and assets to the [Shotstack hosting and CDN](https://shotstack.io/docs/guide/serving-assets/destinations/shotstack/) service. This destination is enabled by default. */
|
|
1844
|
+
ShotstackDestination: {
|
|
1845
|
+
/**
|
|
1846
|
+
* @description The destination to send assets to - set to `shotstack` for Shotstack hosting and CDN.
|
|
1847
|
+
* @default shotstack
|
|
1848
|
+
* @example shotstack
|
|
1849
|
+
*/
|
|
1850
|
+
provider: string;
|
|
1851
|
+
/**
|
|
1852
|
+
* @description Set to `true` to [opt-out](https://shotstack.io/docs/guide/serving-assets/self-host/) from the Shotstack hosting and CDN service. All files must be downloaded within 24 hours of rendering.
|
|
1853
|
+
* @example false
|
|
1854
|
+
*/
|
|
1855
|
+
exclude?: boolean;
|
|
1856
|
+
};
|
|
1857
|
+
/** @description Send videos to the [Mux](https://shotstack.io/docs/guide/serving-assets/destinations/mux/) video hosting and streaming service. Mux credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/mux), not in the request. */
|
|
1858
|
+
MuxDestination: {
|
|
1859
|
+
/**
|
|
1860
|
+
* @description The destination to send video to - set to `mux` for Mux.
|
|
1861
|
+
* @default mux
|
|
1862
|
+
* @example mux
|
|
1863
|
+
*/
|
|
1864
|
+
provider: string;
|
|
1865
|
+
/** @description Additional Mux configuration and features. */
|
|
1866
|
+
options?: components["schemas"]["MuxDestinationOptions"];
|
|
1867
|
+
};
|
|
1868
|
+
/** @description Pass additional options to control how Mux processes video. Currently supports playback_policy and passthrough options. */
|
|
1869
|
+
MuxDestinationOptions: {
|
|
1870
|
+
/** @description Sets the Mux `playback_policy` option. Value is an array of strings - use `public`, `signed`, or both. */
|
|
1871
|
+
playbackPolicy?: ("public" | "signed")[];
|
|
1872
|
+
/** @description Sets the Mux `passthrough` option. Max 255 characters. */
|
|
1873
|
+
passthrough?: string;
|
|
1874
|
+
};
|
|
1875
|
+
/** @description Send videos and assets to an [Amazon S3](https://shotstack.io/docs/guide/serving-assets/destinations/s3/) bucket. Send files to any region with your own prefix and filename. AWS credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/s3), not in the request. */
|
|
1876
|
+
S3Destination: {
|
|
1877
|
+
/**
|
|
1878
|
+
* @description The destination to send assets to - set to `s3` for S3.
|
|
1879
|
+
* @default s3
|
|
1880
|
+
* @example s3
|
|
1881
|
+
*/
|
|
1882
|
+
provider: string;
|
|
1883
|
+
/** @description Additional S3 configuration options. */
|
|
1884
|
+
options?: components["schemas"]["S3DestinationOptions"];
|
|
1885
|
+
};
|
|
1886
|
+
/** @description Pass additional options to control how files are stored in S3. */
|
|
1887
|
+
S3DestinationOptions: {
|
|
1888
|
+
/**
|
|
1889
|
+
* @description Choose the region to send the file to. Must be a valid [AWS region](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) string like `us-east-1` or `ap-southeast-2`.
|
|
1890
|
+
* @example us-east-1
|
|
1891
|
+
*/
|
|
1892
|
+
region: string;
|
|
1893
|
+
/**
|
|
1894
|
+
* @description The bucket name to send files to. The bucket must exist in the AWS account before files can be sent.
|
|
1895
|
+
* @example my-bucket
|
|
1896
|
+
*/
|
|
1897
|
+
bucket: string;
|
|
1898
|
+
/**
|
|
1899
|
+
* @description A prefix for the file being sent. This is typically a folder name, i.e. `videos` or `customerId/videos`.
|
|
1900
|
+
* @example my-renders
|
|
1901
|
+
*/
|
|
1902
|
+
prefix?: string;
|
|
1903
|
+
/**
|
|
1904
|
+
* @description Use your own filename instead of the default filenames generated by Shotstack. Note: omit the file extension as this will be appended depending on the output format. Also `-poster.jpg` and `-thumb.jpg` will be appended for poster and thumbnail images.
|
|
1905
|
+
* @example my-file
|
|
1906
|
+
*/
|
|
1907
|
+
filename?: string;
|
|
1908
|
+
/**
|
|
1909
|
+
* @description Sets the S3 Access Control List (acl) permissions. Default is `private`. Must use a valid S3 [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl).
|
|
1910
|
+
* @example public-read
|
|
1911
|
+
*/
|
|
1912
|
+
acl?: string;
|
|
1913
|
+
};
|
|
1914
|
+
/** @description Send videos and assets to a [Google Cloud Storage](https://cloud.google.com/storage) bucket. Send files with your own prefix and filename. Google Cloud credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/google-cloud-storage), not in the request. */
|
|
1915
|
+
GoogleCloudStorageDestination: {
|
|
1916
|
+
/**
|
|
1917
|
+
* @description The destination to send assets to - set to `google-cloud-storage` for Google Cloud Storage.
|
|
1918
|
+
* @default google-cloud-storage
|
|
1919
|
+
* @example google-cloud-storage
|
|
1920
|
+
*/
|
|
1921
|
+
provider: string;
|
|
1922
|
+
/** @description Additional Google Cloud Storage configuration options. */
|
|
1923
|
+
options?: components["schemas"]["GoogleCloudStorageDestinationOptions"];
|
|
1924
|
+
};
|
|
1925
|
+
/** @description Pass additional options to control how files are stored in Google Cloud Storage. */
|
|
1926
|
+
GoogleCloudStorageDestinationOptions: {
|
|
1927
|
+
/**
|
|
1928
|
+
* @description The bucket name to send files to. The bucket must exist in the Google Cloud Storage account before files can be sent.
|
|
1929
|
+
* @example my-bucket
|
|
1930
|
+
*/
|
|
1931
|
+
bucket: string;
|
|
1932
|
+
/**
|
|
1933
|
+
* @description A prefix for the file being sent. This is typically a folder name, i.e. `videos` or `customerId/videos`.
|
|
1934
|
+
* @example my-renders
|
|
1935
|
+
*/
|
|
1936
|
+
prefix?: string;
|
|
1937
|
+
/**
|
|
1938
|
+
* @description Use your own filename instead of the default filenames generated by Shotstack. Note: omit the file extension as this will be appended depending on the output format. Also `-poster.jpg` and `-thumb.jpg` will be appended for poster and thumbnail images.
|
|
1939
|
+
* @example my-file
|
|
1940
|
+
*/
|
|
1941
|
+
filename?: string;
|
|
1942
|
+
};
|
|
1943
|
+
/** @description Send rendered videos and assets to the [Google Drive](https://shotstack.io/docs/guide/serving-assets/destinations/google-drive/) cloud storage service. Google Drive uses OAuth and you must authenticate and link your Google account via [dashboard](https://dashboard.shotstack.io/integrations/google-drive), not in the request. */
|
|
1944
|
+
GoogleDriveDestination: {
|
|
1945
|
+
/**
|
|
1946
|
+
* @description The destination to send assets to - set to `google-drive` for Google Drive.
|
|
1947
|
+
* @default google-drive
|
|
1948
|
+
* @example google-drive
|
|
1949
|
+
*/
|
|
1950
|
+
provider: string;
|
|
1951
|
+
/** @description Additional Google Drive configuration and features. */
|
|
1952
|
+
options: components["schemas"]["GoogleDriveDestinationOptions"];
|
|
1953
|
+
};
|
|
1954
|
+
/** @description Pass the folder ID and options to configure how assets are stored in Google Drive. */
|
|
1955
|
+
GoogleDriveDestinationOptions: {
|
|
1956
|
+
/**
|
|
1957
|
+
* @description The Google Drive folder ID where asset will be stored. The folder ID is required and can be retrieved from the URL when logged in to Google Drive, e.g. <a href="#">https://drive.google.com/drive/u/0/folders/1r-eTY6OLO8tzQRKwMyq-fIrQ_7AJEI6A</a>.
|
|
1958
|
+
* @example 1r-eTY6OLO8tzQRKwMyq-fIrQ_7AJEI6A
|
|
1959
|
+
*/
|
|
1960
|
+
folderId: string;
|
|
1961
|
+
/**
|
|
1962
|
+
* @description Use your own filename instead of the default filenames generated by Shotstack. Note: omit the file extension as this will be appended depending on the output format. Also `-poster.jpg` and `-thumb.jpg` will be appended for poster and thumbnail images.
|
|
1963
|
+
* @example my-file
|
|
1964
|
+
*/
|
|
1965
|
+
filename?: string;
|
|
1966
|
+
};
|
|
1967
|
+
/** @description Send videos to [Vimeo](https://shotstack.io/docs/guide/serving-assets/destinations/vimeo/) video hosting and streaming service. Vimeo credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/vimeo), not in the request. */
|
|
1968
|
+
VimeoDestination: {
|
|
1969
|
+
/**
|
|
1970
|
+
* @description The destination to send video to - set to `vimeo` for Vimeo.
|
|
1971
|
+
* @default vimeo
|
|
1972
|
+
* @example vimeo
|
|
1973
|
+
*/
|
|
1974
|
+
provider: string;
|
|
1975
|
+
/** @description Additional Vimeo configuration and features. */
|
|
1976
|
+
options?: components["schemas"]["VimeoDestinationOptions"];
|
|
1977
|
+
};
|
|
1978
|
+
/** @description Pass additional options to control how Vimeo publishes video, including name, description and privacy settings. */
|
|
1979
|
+
VimeoDestinationOptions: {
|
|
1980
|
+
/** @description A name or title for the video that will be displayed on the Vimeo website. */
|
|
1981
|
+
name?: string;
|
|
1982
|
+
/** @description A description of the video that will be displayed on the Vimeo website. */
|
|
1983
|
+
description?: string;
|
|
1984
|
+
/** @description Options to control the visibility of videos and privacy features. */
|
|
1985
|
+
privacy?: components["schemas"]["VimeoDestinationPrivacyOptions"];
|
|
1986
|
+
};
|
|
1987
|
+
/** @description Options to control the visibility of videos and privacy features. */
|
|
1988
|
+
VimeoDestinationPrivacyOptions: {
|
|
1989
|
+
/**
|
|
1990
|
+
* @description Set who can view the videos. Available options are: <ul>
|
|
1991
|
+
* <li>`anybody` - Anyone can view the video.</li>
|
|
1992
|
+
* <li>`nobody` - Only the video owner can view the video.</li>
|
|
1993
|
+
* <li>`contacts` - Only contacts can view the video.</li>
|
|
1994
|
+
* <li>`password` - A password is required to view the video.</li>
|
|
1995
|
+
* <li>`unlisted` - The video is not listed on Vimeo.</li>
|
|
1996
|
+
* </ul>
|
|
1997
|
+
* @enum {string}
|
|
1998
|
+
*/
|
|
1999
|
+
view?: "anybody" | "nobody" | "contacts" | "password" | "unlisted";
|
|
2000
|
+
/**
|
|
2001
|
+
* @description Set who can embed the video. Available options are: <ul>
|
|
2002
|
+
* <li>`public` - Anyone can embed the video.</li>
|
|
2003
|
+
* <li>`private` - Only the video owner can embed the video.</li>
|
|
2004
|
+
* <li>`whitelist` - Only whitelisted domains can embed the video.</li>
|
|
2005
|
+
* </ul>
|
|
2006
|
+
* @enum {string}
|
|
2007
|
+
*/
|
|
2008
|
+
embed?: "public" | "private" | "whitelist";
|
|
2009
|
+
/**
|
|
2010
|
+
* @description Set who can comment on the video. Available options are: <ul>
|
|
2011
|
+
* <li>`anybody` - Anyone can comment on the video.</li>
|
|
2012
|
+
* <li>`nobody` - Only the video owner can comment on the video.</li>
|
|
2013
|
+
* <li>`contacts` - Only contacts can comment on the video.</li>
|
|
2014
|
+
* </ul>
|
|
2015
|
+
* @enum {string}
|
|
2016
|
+
*/
|
|
2017
|
+
comments?: "anybody" | "nobody" | "contacts";
|
|
2018
|
+
};
|
|
2019
|
+
/** @description A template is a saved [Edit](#tocs_edit) than can be loaded and re-used. */
|
|
2020
|
+
Template: {
|
|
2021
|
+
/**
|
|
2022
|
+
* @description The template name
|
|
2023
|
+
* @example My template
|
|
2024
|
+
*/
|
|
2025
|
+
name: string;
|
|
2026
|
+
template?: components["schemas"]["Edit"];
|
|
2027
|
+
};
|
|
2028
|
+
/** @description Configure the id and optional merge fields to render a template by id. */
|
|
2029
|
+
TemplateRender: {
|
|
2030
|
+
/**
|
|
2031
|
+
* @description The id of the template to render in UUID format.
|
|
2032
|
+
* @example f5493c17-d01f-445c-bb49-535fae65f219
|
|
2033
|
+
*/
|
|
2034
|
+
id: string;
|
|
2035
|
+
/** @description An array of key/value pairs that provides an easy way to create templates with placeholders. The placeholders can be used to find and replace keys with values. For example you can search for the placeholder `{{NAME}}` and replace it with the value `Jane`. */
|
|
2036
|
+
merge?: components["schemas"]["MergeField"][];
|
|
2037
|
+
};
|
|
2038
|
+
/**
|
|
2039
|
+
* @description The details of the file to be ingested and any transformations to be applied. Once the source file has been ingested, new renditions can be created from it. The renditions are specified in the **outputs** property.
|
|
2040
|
+
* A rendition is a new version, generated from the source. This can be used to create new sizes and aspect ratios tht serve different purposes within an application.
|
|
2041
|
+
*/
|
|
2042
|
+
Source: {
|
|
2043
|
+
/**
|
|
2044
|
+
* @description The URL of the file to be ingested. The URL must be publicly accessible or include credentials.
|
|
2045
|
+
* @example https://github.com/shotstack/test-media/raw/main/captioning/scott-ko.mp4
|
|
2046
|
+
*/
|
|
2047
|
+
url?: string;
|
|
2048
|
+
outputs?: components["schemas"]["Outputs"];
|
|
2049
|
+
destinations?: components["schemas"]["Destinations"];
|
|
2050
|
+
/**
|
|
2051
|
+
* @description An optional webhook callback URL used to receive status notifications when sources are uploaded and renditions processed.
|
|
2052
|
+
* @example https://my-server.com/callback.php
|
|
2053
|
+
*/
|
|
2054
|
+
callback?: string;
|
|
2055
|
+
};
|
|
2056
|
+
/** @description The output renditions and transformations that should be generated from the source file. */
|
|
2057
|
+
Outputs: {
|
|
2058
|
+
/** @description The output renditions and transformations that should be generated from the source file. */
|
|
2059
|
+
renditions?: components["schemas"]["Rendition"][];
|
|
2060
|
+
/** @description The transcription settings for the output file. */
|
|
2061
|
+
transcription?: components["schemas"]["Transcription"];
|
|
2062
|
+
};
|
|
2063
|
+
/** @description A rendition is a new output file that is generated from the source. The rendition can be encoded to a different format and have transformations applied to it such as resizing, cropping, etc... */
|
|
2064
|
+
Rendition: {
|
|
2065
|
+
/**
|
|
2066
|
+
* @description The output format to encode the file to. You can only encode a file to the same type, i.e. a video to a video or an image to an image. You can't encode a video as an image. The following formats are available: <ul>
|
|
2067
|
+
* <li>`mp4` - mp4 video file (video only)</li>
|
|
2068
|
+
* <li>`webm` - webm video file (video only)</li>
|
|
2069
|
+
* <li>`mov` - mov video file (video only)</li>
|
|
2070
|
+
* <li>`avi` - avi video file (video only)</li>
|
|
2071
|
+
* <li>`mkv` - mkv video file (video only)</li>
|
|
2072
|
+
* <li>`ogv` - ogv video file (video only)</li>
|
|
2073
|
+
* <li>`wmv` - wmv video file (video only)</li>
|
|
2074
|
+
* <li>`avif` - avif video file (video only)</li>
|
|
2075
|
+
* <li>`gif` - animated gif file (video only)</li>
|
|
2076
|
+
* <li>`jpg` - jpg image file (image only)</li>
|
|
2077
|
+
* <li>`png` - png image file (image only)</li>
|
|
2078
|
+
* <li>`webp` - webp image file (image only)</li>
|
|
2079
|
+
* <li>`tif` - tif image file (image only)</li>
|
|
2080
|
+
* <li>`mp3` - mp3 audio file (audio only)</li>
|
|
2081
|
+
* <li>`wav` - wav audio file (audio only)</li>
|
|
2082
|
+
* </ul>
|
|
2083
|
+
* @example mp4
|
|
2084
|
+
* @enum {string}
|
|
2085
|
+
*/
|
|
2086
|
+
format?: "mp4" | "webm" | "mov" | "avi" | "mkv" | "ogv" | "wmv" | "avif" | "gif" | "mp3" | "wav" | "jpg" | "png" | "webp" | "tif";
|
|
2087
|
+
size?: components["schemas"]["Size"];
|
|
2088
|
+
/**
|
|
2089
|
+
* @description Set how the rendition should be scaled and cropped when using a size with an aspect ratio that is different from the source. Fit applies to both videos and images. <ul>
|
|
2090
|
+
* <li>`crop` <b>(default)</b> - scale the rendition to fill the output area while maintaining the aspect ratio. The rendition will be cropped if it exceeds the bounds of the output.</li>
|
|
2091
|
+
* <li>`cover` - stretch the rendition to fill the output without maintaining the aspect ratio.</li>
|
|
2092
|
+
* <li>`contain` - fit the entire rendition within the output while maintaining the original aspect ratio.</li>
|
|
2093
|
+
* </ul>
|
|
2094
|
+
* @example crop
|
|
2095
|
+
* @enum {string}
|
|
2096
|
+
*/
|
|
2097
|
+
fit?: "cover" | "contain" | "crop";
|
|
2098
|
+
/**
|
|
2099
|
+
* @description The preset output resolution of the video or image. This is a convenience property that sets the width and height based on industry standard resolutions. The following resolutions are available: <ul>
|
|
2100
|
+
* <li>`preview` - 512px x 288px</li>
|
|
2101
|
+
* <li>`mobile` - 640px x 360px</li>
|
|
2102
|
+
* <li>`sd` - 1024px x 576px</li>
|
|
2103
|
+
* <li>`hd` - 1280px x 720px</li>
|
|
2104
|
+
* <li>`fhd` - 1920px x 1080px</li>
|
|
2105
|
+
* </ul>
|
|
2106
|
+
* @example hd
|
|
2107
|
+
* @enum {unknown}
|
|
2108
|
+
*/
|
|
2109
|
+
resolution?: "preview" | "mobile" | "sd" | "hd" | "fhd";
|
|
2110
|
+
/**
|
|
2111
|
+
* @description Adjust the visual quality of the video or image. The higher the value, the sharper the image quality but the larger file size and slower the encoding process. When specifying quality, the goal is to balance file size vs visual quality.
|
|
2112
|
+
* Quality is a value between 1 and 100 where 1 is fully compressed with low image quality and 100 is close to lossless with high image quality and large file size. Sane values are between 50 and 75. Omitting the quality parameter will result in an asset optimised for encoding speed, file size and visual quality.
|
|
2113
|
+
* @example 70
|
|
2114
|
+
*/
|
|
2115
|
+
quality?: number;
|
|
2116
|
+
/**
|
|
2117
|
+
* @description Change the frame rate of a video asset. <ul>
|
|
2118
|
+
* <li>`12` - 12fps</li>
|
|
2119
|
+
* <li>`15` - 15fps</li>
|
|
2120
|
+
* <li>`24` - 24fps</li>
|
|
2121
|
+
* <li>`23.976` - 23.976fps</li>
|
|
2122
|
+
* <li>`25` (default) - 25fps</li>
|
|
2123
|
+
* <li>`29.97` - 29.97fps</li>
|
|
2124
|
+
* <li>`30` - 30fps</li>
|
|
2125
|
+
* <li>`48` - 48fps</li>
|
|
2126
|
+
* <li>`50` - 50fps</li>
|
|
2127
|
+
* <li>`59.94` - 59.94fps</li>
|
|
2128
|
+
* <li>`60` - 60fps</li>
|
|
2129
|
+
* </ul>
|
|
2130
|
+
* @example 25
|
|
2131
|
+
* @enum {number}
|
|
2132
|
+
*/
|
|
2133
|
+
fps?: 12 | 15 | 23.976 | 24 | 25 | 29.97 | 30 | 48 | 50 | 59.94 | 60;
|
|
2134
|
+
speed?: components["schemas"]["Speed"];
|
|
2135
|
+
/**
|
|
2136
|
+
* @description The keyframe interval is useful to optimize playback, seeking and smoother scrubbing in browsers. The value sets the number of frames between a keyframe. The lower the number, the larger the file. Try a value between 10 and 25 for smooth scrubbing.
|
|
2137
|
+
* @example 10
|
|
2138
|
+
*/
|
|
2139
|
+
keyframeInterval?: number;
|
|
2140
|
+
/**
|
|
2141
|
+
* @description Attempt to fix audio and video sync issues. This can occur when recording devices, such as smartphones and
|
|
2142
|
+
* web cams use compression techniques like [Variable Frame Rate](https://en.wikipedia.org/wiki/Variable_frame_rate)
|
|
2143
|
+
* (VFR) which can cause audio and video to go out of sync. This option will attempt to fix the sync issues.
|
|
2144
|
+
* @example true
|
|
2145
|
+
*/
|
|
2146
|
+
fixOffset?: boolean;
|
|
2147
|
+
/**
|
|
2148
|
+
* @description Automatically reset the rotation of the video based on the orientation metadata in the video file. This is useful for videos recorded on smartphones that have orientation metadata that may not work correctly with certain video editing software, including the Shotstack Edit API.
|
|
2149
|
+
* @example true
|
|
2150
|
+
*/
|
|
2151
|
+
fixRotation?: boolean;
|
|
2152
|
+
/** @description Apply media processing enhancements to the rendition using a third party provider. Currently only Dolby.io audio enhancement is available. */
|
|
2153
|
+
enhance?: components["schemas"]["Enhancements"];
|
|
2154
|
+
/**
|
|
2155
|
+
* @description A custom name for the generated rendition file. The file extension will be automatically added based on the format of the rendition. If no filename is provided, the rendition ID will be used.
|
|
2156
|
+
* @example my-video
|
|
2157
|
+
*/
|
|
2158
|
+
filename?: string;
|
|
2159
|
+
};
|
|
2160
|
+
/** @description Generate a transcription of the audio in the video. The transcription can be output as a file in SRT or VTT format. */
|
|
2161
|
+
Transcription: {
|
|
2162
|
+
/**
|
|
2163
|
+
* @description The output format of the transcription file. The following formats are available: <ul>
|
|
2164
|
+
* <li>`srt` - SRT captions format</li>
|
|
2165
|
+
* <li>`vtt` - VTT captions format</li>
|
|
2166
|
+
* </ul>
|
|
2167
|
+
* @example vtt
|
|
2168
|
+
* @enum {string}
|
|
2169
|
+
*/
|
|
2170
|
+
format?: "srt" | "vtt";
|
|
2171
|
+
};
|
|
2172
|
+
/** @description Set the playback speed of a video or audio file. Allows you to preserve the pitch of the audio so that it is sped up without sounding too high pitched or too low. */
|
|
2173
|
+
Speed: {
|
|
2174
|
+
/**
|
|
2175
|
+
* Format: float
|
|
2176
|
+
* @description Adjust the playback speed of the video clip between 0 (paused) and 10 (10x normal speed) where 1 is normal speed (defaults to 1). Set values less than 1 to slow down the playback speed, i.e. set speed to 0.5 to play back at half speed. Set values greater than 1 to speed up the playback speed, i.e. set speed to 2 to play back at double speed.
|
|
2177
|
+
* @example 1.5
|
|
2178
|
+
*/
|
|
2179
|
+
speed?: number;
|
|
2180
|
+
/**
|
|
2181
|
+
* @description Set whether to adjust the audio pitch or not. Set to false to make the audio sound higher or lower pitched. By default the pitch is preserved.
|
|
2182
|
+
* @example false
|
|
2183
|
+
*/
|
|
2184
|
+
preservePitch?: boolean;
|
|
2185
|
+
};
|
|
2186
|
+
/** @description Enhancements that can be applied to a rendition. Currently only supports the Dolby audio enhancement. */
|
|
2187
|
+
Enhancements: {
|
|
2188
|
+
/** @description An audio enhancement that can be applied to the audio content of the rendition. */
|
|
2189
|
+
audio?: components["schemas"]["AudioEnhancement"];
|
|
2190
|
+
};
|
|
2191
|
+
/**
|
|
2192
|
+
* @description An audio enhancement that can be applied to the audio content of a rendition.
|
|
2193
|
+
* The following providers are available: <ul>
|
|
2194
|
+
* <li><a href="#tocs_dolbyenhancement">DolbyEnhancement</a></li>
|
|
2195
|
+
* </ul>
|
|
2196
|
+
*/
|
|
2197
|
+
AudioEnhancement: components["schemas"]["DolbyEnhancement"];
|
|
2198
|
+
/** @description Dolby.io audio enhancement provider. Credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/dolby), not in the request. */
|
|
2199
|
+
DolbyEnhancement: {
|
|
2200
|
+
/**
|
|
2201
|
+
* @description The enhancement provider to use - set to `dolby` for Dolby.
|
|
2202
|
+
* @default dolby
|
|
2203
|
+
* @example dolby
|
|
2204
|
+
*/
|
|
2205
|
+
provider: string;
|
|
2206
|
+
/** @description Additional Dolby configuration and features. */
|
|
2207
|
+
options: components["schemas"]["DolbyEnhancementOptions"];
|
|
2208
|
+
/**
|
|
2209
|
+
* @description discriminator enum property added by openapi-typescript
|
|
2210
|
+
* @enum {string}
|
|
2211
|
+
*/
|
|
2212
|
+
enhancement: "DolbyEnhancement";
|
|
2213
|
+
};
|
|
2214
|
+
/** @description Options for the Dolby.io audio enhancement provider. */
|
|
2215
|
+
DolbyEnhancementOptions: {
|
|
2216
|
+
/**
|
|
2217
|
+
* @description The preset to use for the audio enhancement. The following presets are available: <ul>
|
|
2218
|
+
* <li>`conference` - Conference</li>
|
|
2219
|
+
* <li>`interview` - Interview</li>
|
|
2220
|
+
* <li>`lecture` - Lecture</li>
|
|
2221
|
+
* <li>`meeting` - Meeting</li>
|
|
2222
|
+
* <li>`mobile_phone` - Mobile Phone</li>
|
|
2223
|
+
* <li>`music` - Music</li>
|
|
2224
|
+
* <li>`podcast` - Podcast</li>
|
|
2225
|
+
* <li>`studio` - Studio</li>
|
|
2226
|
+
* <li>`voice_over` - Voice Over</li>
|
|
2227
|
+
* </ul>
|
|
2228
|
+
* @example studio
|
|
2229
|
+
* @enum {string}
|
|
2230
|
+
*/
|
|
2231
|
+
preset: "conference" | "interview" | "lecture" | "meeting" | "mobile_phone" | "music" | "podcast" | "studio" | "voice_over";
|
|
2232
|
+
};
|
|
2233
|
+
/** @description The asset URL to fetch and transfer to a destination. */
|
|
2234
|
+
Transfer: {
|
|
2235
|
+
/**
|
|
2236
|
+
* @description The file URL to fetch and transfer.
|
|
2237
|
+
* @example https://s3-ap-northeast-1.amazonaws.com/my-bucket/video.mp4
|
|
2238
|
+
*/
|
|
2239
|
+
url: string;
|
|
2240
|
+
/**
|
|
2241
|
+
* @description An identifier for the asset which must be provided by the client. The identifier does not need to be unique.
|
|
2242
|
+
* @example 018e8937-5015-75ee-aab6-03f214981133
|
|
2243
|
+
*/
|
|
2244
|
+
id: string;
|
|
2245
|
+
/** @description Specify the storage locations and hosting services to send the file to. */
|
|
2246
|
+
destinations: components["schemas"]["Destinations"][];
|
|
2247
|
+
};
|
|
2248
|
+
/** @description A generated asset is a media asset created by the Create API. You can use native or third party providers to generate video, audio and image files using Generative AI services like text-to-speech and text-to-avatar. */
|
|
2249
|
+
GeneratedAsset: components["schemas"]["ShotstackGeneratedAsset"] | components["schemas"]["DIDGeneratedAsset"] | components["schemas"]["ElevenLabsGeneratedAsset"] | components["schemas"]["HeyGenGeneratedAsset"] | components["schemas"]["OpenAiGeneratedAsset"] | components["schemas"]["StabilityAiGeneratedAsset"];
|
|
2250
|
+
/** @description Generate assets using the native Shotstack provider. Shotstack provides a text-to-speech and a text-to-image service. The Shotstack provider works natively with your existing API key, no additional credentials are required. */
|
|
2251
|
+
ShotstackGeneratedAsset: {
|
|
2252
|
+
/**
|
|
2253
|
+
* @description The name of the provider - set to `shotstack` for Shotstack. (enum property replaced by openapi-typescript)
|
|
2254
|
+
* @enum {string}
|
|
2255
|
+
*/
|
|
2256
|
+
provider: "ShotstackGeneratedAsset";
|
|
2257
|
+
/** @description Options and configuration for the native Shotstack services. */
|
|
2258
|
+
options: components["schemas"]["ShotstackGeneratedAssetOptions"];
|
|
2259
|
+
};
|
|
2260
|
+
/** @description Generate assets using the native Shotstack provider AI services. */
|
|
2261
|
+
ShotstackGeneratedAssetOptions: components["schemas"]["ShotstackTextToSpeechOptions"] | components["schemas"]["ShotstackTextToImageOptions"] | components["schemas"]["ShotstackTextGeneratorOptions"] | components["schemas"]["ShotstackImageToVideoOptions"];
|
|
2262
|
+
/** @description Options for the Shotstack text-to-speech service. Set the text to be converted to speech and choose a voice to set the speaking style. The output will be generated as an MP3 audio file available at the URL returned in the response. */
|
|
2263
|
+
ShotstackTextToSpeechOptions: {
|
|
2264
|
+
/**
|
|
2265
|
+
* @description The type of asset to generate - set to `text-to-speech` for text-to-speech.
|
|
2266
|
+
* @default text-to-speech
|
|
2267
|
+
* @enum {string}
|
|
2268
|
+
*/
|
|
2269
|
+
type: "text-to-speech";
|
|
2270
|
+
/**
|
|
2271
|
+
* @description The text to convert to speech.
|
|
2272
|
+
* @example This is a text to speech example generated by Shotstack
|
|
2273
|
+
*/
|
|
2274
|
+
text: string;
|
|
2275
|
+
/**
|
|
2276
|
+
* @description The voice to use for the text-to-speech conversion. You must pair the correct voice with the correct language. For each language there is a language code that must be set in the `language` property. The voice must be available for the language code or the conversion will fail. i.e. To use the voice `Zeina` for Arabic you must set the `language` to `arb`.
|
|
2277
|
+
* Select a voice from the list of available voices, the language code is in brackets: <ul>
|
|
2278
|
+
* <li>Arabic - Gulf (ar-AE)</li>
|
|
2279
|
+
* <ul>
|
|
2280
|
+
* <li>`Hala`</li>
|
|
2281
|
+
* </ul>
|
|
2282
|
+
* <li>Dutch - Belgian (nl-BE)</li>
|
|
2283
|
+
* <ul>
|
|
2284
|
+
* <li>`Lisa`</li>
|
|
2285
|
+
* </ul>
|
|
2286
|
+
* <li>Catalan (ca-ES)</li>
|
|
2287
|
+
* <ul>
|
|
2288
|
+
* <li>`Arlet`</li>
|
|
2289
|
+
* </ul>
|
|
2290
|
+
* <li>Chinese - Cantonese (yue-CN)</li>
|
|
2291
|
+
* <ul>
|
|
2292
|
+
* <li>`Hiujin`</li>
|
|
2293
|
+
* </ul>
|
|
2294
|
+
* <li>Chinese - Mandarin (cmn-CN)</li>
|
|
2295
|
+
* <ul>
|
|
2296
|
+
* <li>`Zhiyu`</li>
|
|
2297
|
+
* </ul>
|
|
2298
|
+
* <li>Danish (da-DK)</li>
|
|
2299
|
+
* <ul>
|
|
2300
|
+
* <li>`Sofie`</li>
|
|
2301
|
+
* </ul>
|
|
2302
|
+
* <li>Dutch (nl-NL)</li>
|
|
2303
|
+
* <ul>
|
|
2304
|
+
* <li>`Laura`</li>
|
|
2305
|
+
* </ul>
|
|
2306
|
+
* <li>English - Australian (en-AU)</li>
|
|
2307
|
+
* <ul>
|
|
2308
|
+
* <li>`Olivia`</li>
|
|
2309
|
+
* </ul>
|
|
2310
|
+
* <li>English - British (en-GB)</li>
|
|
2311
|
+
* <ul>
|
|
2312
|
+
* <li>`Amy`</li>
|
|
2313
|
+
* <li>`Emma`</li>
|
|
2314
|
+
* <li>`Brian`</li>
|
|
2315
|
+
* <li>`Arthur`</li>
|
|
2316
|
+
* </ul>
|
|
2317
|
+
* <li>English - Indian (en-IN)</li>
|
|
2318
|
+
* <ul>
|
|
2319
|
+
* <li>`Kajal`</li>
|
|
2320
|
+
* </ul>
|
|
2321
|
+
* <li>English - Ireland (en-IE)</li>
|
|
2322
|
+
* <ul>
|
|
2323
|
+
* <li>`Niamh`</li>
|
|
2324
|
+
* </ul>
|
|
2325
|
+
* <li>English - New Zealand (en-NZ)</li>
|
|
2326
|
+
* <ul>
|
|
2327
|
+
* <li>`Aria`</li>
|
|
2328
|
+
* </ul>
|
|
2329
|
+
* <li>English - South African (en-ZA)</li>
|
|
2330
|
+
* <ul>
|
|
2331
|
+
* <li>`Ayanda`</li>
|
|
2332
|
+
* </ul>
|
|
2333
|
+
* <li>English - US (en-US)</li>
|
|
2334
|
+
* <ul>
|
|
2335
|
+
* <li>`Ivy`</li>
|
|
2336
|
+
* <li>`Joanna`</li>
|
|
2337
|
+
* <li>`Kendra`</li>
|
|
2338
|
+
* <li>`Kimberly`</li>
|
|
2339
|
+
* <li>`Salli`</li>
|
|
2340
|
+
* <li>`Joey`</li>
|
|
2341
|
+
* <li>`Justin`</li>
|
|
2342
|
+
* <li>`Kevin`</li>
|
|
2343
|
+
* <li>`Matthew`</li>
|
|
2344
|
+
* <li>`Ruth`</li>
|
|
2345
|
+
* <li>`Stephen`</li>
|
|
2346
|
+
* </ul>
|
|
2347
|
+
* <li>Finnish (fi-FI)</li>
|
|
2348
|
+
* <ul>
|
|
2349
|
+
* <li>`Suvi`</li>
|
|
2350
|
+
* </ul>
|
|
2351
|
+
* <li>French (fr-FR)</li>
|
|
2352
|
+
* <ul>
|
|
2353
|
+
* <li>`Léa`</li>
|
|
2354
|
+
* <li>`Rémi`</li>
|
|
2355
|
+
* </ul>
|
|
2356
|
+
* <li>French - Canadian (fr-CA)</li>
|
|
2357
|
+
* <ul>
|
|
2358
|
+
* <li>`Gabrielle`</li>
|
|
2359
|
+
* <li>`Liam`</li>
|
|
2360
|
+
* </ul>
|
|
2361
|
+
* <li>German (de-DE)</li>
|
|
2362
|
+
* <ul>
|
|
2363
|
+
* <li>`Vicki`</li>
|
|
2364
|
+
* <li>`Daniel`</li>
|
|
2365
|
+
* </ul>
|
|
2366
|
+
* <li>German - Austrian (de-AT)</li>
|
|
2367
|
+
* <ul>
|
|
2368
|
+
* <li>`Hannah`</li>
|
|
2369
|
+
* </ul>
|
|
2370
|
+
* <li>Hindi (hi-IN)</li>
|
|
2371
|
+
* <ul>
|
|
2372
|
+
* <li>`Kajal`</li>
|
|
2373
|
+
* </ul>
|
|
2374
|
+
* <li>Italian (it-IT)</li>
|
|
2375
|
+
* <ul>
|
|
2376
|
+
* <li>`Bianca`</li>
|
|
2377
|
+
* <li>`Adriano`</li>
|
|
2378
|
+
* </ul>
|
|
2379
|
+
* <li>Japanese (ja-JP)</li>
|
|
2380
|
+
* <ul>
|
|
2381
|
+
* <li>`Takumi`</li>
|
|
2382
|
+
* <li>`Kazuha`</li>
|
|
2383
|
+
* <li>`Tomoko`</li>
|
|
2384
|
+
* </ul>
|
|
2385
|
+
* <li>Korean (ko-KR)</li>
|
|
2386
|
+
* <ul>
|
|
2387
|
+
* <li>`Seoyeon`</li>
|
|
2388
|
+
* </ul>
|
|
2389
|
+
* <li>Norwegian (nb-NO)</li>
|
|
2390
|
+
* <ul>
|
|
2391
|
+
* <li>`Ida`</li>
|
|
2392
|
+
* </ul>
|
|
2393
|
+
* <li>Polish (pl-PL)</li>
|
|
2394
|
+
* <ul>
|
|
2395
|
+
* <li>`Ola`</li>
|
|
2396
|
+
* </ul>
|
|
2397
|
+
* <li>Portuguese - Brazilian (pt-BR)</li>
|
|
2398
|
+
* <ul>
|
|
2399
|
+
* <li>`Camila`</li>
|
|
2400
|
+
* <li>`Vitória` or `Vitoria`</li>
|
|
2401
|
+
* <li>`Thiago`</li>
|
|
2402
|
+
* </ul>
|
|
2403
|
+
* <li>Portuguese - European (pt-PT)</li>
|
|
2404
|
+
* <ul>
|
|
2405
|
+
* <li>`Inês` or `Ines`</li>
|
|
2406
|
+
* </ul>
|
|
2407
|
+
* <li>Spanish (es-ES)</li>
|
|
2408
|
+
* <ul>
|
|
2409
|
+
* <li>`Lucia`</li>
|
|
2410
|
+
* <li>`Sergio`</li>
|
|
2411
|
+
* </ul>
|
|
2412
|
+
* <li>Spanish - Mexican (es-MX)</li>
|
|
2413
|
+
* <ul>
|
|
2414
|
+
* <li>`Mia`</li>
|
|
2415
|
+
* <li>`Andrés`</li>
|
|
2416
|
+
* </ul>
|
|
2417
|
+
* <li>Spanish - US (es-US)</li>
|
|
2418
|
+
* <ul>
|
|
2419
|
+
* <li>`Lupe`</li>
|
|
2420
|
+
* <li>`Pedro`</li>
|
|
2421
|
+
* </ul>
|
|
2422
|
+
* <li>Swedish (sv-SE)</li>
|
|
2423
|
+
* <ul>
|
|
2424
|
+
* <li>`Elin`</li>
|
|
2425
|
+
* </ul>
|
|
2426
|
+
* </ul>
|
|
2427
|
+
* @example Matthew
|
|
2428
|
+
* @enum {string}
|
|
2429
|
+
*/
|
|
2430
|
+
voice: "Hala" | "Lisa" | "Arlet" | "Hiujin" | "Zhiyu" | "Sofie" | "Laura" | "Olivia" | "Amy" | "Emma" | "Brian" | "Arthur" | "Kajal" | "Niamh" | "Aria" | "Ayanda" | "Ivy" | "Joanna" | "Kendra" | "Kimberly" | "Salli" | "Joey" | "Justin" | "Kevin" | "Matthew" | "Ruth" | "Stephen" | "Suvi" | "Léa" | "Rémi" | "Gabrielle" | "Liam" | "Vicki" | "Daniel" | "Hannah" | "Kajal" | "Bianca" | "Adriano" | "Takumi" | "Kazuha" | "Tomoko" | "Seoyeon" | "Ida" | "Ola" | "Camila" | "Vitória" | "Vitoria" | "Thiago" | "Inês" | "Ines" | "Lucia" | "Sergio" | "Mia" | "Andrés" | "Lupe" | "Pedro" | "Elin";
|
|
2431
|
+
/**
|
|
2432
|
+
* @description The language code for the text-to-speech conversion. You must pair the correct language with the correct voice (see voice parameter above).
|
|
2433
|
+
* Select a language from the list of available languages: <ul>
|
|
2434
|
+
* <li>`cmn-CN`</li>
|
|
2435
|
+
* <li>`da-DK`</li>
|
|
2436
|
+
* <li>`de-DE`</li>
|
|
2437
|
+
* <li>`en-AU`</li>
|
|
2438
|
+
* <li>`en-GB`</li>
|
|
2439
|
+
* <li>`en-IN`</li>
|
|
2440
|
+
* <li>`en-US`</li>
|
|
2441
|
+
* <li>`es-ES`</li>
|
|
2442
|
+
* <li>`es-MX`</li>
|
|
2443
|
+
* <li>`es-US`</li>
|
|
2444
|
+
* <li>`fr-CA`</li>
|
|
2445
|
+
* <li>`fr-FR`</li>
|
|
2446
|
+
* <li>`it-IT`</li>
|
|
2447
|
+
* <li>`ja-JP`</li>
|
|
2448
|
+
* <li>`hi-IN`</li>
|
|
2449
|
+
* <li>`ko-KR`</li>
|
|
2450
|
+
* <li>`nb-NO`</li>
|
|
2451
|
+
* <li>`nl-NL`</li>
|
|
2452
|
+
* <li>`pl-PL`</li>
|
|
2453
|
+
* <li>`pt-BR`</li>
|
|
2454
|
+
* <li>`pt-PT`</li>
|
|
2455
|
+
* <li>`sv-SE`</li>
|
|
2456
|
+
* <li>`en-NZ`</li>
|
|
2457
|
+
* <li>`en-ZA`</li>
|
|
2458
|
+
* <li>`ca-ES`</li>
|
|
2459
|
+
* <li>`de-AT`</li>
|
|
2460
|
+
* <li>`yue-CN`</li>
|
|
2461
|
+
* <li>`ar-AE`</li>
|
|
2462
|
+
* <li>`fi-FI`</li>
|
|
2463
|
+
* </ul>
|
|
2464
|
+
* @default en-US
|
|
2465
|
+
* @enum {string}
|
|
2466
|
+
*/
|
|
2467
|
+
language: "cmn-CN" | "da-DK" | "de-DE" | "en-AU" | "en-GB" | "en-IN" | "en-US" | "es-ES" | "es-MX" | "es-US" | "fr-CA" | "fr-FR" | "it-IT" | "ja-JP" | "hi-IN" | "ko-KR" | "nb-NO" | "nl-NL" | "pl-PL" | "pt-BR" | "pt-PT" | "sv-SE" | "en-NZ" | "en-ZA" | "ca-ES" | "de-AT" | "yue-CN" | "ar-AE" | "fi-FI";
|
|
2468
|
+
/**
|
|
2469
|
+
* @description Set the voice to newscaster mode.<br /><br /> *Only Matthew and Joanna for US English (en-US), Lupe for US Spanish (es-US), and Amy for British English (en-GB) are available in the newscaster voice.
|
|
2470
|
+
* @default false
|
|
2471
|
+
*/
|
|
2472
|
+
newscaster: boolean;
|
|
2473
|
+
};
|
|
2474
|
+
/** @description Options for the Shotstack text-to-image service. Set a text prompt to generate an image from. The output will be generated as a PNG file available at the URL returned in the response. */
|
|
2475
|
+
ShotstackTextToImageOptions: {
|
|
2476
|
+
/**
|
|
2477
|
+
* @description The type of asset to generate - set to `text-to-image` for text-to-image.
|
|
2478
|
+
* @default text-to-image
|
|
2479
|
+
* @enum {string}
|
|
2480
|
+
*/
|
|
2481
|
+
type: "text-to-image";
|
|
2482
|
+
/**
|
|
2483
|
+
* @description The text prompt to generate an image from.
|
|
2484
|
+
* @example A detailed photograph of Mars, showcasing its orange-red surface
|
|
2485
|
+
*/
|
|
2486
|
+
prompt: string;
|
|
2487
|
+
/**
|
|
2488
|
+
* @description The width of the image in pixels.
|
|
2489
|
+
* @example 512
|
|
2490
|
+
*/
|
|
2491
|
+
width: number;
|
|
2492
|
+
/**
|
|
2493
|
+
* @description The height of the image in pixels.
|
|
2494
|
+
* @example 512
|
|
2495
|
+
*/
|
|
2496
|
+
height: number;
|
|
2497
|
+
};
|
|
2498
|
+
/** @description Options for the Shotstack image-to-video service. Set the URL of an image to convert in to a video. The output will be generated as an MP4 file available at the URL returned in the response. */
|
|
2499
|
+
ShotstackImageToVideoOptions: {
|
|
2500
|
+
/**
|
|
2501
|
+
* @description The type of asset to generate - set to `image-to-video` for image-to-video.
|
|
2502
|
+
* @default image-to-video
|
|
2503
|
+
* @enum {string}
|
|
2504
|
+
*/
|
|
2505
|
+
type: "image-to-video";
|
|
2506
|
+
/**
|
|
2507
|
+
* @description The URL of the image to convert to video. The URL must be publicly accessible or include credentials. The image dimensions must exactly match one of the following: 1024px x 576px, 576px x 1024px or 768px x 768px.
|
|
2508
|
+
* @example https://s3-ap-northeast-1.amazonaws.com/my-bucket/image.jpg
|
|
2509
|
+
*/
|
|
2510
|
+
imageUrl: string;
|
|
2511
|
+
/**
|
|
2512
|
+
* @description The guidance scale determines how closely the generated video will match the image. Lower numbers allow for more creative freedom. A number between 0 and 10.
|
|
2513
|
+
* @default 1.8
|
|
2514
|
+
* @example 1.8
|
|
2515
|
+
*/
|
|
2516
|
+
guidanceScale: number;
|
|
2517
|
+
/**
|
|
2518
|
+
* @description The amount of motion in the video. A number between 1 and 255.
|
|
2519
|
+
* @default 127
|
|
2520
|
+
* @example 127
|
|
2521
|
+
*/
|
|
2522
|
+
motion: number;
|
|
2523
|
+
};
|
|
2524
|
+
/** @description Options for the Shotstack text-generator service. Set a text prompt that will be used to generate a new body of text. The output will be generated as a text (txt) file available at the URL returned in the response. */
|
|
2525
|
+
ShotstackTextGeneratorOptions: {
|
|
2526
|
+
/**
|
|
2527
|
+
* @description The type of asset to generate - set to `text-generator` for text generation.
|
|
2528
|
+
* @default text-generator
|
|
2529
|
+
* @enum {string}
|
|
2530
|
+
*/
|
|
2531
|
+
type: "text-generator";
|
|
2532
|
+
/**
|
|
2533
|
+
* @description The text prompt to generate text from.
|
|
2534
|
+
* @example Generate a short script for a 15 second video describing the benefits of the Shotstack API
|
|
2535
|
+
*/
|
|
2536
|
+
prompt: string;
|
|
2537
|
+
};
|
|
2538
|
+
/** @description Generate assets using D-ID. D-ID provide a text-to-avatar service. The D-ID provider works on a bring-your-own-key basis, credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/d-id), not in the request. */
|
|
2539
|
+
DIDGeneratedAsset: {
|
|
2540
|
+
/**
|
|
2541
|
+
* @description The name of the provider - set to `d-id` for D-ID. (enum property replaced by openapi-typescript)
|
|
2542
|
+
* @enum {string}
|
|
2543
|
+
*/
|
|
2544
|
+
provider: "DIDGeneratedAsset";
|
|
2545
|
+
/** @description Options and configuration for the D-ID text-to-avatar service. */
|
|
2546
|
+
options: components["schemas"]["DIDGeneratedAssetOptions"];
|
|
2547
|
+
};
|
|
2548
|
+
/**
|
|
2549
|
+
* @description Generate assets using the third party D-ID provider AI services.
|
|
2550
|
+
*
|
|
2551
|
+
* The following AI generation services are available: <ul>
|
|
2552
|
+
* <li><a href="#tocs_didtexttoavataroptions">DidTextToAvatarOptions</a></li>
|
|
2553
|
+
* </ul>
|
|
2554
|
+
*/
|
|
2555
|
+
DIDGeneratedAssetOptions: components["schemas"]["DIDTextToAvatarOptions"];
|
|
2556
|
+
/** @description Options for the D-ID text-to-avatar service. Set the text to be converted to an avatar and configure the avatar and background. The output will be generated as an MP4 video file. */
|
|
2557
|
+
DIDTextToAvatarOptions: {
|
|
2558
|
+
/**
|
|
2559
|
+
* @description The type of asset to generate - set to `text-to-avatar` for text-to-avatar.
|
|
2560
|
+
* @enum {string}
|
|
2561
|
+
*/
|
|
2562
|
+
type: "text-to-avatar";
|
|
2563
|
+
/**
|
|
2564
|
+
* @description The text or script that the avatar will narrate.
|
|
2565
|
+
* @example I am an avatar generated by D-ID using a text prompt
|
|
2566
|
+
*/
|
|
2567
|
+
text: string;
|
|
2568
|
+
/**
|
|
2569
|
+
* @description The avatar character to generate. Select from the list of available avatars: <ul>
|
|
2570
|
+
* <li>`jack`</li>
|
|
2571
|
+
* <li>`lana`</li>
|
|
2572
|
+
* <li>`lily`</li>
|
|
2573
|
+
* <li>`matt`</li>
|
|
2574
|
+
* <li>`rian`</li>
|
|
2575
|
+
* </ul>
|
|
2576
|
+
* @enum {string}
|
|
2577
|
+
*/
|
|
2578
|
+
avatar: "jack" | "lana" | "lily" | "matt" | "rian";
|
|
2579
|
+
/**
|
|
2580
|
+
* @description The background color of the video.
|
|
2581
|
+
* @example #ffffff
|
|
2582
|
+
*/
|
|
2583
|
+
background?: string;
|
|
2584
|
+
};
|
|
2585
|
+
/** @description Generate assets using ElevenLabs. ElevenLabs provide a text-to-speech service. The ElevenLabs provider works on a bring-your-own-key basis, credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/elevenlabs), not in the request. */
|
|
2586
|
+
ElevenLabsGeneratedAsset: {
|
|
2587
|
+
/**
|
|
2588
|
+
* @description The name of the provider - set to `elevenlabs` for ElevenLabs. (enum property replaced by openapi-typescript)
|
|
2589
|
+
* @enum {string}
|
|
2590
|
+
*/
|
|
2591
|
+
provider: "ElevenLabsGeneratedAsset";
|
|
2592
|
+
/** @description Options and configuration for the ElevenLabs text-to-speech service. */
|
|
2593
|
+
options: components["schemas"]["ElevenLabsGeneratedAssetOptions"];
|
|
2594
|
+
};
|
|
2595
|
+
/**
|
|
2596
|
+
* @description Generate assets using the third party ElevenLabs provider AI services.
|
|
2597
|
+
*
|
|
2598
|
+
* The following AI generation services are available: <ul>
|
|
2599
|
+
* <li><a href="#tocs_elevenlabstexttospeechoptions">ElevenLabsTextToSpeechOptions</a></li>
|
|
2600
|
+
* </ul>
|
|
2601
|
+
*/
|
|
2602
|
+
ElevenLabsGeneratedAssetOptions: components["schemas"]["ElevenLabsTextToSpeechOptions"];
|
|
2603
|
+
/** @description Options for the ElevenLabs text-to-speech service. Set the text to be converted to speech and choose a voice to set the speaking style. The output will be generated as an MP3 audio file available at the URL returned in the response. */
|
|
2604
|
+
ElevenLabsTextToSpeechOptions: {
|
|
2605
|
+
/**
|
|
2606
|
+
* @description The type of asset to generate - set to `text-to-speech` for text-to-speech.
|
|
2607
|
+
* @enum {string}
|
|
2608
|
+
*/
|
|
2609
|
+
type: "text-to-speech";
|
|
2610
|
+
/**
|
|
2611
|
+
* @description The text to convert to speech.
|
|
2612
|
+
* @example This is a text to speech example generated by ElevenLabs
|
|
2613
|
+
*/
|
|
2614
|
+
text: string;
|
|
2615
|
+
/**
|
|
2616
|
+
* @description The voice to use for the text-to-speech conversion. Select a voice from the list of available voices: <ul>
|
|
2617
|
+
* <li>`Adam`</li>
|
|
2618
|
+
* <li>`Antoni`</li>
|
|
2619
|
+
* <li>`Arnold`</li>
|
|
2620
|
+
* <li>`Bella`</li>
|
|
2621
|
+
* <li>`Domi`</li>
|
|
2622
|
+
* <li>`Elli`</li>
|
|
2623
|
+
* <li>`Josh`</li>
|
|
2624
|
+
* <li>`Rachel`</li>
|
|
2625
|
+
* <li>`Sam`</li>
|
|
2626
|
+
* </ul>
|
|
2627
|
+
* @enum {string}
|
|
2628
|
+
*/
|
|
2629
|
+
voice: "Adam" | "Antoni" | "Arnold" | "Bella" | "Domi" | "Elli" | "Josh" | "Rachel" | "Sam";
|
|
2630
|
+
};
|
|
2631
|
+
/** @description Generate assets using HeyGen. HeyGen provide a text-to-avatar service. The HeyGen provider works on a bring-your-own-key basis, credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/heygen), not in the request. */
|
|
2632
|
+
HeyGenGeneratedAsset: {
|
|
2633
|
+
/**
|
|
2634
|
+
* @description The name of the provider - set to `heygen` for HeyGen. (enum property replaced by openapi-typescript)
|
|
2635
|
+
* @enum {string}
|
|
2636
|
+
*/
|
|
2637
|
+
provider: "HeyGenGeneratedAsset";
|
|
2638
|
+
/** @description Options and configuration for the HeyGen text-to-avatar service. */
|
|
2639
|
+
options: components["schemas"]["HeyGenGeneratedAssetOptions"];
|
|
2640
|
+
};
|
|
2641
|
+
/**
|
|
2642
|
+
* @description Generate assets using the third party HeyGen provider AI services.
|
|
2643
|
+
*
|
|
2644
|
+
* The following AI generation services are available: <ul>
|
|
2645
|
+
* <li><a href="#tocs_heygentexttoavataroptions">HeyGenTextToAvatarOptions</a></li>
|
|
2646
|
+
* </ul>
|
|
2647
|
+
*/
|
|
2648
|
+
HeyGenGeneratedAssetOptions: components["schemas"]["HeyGenTextToAvatarOptions"];
|
|
2649
|
+
/** @description Options for the HeyGen text-to-avatar service. Set the text to be converted to an avatar and configure the avatars voice, speaking style, appearance and background. The output will be generated as an MP4 video file available at the URL returned in the response. */
|
|
2650
|
+
HeyGenTextToAvatarOptions: {
|
|
2651
|
+
/**
|
|
2652
|
+
* @description The type of asset to generate - set to `text-to-avatar` for text-to-avatar.
|
|
2653
|
+
* @enum {string}
|
|
2654
|
+
*/
|
|
2655
|
+
type: "text-to-avatar";
|
|
2656
|
+
/**
|
|
2657
|
+
* @description The text or script that the avatar will narrate.
|
|
2658
|
+
* @example I am an avatar generated by HeyGen using a text prompt
|
|
2659
|
+
*/
|
|
2660
|
+
text: string;
|
|
2661
|
+
/**
|
|
2662
|
+
* @description The avatar character to generate. Select from the list of available avatars: <ul>
|
|
2663
|
+
* <li>`Angela`</li>
|
|
2664
|
+
* <li>`Bill`</li>
|
|
2665
|
+
* <li>`Daisy`</li>
|
|
2666
|
+
* <li>`Derek`</li>
|
|
2667
|
+
* <li>`Eva`</li>
|
|
2668
|
+
* <li>`Jake`</li>
|
|
2669
|
+
* <li>`Jeff`</li>
|
|
2670
|
+
* <li>`Jerome`</li>
|
|
2671
|
+
* <li>`Joon`</li>
|
|
2672
|
+
* <li>`Kayla`</li>
|
|
2673
|
+
* <li>`Kent`</li>
|
|
2674
|
+
* <li>`Luna`</li>
|
|
2675
|
+
* <li>`Mark`</li>
|
|
2676
|
+
* <li>`Matthew`</li>
|
|
2677
|
+
* <li>`Monica`</li>
|
|
2678
|
+
* <li>`Peter`</li>
|
|
2679
|
+
* <li>`Selina`</li>
|
|
2680
|
+
* <li>`Tanya`</li>
|
|
2681
|
+
* <li>`Thomas`</li>
|
|
2682
|
+
* <li>`Tina`</li>
|
|
2683
|
+
* <li>`Tyler`</li>
|
|
2684
|
+
* <li>`Vanessa`</li>
|
|
2685
|
+
* <li>`Vera`</li>
|
|
2686
|
+
* <li>`Wilson`</li>
|
|
2687
|
+
* <li>`Zoey`</li>
|
|
2688
|
+
* </ul>
|
|
2689
|
+
* @enum {string}
|
|
2690
|
+
*/
|
|
2691
|
+
avatar: "Angela" | "Bill" | "Daisy" | "Derek" | "Eva" | "Jake" | "Jeff" | "Jerome" | "Joon" | "Kayla" | "Kent" | "Luna" | "Mark" | "Matthew" | "Monica" | "Peter" | "Selina" | "Tanya" | "Thomas" | "Tina" | "Tyler" | "Vanessa" | "Vera" | "Wilson" | "Zoey";
|
|
2692
|
+
/**
|
|
2693
|
+
* @description The avatars voice and speaking style. Select from the list of available voices: <ul>
|
|
2694
|
+
* <li>`Abb- - Natural`</li>
|
|
2695
|
+
* <li>`Adam - Natural`</li>
|
|
2696
|
+
* <li>`Aiston - Friendly`</li>
|
|
2697
|
+
* <li>`Alice - Newscaster`</li>
|
|
2698
|
+
* <li>`Alison - Cheerful`</li>
|
|
2699
|
+
* <li>`Amber - Friendly`</li>
|
|
2700
|
+
* <li>`Amy - Warm`</li>
|
|
2701
|
+
* <li>`Ana - Cheerful`</li>
|
|
2702
|
+
* <li>`Antoni - Friendly`</li>
|
|
2703
|
+
* <li>`Aria - Newscaster`</li>
|
|
2704
|
+
* <li>`Arnold - Cheerful`</li>
|
|
2705
|
+
* <li>`Arthur - Natural`</li>
|
|
2706
|
+
* <li>`Bella - Friendly`</li>
|
|
2707
|
+
* <li>`Belle - Natural`</li>
|
|
2708
|
+
* <li>`Brandon - Warm`</li>
|
|
2709
|
+
* <li>`Brian - Natural`</li>
|
|
2710
|
+
* <li>`Bruce - Natural`</li>
|
|
2711
|
+
* <li>`Cerise - Cheerful`</li>
|
|
2712
|
+
* <li>`Christopher - Calm`</li>
|
|
2713
|
+
* <li>`Clara - Professional`</li>
|
|
2714
|
+
* <li>`Connor - Natural`</li>
|
|
2715
|
+
* <li>`Dahlia - Friendly`</li>
|
|
2716
|
+
* <li>`Davis - Professional`</li>
|
|
2717
|
+
* <li>`Dean - Natural`</li>
|
|
2718
|
+
* <li>`Delbert - Cheerful`</li>
|
|
2719
|
+
* <li>`Edward - Friendly`</li>
|
|
2720
|
+
* <li>`Elaine - Calm`</li>
|
|
2721
|
+
* <li>`Emily - Natural`</li>
|
|
2722
|
+
* <li>`Emma - Newscaster`</li>
|
|
2723
|
+
* <li>`Eric - Newscaster`</li>
|
|
2724
|
+
* <li>`Grace - Natural`</li>
|
|
2725
|
+
* <li>`Hailey - Calm`</li>
|
|
2726
|
+
* <li>`Indira - Cheerful`</li>
|
|
2727
|
+
* <li>`Isabella - Cheerful`</li>
|
|
2728
|
+
* <li>`Jacob - Natural`</li>
|
|
2729
|
+
* <li>`Jahmai - Friendly`</li>
|
|
2730
|
+
* <li>`Jane - Serious`</li>
|
|
2731
|
+
* <li>`Jason - Serious`</li>
|
|
2732
|
+
* <li>`Jelle - Friendly`</li>
|
|
2733
|
+
* <li>`Jen - Natural`</li>
|
|
2734
|
+
* <li>`Jenny - Professional`</li>
|
|
2735
|
+
* <li>`Jodi - Cheerful`</li>
|
|
2736
|
+
* <li>`Joey - Calm`</li>
|
|
2737
|
+
* <li>`Johan - Friendly`</li>
|
|
2738
|
+
* <li>`Josie - Cheerful`</li>
|
|
2739
|
+
* <li>`Keanan - Natural`</li>
|
|
2740
|
+
* <li>`Keith - Cheerful`</li>
|
|
2741
|
+
* <li>`Kellie - Friendly`</li>
|
|
2742
|
+
* <li>`Lauren - Friendly`</li>
|
|
2743
|
+
* <li>`Leah - Natural`</li>
|
|
2744
|
+
* <li>`Liam - Professional`</li>
|
|
2745
|
+
* <li>`Libby - Natural`</li>
|
|
2746
|
+
* <li>`Lily - Professional`</li>
|
|
2747
|
+
* <li>`Lucas - Natural`</li>
|
|
2748
|
+
* <li>`Luke - Professional`</li>
|
|
2749
|
+
* <li>`Luna - Natural`</li>
|
|
2750
|
+
* <li>`Marieke - Natural`</li>
|
|
2751
|
+
* <li>`Matthew - Professional`</li>
|
|
2752
|
+
* <li>`Michelle - Natural`</li>
|
|
2753
|
+
* <li>`Mitchell - Natural`</li>
|
|
2754
|
+
* <li>`Molly - Newscaster`</li>
|
|
2755
|
+
* <li>`Monica - Calm`</li>
|
|
2756
|
+
* <li>`Natasha - Professional`</li>
|
|
2757
|
+
* <li>`Neerja - Newscaster`</li>
|
|
2758
|
+
* <li>`Noah - Serious`</li>
|
|
2759
|
+
* <li>`Oliver - Newscaster`</li>
|
|
2760
|
+
* <li>`Olivia - Calm`</li>
|
|
2761
|
+
* <li>`Paul - Natural`</li>
|
|
2762
|
+
* <li>`Prabhat - Natural`</li>
|
|
2763
|
+
* <li>`Raveena - Natural`</li>
|
|
2764
|
+
* <li>`Rudi - Friendly`</li>
|
|
2765
|
+
* <li>`Ryan - Professional`</li>
|
|
2766
|
+
* <li>`Sam - Natural`</li>
|
|
2767
|
+
* <li>`Sara - Cheerful`</li>
|
|
2768
|
+
* <li>`Sherry - Friendly`</li>
|
|
2769
|
+
* <li>`Sonia - Warm`</li>
|
|
2770
|
+
* <li>`Thomas - Natural`</li>
|
|
2771
|
+
* <li>`Todd - Professional`</li>
|
|
2772
|
+
* <li>`Tony - Professional`</li>
|
|
2773
|
+
* <li>`Tracy - Cheerful`</li>
|
|
2774
|
+
* <li>`Wayne - Natural`</li>
|
|
2775
|
+
* <li>`Wilder - Natural`</li>
|
|
2776
|
+
* <li>`Wille - Natural`</li>
|
|
2777
|
+
* <li>`William - Friendly`</li>
|
|
2778
|
+
* </ul>
|
|
2779
|
+
* @enum {string}
|
|
2780
|
+
*/
|
|
2781
|
+
voice: "Abbi - Natural" | "Adam - Natural" | "Aiston - Friendly" | "Alice - Newscaster" | "Alison - Cheerful" | "Amber - Friendly" | "Amy - Warm" | "Ana - Cheerful" | "Antoni - Friendly" | "Aria - Newscaster" | "Arnold - Cheerful" | "Arthur - Natural" | "Bella - Friendly" | "Belle - Natural" | "Brandon - Warm" | "Brian - Natural" | "Bruce - Natural" | "Cerise - Cheerful" | "Christopher - Calm" | "Clara - Professional" | "Connor - Natural" | "Dahlia - Friendly" | "Davis - Professional" | "Dean - Natural" | "Delbert - Cheerful" | "Edward - Friendly" | "Elaine - Calm" | "Emily - Natural" | "Emma - Newscaster" | "Eric - Newscaster" | "Grace - Natural" | "Hailey - Calm" | "Indira - Cheerful" | "Isabella - Cheerful" | "Jacob - Natural" | "Jahmai - Friendly" | "Jane - Serious" | "Jason - Serious" | "Jelle - Friendly" | "Jen - Natural" | "Jenny - Professional" | "Jodi - Cheerful" | "Joey - Calm" | "Johan - Friendly" | "Josie - Cheerful" | "Keanan - Natural" | "Keith - Cheerful" | "Kellie - Friendly" | "Lauren - Friendly" | "Leah - Natural" | "Liam - Professional" | "Libby - Natural" | "Lily - Professional" | "Lucas - Natural" | "Luke - Professional" | "Luna - Natural" | "Marieke - Natural" | "Matthew - Professional" | "Michelle - Natural" | "Mitchell - Natural" | "Molly - Newscaster" | "Monica - Calm" | "Natasha - Professional" | "Neerja - Newscaster" | "Noah - Serious" | "Oliver - Newscaster" | "Olivia - Calm" | "Paul - Natural" | "Prabhat - Natural" | "Raveena - Natural" | "Rudi - Friendly" | "Ryan - Professional" | "Sam - Natural" | "Sara - Cheerful" | "Sherry - Friendly" | "Sonia - Warm" | "Thomas - Natural" | "Todd - Professional" | "Tony - Professional" | "Tracy - Cheerful" | "Wayne - Natural" | "Wilder - Natural" | "Wille - Natural" | "William - Friendly";
|
|
2782
|
+
/**
|
|
2783
|
+
* @description The display style of the avatar, a rectangle `normal` or circular `circle` background. Defaults to `normal`.
|
|
2784
|
+
* @enum {string}
|
|
2785
|
+
*/
|
|
2786
|
+
avatarStyle?: "normal" | "circle";
|
|
2787
|
+
/**
|
|
2788
|
+
* @description The background color of the video. Defaults to `#ffffff`.
|
|
2789
|
+
* @example #ffffff
|
|
2790
|
+
*/
|
|
2791
|
+
background?: string;
|
|
2792
|
+
/**
|
|
2793
|
+
* @description The aspect ratio of the video, `16:9` horizontal or `9:16` vertical. Defaults to `16:9`.
|
|
2794
|
+
* @enum {string}
|
|
2795
|
+
*/
|
|
2796
|
+
ratio?: "16:9" | "9:16";
|
|
2797
|
+
/**
|
|
2798
|
+
* @description A boolean flag indicating whether the video is for testing purposes. See the "test" parameter in [HeyGen](https://docs.heygen.com/reference/generate-video) for more details.
|
|
2799
|
+
* @example true
|
|
2800
|
+
*/
|
|
2801
|
+
test?: boolean;
|
|
2802
|
+
};
|
|
2803
|
+
/** @description Generate assets using OpenAI. OpenAI provide a text generation service using ChatGPT 3.5 and 4. The OpenAI provider works on a bring-your-own-key basis, credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/openai), not in the request. */
|
|
2804
|
+
OpenAiGeneratedAsset: {
|
|
2805
|
+
/**
|
|
2806
|
+
* @description The name of the provider - set to `openai` for OpenAI. (enum property replaced by openapi-typescript)
|
|
2807
|
+
* @enum {string}
|
|
2808
|
+
*/
|
|
2809
|
+
provider: "OpenAiGeneratedAsset";
|
|
2810
|
+
/** @description Options and configuration for the OpenAI text-generator service. */
|
|
2811
|
+
options: components["schemas"]["OpenAiGeneratedAssetOptions"];
|
|
2812
|
+
};
|
|
2813
|
+
/**
|
|
2814
|
+
* @description Generate assets using OpenAI provider AI services.
|
|
2815
|
+
*
|
|
2816
|
+
* The following AI generation services are available: <ul>
|
|
2817
|
+
* <li><a href="#tocs_openaitextgeneratoroptions">OpenAiTextGeneratorOptions</a></li>
|
|
2818
|
+
* </ul>
|
|
2819
|
+
*/
|
|
2820
|
+
OpenAiGeneratedAssetOptions: components["schemas"]["OpenAiTextGeneratorOptions"];
|
|
2821
|
+
/** @description Options for the OpenAI text-generator service. Set a text prompt that will be used to generate a new body of text. The output will be generated as a text (txt) file available at the URL returned in the response. */
|
|
2822
|
+
OpenAiTextGeneratorOptions: {
|
|
2823
|
+
/**
|
|
2824
|
+
* @description The type of asset to generate - set to `text-generator` for text generation.
|
|
2825
|
+
* @default text-generator
|
|
2826
|
+
* @enum {string}
|
|
2827
|
+
*/
|
|
2828
|
+
type: "text-generator";
|
|
2829
|
+
/**
|
|
2830
|
+
* @description The text prompt to generate text from.
|
|
2831
|
+
* @example Generate a short script for a 15 second video describing the benefits of the Shotstack API
|
|
2832
|
+
*/
|
|
2833
|
+
prompt: string;
|
|
2834
|
+
/**
|
|
2835
|
+
* @description The model to use for generating the text. Select from the list of available models: <ul>
|
|
2836
|
+
* <li>`gpt-3.5-turbo`</li>
|
|
2837
|
+
* <li>`gpt-4`</li>
|
|
2838
|
+
* </ul>
|
|
2839
|
+
* @example gpt-4
|
|
2840
|
+
* @enum {string}
|
|
2841
|
+
*/
|
|
2842
|
+
model: "gpt-3.5-turbo" | "gpt-4";
|
|
2843
|
+
/**
|
|
2844
|
+
* @description The system prompt to use for generating the text. This is an optional prompt that can be used to provide context or additional information to the model.
|
|
2845
|
+
* @example You are a professional script writer and film maker
|
|
2846
|
+
*/
|
|
2847
|
+
systemPrompt?: string;
|
|
2848
|
+
};
|
|
2849
|
+
/** @description Generate assets using Stability AI. Stability AI provide a text-to-image service using Stable Diffusion. The Stability AI provider works on a bring-your-own-key basis, credentials are required and must be added via the [dashboard](https://dashboard.shotstack.io/integrations/stability-ai), not in the request. */
|
|
2850
|
+
StabilityAiGeneratedAsset: {
|
|
2851
|
+
/**
|
|
2852
|
+
* @description The name of the provider - set to `stability-ai` for Stability AI. (enum property replaced by openapi-typescript)
|
|
2853
|
+
* @enum {string}
|
|
2854
|
+
*/
|
|
2855
|
+
provider: "StabilityAiGeneratedAsset";
|
|
2856
|
+
/** @description Options and configuration for the Stability AI text-to-image service. */
|
|
2857
|
+
options: components["schemas"]["StabilityAiGeneratedAssetOptions"];
|
|
2858
|
+
};
|
|
2859
|
+
/**
|
|
2860
|
+
* @description Generate assets using Stability AI provider AI services.
|
|
2861
|
+
*
|
|
2862
|
+
* The following AI generation services are available: <ul>
|
|
2863
|
+
* <li><a href="#tocs_stabilityaitexttoimageoptions">StabilityAiTextToImageOptions</a></li>
|
|
2864
|
+
* </ul>
|
|
2865
|
+
*/
|
|
2866
|
+
StabilityAiGeneratedAssetOptions: components["schemas"]["StabilityAiTextToImageOptions"];
|
|
2867
|
+
/** @description Options for the Stability AI text-to-image service. Set a text prompt to generate an image from plus other engine and configuration options. The output will be generated as a JPG file available at the URL returned in the response. */
|
|
2868
|
+
StabilityAiTextToImageOptions: {
|
|
2869
|
+
/**
|
|
2870
|
+
* @description The type of asset to generate - set to `text-to-image` for text-to-image.
|
|
2871
|
+
* @default text-to-image
|
|
2872
|
+
* @enum {string}
|
|
2873
|
+
*/
|
|
2874
|
+
type: "text-to-image";
|
|
2875
|
+
/**
|
|
2876
|
+
* @description The text prompt to generate an image from.
|
|
2877
|
+
* @example A detailed photograph of Mars, showcasing its orange-red surface
|
|
2878
|
+
*/
|
|
2879
|
+
prompt: string;
|
|
2880
|
+
/**
|
|
2881
|
+
* @description The engine (model) to use for generating the image. Select from the list of available engines: <ul>
|
|
2882
|
+
* <li>`stable-diffusion-xl-1024-v0-9`</li>
|
|
2883
|
+
* <li>`stable-diffusion-xl-1024-v1-0`</li>
|
|
2884
|
+
* <li>`stable-diffusion-v1-6`</li>
|
|
2885
|
+
* <li>`stable-diffusion-512-v2-1`</li>
|
|
2886
|
+
* <li>`stable-diffusion-xl-beta-v2-2-2`</li>
|
|
2887
|
+
* </ul>
|
|
2888
|
+
* @default stable-diffusion-xl-1024-v1-0
|
|
2889
|
+
* @example stable-diffusion-xl-1024-v1-0
|
|
2890
|
+
* @enum {string}
|
|
2891
|
+
*/
|
|
2892
|
+
engine: "stable-diffusion-xl-1024-v0-9" | "stable-diffusion-xl-1024-v1-0" | "stable-diffusion-v1-6" | "stable-diffusion-512-v2-1" | "stable-diffusion-xl-beta-v2-2-2";
|
|
2893
|
+
/**
|
|
2894
|
+
* @description The width of the image in pixels. Must be divisible by 64.
|
|
2895
|
+
* @example 512
|
|
2896
|
+
*/
|
|
2897
|
+
width: number;
|
|
2898
|
+
/**
|
|
2899
|
+
* @description The height of the image in pixels. Must be divisible by 64.
|
|
2900
|
+
* @example 512
|
|
2901
|
+
*/
|
|
2902
|
+
height: number;
|
|
2903
|
+
/**
|
|
2904
|
+
* @description The number of iterative diffusion steps to run. A number between 10 and 50.
|
|
2905
|
+
* @default 30
|
|
2906
|
+
* @example 30
|
|
2907
|
+
*/
|
|
2908
|
+
steps: number;
|
|
2909
|
+
/**
|
|
2910
|
+
* @description Using the same seed can help you create images that look similar. Set to 0 for a random seed. A number between 0 and 4294967295.
|
|
2911
|
+
* @default 0
|
|
2912
|
+
* @example 0
|
|
2913
|
+
*/
|
|
2914
|
+
seed: number;
|
|
2915
|
+
/**
|
|
2916
|
+
* @description Determines how closely the generated image will match the prompt. Lower numbers allow for more creative freedom. A number between 0 and 35.
|
|
2917
|
+
* @default 7
|
|
2918
|
+
* @example 7
|
|
2919
|
+
*/
|
|
2920
|
+
cfgScale: number;
|
|
2921
|
+
/**
|
|
2922
|
+
* @description Apply a preset to generate an image in a particular style. Select from the list of available presets: <ul>
|
|
2923
|
+
* <li>`3d-model`</li>
|
|
2924
|
+
* <li>`analog-film`</li>
|
|
2925
|
+
* <li>`anime`</li>
|
|
2926
|
+
* <li>`cinematic`</li>
|
|
2927
|
+
* <li>`comic-book`</li>
|
|
2928
|
+
* <li>`digital-art`</li>
|
|
2929
|
+
* <li>`enhance`</li>
|
|
2930
|
+
* <li>`fantasy-art`</li>
|
|
2931
|
+
* <li>`isometric`</li>
|
|
2932
|
+
* <li>`line-art`</li>
|
|
2933
|
+
* <li>`low-poly`</li>
|
|
2934
|
+
* <li>`modeling-compound`</li>
|
|
2935
|
+
* <li>`neon-punk`</li>
|
|
2936
|
+
* <li>`origami`</li>
|
|
2937
|
+
* <li>`photographic`</li>
|
|
2938
|
+
* <li>`pixel-art`</li>
|
|
2939
|
+
* <li>`tile-texture`</li>
|
|
2940
|
+
* </ul>
|
|
2941
|
+
* @example photographic
|
|
2942
|
+
* @enum {string}
|
|
2943
|
+
*/
|
|
2944
|
+
stylePreset?: "3d-model" | "analog-film" | "anime" | "cinematic" | "comic-book" | "digital-art" | "enhance" | "fantasy-art" | "isometric" | "line-art" | "low-poly" | "modeling-compound" | "neon-punk" | "origami" | "photographic" | "pixel-art" | "tile-texture";
|
|
2945
|
+
};
|
|
2946
|
+
/** @description The response received after a [render request](#render-asset) or [template render](#render-template) is submitted. The render task is queued for rendering and a unique render id is returned. */
|
|
2947
|
+
QueuedResponse: {
|
|
2948
|
+
/**
|
|
2949
|
+
* @description `true` if successfully queued, else `false`.
|
|
2950
|
+
* @example true
|
|
2951
|
+
*/
|
|
2952
|
+
success: boolean;
|
|
2953
|
+
/**
|
|
2954
|
+
* @description `Created`, `Bad Request` or an error message.
|
|
2955
|
+
* @example Created
|
|
2956
|
+
*/
|
|
2957
|
+
message: string;
|
|
2958
|
+
/** @description `QueuedResponseData` or an error message. */
|
|
2959
|
+
response: components["schemas"]["QueuedResponseData"];
|
|
2960
|
+
};
|
|
2961
|
+
/** @description The response data returned with the [QueuedResponse](#tocs_queuedresponse). */
|
|
2962
|
+
QueuedResponseData: {
|
|
2963
|
+
/**
|
|
2964
|
+
* @description Success response message or error details.
|
|
2965
|
+
* @example Render Successfully Queued
|
|
2966
|
+
*/
|
|
2967
|
+
message: string;
|
|
2968
|
+
/**
|
|
2969
|
+
* @description The id of the render task in UUID format.
|
|
2970
|
+
* @example 2abd5c11-0f3d-4c6d-ba20-235fc9b8e8b7
|
|
2971
|
+
*/
|
|
2972
|
+
id: string;
|
|
2973
|
+
};
|
|
2974
|
+
/** @description The response received after a [render status request](#get-render-status) is submitted. The response includes details about status of a render and the output URL. */
|
|
2975
|
+
RenderResponse: {
|
|
2976
|
+
/**
|
|
2977
|
+
* @description `true` if status available, else `false`.
|
|
2978
|
+
* @example true
|
|
2979
|
+
*/
|
|
2980
|
+
success: boolean;
|
|
2981
|
+
/**
|
|
2982
|
+
* @description `OK` or an error message.
|
|
2983
|
+
* @example OK
|
|
2984
|
+
*/
|
|
2985
|
+
message: string;
|
|
2986
|
+
/** @description `RenderResponse` or an error message. */
|
|
2987
|
+
response: components["schemas"]["RenderResponseData"];
|
|
2988
|
+
};
|
|
2989
|
+
/** @description The response data returned with the [RenderResponse](#tocs_renderresponse) including status and URL. */
|
|
2990
|
+
RenderResponseData: {
|
|
2991
|
+
/**
|
|
2992
|
+
* @description The id of the render task in UUID format.
|
|
2993
|
+
* @example 2abd5c11-0f3d-4c6d-ba20-235fc9b8e8b7
|
|
2994
|
+
*/
|
|
2995
|
+
id: string;
|
|
2996
|
+
/**
|
|
2997
|
+
* @description The owner id of the render task.
|
|
2998
|
+
* @example 5ca6hu7s9k
|
|
2999
|
+
*/
|
|
3000
|
+
owner: string;
|
|
3001
|
+
/**
|
|
3002
|
+
* @description The customer subscription plan.
|
|
3003
|
+
* @example basic
|
|
3004
|
+
*/
|
|
3005
|
+
plan?: string;
|
|
3006
|
+
/**
|
|
3007
|
+
* @description The status of the render task. <ul>
|
|
3008
|
+
* <li>`queued` - render is queued waiting to be rendered</li>
|
|
3009
|
+
* <li>`fetching` - assets are being fetched</li>
|
|
3010
|
+
* <li>`preprocessing` - video assets are being processed for compatibility</li>
|
|
3011
|
+
* <li>`rendering` - the asset is being rendered</li>
|
|
3012
|
+
* <li>`saving` - the final asset is being saved to storage</li>
|
|
3013
|
+
* <li>`done` - the asset is ready to be downloaded</li>
|
|
3014
|
+
* <li>`failed` - there was an error rendering the asset</li>
|
|
3015
|
+
* </ul>
|
|
3016
|
+
* @example done
|
|
3017
|
+
* @enum {string}
|
|
3018
|
+
*/
|
|
3019
|
+
status: "queued" | "fetching" | "preprocessing" | "rendering" | "saving" | "done" | "failed";
|
|
3020
|
+
/**
|
|
3021
|
+
* @description An error message, only displayed if an error occurred.
|
|
3022
|
+
* @example
|
|
3023
|
+
*/
|
|
3024
|
+
error?: string;
|
|
3025
|
+
/**
|
|
3026
|
+
* @description The output video or audio length in seconds.
|
|
3027
|
+
* @example 8.5
|
|
3028
|
+
*/
|
|
3029
|
+
duration?: number;
|
|
3030
|
+
/**
|
|
3031
|
+
* @description The time taken to render the asset in milliseconds.
|
|
3032
|
+
* @example 9433.44
|
|
3033
|
+
*/
|
|
3034
|
+
renderTime?: number;
|
|
3035
|
+
/**
|
|
3036
|
+
* @description The URL of the final asset. This will only be available if status is done. This is a temporary URL and will be deleted after 24 hours. By default all assets are copied to the Shotstack hosting and CDN destination.
|
|
3037
|
+
* @example https://shotstack-api-v1-output.s3-ap-southeast-2.amazonaws.com/5ca6hu7s9k/2abd5c11-0f3d-4c6d-ba20-235fc9b8e8b7.mp4
|
|
3038
|
+
*/
|
|
3039
|
+
url?: string;
|
|
3040
|
+
/**
|
|
3041
|
+
* @description The URL of the poster image if requested. This will only be available if status is done.
|
|
3042
|
+
* @example https://shotstack-api-v1-output.s3-ap-southeast-2.amazonaws.com/5ca6hu7s9k/2abd5c11-0f3d-4c6d-ba20-235fc9b8e8b7-poster.jpg
|
|
3043
|
+
*/
|
|
3044
|
+
poster?: string | null;
|
|
3045
|
+
/**
|
|
3046
|
+
* @description The URL of the thumbnail image if requested. This will only be available if status is done.
|
|
3047
|
+
* @example https://shotstack-api-v1-output.s3-ap-southeast-2.amazonaws.com/5ca6hu7s9k/2abd5c11-0f3d-4c6d-ba20-235fc9b8e8b7-thumb.jpg
|
|
3048
|
+
*/
|
|
3049
|
+
thumbnail?: string | null;
|
|
3050
|
+
/** @description The timeline and output data to be rendered. */
|
|
3051
|
+
data?: components["schemas"]["Edit"];
|
|
3052
|
+
/**
|
|
3053
|
+
* @description The time the render task was initially queued.
|
|
3054
|
+
* @example 2020-10-30T09:42:29.446Z
|
|
3055
|
+
*/
|
|
3056
|
+
created?: string;
|
|
3057
|
+
/**
|
|
3058
|
+
* @description The time the render status was last updated.
|
|
3059
|
+
* @example 2020-10-30T09:42:39.168Z
|
|
3060
|
+
*/
|
|
3061
|
+
updated?: string;
|
|
3062
|
+
};
|
|
3063
|
+
/** @description The response received after a [template](#create-template) is submitted. The template is saved and a unique template id is returned. */
|
|
3064
|
+
TemplateResponse: {
|
|
3065
|
+
/**
|
|
3066
|
+
* @description `true` if successfully created, else `false`.
|
|
3067
|
+
* @example true
|
|
3068
|
+
*/
|
|
3069
|
+
success: boolean;
|
|
3070
|
+
/**
|
|
3071
|
+
* @description `Created`, `Bad Request` or an error message.
|
|
3072
|
+
* @example Created
|
|
3073
|
+
*/
|
|
3074
|
+
message: string;
|
|
3075
|
+
/** @description `TemplateResponseData` or an error message. */
|
|
3076
|
+
response: components["schemas"]["TemplateResponseData"];
|
|
3077
|
+
};
|
|
3078
|
+
/** @description The response data returned with the [TemplateResponse](#tocs_templateresponse). */
|
|
3079
|
+
TemplateResponseData: {
|
|
3080
|
+
/**
|
|
3081
|
+
* @description Success response message or error details.
|
|
3082
|
+
* @example Template Successfully Created
|
|
3083
|
+
*/
|
|
3084
|
+
message: string;
|
|
3085
|
+
/**
|
|
3086
|
+
* @description The unique id of the template in UUID format.
|
|
3087
|
+
* @example f5493c17-d01f-445c-bb49-535fae65f219
|
|
3088
|
+
*/
|
|
3089
|
+
id: string;
|
|
3090
|
+
};
|
|
3091
|
+
/** @description The template data including the template name and [Edit](#tocs_edit). */
|
|
3092
|
+
TemplateDataResponse: {
|
|
3093
|
+
/**
|
|
3094
|
+
* @description `true` if successfully returned, else `false`.
|
|
3095
|
+
* @example true
|
|
3096
|
+
*/
|
|
3097
|
+
success: boolean;
|
|
3098
|
+
/**
|
|
3099
|
+
* @description `OK`, `Bad Request` or an error message.
|
|
3100
|
+
* @example OK
|
|
3101
|
+
*/
|
|
3102
|
+
message: string;
|
|
3103
|
+
/** @description `TemplateDataResponseData` or an error message. */
|
|
3104
|
+
response: components["schemas"]["TemplateDataResponseData"];
|
|
3105
|
+
};
|
|
3106
|
+
/** @description The response data returned with the [TemplateDataResponse](#tocs_templatedataresponse). */
|
|
3107
|
+
TemplateDataResponseData: {
|
|
3108
|
+
/**
|
|
3109
|
+
* @description The unique id of the template in UUID format.
|
|
3110
|
+
* @example f5493c17-d01f-445c-bb49-535fae65f219
|
|
3111
|
+
*/
|
|
3112
|
+
id: string;
|
|
3113
|
+
/**
|
|
3114
|
+
* @description The template name.
|
|
3115
|
+
* @example My template
|
|
3116
|
+
*/
|
|
3117
|
+
name: string;
|
|
3118
|
+
/**
|
|
3119
|
+
* @description The owner id of the templates.
|
|
3120
|
+
* @example 5ca6hu7s9k
|
|
3121
|
+
*/
|
|
3122
|
+
owner: string;
|
|
3123
|
+
/**
|
|
3124
|
+
* @description The [Edit](#tocs_edit) template.
|
|
3125
|
+
* @example {
|
|
3126
|
+
* "$ref": "../../definitions/edit.yaml"
|
|
3127
|
+
* }
|
|
3128
|
+
*/
|
|
3129
|
+
template: components["schemas"]["Edit"];
|
|
3130
|
+
};
|
|
3131
|
+
/** @description A list of previously saved templates. */
|
|
3132
|
+
TemplateListResponse: {
|
|
3133
|
+
/**
|
|
3134
|
+
* @description `true` if successfully returned, else `false`.
|
|
3135
|
+
* @example true
|
|
3136
|
+
*/
|
|
3137
|
+
success: boolean;
|
|
3138
|
+
/**
|
|
3139
|
+
* @description `OK`, `Bad Request` or an error message.
|
|
3140
|
+
* @example OK
|
|
3141
|
+
*/
|
|
3142
|
+
message: string;
|
|
3143
|
+
/** @description `TemplateListResponseData` or an error message. */
|
|
3144
|
+
response: components["schemas"]["TemplateListResponseData"];
|
|
3145
|
+
};
|
|
3146
|
+
/** @description The response data returned with the [TemplateListResponse](#tocs_templatelistresponse). */
|
|
3147
|
+
TemplateListResponseData: {
|
|
3148
|
+
/**
|
|
3149
|
+
* @description The owner id of the templates.
|
|
3150
|
+
* @example 5ca6hu7s9k
|
|
3151
|
+
*/
|
|
3152
|
+
owner: string;
|
|
3153
|
+
/** @description The list of templates. */
|
|
3154
|
+
templates: components["schemas"]["TemplateListResponseItem"][];
|
|
3155
|
+
};
|
|
3156
|
+
/** @description The individual template item returned with the [TemplateListResponseData](#tocs_templatelistresponsedata) templates list. */
|
|
3157
|
+
TemplateListResponseItem: {
|
|
3158
|
+
/**
|
|
3159
|
+
* @description The unique id of the template in UUID format.
|
|
3160
|
+
* @example f5493c17-d01f-445c-bb49-535fae65f219
|
|
3161
|
+
*/
|
|
3162
|
+
id: string;
|
|
3163
|
+
/**
|
|
3164
|
+
* @description The template name
|
|
3165
|
+
* @example My template
|
|
3166
|
+
*/
|
|
3167
|
+
name: string;
|
|
3168
|
+
/**
|
|
3169
|
+
* @description The time the template was created.
|
|
3170
|
+
* @example 2022-06-10T12:50:21.455Z
|
|
3171
|
+
*/
|
|
3172
|
+
created?: string;
|
|
3173
|
+
/**
|
|
3174
|
+
* @description The time the template was last updated.
|
|
3175
|
+
* @example 2022-06-22T08:24:30.168Z
|
|
3176
|
+
*/
|
|
3177
|
+
updated?: string;
|
|
3178
|
+
};
|
|
3179
|
+
/** @description The response received after a [probe request](#inspect-media) is submitted. The probe requests returns data from FFprobe formatted as JSON. */
|
|
3180
|
+
ProbeResponse: {
|
|
3181
|
+
/**
|
|
3182
|
+
* @description `true` if media successfully read, else `false`.
|
|
3183
|
+
* @example true
|
|
3184
|
+
*/
|
|
3185
|
+
success: boolean;
|
|
3186
|
+
/**
|
|
3187
|
+
* @description `Created`, `Bad Request` or an error message.
|
|
3188
|
+
* @example Created
|
|
3189
|
+
*/
|
|
3190
|
+
message: string;
|
|
3191
|
+
/** @description The response from FFprobe in JSON format. */
|
|
3192
|
+
response: Record<string, never>;
|
|
3193
|
+
};
|
|
3194
|
+
/** @description The response returned by the Serve API [get asset](#get-asset) request. Includes details of a hosted video, image, audio file, thumbnail or poster image. The response follows the [json:api](https://jsonapi.org/) specification. */
|
|
3195
|
+
AssetResponse: {
|
|
3196
|
+
/** @description An asset resource. */
|
|
3197
|
+
data: components["schemas"]["AssetResponseData"];
|
|
3198
|
+
};
|
|
3199
|
+
/** @description The response returned by the Serve API [get asset by render id](#get-asset-by-render-id) request. The response is an array of asset resources, including video, image, audio, thumbnail and poster image. The response follows the [json:api](https://jsonapi.org/) specification. */
|
|
3200
|
+
AssetRenderResponse: {
|
|
3201
|
+
/** @description An array of asset resources grouped by render id. */
|
|
3202
|
+
data: components["schemas"]["AssetResponseData"][];
|
|
3203
|
+
};
|
|
3204
|
+
/** @description The type of resource (an asset) and attributes of the asset. */
|
|
3205
|
+
AssetResponseData: {
|
|
3206
|
+
/**
|
|
3207
|
+
* @description The type of resource, in this case it is an assets.
|
|
3208
|
+
* @example asset
|
|
3209
|
+
*/
|
|
3210
|
+
type: string;
|
|
3211
|
+
/** @description The asset attributes including render id, url, filename, file size, etc... */
|
|
3212
|
+
attributes: components["schemas"]["AssetResponseAttributes"];
|
|
3213
|
+
};
|
|
3214
|
+
/** @description The list of asset attributes and their values. */
|
|
3215
|
+
AssetResponseAttributes: {
|
|
3216
|
+
/**
|
|
3217
|
+
* @description The unique id of the hosted asset in UUID format.
|
|
3218
|
+
* @example a4482cbf-e321-42a2-ac8b-947d26886840
|
|
3219
|
+
*/
|
|
3220
|
+
id: string;
|
|
3221
|
+
/**
|
|
3222
|
+
* @description The owner id of the asset.
|
|
3223
|
+
* @example 5ca6hu7s9k
|
|
3224
|
+
*/
|
|
3225
|
+
owner: string;
|
|
3226
|
+
/**
|
|
3227
|
+
* @description The region the asset is hosted, currently only `au` (Australia).
|
|
3228
|
+
* @example au
|
|
3229
|
+
*/
|
|
3230
|
+
region?: string;
|
|
3231
|
+
/**
|
|
3232
|
+
* @description The original render id that created the asset in UUID format. Multiple assets can share the same render id.
|
|
3233
|
+
* @example 2abd5c11-0f3d-4c6d-ba20-235fc9b8e8b7
|
|
3234
|
+
*/
|
|
3235
|
+
renderId?: string;
|
|
3236
|
+
/**
|
|
3237
|
+
* @description The third party id of an asset transferred to an external provider, i.e. Mux, YouTube or S3. If the provider is Shotstack, the providerID is the same as the asset id.
|
|
3238
|
+
* @example a4482cbf-e321-42a2-ac8b-947d26886840
|
|
3239
|
+
*/
|
|
3240
|
+
providerId?: string;
|
|
3241
|
+
/**
|
|
3242
|
+
* @description The asset file name.
|
|
3243
|
+
* @example 2abd5c11-0f3d-4c6d-ba20-235fc9b8e8b7.mp4
|
|
3244
|
+
*/
|
|
3245
|
+
filename?: string;
|
|
3246
|
+
/**
|
|
3247
|
+
* @description The asset file name.
|
|
3248
|
+
* @example https://cdn.shotstack.io/au/v1/5ca6hu7s9k/2abd5c11-0f3d-4c6d-ba20-235fc9b8e8b7.mp4
|
|
3249
|
+
*/
|
|
3250
|
+
url?: string;
|
|
3251
|
+
/**
|
|
3252
|
+
* @description The status of the asset. <ul>
|
|
3253
|
+
* <li>`importing` - the asset is being copied to the hosting service</li>
|
|
3254
|
+
* <li>`ready` - the asset is ready to be served to users</li>
|
|
3255
|
+
* <li>`failed` - the asset failed to copy or delete</li>
|
|
3256
|
+
* <li>`deleted` - the asset has been deleted</li>
|
|
3257
|
+
* </ul>
|
|
3258
|
+
* @example ready
|
|
3259
|
+
* @enum {string}
|
|
3260
|
+
*/
|
|
3261
|
+
status: "importing" | "ready" | "failed" | "deleted";
|
|
3262
|
+
/**
|
|
3263
|
+
* @description The time the asset was created.
|
|
3264
|
+
* @example 2021-06-30T09:42:29.446Z
|
|
3265
|
+
*/
|
|
3266
|
+
created?: string;
|
|
3267
|
+
/**
|
|
3268
|
+
* @description The time the asset status was last updated.
|
|
3269
|
+
* @example 2021-06-30T09:42:30.168Z
|
|
3270
|
+
*/
|
|
3271
|
+
updated?: string;
|
|
3272
|
+
};
|
|
3273
|
+
/** @description The response returned by the Serve API [transfer asset](#transfer-asset) request. The response includes the ID and transfer status. The response follows the [json:api](https://jsonapi.org/) specification. */
|
|
3274
|
+
TransferResponse: {
|
|
3275
|
+
/** @description An asset transfer resource. */
|
|
3276
|
+
data: components["schemas"]["TransferResponseData"];
|
|
3277
|
+
};
|
|
3278
|
+
/** @description The type of resource (an asset) and the transfer attributes. Returned with [TransferResponse](#tocs_transferresponse). */
|
|
3279
|
+
TransferResponseData: {
|
|
3280
|
+
/**
|
|
3281
|
+
* @description The type of resource, in this case it is an asset.
|
|
3282
|
+
* @example asset
|
|
3283
|
+
*/
|
|
3284
|
+
type?: string;
|
|
3285
|
+
/** @description The attributes of the asset transfer including the status. */
|
|
3286
|
+
attributes?: components["schemas"]["TransferResponseAttributes"];
|
|
3287
|
+
};
|
|
3288
|
+
/** @description The transfer request attributes inlcudling the user specified ID and status. Returned with [TransferResponseData](#tocs_transferresponsedata). */
|
|
3289
|
+
TransferResponseAttributes: {
|
|
3290
|
+
/**
|
|
3291
|
+
* @description The user provided ID for the asset
|
|
3292
|
+
* @example 018e8937-5015-75ee-aab6-03f214981133
|
|
3293
|
+
*/
|
|
3294
|
+
id?: string;
|
|
3295
|
+
/**
|
|
3296
|
+
* @description The attributes of the asset transfer including the status.
|
|
3297
|
+
* @example 5ca6hu7s9k
|
|
3298
|
+
*/
|
|
3299
|
+
owner?: string;
|
|
3300
|
+
/**
|
|
3301
|
+
* @description The status of the asset transfer. <ul>
|
|
3302
|
+
* <li>`queued` - the transfer request has been queued</li>
|
|
3303
|
+
* <li>`failed` - the transfer request failed</li>
|
|
3304
|
+
* </ul>
|
|
3305
|
+
* @example queued
|
|
3306
|
+
* @enum {string}
|
|
3307
|
+
*/
|
|
3308
|
+
status?: "queued" | "failed";
|
|
3309
|
+
/**
|
|
3310
|
+
* @description The time the asset transfer was created.
|
|
3311
|
+
* @example 2023-09-28T11:17:32.226Z
|
|
3312
|
+
*/
|
|
3313
|
+
created?: string;
|
|
3314
|
+
};
|
|
3315
|
+
/** @description The response returned by the Ingest API [fetch source](#fetch-source) request. Includes the id of the source file. The response follows the [json:api](https://jsonapi.org/) specification. */
|
|
3316
|
+
QueuedSourceResponse: {
|
|
3317
|
+
/** @description A source resource. */
|
|
3318
|
+
data: components["schemas"]["QueuedSourceResponseData"];
|
|
3319
|
+
};
|
|
3320
|
+
/** @description The type of resource (a source) and the newly created source id. Returned with [QueuedSourceResponse](#tocs_queuedsourceresponse). */
|
|
3321
|
+
QueuedSourceResponseData: {
|
|
3322
|
+
/**
|
|
3323
|
+
* @description The type of resource, in this case it is a source.
|
|
3324
|
+
* @example source
|
|
3325
|
+
*/
|
|
3326
|
+
type: string;
|
|
3327
|
+
/**
|
|
3328
|
+
* @description The source id.
|
|
3329
|
+
* @example zzytey4v-32km-kq1z-aftr-3kcuqi0brad2
|
|
3330
|
+
*/
|
|
3331
|
+
id: string;
|
|
3332
|
+
};
|
|
3333
|
+
/** @description A list of all ingested source files fetched or uploaded to a users account. */
|
|
3334
|
+
SourceListResponse: {
|
|
3335
|
+
/** @description An array of ingested source files. */
|
|
3336
|
+
data: components["schemas"]["SourceResponseData"][];
|
|
3337
|
+
};
|
|
3338
|
+
/** @description The response returned by the Ingest API [get source](#get-source) request. Includes details of the ingested source file. The response follows the [json:api](https://jsonapi.org/) specification. */
|
|
3339
|
+
SourceResponse: {
|
|
3340
|
+
/** @description A source resource. */
|
|
3341
|
+
data: components["schemas"]["SourceResponseData"];
|
|
3342
|
+
};
|
|
3343
|
+
/** @description The type of resource (a source), it's id and attributes of the source file. */
|
|
3344
|
+
SourceResponseData: {
|
|
3345
|
+
/**
|
|
3346
|
+
* @description The type of resource, in this case it is a source.
|
|
3347
|
+
* @example source
|
|
3348
|
+
*/
|
|
3349
|
+
type: string;
|
|
3350
|
+
/**
|
|
3351
|
+
* @description The source file id.
|
|
3352
|
+
* @example zzytey4v-32km-kq1z-aftr-3kcuqi0brad2
|
|
3353
|
+
*/
|
|
3354
|
+
id: string;
|
|
3355
|
+
/** @description The source attributes including its url, status, width, height, duration, etc... */
|
|
3356
|
+
attributes: components["schemas"]["SourceResponseAttributes"];
|
|
3357
|
+
};
|
|
3358
|
+
/** @description The id and attributes of the source file. */
|
|
3359
|
+
SourceResponseAttributes: {
|
|
3360
|
+
/**
|
|
3361
|
+
* @description The source id.
|
|
3362
|
+
* @example zzytey4v-32km-kq1z-aftr-3kcuqi0brad2
|
|
3363
|
+
*/
|
|
3364
|
+
id: string;
|
|
3365
|
+
/**
|
|
3366
|
+
* @description The owner id of the source file.
|
|
3367
|
+
* @example 5ca6hu7s9k
|
|
3368
|
+
*/
|
|
3369
|
+
owner: string;
|
|
3370
|
+
/**
|
|
3371
|
+
* @description The original URL of an ingested source file, where it originated. Only displayed for files ingested using the [fetch source](#fetch-source) endpoint. Not displayed for direct uploads.
|
|
3372
|
+
* @example https://github.com/shotstack/test-media/raw/main/captioning/scott-ko.mp4
|
|
3373
|
+
*/
|
|
3374
|
+
input?: string;
|
|
3375
|
+
/**
|
|
3376
|
+
* @description The URL of the source file hosted by Shotstack. The file at the URL can be used by the Edit API. Source file URL's consist of a base URL (AWS bucket), owner id, source id and a file named source. The extension varies depending on the type of file ingested.
|
|
3377
|
+
* @example https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/5ca6hu7s9k/zzytey4v-32km-kq1z-aftr-3kcuqi0brad2/source.mp4
|
|
3378
|
+
*/
|
|
3379
|
+
source?: string;
|
|
3380
|
+
/**
|
|
3381
|
+
* @description The status of the source file ingestion task. <ul>
|
|
3382
|
+
* <li>`queued` - ingestion task is queued waiting to be fetched</li>
|
|
3383
|
+
* <li>`importing` - the source file is being downloaded</li>
|
|
3384
|
+
* <li>`ready` - the source file has been ingested and stored</li>
|
|
3385
|
+
* <li>`failed` - there was an error ingesting the source file</li>
|
|
3386
|
+
* <li>`deleted` - the source file has been deleted</li>
|
|
3387
|
+
* </ul>
|
|
3388
|
+
* @example ready
|
|
3389
|
+
* @enum {unknown}
|
|
3390
|
+
*/
|
|
3391
|
+
status?: "queued" | "importing" | "ready" | "failed" | "deleted" | "overwritten";
|
|
3392
|
+
/** @description The list of outputs generated from the source file. Currently supports renditions which are versions of the source file with different transformations applied. */
|
|
3393
|
+
outputs?: components["schemas"]["OutputsResponse"];
|
|
3394
|
+
/**
|
|
3395
|
+
* @description The width in pixels of the ingested source file, if a video or image.
|
|
3396
|
+
* @example 1920
|
|
3397
|
+
*/
|
|
3398
|
+
width?: number;
|
|
3399
|
+
/**
|
|
3400
|
+
* @description The height in pixels of the ingested source file, if a video or image.
|
|
3401
|
+
* @example 1080
|
|
3402
|
+
*/
|
|
3403
|
+
height?: string;
|
|
3404
|
+
/**
|
|
3405
|
+
* Format: float
|
|
3406
|
+
* @description The duration in seconds of the ingested source file, if a video or audio file.
|
|
3407
|
+
* @example 25.86
|
|
3408
|
+
*/
|
|
3409
|
+
duration?: number;
|
|
3410
|
+
/**
|
|
3411
|
+
* Format: float
|
|
3412
|
+
* @description The frame rate in frames per second of the source file, if a video file.
|
|
3413
|
+
* @example 23.967
|
|
3414
|
+
*/
|
|
3415
|
+
fps?: number;
|
|
3416
|
+
/**
|
|
3417
|
+
* @description The time the ingestion task was initially queued.
|
|
3418
|
+
* @example 2023-01-02T01:47:18.973Z
|
|
3419
|
+
*/
|
|
3420
|
+
created?: string;
|
|
3421
|
+
/**
|
|
3422
|
+
* @description The time the ingestion status was last updated.
|
|
3423
|
+
* @example 2023-01-02T01:47:37.260Z
|
|
3424
|
+
*/
|
|
3425
|
+
updated?: string;
|
|
3426
|
+
};
|
|
3427
|
+
/** @description The list of outputs generated from the source file. Currently supports renditions which are versions of the source file with different transformations applied. */
|
|
3428
|
+
OutputsResponse: {
|
|
3429
|
+
/** @description The list of renditions generated from the source file. */
|
|
3430
|
+
renditions?: components["schemas"]["RenditionResponseAttributes"][];
|
|
3431
|
+
};
|
|
3432
|
+
/** @description The id and attributes of the generated rendition file. */
|
|
3433
|
+
RenditionResponseAttributes: {
|
|
3434
|
+
/**
|
|
3435
|
+
* @description The rendition id.
|
|
3436
|
+
* @example zzyaqh5d-0jjq-va0n-aajo-3zwlje2q3uqd
|
|
3437
|
+
*/
|
|
3438
|
+
id: string;
|
|
3439
|
+
/**
|
|
3440
|
+
* @description The status of the rendition transformation task. <ul>
|
|
3441
|
+
* <li>`waiting` - rendition task is waiting for source file to become available</li>
|
|
3442
|
+
* <li>`queued` - rendition task is queued waiting to be processed</li>
|
|
3443
|
+
* <li>`processing` - the rendition is being processed</li>
|
|
3444
|
+
* <li>`ready` - the rendition is ready to be downloaded</li>
|
|
3445
|
+
* <li>`failed` - there was an error creating the rendition</li>
|
|
3446
|
+
* <li>`deleted` - the rendition has been deleted</li>
|
|
3447
|
+
* </ul>
|
|
3448
|
+
* @example ready
|
|
3449
|
+
* @enum {unknown}
|
|
3450
|
+
*/
|
|
3451
|
+
status?: "queued" | "importing" | "ready" | "failed" | "deleted" | "overwritten";
|
|
3452
|
+
/**
|
|
3453
|
+
* @description The URL of the rendition file hosted by Shotstack. The file at the URL can be used by the Edit API. Source file URL's consist of a base URL (AWS bucket), owner id, source id and a file name with the rendition id and extension.
|
|
3454
|
+
* @example https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/5ca6hu7s9k/zzytey4v-32km-kq1z-aftr-3kcuqi0brad2/zzyaqh5d-0jjq-va0n-aajo-3zwlje2q3uqd.mp4
|
|
3455
|
+
*/
|
|
3456
|
+
url?: string;
|
|
3457
|
+
/**
|
|
3458
|
+
* Format: float
|
|
3459
|
+
* @description The time in milliseconds it took to process the rendition.
|
|
3460
|
+
* @example 4120.36
|
|
3461
|
+
*/
|
|
3462
|
+
executionTime?: number;
|
|
3463
|
+
/** @description The transformation applied to the source file to create the rendition. */
|
|
3464
|
+
transformation?: components["schemas"]["Rendition"];
|
|
3465
|
+
/**
|
|
3466
|
+
* @description The width in pixels of the ingested source file, if a video or image.
|
|
3467
|
+
* @example 1920
|
|
3468
|
+
*/
|
|
3469
|
+
width?: number;
|
|
3470
|
+
/**
|
|
3471
|
+
* @description The height in pixels of the ingested source file, if a video or image.
|
|
3472
|
+
* @example 1080
|
|
3473
|
+
*/
|
|
3474
|
+
height?: number;
|
|
3475
|
+
/**
|
|
3476
|
+
* Format: float
|
|
3477
|
+
* @description The duration in seconds of the ingested source file, if a video or audio file.
|
|
3478
|
+
* @example 25.86
|
|
3479
|
+
*/
|
|
3480
|
+
duration?: number;
|
|
3481
|
+
/**
|
|
3482
|
+
* Format: float
|
|
3483
|
+
* @description The frame rate in frames per second of the source file, if a video file.
|
|
3484
|
+
* @example 23.967
|
|
3485
|
+
*/
|
|
3486
|
+
fps?: number;
|
|
3487
|
+
};
|
|
3488
|
+
/** @description The response returned by the Ingest API [direct upload](#direct-upload) request. Includes the id of the file and the signed url to send the binary file to. The response follows the [json:api](https://jsonapi.org/) specification. */
|
|
3489
|
+
UploadResponse: {
|
|
3490
|
+
/** @description An upload resource. */
|
|
3491
|
+
data: components["schemas"]["UploadResponseData"];
|
|
3492
|
+
};
|
|
3493
|
+
/** @description The type of resource (an upload), it's id and attributes of the upload request. */
|
|
3494
|
+
UploadResponseData: {
|
|
3495
|
+
/**
|
|
3496
|
+
* @description The type of resource, in this case it is an upload.
|
|
3497
|
+
* @example upload
|
|
3498
|
+
*/
|
|
3499
|
+
type: string;
|
|
3500
|
+
/**
|
|
3501
|
+
* @description The upload file id.
|
|
3502
|
+
* @example zzytey4v-32km-kq1z-aftr-3kcuqi0brad2
|
|
3503
|
+
*/
|
|
3504
|
+
id: string;
|
|
3505
|
+
/** @description The upload attributes including the signed URL. */
|
|
3506
|
+
attributes: components["schemas"]["UploadResponseAttributes"];
|
|
3507
|
+
};
|
|
3508
|
+
/** @description The id and attributes of the upload file including the signed URL to send the binary file data to. */
|
|
3509
|
+
UploadResponseAttributes: {
|
|
3510
|
+
/**
|
|
3511
|
+
* @description The source id.
|
|
3512
|
+
* @example zzytey4v-32km-kq1z-aftr-3kcuqi0brad2
|
|
3513
|
+
*/
|
|
3514
|
+
id: string;
|
|
3515
|
+
/**
|
|
3516
|
+
* @description The signed URL to use in a PUT request to send the binary file to.
|
|
3517
|
+
* @example https://shotstack-ingest-api-v1-sources.s3.ap-southeast-2.amazonaws.com/5ca6hu7s9k/zzytey4v-32km-kq1z-aftr-3kcuqi0brad2/source?AWSAccessKeyId=ASIAWJV3NVDML6LI2ZVG&Expires=1672819007&Signature=9M76gBA%2FghV8ZYvGTp3alo5Ya%2Fk%3D&x-amz-acl=public-read&x-amz-security-token=IQoJb3JpZ2luX2VjEJ%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDmFwLXNvdXRoZWFzdC0yIkcwRQIhAJHrqMCRk7ACXuXmJICTkADbx11e2wUP0RZ3KRdN3%2BGwAiAYt%2FIHlM8rcplCgvsvqH%2BBtSrlCW%2BUeZstwuwgq45Y3iqbAwjo%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAMaDDQzMzExNTIxMTk5MiIMtFX%2Bb1klptd8HXQvKu8Cd0xpHti7cRWkPxQz3foEWSYu1U8In64Qsi6TFK%2BmiOhVnUkHK%2BLSIwF1yQFMK2oTzVXwrEFEsyqlf%2FPZ9j3OL9eLlB7G5AqbC16hjXXR3psipp0dE2uvCV2d%2BIDYgcf1MKmzE0FDfN4wyTez%2Bd%2F3y8nfAtWB%2FCB0wU8AtKNUI7hwNbCYMgCa8QUeAH2UOrriDaN379vKXK%2B1XVplhhuvLX3aC1D0St2U6lC5yaDtZbLGEyymQPhgpp5Mam6jVzHVXXX4%2FvkQSNWbDMuMFd13fqdut9uMPkq4vhZgCmyQsibC7AnrK21QopLY%2F0vhHvPUhSkzRDKjiQou0vDrbTnT4yJLY5RCs9G65yisi6jbyUUbJTUgrME7PPPihs7kM5L%2FGjhmKqe9rNPuzKC%2FISRcmVtAPleX7tqPI7H%2BuEIobS%2FE%2B1jV4oNUFQA549prw3546FXds%2FgCLKRU%2BvxUyi2yKS8U0QC%2FNLMg2p9c81%2BaDCCqxtSdBjqdAcxGASzQwP6hHbfzC2hlnxn%2Bnf4MddgpIPFxvpV18Sy9vUYSU52mrsZK%2FxPcxrg1AM94v0aaW%2FaRE1ESTF2hXJrAJZkDNDPEBQBmcP3ylj4Bf5MsP%2FCspFoF6TvXZPYkH1lSlWHT8OTOugLji7%2F9qb9a6bKzFJqvcS0EiT7v5LCOMOpVA%2FAg9RM0yerN4Zot%2FREHgCSzajNII9Xio%2F0%3D
|
|
3518
|
+
*/
|
|
3519
|
+
url: string;
|
|
3520
|
+
/**
|
|
3521
|
+
* @description The time the upload request will expire. The signed URL will expire after one hour. Upload must complete within one hour.
|
|
3522
|
+
* @example 2023-01-02T02:47:37.260Z
|
|
3523
|
+
*/
|
|
3524
|
+
expires: string;
|
|
3525
|
+
};
|
|
3526
|
+
/** @description Error response data for validation and other errors returned by the Ingest API. */
|
|
3527
|
+
IngestErrorResponse: {
|
|
3528
|
+
/** @description An array of errors. */
|
|
3529
|
+
errors: components["schemas"]["IngestErrorResponseData"][];
|
|
3530
|
+
};
|
|
3531
|
+
/** @description Individual errors returned by the Ingest API. */
|
|
3532
|
+
IngestErrorResponseData: {
|
|
3533
|
+
/**
|
|
3534
|
+
* @description The http status code.
|
|
3535
|
+
* @example 400
|
|
3536
|
+
*/
|
|
3537
|
+
status: string;
|
|
3538
|
+
/**
|
|
3539
|
+
* @description A short summary of the error.
|
|
3540
|
+
* @example Validation Error
|
|
3541
|
+
*/
|
|
3542
|
+
title: string;
|
|
3543
|
+
/**
|
|
3544
|
+
* @description A detailed description of the error.
|
|
3545
|
+
* @example "url" is required
|
|
3546
|
+
*/
|
|
3547
|
+
detail: string;
|
|
3548
|
+
};
|
|
3549
|
+
/** @description The response returned by the Create API [generate asset](#generate-asset) and [get generated asset](#get-generated-asset) requests. Includes status and details of the generated asset. The response follows the [json:api](https://jsonapi.org/) specification. */
|
|
3550
|
+
GeneratedAssetResponse: {
|
|
3551
|
+
/** @description A generated asset resource. */
|
|
3552
|
+
data: components["schemas"]["GeneratedAssetResponseData"];
|
|
3553
|
+
};
|
|
3554
|
+
/** @description The type of resource (an asset), it's id and attributes of the generated file. */
|
|
3555
|
+
GeneratedAssetResponseData: {
|
|
3556
|
+
/**
|
|
3557
|
+
* @description The type of resource, in this case it is an asset.
|
|
3558
|
+
* @example asset
|
|
3559
|
+
*/
|
|
3560
|
+
type: string;
|
|
3561
|
+
/**
|
|
3562
|
+
* @description The generated asset id.
|
|
3563
|
+
* @example 01gz0-tj679-xj30t-hr8zk-3hasvk
|
|
3564
|
+
*/
|
|
3565
|
+
id: string;
|
|
3566
|
+
/** @description The generated asset attributes including its url, status, provider, type, etc... */
|
|
3567
|
+
attributes: components["schemas"]["GeneratedAssetResponseAttributes"];
|
|
3568
|
+
};
|
|
3569
|
+
/** @description The id and attributes of the generated asset. */
|
|
3570
|
+
GeneratedAssetResponseAttributes: {
|
|
3571
|
+
/**
|
|
3572
|
+
* @description The owner id of the asset.
|
|
3573
|
+
* @example 5ca6hu7s9k
|
|
3574
|
+
*/
|
|
3575
|
+
owner: string;
|
|
3576
|
+
/**
|
|
3577
|
+
* @description The native or third party provider that generated the asset, `shotstack`, `elevenlabs`, `heygen` or `d-id`.
|
|
3578
|
+
* @enum {string}
|
|
3579
|
+
*/
|
|
3580
|
+
provider: "shotstack" | "elevenlabs" | "heygen" | "d-id";
|
|
3581
|
+
/**
|
|
3582
|
+
* @description The type of service used to generate the asset, `text-to-speech` or `text-to-avatar`.
|
|
3583
|
+
* @enum {string}
|
|
3584
|
+
*/
|
|
3585
|
+
type: "text-to-speech" | "text-to-avatar";
|
|
3586
|
+
/**
|
|
3587
|
+
* @description The URL of the asset file hosted by Shotstack. The file at the URL can be used by the Edit API. Generated asset file URL's consist of a base URL (AWS bucket), owner id, asset id and extension. The extension varies depending on the type of file generated.
|
|
3588
|
+
* @example https://shotstack-create-api-v1-assets.s3.amazonaws.com/5ca6hu7s9k/01gz0-tj679-xj30t-hr8zk-3hasvk.mp3
|
|
3589
|
+
*/
|
|
3590
|
+
url?: string;
|
|
3591
|
+
/**
|
|
3592
|
+
* @description The status of the asset file generation task. <ul>
|
|
3593
|
+
* <li>`queued` - generation task is queued waiting to be processed</li>
|
|
3594
|
+
* <li>`processing` - the asset is being generated by the provider</li>
|
|
3595
|
+
* <li>`saving` - the asset is being saved to Shotstack</li>
|
|
3596
|
+
* <li>`done` - the asset has been generated and stored</li>
|
|
3597
|
+
* <li>`failed` - there was an error generating the asset</li>
|
|
3598
|
+
* </ul>
|
|
3599
|
+
* @example done
|
|
3600
|
+
* @enum {string}
|
|
3601
|
+
*/
|
|
3602
|
+
status: "queued" | "processing" | "saving" | "done" | "failed";
|
|
3603
|
+
/**
|
|
3604
|
+
* @description The time the generate asset task was initially queued.
|
|
3605
|
+
* @example 2023-01-02T01:47:18.973Z
|
|
3606
|
+
*/
|
|
3607
|
+
created: string;
|
|
3608
|
+
/**
|
|
3609
|
+
* @description The time the asset status was last updated.
|
|
3610
|
+
* @example 2023-01-02T01:47:37.260Z
|
|
3611
|
+
*/
|
|
3612
|
+
updated: string;
|
|
3613
|
+
};
|
|
3614
|
+
/** @description Error response data for validation and other errors returned by the Create API. */
|
|
3615
|
+
GeneratedAssetErrorResponse: {
|
|
3616
|
+
/** @description An array of errors. */
|
|
3617
|
+
errors: components["schemas"]["GeneratedAssetErrorResponseData"][];
|
|
3618
|
+
};
|
|
3619
|
+
/** @description Individual errors returned by the Create API. */
|
|
3620
|
+
GeneratedAssetErrorResponseData: {
|
|
3621
|
+
/**
|
|
3622
|
+
* @description The http status code.
|
|
3623
|
+
* @example 400
|
|
3624
|
+
*/
|
|
3625
|
+
status: string;
|
|
3626
|
+
/**
|
|
3627
|
+
* @description A short summary of the error.
|
|
3628
|
+
* @example Bad Request
|
|
3629
|
+
*/
|
|
3630
|
+
title: string;
|
|
3631
|
+
/**
|
|
3632
|
+
* @description A detailed description of the error.
|
|
3633
|
+
* @example "body/options/text" is required.
|
|
3634
|
+
*/
|
|
3635
|
+
detail: string;
|
|
3636
|
+
};
|
|
3637
|
+
};
|
|
3638
|
+
responses: never;
|
|
3639
|
+
parameters: never;
|
|
3640
|
+
requestBodies: never;
|
|
3641
|
+
headers: never;
|
|
3642
|
+
pathItems: never;
|
|
3643
|
+
}
|
|
3644
|
+
export type $defs = Record<string, never>;
|
|
3645
|
+
export interface operations {
|
|
3646
|
+
postRender: {
|
|
3647
|
+
parameters: {
|
|
3648
|
+
query?: never;
|
|
3649
|
+
header?: never;
|
|
3650
|
+
path?: never;
|
|
3651
|
+
cookie?: never;
|
|
3652
|
+
};
|
|
3653
|
+
/** @description The video, image or audio edit specified using JSON. */
|
|
3654
|
+
requestBody: {
|
|
3655
|
+
content: {
|
|
3656
|
+
/**
|
|
3657
|
+
* @example {
|
|
3658
|
+
* "timeline": {
|
|
3659
|
+
* "soundtrack": {
|
|
3660
|
+
* "src": "https://s3-ap-northeast-1.amazonaws.com/my-bucket/music.mp3",
|
|
3661
|
+
* "effect": "fadeInFadeOut"
|
|
3662
|
+
* },
|
|
3663
|
+
* "background": "#000000",
|
|
3664
|
+
* "tracks": [
|
|
3665
|
+
* {
|
|
3666
|
+
* "clips": [
|
|
3667
|
+
* {
|
|
3668
|
+
* "asset": {
|
|
3669
|
+
* "type": "title",
|
|
3670
|
+
* "text": "Hello World",
|
|
3671
|
+
* "style": "minimal"
|
|
3672
|
+
* },
|
|
3673
|
+
* "start": 0,
|
|
3674
|
+
* "length": 4,
|
|
3675
|
+
* "transition": {
|
|
3676
|
+
* "in": "fade",
|
|
3677
|
+
* "out": "fade"
|
|
3678
|
+
* },
|
|
3679
|
+
* "effect": "slideRight"
|
|
3680
|
+
* },
|
|
3681
|
+
* {
|
|
3682
|
+
* "asset": {
|
|
3683
|
+
* "type": "image",
|
|
3684
|
+
* "src": "https://s3-ap-northeast-1.amazonaws.com/my-bucket/my-image.jpg"
|
|
3685
|
+
* },
|
|
3686
|
+
* "start": 3,
|
|
3687
|
+
* "length": 4,
|
|
3688
|
+
* "effect": "zoomIn",
|
|
3689
|
+
* "filter": "greyscale"
|
|
3690
|
+
* }
|
|
3691
|
+
* ]
|
|
3692
|
+
* },
|
|
3693
|
+
* {
|
|
3694
|
+
* "clips": [
|
|
3695
|
+
* {
|
|
3696
|
+
* "asset": {
|
|
3697
|
+
* "type": "video",
|
|
3698
|
+
* "src": "https://s3-ap-northeast-1.amazonaws.com/my-bucket/my-clip-1.mp4",
|
|
3699
|
+
* "trim": 10.5,
|
|
3700
|
+
* "transcode": true
|
|
3701
|
+
* },
|
|
3702
|
+
* "start": 7,
|
|
3703
|
+
* "length": 4.5
|
|
3704
|
+
* },
|
|
3705
|
+
* {
|
|
3706
|
+
* "asset": {
|
|
3707
|
+
* "type": "video",
|
|
3708
|
+
* "src": "https://s3-ap-northeast-1.amazonaws.com/my-bucket/my-clip-2.mp4",
|
|
3709
|
+
* "volume": 0.5
|
|
3710
|
+
* },
|
|
3711
|
+
* "start": 11.5,
|
|
3712
|
+
* "length": 5,
|
|
3713
|
+
* "transition": {
|
|
3714
|
+
* "out": "wipeLeft"
|
|
3715
|
+
* }
|
|
3716
|
+
* }
|
|
3717
|
+
* ]
|
|
3718
|
+
* }
|
|
3719
|
+
* ]
|
|
3720
|
+
* },
|
|
3721
|
+
* "output": {
|
|
3722
|
+
* "format": "mp4",
|
|
3723
|
+
* "resolution": "sd"
|
|
3724
|
+
* }
|
|
3725
|
+
* }
|
|
3726
|
+
*/
|
|
3727
|
+
"application/json": components["schemas"]["Edit"];
|
|
3728
|
+
};
|
|
3729
|
+
};
|
|
3730
|
+
responses: {
|
|
3731
|
+
/** @description The queued render details */
|
|
3732
|
+
201: {
|
|
3733
|
+
headers: {
|
|
3734
|
+
[name: string]: unknown;
|
|
3735
|
+
};
|
|
3736
|
+
content: {
|
|
3737
|
+
"application/json": components["schemas"]["QueuedResponse"];
|
|
3738
|
+
};
|
|
3739
|
+
};
|
|
3740
|
+
};
|
|
3741
|
+
};
|
|
3742
|
+
getRender: {
|
|
3743
|
+
parameters: {
|
|
3744
|
+
query?: {
|
|
3745
|
+
/**
|
|
3746
|
+
* @description Include the data parameter in the response. The data parameter includes the original timeline, output and other settings sent to the API.<br><br><b>Note:</b> the default is currently `true`, this is deprecated and the default will soon be `false`. If you rely on the data being returned in the response you should explicitly set the parameter to `true`.
|
|
3747
|
+
* @example false
|
|
3748
|
+
*/
|
|
3749
|
+
data?: boolean;
|
|
3750
|
+
/**
|
|
3751
|
+
* @description Used when data is set to true, it will show the [merge fields](#tocs_mergefield) merged in to the data response.
|
|
3752
|
+
* @example false
|
|
3753
|
+
*/
|
|
3754
|
+
merged?: boolean;
|
|
3755
|
+
};
|
|
3756
|
+
header?: never;
|
|
3757
|
+
path: {
|
|
3758
|
+
/** @description The id of the timeline render task in UUID format */
|
|
3759
|
+
id: string;
|
|
3760
|
+
};
|
|
3761
|
+
cookie?: never;
|
|
3762
|
+
};
|
|
3763
|
+
requestBody?: never;
|
|
3764
|
+
responses: {
|
|
3765
|
+
/** @description The render status details */
|
|
3766
|
+
200: {
|
|
3767
|
+
headers: {
|
|
3768
|
+
[name: string]: unknown;
|
|
3769
|
+
};
|
|
3770
|
+
content: {
|
|
3771
|
+
/**
|
|
3772
|
+
* @example {
|
|
3773
|
+
* "success": true,
|
|
3774
|
+
* "message": "OK",
|
|
3775
|
+
* "response": {
|
|
3776
|
+
* "status": "rendering",
|
|
3777
|
+
* "id": "2abd5c11-0f3d-4c6d-ba20-235fc9b8e8b7",
|
|
3778
|
+
* "owner": "5ca6hu7s9k",
|
|
3779
|
+
* "url": "https://shotstack-api-v1-output.s3-ap-southeast-2.amazonaws.com/5ca6hu7s9k/2abd5c11-0f3d-4c6d-ba20-235fc9b8e8b7.mp4",
|
|
3780
|
+
* "data": {
|
|
3781
|
+
* "$ref": "#/paths/~1render/post/requestBody/content/application~1json/example"
|
|
3782
|
+
* },
|
|
3783
|
+
* "created": "2020-10-30T09:42:29.446Z",
|
|
3784
|
+
* "updated": "2020-10-30T09:42:39.168Z"
|
|
3785
|
+
* }
|
|
3786
|
+
* }
|
|
3787
|
+
*/
|
|
3788
|
+
"application/json": components["schemas"]["RenderResponse"];
|
|
3789
|
+
};
|
|
3790
|
+
};
|
|
3791
|
+
};
|
|
3792
|
+
};
|
|
3793
|
+
getTemplates: {
|
|
3794
|
+
parameters: {
|
|
3795
|
+
query?: never;
|
|
3796
|
+
header?: never;
|
|
3797
|
+
path?: never;
|
|
3798
|
+
cookie?: never;
|
|
3799
|
+
};
|
|
3800
|
+
requestBody?: never;
|
|
3801
|
+
responses: {
|
|
3802
|
+
/** @description The list of templates stored against a users account */
|
|
3803
|
+
200: {
|
|
3804
|
+
headers: {
|
|
3805
|
+
[name: string]: unknown;
|
|
3806
|
+
};
|
|
3807
|
+
content: {
|
|
3808
|
+
"application/json": components["schemas"]["TemplateListResponse"];
|
|
3809
|
+
};
|
|
3810
|
+
};
|
|
3811
|
+
};
|
|
3812
|
+
};
|
|
3813
|
+
postTemplate: {
|
|
3814
|
+
parameters: {
|
|
3815
|
+
query?: never;
|
|
3816
|
+
header?: never;
|
|
3817
|
+
path?: never;
|
|
3818
|
+
cookie?: never;
|
|
3819
|
+
};
|
|
3820
|
+
/** @description Create a template with a name and [Edit](#tocs_edit). */
|
|
3821
|
+
requestBody: {
|
|
3822
|
+
content: {
|
|
3823
|
+
"application/json": components["schemas"]["Template"];
|
|
3824
|
+
};
|
|
3825
|
+
};
|
|
3826
|
+
responses: {
|
|
3827
|
+
/** @description The saved template status including the id */
|
|
3828
|
+
201: {
|
|
3829
|
+
headers: {
|
|
3830
|
+
[name: string]: unknown;
|
|
3831
|
+
};
|
|
3832
|
+
content: {
|
|
3833
|
+
"application/json": components["schemas"]["TemplateResponse"];
|
|
3834
|
+
};
|
|
3835
|
+
};
|
|
3836
|
+
};
|
|
3837
|
+
};
|
|
3838
|
+
getTemplate: {
|
|
3839
|
+
parameters: {
|
|
3840
|
+
query?: never;
|
|
3841
|
+
header?: never;
|
|
3842
|
+
path: {
|
|
3843
|
+
/** @description The id of the template in UUID format */
|
|
3844
|
+
id: string;
|
|
3845
|
+
};
|
|
3846
|
+
cookie?: never;
|
|
3847
|
+
};
|
|
3848
|
+
requestBody?: never;
|
|
3849
|
+
responses: {
|
|
3850
|
+
/** @description The template details including the [Edit](#tocs_edit) */
|
|
3851
|
+
200: {
|
|
3852
|
+
headers: {
|
|
3853
|
+
[name: string]: unknown;
|
|
3854
|
+
};
|
|
3855
|
+
content: {
|
|
3856
|
+
"application/json": components["schemas"]["TemplateDataResponse"];
|
|
3857
|
+
};
|
|
3858
|
+
};
|
|
3859
|
+
};
|
|
3860
|
+
};
|
|
3861
|
+
putTemplate: {
|
|
3862
|
+
parameters: {
|
|
3863
|
+
query?: never;
|
|
3864
|
+
header?: never;
|
|
3865
|
+
path: {
|
|
3866
|
+
/** @description The id of the template in UUID format */
|
|
3867
|
+
id: string;
|
|
3868
|
+
};
|
|
3869
|
+
cookie?: never;
|
|
3870
|
+
};
|
|
3871
|
+
/** @description Update an individual templates name and [Edit](#tocs_edit). Both template name and template must be provided. If the template parameter is omitted a blank template will be saved. */
|
|
3872
|
+
requestBody: {
|
|
3873
|
+
content: {
|
|
3874
|
+
"application/json": components["schemas"]["Template"];
|
|
3875
|
+
};
|
|
3876
|
+
};
|
|
3877
|
+
responses: {
|
|
3878
|
+
/** @description Update a templates name and [Edit](#tocs_edit) */
|
|
3879
|
+
200: {
|
|
3880
|
+
headers: {
|
|
3881
|
+
[name: string]: unknown;
|
|
3882
|
+
};
|
|
3883
|
+
content: {
|
|
3884
|
+
/**
|
|
3885
|
+
* @example {
|
|
3886
|
+
* "success": true,
|
|
3887
|
+
* "message": "OK",
|
|
3888
|
+
* "response": {
|
|
3889
|
+
* "message": "Template Successfully Updated",
|
|
3890
|
+
* "id": "f5493c17-d01f-445c-bb49-535fae65f219"
|
|
3891
|
+
* }
|
|
3892
|
+
* }
|
|
3893
|
+
*/
|
|
3894
|
+
"application/json": components["schemas"]["TemplateResponse"];
|
|
3895
|
+
};
|
|
3896
|
+
};
|
|
3897
|
+
};
|
|
3898
|
+
};
|
|
3899
|
+
deleteTemplate: {
|
|
3900
|
+
parameters: {
|
|
3901
|
+
query?: never;
|
|
3902
|
+
header?: never;
|
|
3903
|
+
path: {
|
|
3904
|
+
/** @description The id of the template in UUID format */
|
|
3905
|
+
id: string;
|
|
3906
|
+
};
|
|
3907
|
+
cookie?: never;
|
|
3908
|
+
};
|
|
3909
|
+
requestBody?: never;
|
|
3910
|
+
responses: {
|
|
3911
|
+
/** @description An empty response signifying the template has been deleted */
|
|
3912
|
+
204: {
|
|
3913
|
+
headers: {
|
|
3914
|
+
[name: string]: unknown;
|
|
3915
|
+
};
|
|
3916
|
+
content?: never;
|
|
3917
|
+
};
|
|
3918
|
+
};
|
|
3919
|
+
};
|
|
3920
|
+
postTemplateRender: {
|
|
3921
|
+
parameters: {
|
|
3922
|
+
query?: never;
|
|
3923
|
+
header?: never;
|
|
3924
|
+
path?: never;
|
|
3925
|
+
cookie?: never;
|
|
3926
|
+
};
|
|
3927
|
+
/** @description Render a template by template id. */
|
|
3928
|
+
requestBody: {
|
|
3929
|
+
content: {
|
|
3930
|
+
"application/json": components["schemas"]["TemplateRender"];
|
|
3931
|
+
};
|
|
3932
|
+
};
|
|
3933
|
+
responses: {
|
|
3934
|
+
/** @description The queued status including the render id. Check the status of the render using the id and the [render status](#get-render-status) endpoint. */
|
|
3935
|
+
201: {
|
|
3936
|
+
headers: {
|
|
3937
|
+
[name: string]: unknown;
|
|
3938
|
+
};
|
|
3939
|
+
content: {
|
|
3940
|
+
"application/json": components["schemas"]["QueuedResponse"];
|
|
3941
|
+
};
|
|
3942
|
+
};
|
|
3943
|
+
};
|
|
3944
|
+
};
|
|
3945
|
+
probe: {
|
|
3946
|
+
parameters: {
|
|
3947
|
+
query?: never;
|
|
3948
|
+
header?: never;
|
|
3949
|
+
path: {
|
|
3950
|
+
/** @description The URL of the media to inspect, must be **URL encoded**. */
|
|
3951
|
+
url: string;
|
|
3952
|
+
};
|
|
3953
|
+
cookie?: never;
|
|
3954
|
+
};
|
|
3955
|
+
requestBody?: never;
|
|
3956
|
+
responses: {
|
|
3957
|
+
/** @description FFprobe response formatted as JSON. */
|
|
3958
|
+
200: {
|
|
3959
|
+
headers: {
|
|
3960
|
+
[name: string]: unknown;
|
|
3961
|
+
};
|
|
3962
|
+
content: {
|
|
3963
|
+
"application/json": components["schemas"]["ProbeResponse"];
|
|
3964
|
+
};
|
|
3965
|
+
};
|
|
3966
|
+
};
|
|
3967
|
+
};
|
|
3968
|
+
getAsset: {
|
|
3969
|
+
parameters: {
|
|
3970
|
+
query?: never;
|
|
3971
|
+
header?: never;
|
|
3972
|
+
path: {
|
|
3973
|
+
/** @description The id of the asset in UUID format */
|
|
3974
|
+
id: string;
|
|
3975
|
+
};
|
|
3976
|
+
cookie?: never;
|
|
3977
|
+
};
|
|
3978
|
+
requestBody?: never;
|
|
3979
|
+
responses: {
|
|
3980
|
+
/** @description Get asset by asset id */
|
|
3981
|
+
200: {
|
|
3982
|
+
headers: {
|
|
3983
|
+
[name: string]: unknown;
|
|
3984
|
+
};
|
|
3985
|
+
content: {
|
|
3986
|
+
"application/json": components["schemas"]["AssetResponse"];
|
|
3987
|
+
};
|
|
3988
|
+
};
|
|
3989
|
+
};
|
|
3990
|
+
};
|
|
3991
|
+
deleteAsset: {
|
|
3992
|
+
parameters: {
|
|
3993
|
+
query?: never;
|
|
3994
|
+
header?: never;
|
|
3995
|
+
path: {
|
|
3996
|
+
/** @description The id of the asset in UUID format */
|
|
3997
|
+
id: string;
|
|
3998
|
+
};
|
|
3999
|
+
cookie?: never;
|
|
4000
|
+
};
|
|
4001
|
+
requestBody?: never;
|
|
4002
|
+
responses: {
|
|
4003
|
+
/** @description An empty response signifying the asset has been deleted */
|
|
4004
|
+
204: {
|
|
4005
|
+
headers: {
|
|
4006
|
+
[name: string]: unknown;
|
|
4007
|
+
};
|
|
4008
|
+
content?: never;
|
|
4009
|
+
};
|
|
4010
|
+
};
|
|
4011
|
+
};
|
|
4012
|
+
getAssetByRenderId: {
|
|
4013
|
+
parameters: {
|
|
4014
|
+
query?: never;
|
|
4015
|
+
header?: never;
|
|
4016
|
+
path: {
|
|
4017
|
+
/** @description The render id associated with the asset in UUID format */
|
|
4018
|
+
id: string;
|
|
4019
|
+
};
|
|
4020
|
+
cookie?: never;
|
|
4021
|
+
};
|
|
4022
|
+
requestBody?: never;
|
|
4023
|
+
responses: {
|
|
4024
|
+
/** @description Get one or more assets by render id */
|
|
4025
|
+
200: {
|
|
4026
|
+
headers: {
|
|
4027
|
+
[name: string]: unknown;
|
|
4028
|
+
};
|
|
4029
|
+
content: {
|
|
4030
|
+
"application/json": components["schemas"]["AssetRenderResponse"];
|
|
4031
|
+
};
|
|
4032
|
+
};
|
|
4033
|
+
};
|
|
4034
|
+
};
|
|
4035
|
+
postServeAsset: {
|
|
4036
|
+
parameters: {
|
|
4037
|
+
query?: never;
|
|
4038
|
+
header?: never;
|
|
4039
|
+
path?: never;
|
|
4040
|
+
cookie?: never;
|
|
4041
|
+
};
|
|
4042
|
+
/** @description Fetch an asset from a URL and send it to one or more destinations. */
|
|
4043
|
+
requestBody: {
|
|
4044
|
+
content: {
|
|
4045
|
+
"application/json": components["schemas"]["Transfer"];
|
|
4046
|
+
};
|
|
4047
|
+
};
|
|
4048
|
+
responses: {
|
|
4049
|
+
/** @description The transfer request details and status */
|
|
4050
|
+
200: {
|
|
4051
|
+
headers: {
|
|
4052
|
+
[name: string]: unknown;
|
|
4053
|
+
};
|
|
4054
|
+
content: {
|
|
4055
|
+
"application/json": components["schemas"]["TransferResponse"];
|
|
4056
|
+
};
|
|
4057
|
+
};
|
|
4058
|
+
};
|
|
4059
|
+
};
|
|
4060
|
+
getSources: {
|
|
4061
|
+
parameters: {
|
|
4062
|
+
query?: never;
|
|
4063
|
+
header?: never;
|
|
4064
|
+
path?: never;
|
|
4065
|
+
cookie?: never;
|
|
4066
|
+
};
|
|
4067
|
+
requestBody?: never;
|
|
4068
|
+
responses: {
|
|
4069
|
+
/** @description The list of ingested source files stored against a users account */
|
|
4070
|
+
200: {
|
|
4071
|
+
headers: {
|
|
4072
|
+
[name: string]: unknown;
|
|
4073
|
+
};
|
|
4074
|
+
content: {
|
|
4075
|
+
"application/json": components["schemas"]["SourceListResponse"];
|
|
4076
|
+
};
|
|
4077
|
+
};
|
|
4078
|
+
};
|
|
4079
|
+
};
|
|
4080
|
+
postSource: {
|
|
4081
|
+
parameters: {
|
|
4082
|
+
query?: never;
|
|
4083
|
+
header?: never;
|
|
4084
|
+
path?: never;
|
|
4085
|
+
cookie?: never;
|
|
4086
|
+
};
|
|
4087
|
+
/** @description Ingest a video, image, audio or font file from the provided URL. Optionally provide a list of output renditions. */
|
|
4088
|
+
requestBody: {
|
|
4089
|
+
content: {
|
|
4090
|
+
/**
|
|
4091
|
+
* @example {
|
|
4092
|
+
* "url": "https://github.com/shotstack/test-media/raw/main/captioning/scott-ko.mp4"
|
|
4093
|
+
* }
|
|
4094
|
+
*/
|
|
4095
|
+
"application/json": components["schemas"]["Source"];
|
|
4096
|
+
};
|
|
4097
|
+
};
|
|
4098
|
+
responses: {
|
|
4099
|
+
/** @description The queued source file details */
|
|
4100
|
+
201: {
|
|
4101
|
+
headers: {
|
|
4102
|
+
[name: string]: unknown;
|
|
4103
|
+
};
|
|
4104
|
+
content: {
|
|
4105
|
+
"application/json": components["schemas"]["QueuedSourceResponse"];
|
|
4106
|
+
};
|
|
4107
|
+
};
|
|
4108
|
+
/** @description A list of validation and other errors */
|
|
4109
|
+
400: {
|
|
4110
|
+
headers: {
|
|
4111
|
+
[name: string]: unknown;
|
|
4112
|
+
};
|
|
4113
|
+
content: {
|
|
4114
|
+
"application/json": components["schemas"]["IngestErrorResponse"];
|
|
4115
|
+
};
|
|
4116
|
+
};
|
|
4117
|
+
};
|
|
4118
|
+
};
|
|
4119
|
+
getSource: {
|
|
4120
|
+
parameters: {
|
|
4121
|
+
query?: never;
|
|
4122
|
+
header?: never;
|
|
4123
|
+
path: {
|
|
4124
|
+
/** @description The id of the source file in [KSUID](https://github.com/segmentio/ksuid#what-is-a-ksuid) format. */
|
|
4125
|
+
id: string;
|
|
4126
|
+
};
|
|
4127
|
+
cookie?: never;
|
|
4128
|
+
};
|
|
4129
|
+
requestBody?: never;
|
|
4130
|
+
responses: {
|
|
4131
|
+
/** @description Get source file details by id */
|
|
4132
|
+
200: {
|
|
4133
|
+
headers: {
|
|
4134
|
+
[name: string]: unknown;
|
|
4135
|
+
};
|
|
4136
|
+
content: {
|
|
4137
|
+
"application/json": components["schemas"]["SourceResponse"];
|
|
4138
|
+
};
|
|
4139
|
+
};
|
|
4140
|
+
};
|
|
4141
|
+
};
|
|
4142
|
+
deleteSource: {
|
|
4143
|
+
parameters: {
|
|
4144
|
+
query?: never;
|
|
4145
|
+
header?: never;
|
|
4146
|
+
path: {
|
|
4147
|
+
/** @description The id of the source file in [KSUID](https://github.com/segmentio/ksuid#what-is-a-ksuid) format. */
|
|
4148
|
+
id: string;
|
|
4149
|
+
};
|
|
4150
|
+
cookie?: never;
|
|
4151
|
+
};
|
|
4152
|
+
requestBody?: never;
|
|
4153
|
+
responses: {
|
|
4154
|
+
/** @description An empty response signifying the ingested source file has been deleted. */
|
|
4155
|
+
204: {
|
|
4156
|
+
headers: {
|
|
4157
|
+
[name: string]: unknown;
|
|
4158
|
+
};
|
|
4159
|
+
content?: never;
|
|
4160
|
+
};
|
|
4161
|
+
};
|
|
4162
|
+
};
|
|
4163
|
+
getUploadSignedUrl: {
|
|
4164
|
+
parameters: {
|
|
4165
|
+
query?: never;
|
|
4166
|
+
header?: never;
|
|
4167
|
+
path?: never;
|
|
4168
|
+
cookie?: never;
|
|
4169
|
+
};
|
|
4170
|
+
requestBody?: never;
|
|
4171
|
+
responses: {
|
|
4172
|
+
/** @description The id and signed URL to upload to. */
|
|
4173
|
+
200: {
|
|
4174
|
+
headers: {
|
|
4175
|
+
[name: string]: unknown;
|
|
4176
|
+
};
|
|
4177
|
+
content: {
|
|
4178
|
+
"application/json": components["schemas"]["UploadResponse"];
|
|
4179
|
+
};
|
|
4180
|
+
};
|
|
4181
|
+
};
|
|
4182
|
+
};
|
|
4183
|
+
postGenerateAsset: {
|
|
4184
|
+
parameters: {
|
|
4185
|
+
query?: never;
|
|
4186
|
+
header?: never;
|
|
4187
|
+
path?: never;
|
|
4188
|
+
cookie?: never;
|
|
4189
|
+
};
|
|
4190
|
+
/** @description Generate an asset using the specified provider, type and options. */
|
|
4191
|
+
requestBody: {
|
|
4192
|
+
content: {
|
|
4193
|
+
"application/json": components["schemas"]["GeneratedAsset"];
|
|
4194
|
+
};
|
|
4195
|
+
};
|
|
4196
|
+
responses: {
|
|
4197
|
+
/** @description The generated asset details */
|
|
4198
|
+
201: {
|
|
4199
|
+
headers: {
|
|
4200
|
+
[name: string]: unknown;
|
|
4201
|
+
};
|
|
4202
|
+
content: {
|
|
4203
|
+
"application/json": components["schemas"]["GeneratedAssetResponse"];
|
|
4204
|
+
};
|
|
4205
|
+
};
|
|
4206
|
+
/** @description A list of validation and other errors */
|
|
4207
|
+
400: {
|
|
4208
|
+
headers: {
|
|
4209
|
+
[name: string]: unknown;
|
|
4210
|
+
};
|
|
4211
|
+
content: {
|
|
4212
|
+
"application/json": components["schemas"]["GeneratedAssetErrorResponse"];
|
|
4213
|
+
};
|
|
4214
|
+
};
|
|
4215
|
+
};
|
|
4216
|
+
};
|
|
4217
|
+
getGeneratedAsset: {
|
|
4218
|
+
parameters: {
|
|
4219
|
+
query?: never;
|
|
4220
|
+
header?: never;
|
|
4221
|
+
path: {
|
|
4222
|
+
/** @description The id of the source file in [KSUID](https://github.com/segmentio/ksuid#what-is-a-ksuid) format. */
|
|
4223
|
+
id: string;
|
|
4224
|
+
};
|
|
4225
|
+
cookie?: never;
|
|
4226
|
+
};
|
|
4227
|
+
requestBody?: never;
|
|
4228
|
+
responses: {
|
|
4229
|
+
/** @description The generated asset details */
|
|
4230
|
+
200: {
|
|
4231
|
+
headers: {
|
|
4232
|
+
[name: string]: unknown;
|
|
4233
|
+
};
|
|
4234
|
+
content: {
|
|
4235
|
+
"application/json": components["schemas"]["GeneratedAssetResponse"];
|
|
4236
|
+
};
|
|
4237
|
+
};
|
|
4238
|
+
};
|
|
4239
|
+
};
|
|
4240
|
+
}
|