@shotstack/schemas 1.5.9 → 1.7.0
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 +89 -89
- package/dist/json-schema/asset.json +3123 -0
- package/dist/json-schema/audio-asset.json +180 -0
- package/dist/json-schema/caption-asset.json +285 -0
- package/dist/json-schema/caption-background.json +61 -0
- package/dist/json-schema/caption-font.json +97 -0
- package/dist/json-schema/caption-margin.json +49 -0
- package/dist/json-schema/chroma-key.json +46 -0
- package/dist/json-schema/clip.json +3575 -0
- package/dist/json-schema/crop.json +69 -0
- package/dist/json-schema/destinations.json +495 -0
- package/dist/json-schema/edit.json +4540 -0
- package/dist/json-schema/flip-transformation.json +37 -0
- package/dist/json-schema/font.json +18 -0
- package/dist/json-schema/google-cloud-storage-destination-options.json +42 -0
- package/dist/json-schema/google-cloud-storage-destination.json +73 -0
- package/dist/json-schema/google-drive-destination-options.json +30 -0
- package/dist/json-schema/google-drive-destination.json +54 -0
- package/dist/json-schema/image-asset.json +104 -0
- package/dist/json-schema/image-to-video-asset.json +151 -0
- package/dist/json-schema/index.cjs +1 -0
- package/dist/json-schema/index.d.ts +6 -0
- package/dist/json-schema/index.js +3 -0
- package/dist/json-schema/luma-asset.json +38 -0
- package/dist/json-schema/merge-field.json +23 -0
- package/dist/json-schema/offset.json +145 -0
- package/dist/json-schema/output.json +771 -0
- package/dist/json-schema/poster.json +18 -0
- package/dist/json-schema/range.json +39 -0
- package/dist/json-schema/rich-caption-active-font.json +54 -0
- package/dist/json-schema/rich-caption-active.json +154 -0
- package/dist/json-schema/rich-caption-asset.json +1098 -0
- package/dist/json-schema/rich-caption-word-animation.json +60 -0
- package/dist/json-schema/rich-text-alignment.json +47 -0
- package/dist/json-schema/rich-text-animation.json +74 -0
- package/dist/json-schema/rich-text-asset.json +737 -0
- package/dist/json-schema/rich-text-background.json +52 -0
- package/dist/json-schema/rich-text-font.json +157 -0
- package/dist/json-schema/rich-text-gradient.json +68 -0
- package/dist/json-schema/rich-text-shadow.json +79 -0
- package/dist/json-schema/rich-text-stroke.json +55 -0
- package/dist/json-schema/rich-text-style.json +165 -0
- package/dist/json-schema/rotate-transformation.json +123 -0
- package/dist/json-schema/s3destination-options.json +59 -0
- package/dist/json-schema/s3destination.json +90 -0
- package/dist/json-schema/schemas.json +4983 -0
- package/dist/json-schema/shape-asset.json +225 -0
- package/dist/json-schema/shotstack-destination.json +33 -0
- package/dist/json-schema/size.json +41 -0
- package/dist/json-schema/skew-transformation.json +145 -0
- package/dist/json-schema/soundtrack.json +47 -0
- package/dist/json-schema/svg-arrow-shape.json +49 -0
- package/dist/json-schema/svg-asset.json +877 -0
- package/dist/json-schema/svg-circle-shape.json +28 -0
- package/dist/json-schema/svg-cross-shape.json +42 -0
- package/dist/json-schema/svg-ellipse-shape.json +35 -0
- package/dist/json-schema/svg-fill.json +169 -0
- package/dist/json-schema/svg-gradient-stop.json +25 -0
- package/dist/json-schema/svg-heart-shape.json +28 -0
- package/dist/json-schema/svg-line-shape.json +35 -0
- package/dist/json-schema/svg-linear-gradient-fill.json +80 -0
- package/dist/json-schema/svg-path-shape.json +26 -0
- package/dist/json-schema/svg-polygon-shape.json +35 -0
- package/dist/json-schema/svg-radial-gradient-fill.json +66 -0
- package/dist/json-schema/svg-rectangle-shape.json +49 -0
- package/dist/json-schema/svg-ring-shape.json +35 -0
- package/dist/json-schema/svg-shadow.json +79 -0
- package/dist/json-schema/svg-shape.json +404 -0
- package/dist/json-schema/svg-solid-fill.json +40 -0
- package/dist/json-schema/svg-star-shape.json +42 -0
- package/dist/json-schema/svg-stroke.json +115 -0
- package/dist/json-schema/svg-transform.json +93 -0
- package/dist/json-schema/text-to-image-asset.json +128 -0
- package/dist/json-schema/text-to-speech-asset.json +209 -0
- package/dist/json-schema/thumbnail.json +25 -0
- package/dist/json-schema/timeline.json +3703 -0
- package/dist/json-schema/track.json +3590 -0
- package/dist/json-schema/transformation.json +251 -0
- package/dist/json-schema/transition.json +37 -0
- package/dist/json-schema/tween.json +90 -0
- package/dist/json-schema/video-asset.json +321 -0
- package/dist/json-schema/vimeo-destination-options.json +149 -0
- package/dist/json-schema/vimeo-destination-privacy-options.json +90 -0
- package/dist/json-schema/vimeo-destination.json +178 -0
- package/dist/json-schema/word-timing.json +44 -0
- package/dist/schema.d.ts +77 -77
- package/dist/zod/zod.gen.cjs +1080 -921
- package/dist/zod/zod.gen.d.ts +139 -139
- package/dist/zod/zod.gen.js +1081 -922
- package/dist/zod/zod.gen.ts +1583 -1648
- package/package.json +79 -73
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "FlipTransformation",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"description": "Flip a clip vertically or horizontally. Acts as a mirror effect of the clip along the selected plane.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"properties": {
|
|
9
|
+
"horizontal": {
|
|
10
|
+
"anyOf": [
|
|
11
|
+
{
|
|
12
|
+
"type": "boolean",
|
|
13
|
+
"description": "Flip a clip horizontally."
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"type": "null"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"vertical": {
|
|
21
|
+
"anyOf": [
|
|
22
|
+
{
|
|
23
|
+
"type": "boolean",
|
|
24
|
+
"description": "Flip a clip vertically."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "null"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"required": [
|
|
33
|
+
"horizontal",
|
|
34
|
+
"vertical"
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Font",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"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.",
|
|
6
|
+
"properties": {
|
|
7
|
+
"src": {
|
|
8
|
+
"description": "The URL of the font file. The URL must be publicly accessible or include credentials.",
|
|
9
|
+
"type": "string"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"required": [
|
|
14
|
+
"src"
|
|
15
|
+
],
|
|
16
|
+
"type": "object"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "GoogleCloudStorageDestinationOptions",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"description": "Pass additional options to control how files are stored in Google Cloud Storage.",
|
|
6
|
+
"properties": {
|
|
7
|
+
"bucket": {
|
|
8
|
+
"description": "The bucket name to send files to. The bucket must exist in the Google Cloud Storage account before files can be sent.",
|
|
9
|
+
"type": "string"
|
|
10
|
+
},
|
|
11
|
+
"prefix": {
|
|
12
|
+
"anyOf": [
|
|
13
|
+
{
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "A prefix for the file being sent. This is typically a folder name, i.e. `videos` or `customerId/videos`."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "null"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"filename": {
|
|
23
|
+
"anyOf": [
|
|
24
|
+
{
|
|
25
|
+
"type": "string",
|
|
26
|
+
"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."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "null"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"required": [
|
|
35
|
+
"bucket",
|
|
36
|
+
"prefix",
|
|
37
|
+
"filename"
|
|
38
|
+
],
|
|
39
|
+
"type": "object",
|
|
40
|
+
"additionalProperties": false
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "GoogleCloudStorageDestination",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"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.",
|
|
6
|
+
"properties": {
|
|
7
|
+
"provider": {
|
|
8
|
+
"description": "The destination to send assets to - set to `google-cloud-storage` for Google Cloud Storage.",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"enum": [
|
|
11
|
+
"google-cloud-storage"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"options": {
|
|
15
|
+
"anyOf": [
|
|
16
|
+
{
|
|
17
|
+
"description": "Additional Google Cloud Storage configuration options.",
|
|
18
|
+
"$ref": "#/$defs/GoogleCloudStorageDestinationOptions"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "null"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"type": "object",
|
|
27
|
+
"required": [
|
|
28
|
+
"provider",
|
|
29
|
+
"options"
|
|
30
|
+
],
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"$defs": {
|
|
33
|
+
"GoogleCloudStorageDestinationOptions": {
|
|
34
|
+
"description": "Pass additional options to control how files are stored in Google Cloud Storage.",
|
|
35
|
+
"properties": {
|
|
36
|
+
"bucket": {
|
|
37
|
+
"description": "The bucket name to send files to. The bucket must exist in the Google Cloud Storage account before files can be sent.",
|
|
38
|
+
"type": "string"
|
|
39
|
+
},
|
|
40
|
+
"prefix": {
|
|
41
|
+
"anyOf": [
|
|
42
|
+
{
|
|
43
|
+
"type": "string",
|
|
44
|
+
"description": "A prefix for the file being sent. This is typically a folder name, i.e. `videos` or `customerId/videos`."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"type": "null"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"filename": {
|
|
52
|
+
"anyOf": [
|
|
53
|
+
{
|
|
54
|
+
"type": "string",
|
|
55
|
+
"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."
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "null"
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"required": [
|
|
64
|
+
"bucket",
|
|
65
|
+
"prefix",
|
|
66
|
+
"filename"
|
|
67
|
+
],
|
|
68
|
+
"type": "object",
|
|
69
|
+
"additionalProperties": false
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "GoogleDriveDestinationOptions",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"description": "Pass the folder ID and options to configure how assets are stored in Google Drive.",
|
|
6
|
+
"properties": {
|
|
7
|
+
"folderId": {
|
|
8
|
+
"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>.",
|
|
9
|
+
"type": "string"
|
|
10
|
+
},
|
|
11
|
+
"filename": {
|
|
12
|
+
"anyOf": [
|
|
13
|
+
{
|
|
14
|
+
"type": "string",
|
|
15
|
+
"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."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "null"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"required": [
|
|
24
|
+
"folderId",
|
|
25
|
+
"filename"
|
|
26
|
+
],
|
|
27
|
+
"type": "object",
|
|
28
|
+
"additionalProperties": false
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "GoogleDriveDestination",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"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.",
|
|
6
|
+
"properties": {
|
|
7
|
+
"provider": {
|
|
8
|
+
"description": "The destination to send assets to - set to `google-drive` for Google Drive.",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"enum": [
|
|
11
|
+
"google-drive"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"options": {
|
|
15
|
+
"description": "Additional Google Drive configuration and features.",
|
|
16
|
+
"$ref": "#/$defs/GoogleDriveDestinationOptions"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"type": "object",
|
|
20
|
+
"required": [
|
|
21
|
+
"provider",
|
|
22
|
+
"options"
|
|
23
|
+
],
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"$defs": {
|
|
26
|
+
"GoogleDriveDestinationOptions": {
|
|
27
|
+
"description": "Pass the folder ID and options to configure how assets are stored in Google Drive.",
|
|
28
|
+
"properties": {
|
|
29
|
+
"folderId": {
|
|
30
|
+
"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>.",
|
|
31
|
+
"type": "string"
|
|
32
|
+
},
|
|
33
|
+
"filename": {
|
|
34
|
+
"anyOf": [
|
|
35
|
+
{
|
|
36
|
+
"type": "string",
|
|
37
|
+
"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."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"type": "null"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"required": [
|
|
46
|
+
"folderId",
|
|
47
|
+
"filename"
|
|
48
|
+
],
|
|
49
|
+
"type": "object",
|
|
50
|
+
"additionalProperties": false
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ImageAsset",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"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.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": {
|
|
9
|
+
"enum": [
|
|
10
|
+
"image"
|
|
11
|
+
],
|
|
12
|
+
"description": "The type of asset - set to `image` for images.",
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"src": {
|
|
16
|
+
"description": "The image source URL. The URL must be publicly accessible or include credentials.",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"crop": {
|
|
20
|
+
"anyOf": [
|
|
21
|
+
{
|
|
22
|
+
"$ref": "#/$defs/Crop"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "null"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"required": [
|
|
32
|
+
"type",
|
|
33
|
+
"src",
|
|
34
|
+
"crop"
|
|
35
|
+
],
|
|
36
|
+
"$defs": {
|
|
37
|
+
"Crop": {
|
|
38
|
+
"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.",
|
|
39
|
+
"properties": {
|
|
40
|
+
"top": {
|
|
41
|
+
"anyOf": [
|
|
42
|
+
{
|
|
43
|
+
"type": "number",
|
|
44
|
+
"description": "Crop from the top of the asset",
|
|
45
|
+
"minimum": 0,
|
|
46
|
+
"maximum": 1
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"type": "null"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"bottom": {
|
|
54
|
+
"anyOf": [
|
|
55
|
+
{
|
|
56
|
+
"type": "number",
|
|
57
|
+
"description": "Crop from the bottom of the asset",
|
|
58
|
+
"minimum": 0,
|
|
59
|
+
"maximum": 1
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"type": "null"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
"left": {
|
|
67
|
+
"anyOf": [
|
|
68
|
+
{
|
|
69
|
+
"type": "number",
|
|
70
|
+
"description": "Crop from the left of the asset",
|
|
71
|
+
"minimum": 0,
|
|
72
|
+
"maximum": 1
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"type": "null"
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"right": {
|
|
80
|
+
"anyOf": [
|
|
81
|
+
{
|
|
82
|
+
"type": "number",
|
|
83
|
+
"description": "Crop from the left of the asset",
|
|
84
|
+
"minimum": 0,
|
|
85
|
+
"maximum": 1
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"type": "null"
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"additionalProperties": false,
|
|
94
|
+
"type": "object",
|
|
95
|
+
"required": [
|
|
96
|
+
"top",
|
|
97
|
+
"bottom",
|
|
98
|
+
"left",
|
|
99
|
+
"right"
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ImageToVideoAsset",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"description": "The ImageToVideoAsset lets you create a video from an image and a text prompt.",
|
|
6
|
+
"properties": {
|
|
7
|
+
"type": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The type of asset to generate - set to `image-to-video` for image-to-video.",
|
|
10
|
+
"enum": [
|
|
11
|
+
"image-to-video"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"src": {
|
|
15
|
+
"description": "The image source URL. The URL must be publicly accessible or include credentials.",
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"prompt": {
|
|
19
|
+
"anyOf": [
|
|
20
|
+
{
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "The instructions for modifying the image into a video sequence."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "null"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"aspectRatio": {
|
|
30
|
+
"anyOf": [
|
|
31
|
+
{
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "The aspect ratio (shape) of the video output.",
|
|
34
|
+
"enum": [
|
|
35
|
+
"1:1",
|
|
36
|
+
"4:3",
|
|
37
|
+
"16:9",
|
|
38
|
+
"9:16",
|
|
39
|
+
"3:4",
|
|
40
|
+
"21:9",
|
|
41
|
+
"9:21"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"type": "null"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"speed": {
|
|
50
|
+
"anyOf": [
|
|
51
|
+
{
|
|
52
|
+
"type": "number",
|
|
53
|
+
"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).",
|
|
54
|
+
"minimum": 0,
|
|
55
|
+
"maximum": 10
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "null"
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"crop": {
|
|
63
|
+
"anyOf": [
|
|
64
|
+
{
|
|
65
|
+
"$ref": "#/$defs/Crop"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"type": "null"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"type": "object",
|
|
75
|
+
"required": [
|
|
76
|
+
"type",
|
|
77
|
+
"src",
|
|
78
|
+
"prompt",
|
|
79
|
+
"aspectRatio",
|
|
80
|
+
"speed",
|
|
81
|
+
"crop"
|
|
82
|
+
],
|
|
83
|
+
"$defs": {
|
|
84
|
+
"Crop": {
|
|
85
|
+
"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.",
|
|
86
|
+
"properties": {
|
|
87
|
+
"top": {
|
|
88
|
+
"anyOf": [
|
|
89
|
+
{
|
|
90
|
+
"type": "number",
|
|
91
|
+
"description": "Crop from the top of the asset",
|
|
92
|
+
"minimum": 0,
|
|
93
|
+
"maximum": 1
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"type": "null"
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
"bottom": {
|
|
101
|
+
"anyOf": [
|
|
102
|
+
{
|
|
103
|
+
"type": "number",
|
|
104
|
+
"description": "Crop from the bottom of the asset",
|
|
105
|
+
"minimum": 0,
|
|
106
|
+
"maximum": 1
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"type": "null"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"left": {
|
|
114
|
+
"anyOf": [
|
|
115
|
+
{
|
|
116
|
+
"type": "number",
|
|
117
|
+
"description": "Crop from the left of the asset",
|
|
118
|
+
"minimum": 0,
|
|
119
|
+
"maximum": 1
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"type": "null"
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"right": {
|
|
127
|
+
"anyOf": [
|
|
128
|
+
{
|
|
129
|
+
"type": "number",
|
|
130
|
+
"description": "Crop from the left of the asset",
|
|
131
|
+
"minimum": 0,
|
|
132
|
+
"maximum": 1
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"type": "null"
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"additionalProperties": false,
|
|
141
|
+
"type": "object",
|
|
142
|
+
"required": [
|
|
143
|
+
"top",
|
|
144
|
+
"bottom",
|
|
145
|
+
"left",
|
|
146
|
+
"right"
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports.edit = require('./edit.json');
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "LumaAsset",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"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.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": {
|
|
9
|
+
"enum": [
|
|
10
|
+
"luma"
|
|
11
|
+
],
|
|
12
|
+
"description": "The type of asset - set to `luma` for luma mattes.",
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"src": {
|
|
16
|
+
"description": "The luma matte source URL. The URL must be publicly accessible or include credentials.",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"trim": {
|
|
20
|
+
"anyOf": [
|
|
21
|
+
{
|
|
22
|
+
"type": "number",
|
|
23
|
+
"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."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "null"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"required": [
|
|
33
|
+
"type",
|
|
34
|
+
"src",
|
|
35
|
+
"trim"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "MergeField",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"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.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"find": {
|
|
9
|
+
"description": "The string to find <u>without</u> delimiters.",
|
|
10
|
+
"type": "string"
|
|
11
|
+
},
|
|
12
|
+
"replace": {
|
|
13
|
+
"description": "The replacement value. The replacement can be any valid JSON type - string, boolean, number, etc...",
|
|
14
|
+
"type": "string"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"additionalProperties": false,
|
|
18
|
+
"required": [
|
|
19
|
+
"find",
|
|
20
|
+
"replace"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
}
|