@wix/auto_sdk_vod_videos 0.0.0-stage → 1.0.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.
@@ -0,0 +1,1119 @@
1
+ /**
2
+ * A video on a Wix site: uploaded to Wix, imported from YouTube, Vimeo or Facebook, or streamed live.
3
+ * `media.source` says which. The playback URL isn't part of the video: get it from `GenerateVideoPlaybackUrl`.
4
+ */
5
+ interface Video {
6
+ /**
7
+ * Video ID.
8
+ * @format GUID
9
+ * @readonly
10
+ */
11
+ _id?: string;
12
+ /**
13
+ * When the video was created.
14
+ * @readonly
15
+ */
16
+ _createdDate?: Date | null;
17
+ /**
18
+ * When the video was last updated.
19
+ * @readonly
20
+ */
21
+ _updatedDate?: Date | null;
22
+ /**
23
+ * ID of the site the video belongs to.
24
+ * @format GUID
25
+ * @readonly
26
+ */
27
+ siteId?: string;
28
+ /**
29
+ * Video title.
30
+ * @maxLength 250
31
+ */
32
+ title?: string | null;
33
+ /**
34
+ * Video description.
35
+ * @maxLength 10000
36
+ */
37
+ description?: string | null;
38
+ /**
39
+ * Who published the video, shown as its "by" line.
40
+ * @maxLength 250
41
+ */
42
+ publisher?: string | null;
43
+ /**
44
+ * The video's genre.
45
+ * @maxLength 250
46
+ */
47
+ genre?: string | null;
48
+ /** The kind of production the video is, such as a film, vlog or tutorial, set by the owner. */
49
+ contentType?: ContentTypeWithLiterals;
50
+ /**
51
+ * Whether site visitors get the video, and if not, why. Set from `media`: the file's `status` for WIX_MEDIA (a
52
+ * live stream's recording stays VISIBLE while processed), `live_stream_details.status` for LIVE_STREAM, and always
53
+ * VISIBLE for YOUTUBE, VIMEO and FACEBOOK. Visitor requests return only VISIBLE videos.
54
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
55
+ */
56
+ status?: StatusInfo;
57
+ /**
58
+ * The video's categories, without duplicates.
59
+ * @maxLength 250
60
+ * @maxSize 100
61
+ */
62
+ categories?: string[];
63
+ /**
64
+ * The video's tags, without duplicates.
65
+ * @maxLength 250
66
+ * @maxSize 100
67
+ */
68
+ tags?: string[];
69
+ /**
70
+ * People who made the video, with their positions.
71
+ * @maxSize 100
72
+ */
73
+ crew?: CrewMember[];
74
+ /**
75
+ * People who appear in the video, with the characters they play.
76
+ * @maxSize 100
77
+ */
78
+ cast?: CastMember[];
79
+ /** Prices for buying or renting the video on its own. */
80
+ pricing?: Pricing;
81
+ /** The video's thumbnail image, shown in lists. */
82
+ cover?: Cover;
83
+ /** The image shown in the player before the video plays. */
84
+ poster?: Poster;
85
+ /** What the video plays; see Media. */
86
+ media?: Media;
87
+ /** What a caller without access sees instead of the video; see Trailer. */
88
+ trailer?: Trailer;
89
+ /** Whether visitors can download the video. */
90
+ downloadOptions?: DownloadOptions;
91
+ /** Who can watch the video, and who it is suitable for. */
92
+ viewerOptions?: ViewerOptions;
93
+ /** Embedding and player button settings. */
94
+ embedOptions?: EmbedOptions;
95
+ /**
96
+ * If true, the video can still be played when the site goes over its video storage or duration quota.
97
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
98
+ */
99
+ quotaExempt?: boolean | null;
100
+ /**
101
+ * Who created the video.
102
+ * @readonly
103
+ */
104
+ createdBy?: IdentificationData;
105
+ /** Data for search engines; see SeoInfo for when it is set. The same for every caller. */
106
+ seoInfo?: SeoInfo;
107
+ /**
108
+ * Whether the video has action cards. Get them with `ListActionCards`.
109
+ * @readonly
110
+ */
111
+ hasActionCards?: boolean | null;
112
+ }
113
+ /** Whether site visitors get the video, and if not, why. */
114
+ declare enum VideoStatus {
115
+ /**
116
+ * Not shown to visitors: the video has no media yet, such as a live stream created without a start time that the
117
+ * broadcaster hasn't started.
118
+ */
119
+ INITIALIZED = "INITIALIZED",
120
+ /** Not shown to visitors while an uploaded file is being transcoded. */
121
+ IN_PROGRESS = "IN_PROGRESS",
122
+ /**
123
+ * Shown to site visitors. An uploaded video is visible once its file is ready. A live stream is visible from when
124
+ * it's scheduled or started, and stays visible after the broadcast ends, while its recording is processed.
125
+ * Visible doesn't mean playable: see `media`.
126
+ */
127
+ VISIBLE = "VISIBLE",
128
+ /** Transcoding failed, or the live stream expired. */
129
+ FAILED = "FAILED"
130
+ }
131
+ /** @enumType */
132
+ type VideoStatusWithLiterals = VideoStatus | 'INITIALIZED' | 'IN_PROGRESS' | 'VISIBLE' | 'FAILED';
133
+ /** A crew position. */
134
+ declare enum Position {
135
+ /** The stored position isn't one of the values below. */
136
+ UNKNOWN_POSITION = "UNKNOWN_POSITION",
137
+ ACADEMIC_ADVISOR = "ACADEMIC_ADVISOR",
138
+ ADAPTATION = "ADAPTATION",
139
+ ADDITIONAL_GRIP = "ADDITIONAL_GRIP",
140
+ ADDITIONAL_PHOTOGRAPHY = "ADDITIONAL_PHOTOGRAPHY",
141
+ AGENT = "AGENT",
142
+ ANIMAL_TRAINER = "ANIMAL_TRAINER",
143
+ ANIMATOR = "ANIMATOR",
144
+ ART_DIRECTOR = "ART_DIRECTOR",
145
+ ASSISTANT_ART_DIRECTOR = "ASSISTANT_ART_DIRECTOR",
146
+ ASSISTANT_CAMERA = "ASSISTANT_CAMERA",
147
+ ASSISTANT_DIRECTOR = "ASSISTANT_DIRECTOR",
148
+ ASSISTANT_EDITOR = "ASSISTANT_EDITOR",
149
+ ASSOCIATE_PRODUCER = "ASSOCIATE_PRODUCER",
150
+ AUTHOR_OF_ADAPTED_MATERIAL = "AUTHOR_OF_ADAPTED_MATERIAL",
151
+ BEST_BOY = "BEST_BOY",
152
+ BOOM_OPERATOR = "BOOM_OPERATOR",
153
+ CABLE_PERSON = "CABLE_PERSON",
154
+ CAMERA_OPERATOR = "CAMERA_OPERATOR",
155
+ CHOREOGRAPHER = "CHOREOGRAPHER",
156
+ /** Cinematographer, also called director of photography (DP). */
157
+ CINEMATOGRAPHER_DP = "CINEMATOGRAPHER_DP",
158
+ COLLABORATING_DIRECTOR = "COLLABORATING_DIRECTOR",
159
+ COSTUMER = "COSTUMER",
160
+ COSTUME_DESIGNER = "COSTUME_DESIGNER",
161
+ CO_DIRECTOR = "CO_DIRECTOR",
162
+ CO_PRODUCER = "CO_PRODUCER",
163
+ CO_WRITER = "CO_WRITER",
164
+ DIGITAL_EFFECTS = "DIGITAL_EFFECTS",
165
+ DIRECTOR = "DIRECTOR",
166
+ DOLLY_GRIP = "DOLLY_GRIP",
167
+ EDITOR = "EDITOR",
168
+ EXECUTIVE_PRODUCER = "EXECUTIVE_PRODUCER",
169
+ GAFFER = "GAFFER",
170
+ GRIP = "GRIP",
171
+ HAIRSTYLIST = "HAIRSTYLIST",
172
+ KEY_GRIP = "KEY_GRIP",
173
+ LEAD_PERSON = "LEAD_PERSON",
174
+ LOCATION_MANAGER = "LOCATION_MANAGER",
175
+ MAKEUP_ARTIST = "MAKEUP_ARTIST",
176
+ MAKEUP_EFFECTS = "MAKEUP_EFFECTS",
177
+ MANAGER = "MANAGER",
178
+ ORIGINAL_MUSIC_COMPOSER = "ORIGINAL_MUSIC_COMPOSER",
179
+ /** Returns preview copies of the film after screenings. */
180
+ PREVIEW_RETURN = "PREVIEW_RETURN",
181
+ /** Returns film prints after screenings. */
182
+ PRINT_RETURN = "PRINT_RETURN",
183
+ /** Ships film prints to screenings. */
184
+ PRINT_SHIPPER = "PRINT_SHIPPER",
185
+ PRODUCER = "PRODUCER",
186
+ PRODUCTION_ASSISTANT = "PRODUCTION_ASSISTANT",
187
+ PRODUCTION_COORDINATOR = "PRODUCTION_COORDINATOR",
188
+ PRODUCTION_DESIGNER = "PRODUCTION_DESIGNER",
189
+ PRODUCTION_MANAGER = "PRODUCTION_MANAGER",
190
+ PROPERTY_MASTER = "PROPERTY_MASTER",
191
+ PUBLICIST = "PUBLICIST",
192
+ SCHOOL_ADMINISTRATOR = "SCHOOL_ADMINISTRATOR",
193
+ SCRIPT_SUPERVISOR = "SCRIPT_SUPERVISOR",
194
+ SECOND_ASSISTANT_DIRECTOR = "SECOND_ASSISTANT_DIRECTOR",
195
+ /** Second unit director of photography. */
196
+ SECOND_UNIT_DIR_OF_PHOTOGRAPHY = "SECOND_UNIT_DIR_OF_PHOTOGRAPHY",
197
+ SET_DECORATOR = "SET_DECORATOR",
198
+ SET_DESIGNER = "SET_DESIGNER",
199
+ SOUND_EDITOR = "SOUND_EDITOR",
200
+ SOUND_MIXER = "SOUND_MIXER",
201
+ SPECIAL_EFFECTS = "SPECIAL_EFFECTS",
202
+ STORY = "STORY",
203
+ STUNT_COORDINATOR = "STUNT_COORDINATOR",
204
+ SWING_GANG = "SWING_GANG",
205
+ TECHNICAL_ADVISOR = "TECHNICAL_ADVISOR",
206
+ VIDEO_OPERATOR = "VIDEO_OPERATOR",
207
+ WRITER = "WRITER"
208
+ }
209
+ /** @enumType */
210
+ type PositionWithLiterals = Position | 'UNKNOWN_POSITION' | 'ACADEMIC_ADVISOR' | 'ADAPTATION' | 'ADDITIONAL_GRIP' | 'ADDITIONAL_PHOTOGRAPHY' | 'AGENT' | 'ANIMAL_TRAINER' | 'ANIMATOR' | 'ART_DIRECTOR' | 'ASSISTANT_ART_DIRECTOR' | 'ASSISTANT_CAMERA' | 'ASSISTANT_DIRECTOR' | 'ASSISTANT_EDITOR' | 'ASSOCIATE_PRODUCER' | 'AUTHOR_OF_ADAPTED_MATERIAL' | 'BEST_BOY' | 'BOOM_OPERATOR' | 'CABLE_PERSON' | 'CAMERA_OPERATOR' | 'CHOREOGRAPHER' | 'CINEMATOGRAPHER_DP' | 'COLLABORATING_DIRECTOR' | 'COSTUMER' | 'COSTUME_DESIGNER' | 'CO_DIRECTOR' | 'CO_PRODUCER' | 'CO_WRITER' | 'DIGITAL_EFFECTS' | 'DIRECTOR' | 'DOLLY_GRIP' | 'EDITOR' | 'EXECUTIVE_PRODUCER' | 'GAFFER' | 'GRIP' | 'HAIRSTYLIST' | 'KEY_GRIP' | 'LEAD_PERSON' | 'LOCATION_MANAGER' | 'MAKEUP_ARTIST' | 'MAKEUP_EFFECTS' | 'MANAGER' | 'ORIGINAL_MUSIC_COMPOSER' | 'PREVIEW_RETURN' | 'PRINT_RETURN' | 'PRINT_SHIPPER' | 'PRODUCER' | 'PRODUCTION_ASSISTANT' | 'PRODUCTION_COORDINATOR' | 'PRODUCTION_DESIGNER' | 'PRODUCTION_MANAGER' | 'PROPERTY_MASTER' | 'PUBLICIST' | 'SCHOOL_ADMINISTRATOR' | 'SCRIPT_SUPERVISOR' | 'SECOND_ASSISTANT_DIRECTOR' | 'SECOND_UNIT_DIR_OF_PHOTOGRAPHY' | 'SET_DECORATOR' | 'SET_DESIGNER' | 'SOUND_EDITOR' | 'SOUND_MIXER' | 'SPECIAL_EFFECTS' | 'STORY' | 'STUNT_COORDINATOR' | 'SWING_GANG' | 'TECHNICAL_ADVISOR' | 'VIDEO_OPERATOR' | 'WRITER';
211
+ /** Which cover option is shown. */
212
+ declare enum Choice {
213
+ /** A frame picked automatically from the video, or the provider's thumbnail for external videos. */
214
+ AUTOMATIC = "AUTOMATIC",
215
+ /** Uploaded by the site owner. */
216
+ CUSTOM = "CUSTOM"
217
+ }
218
+ /** @enumType */
219
+ type ChoiceWithLiterals = Choice | 'AUTOMATIC' | 'CUSTOM';
220
+ /** Frames picked automatically from the video. */
221
+ interface AutomaticUrlsInfo {
222
+ /**
223
+ * Frames picked automatically from the video (or the provider's thumbnails for external videos).
224
+ * @format WEB_URL
225
+ * @maxSize 4
226
+ * @readonly
227
+ */
228
+ urls?: string[];
229
+ }
230
+ /** Whether an offer sells or rents the video. */
231
+ declare enum PurchaseType {
232
+ /** Buy the video. Access never expires. */
233
+ SALE = "SALE",
234
+ /** Rent the video for `rental_duration_in_hours`. */
235
+ RENT = "RENT"
236
+ }
237
+ /** @enumType */
238
+ type PurchaseTypeWithLiterals = PurchaseType | 'SALE' | 'RENT';
239
+ /** A price for buying or renting the video. */
240
+ interface Offer {
241
+ /** Sale or rental. */
242
+ type?: PurchaseTypeWithLiterals;
243
+ /**
244
+ * Whether the offer can be bought. Disabled offers are returned too. When no offer is enabled, the video has
245
+ * no price of its own.
246
+ */
247
+ enabled?: boolean | null;
248
+ /**
249
+ * Price in `Pricing.currency`.
250
+ * @decimalValue options { gte:0.00, maxScale:2 }
251
+ */
252
+ price?: string | null;
253
+ /**
254
+ * How long a rental grants access, in hours. Set for RENT only; a SALE never expires.
255
+ * @min 1
256
+ */
257
+ rentalDurationInHours?: number | null;
258
+ }
259
+ /**
260
+ * A video file uploaded to Wix, and its processing state. Used for uploaded videos (`Video.media`), video trailers
261
+ * (`Video.trailer`) and channel trailers (`Channel.trailer`). It holds no playback URL: a trailer's URL is in its
262
+ * `playback` field, and a video's comes from `GenerateVideoPlaybackUrl`.
263
+ * Conditional fields use the Video permission, also under `Channel.trailer`: one annotation names one permission.
264
+ */
265
+ interface WixMediaVideo {
266
+ /**
267
+ * The storage system that holds the file.
268
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission, also under
269
+ * `Channel.trailer`.
270
+ */
271
+ storage?: StorageInfo;
272
+ /**
273
+ * Processing state of the file. For the video's own file it sets `Video.status`, except a live stream's recording,
274
+ * which stays VISIBLE while processed; a trailer's file doesn't.
275
+ */
276
+ status?: MediaStatusWithLiterals;
277
+ /**
278
+ * Why the upload or processing failed. Set only when `status` is FAILED.
279
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission, also under
280
+ * `Channel.trailer`.
281
+ */
282
+ error?: MediaError;
283
+ /**
284
+ * ID of the file in Wix storage.
285
+ * @maxLength 256
286
+ */
287
+ fileId?: string | null;
288
+ /**
289
+ * Name of the file the owner uploaded.
290
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission, also under
291
+ * `Channel.trailer`.
292
+ * @maxLength 2560
293
+ */
294
+ originalName?: string | null;
295
+ /**
296
+ * A frame of the video picked by Wix. To show a video's image, use `Video.cover`.
297
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
298
+ * @format WEB_URL
299
+ */
300
+ thumbnailUrl?: string | null;
301
+ /** Length of the video in milliseconds. */
302
+ durationInMillis?: string | null;
303
+ /** File size in bytes. */
304
+ sizeInBytes?: string | null;
305
+ /**
306
+ * The resolutions the file is available in, e.g. to list the qualities a viewer can pick.
307
+ * @maxSize 10
308
+ */
309
+ qualities?: MediaQualityWithLiterals[];
310
+ /**
311
+ * Who uploaded the file.
312
+ * @readonly
313
+ */
314
+ createdBy?: IdentificationData;
315
+ /**
316
+ * When the file was uploaded.
317
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
318
+ * @readonly
319
+ */
320
+ _createdDate?: Date | null;
321
+ /**
322
+ * When the file or its processing state last changed.
323
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
324
+ * @readonly
325
+ */
326
+ _updatedDate?: Date | null;
327
+ }
328
+ /** The storage system that holds a file. */
329
+ declare enum Storage {
330
+ PRIVATE_MEDIA_V3 = "PRIVATE_MEDIA_V3",
331
+ MEDIA_PLATFORM_V1 = "MEDIA_PLATFORM_V1"
332
+ }
333
+ /** @enumType */
334
+ type StorageWithLiterals = Storage | 'PRIVATE_MEDIA_V3' | 'MEDIA_PLATFORM_V1';
335
+ /** The storage system that holds the file. */
336
+ interface StorageInfo {
337
+ /** The storage system that holds the file. */
338
+ value?: StorageWithLiterals;
339
+ }
340
+ /** Processing state of a video file. Playback URLs are generated only for READY files. */
341
+ declare enum MediaStatus {
342
+ /** Uploaded and waiting to be processed. */
343
+ IN_QUEUE = "IN_QUEUE",
344
+ /** Being processed. */
345
+ IN_PROGRESS = "IN_PROGRESS",
346
+ /** Processed and ready to play. */
347
+ READY = "READY",
348
+ /** Processing failed. See `WixMediaVideo.error`. */
349
+ FAILED = "FAILED"
350
+ }
351
+ /** @enumType */
352
+ type MediaStatusWithLiterals = MediaStatus | 'IN_QUEUE' | 'IN_PROGRESS' | 'READY' | 'FAILED';
353
+ /** Why a video file failed to upload or process. */
354
+ interface MediaError {
355
+ /**
356
+ * Error key from Wix Media, e.g. `wpm_error.site_quota_total_storage_exceeded`, which other Wix apps use as a
357
+ * translation key.
358
+ * @maxLength 256
359
+ */
360
+ key?: string;
361
+ /**
362
+ * Short error description from the transcoder.
363
+ * @maxLength 1000
364
+ */
365
+ message?: string;
366
+ /**
367
+ * Detailed transcoder error message.
368
+ * @maxLength 1000
369
+ */
370
+ cause?: string;
371
+ }
372
+ /** A video resolution, by its height in pixels. */
373
+ declare enum MediaQuality {
374
+ RES_144P = "RES_144P",
375
+ RES_240P = "RES_240P",
376
+ RES_360P = "RES_360P",
377
+ RES_480P = "RES_480P",
378
+ RES_720P = "RES_720P",
379
+ RES_1080P = "RES_1080P",
380
+ RES_1440P = "RES_1440P",
381
+ RES_2160P = "RES_2160P",
382
+ RES_4320P = "RES_4320P"
383
+ }
384
+ /** @enumType */
385
+ type MediaQualityWithLiterals = MediaQuality | 'RES_144P' | 'RES_240P' | 'RES_360P' | 'RES_480P' | 'RES_720P' | 'RES_1080P' | 'RES_1440P' | 'RES_2160P' | 'RES_4320P';
386
+ interface IdentificationData extends IdentificationDataIdOneOf {
387
+ /**
388
+ * ID of a site visitor that has not logged in to the site.
389
+ * @format GUID
390
+ */
391
+ anonymousVisitorId?: string;
392
+ /**
393
+ * ID of a site visitor that has logged in to the site.
394
+ * @format GUID
395
+ */
396
+ memberId?: string;
397
+ /**
398
+ * ID of a Wix user (site owner, contributor, etc.).
399
+ * @format GUID
400
+ */
401
+ wixUserId?: string;
402
+ /**
403
+ * ID of an app.
404
+ * @format GUID
405
+ */
406
+ appId?: string;
407
+ /**
408
+ * ID of of a contact in the site's [CRM by Ascend](https://www.wix.com/ascend/crm) system.
409
+ * @format GUID
410
+ */
411
+ contactId?: string | null;
412
+ }
413
+ /** @oneof */
414
+ interface IdentificationDataIdOneOf {
415
+ /**
416
+ * ID of a site visitor that has not logged in to the site.
417
+ * @format GUID
418
+ */
419
+ anonymousVisitorId?: string;
420
+ /**
421
+ * ID of a site visitor that has logged in to the site.
422
+ * @format GUID
423
+ */
424
+ memberId?: string;
425
+ /**
426
+ * ID of a Wix user (site owner, contributor, etc.).
427
+ * @format GUID
428
+ */
429
+ wixUserId?: string;
430
+ /**
431
+ * ID of an app.
432
+ * @format GUID
433
+ */
434
+ appId?: string;
435
+ }
436
+ declare enum IdentityType {
437
+ UNKNOWN = "UNKNOWN",
438
+ ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
439
+ MEMBER = "MEMBER",
440
+ WIX_USER = "WIX_USER",
441
+ APP = "APP"
442
+ }
443
+ /** @enumType */
444
+ type IdentityTypeWithLiterals = IdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP';
445
+ /** Where the owner uploaded the file from. */
446
+ declare enum UploadOrigin {
447
+ COMPUTER = "COMPUTER",
448
+ GOOGLE_DRIVE = "GOOGLE_DRIVE",
449
+ DROPBOX = "DROPBOX"
450
+ }
451
+ /** @enumType */
452
+ type UploadOriginWithLiterals = UploadOrigin | 'COMPUTER' | 'GOOGLE_DRIVE' | 'DROPBOX';
453
+ /** The app the stream is broadcast from. */
454
+ declare enum BroadcastApp {
455
+ /** The Wix mobile app. */
456
+ WIX_MOBILE_APP = "WIX_MOBILE_APP",
457
+ /** Desktop streaming software, such as OBS, that sends the stream over RTMP. */
458
+ STREAMING_SOFTWARE = "STREAMING_SOFTWARE"
459
+ }
460
+ /** @enumType */
461
+ type BroadcastAppWithLiterals = BroadcastApp | 'WIX_MOBILE_APP' | 'STREAMING_SOFTWARE';
462
+ /**
463
+ * Where the stream is in its lifecycle. SCHEDULED, PENDING, STREAMING and RECONNECTING mean the stream is
464
+ * live or about to be.
465
+ */
466
+ declare enum Status {
467
+ /** Created for a later time, in `start_date`; the broadcast hasn't started. */
468
+ SCHEDULED = "SCHEDULED",
469
+ /**
470
+ * Not live yet: the broadcaster hasn't started the stream, or started it and their video hasn't arrived.
471
+ * Visitors get only the second case.
472
+ */
473
+ PENDING = "PENDING",
474
+ /** Live now. */
475
+ STREAMING = "STREAMING",
476
+ /** The broadcaster disconnected; waiting for them to reconnect. */
477
+ RECONNECTING = "RECONNECTING",
478
+ /**
479
+ * The broadcast ended and its recording is being saved as a video. The video stays VISIBLE, but can't be
480
+ * played until the recording is ready.
481
+ */
482
+ PROCESSING_RECORDING = "PROCESSING_RECORDING",
483
+ /**
484
+ * Legacy: the stream reached its maximum length. Only on streams created before the current flow; new
485
+ * streams never get it.
486
+ */
487
+ EXPIRED = "EXPIRED"
488
+ }
489
+ /** @enumType */
490
+ type StatusWithLiterals = Status | 'SCHEDULED' | 'PENDING' | 'STREAMING' | 'RECONNECTING' | 'PROCESSING_RECORDING' | 'EXPIRED';
491
+ /** The protocol the broadcaster uses to send the stream. */
492
+ declare enum Protocol {
493
+ WEBRTC = "WEBRTC",
494
+ RTMP = "RTMP"
495
+ }
496
+ /** @enumType */
497
+ type ProtocolWithLiterals = Protocol | 'WEBRTC' | 'RTMP';
498
+ /** The app the stream is broadcast from. */
499
+ interface BroadcastAppInfo {
500
+ /** The app the stream is broadcast from. */
501
+ value?: BroadcastAppWithLiterals;
502
+ }
503
+ /** Where the media comes from. */
504
+ declare enum Source {
505
+ WIX_MEDIA = "WIX_MEDIA",
506
+ YOUTUBE = "YOUTUBE",
507
+ VIMEO = "VIMEO",
508
+ FACEBOOK = "FACEBOOK",
509
+ LIVE_STREAM = "LIVE_STREAM"
510
+ }
511
+ /** @enumType */
512
+ type SourceWithLiterals = Source | 'WIX_MEDIA' | 'YOUTUBE' | 'VIMEO' | 'FACEBOOK' | 'LIVE_STREAM';
513
+ /** A video file uploaded to Wix. */
514
+ interface WixMediaDetails {
515
+ /** The uploaded video file and its processing state. */
516
+ file?: WixMediaVideo;
517
+ /** Where the owner uploaded the file from. */
518
+ uploadOrigin?: UploadOriginWithLiterals;
519
+ }
520
+ /** A video imported from YouTube. Its data is refreshed from YouTube at most once every 24 hours. */
521
+ interface YoutubeDetails {
522
+ /**
523
+ * The video's YouTube URL. Play it directly: external videos are free and need no playback URL.
524
+ * @format WEB_URL
525
+ */
526
+ url?: string | null;
527
+ /**
528
+ * The video's title on YouTube when it was imported.
529
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
530
+ * @maxLength 2560
531
+ */
532
+ originalTitle?: string | null;
533
+ /**
534
+ * False once the video is no longer available on YouTube.
535
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
536
+ * @readonly
537
+ */
538
+ available?: boolean | null;
539
+ /**
540
+ * When the video was last synced from YouTube.
541
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
542
+ * @readonly
543
+ */
544
+ lastSyncedDate?: Date | null;
545
+ }
546
+ /** A video imported from Vimeo. Its data is copied at import and not refreshed. */
547
+ interface VimeoDetails {
548
+ /**
549
+ * The video's Vimeo URL. Play it directly: external videos are free and need no playback URL.
550
+ * @format WEB_URL
551
+ */
552
+ url?: string | null;
553
+ /**
554
+ * The video's title on Vimeo when it was imported.
555
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
556
+ * @maxLength 2560
557
+ */
558
+ originalTitle?: string | null;
559
+ /**
560
+ * When the video was last synced from Vimeo. These videos aren't re-synced yet, so this is when the video was
561
+ * imported.
562
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
563
+ * @readonly
564
+ */
565
+ lastSyncedDate?: Date | null;
566
+ }
567
+ /** A video imported from Facebook. Its data is copied at import and not refreshed. */
568
+ interface FacebookDetails {
569
+ /**
570
+ * The video's Facebook URL. Play it directly: external videos are free and need no playback URL.
571
+ * @format WEB_URL
572
+ */
573
+ url?: string | null;
574
+ /**
575
+ * When the video was last synced from Facebook. These videos aren't re-synced yet, so this is when the video was
576
+ * imported.
577
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
578
+ * @readonly
579
+ */
580
+ lastSyncedDate?: Date | null;
581
+ }
582
+ /** A live stream. The stream URL isn't here: get it from `GenerateVideoPlaybackUrl`, which checks access. */
583
+ interface LiveStreamDetails {
584
+ /**
585
+ * Where the stream is in its lifecycle. Sets `Video.status`: VISIBLE from SCHEDULED through
586
+ * PROCESSING_RECORDING, except a stream created without a start time, which is INITIALIZED until the broadcaster
587
+ * starts it; FAILED when EXPIRED.
588
+ */
589
+ status?: StatusWithLiterals;
590
+ /** The protocol the broadcaster uses to send the stream. It doesn't affect playback. */
591
+ protocol?: ProtocolWithLiterals;
592
+ /**
593
+ * The app the stream is broadcast from.
594
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
595
+ */
596
+ broadcastApp?: BroadcastAppInfo;
597
+ /**
598
+ * To read the count without being counted, e.g. on the broadcaster's screen, send a GET request. It returns the
599
+ * approximate number of players watching now, as a plain-text integer, e.g. `12`: the pings to `ping_url` in the
600
+ * last 5 seconds. Each response is the full current count, not a change. Poll every 5 seconds.
601
+ * @format WEB_URL
602
+ */
603
+ counterUrl?: string | null;
604
+ /**
605
+ * Send a GET request every 5 seconds while the stream plays. The response is the current viewer count, as for
606
+ * `counter_url`. Each ping counts toward the total for 5 seconds, so pinging more often inflates it.
607
+ * @format WEB_URL
608
+ */
609
+ pingUrl?: string | null;
610
+ /**
611
+ * Who created the stream.
612
+ * @readonly
613
+ */
614
+ createdBy?: IdentificationData;
615
+ /**
616
+ * When the stream starts. While SCHEDULED, the start time the owner planned; once STREAMING, when the broadcast
617
+ * actually started. Unset while PENDING.
618
+ * @readonly
619
+ */
620
+ startDate?: Date | null;
621
+ /**
622
+ * When the broadcast ended. Unset while the stream is live.
623
+ * @readonly
624
+ */
625
+ endDate?: Date | null;
626
+ }
627
+ /** Which trailer is shown. */
628
+ declare enum TrailerChoice {
629
+ /** The first 20 seconds of the video (`content_clip`). */
630
+ CONTENT_CLIP = "CONTENT_CLIP",
631
+ /** A file the owner uploaded (`uploaded`). */
632
+ UPLOADED = "UPLOADED",
633
+ /** A trailer generated from the video (`autogenerated`). */
634
+ AUTOGENERATED = "AUTOGENERATED"
635
+ }
636
+ /** @enumType */
637
+ type TrailerChoiceWithLiterals = TrailerChoice | 'CONTENT_CLIP' | 'UPLOADED' | 'AUTOGENERATED';
638
+ /** A clip from the start of the video, created when the video is uploaded. It plays from the video's own file. */
639
+ interface ContentClip {
640
+ /**
641
+ * Processing state of the clip, separate from the video's.
642
+ * @readonly
643
+ */
644
+ status?: MediaStatusWithLiterals;
645
+ /**
646
+ * Length of the clip in milliseconds. Currently always 20000.
647
+ * @readonly
648
+ */
649
+ durationInMillis?: string | null;
650
+ }
651
+ /**
652
+ * A time-limited HLS URL for a video uploaded to Wix. Trailers use it too (`Video.trailer.playback`,
653
+ * `Channel.trailer.playback`).
654
+ */
655
+ interface WixMediaPlayback {
656
+ /**
657
+ * HLS manifest URL to pass to the player.
658
+ * @format WEB_URL
659
+ */
660
+ url?: string;
661
+ /** When `url` stops working, about 24 hours after it was generated. */
662
+ expirationDate?: Date | null;
663
+ }
664
+ /** Why `playback` is unset. */
665
+ declare enum PlaybackUnavailableReason {
666
+ /** The site owner turned the trailer off (`enabled` is false). */
667
+ NOT_ENABLED = "NOT_ENABLED",
668
+ /**
669
+ * `choice` is UPLOADED and no trailer file was uploaded. A live stream plays only `uploaded`, so this is also
670
+ * its reason when `choice` is CONTENT_CLIP.
671
+ */
672
+ NOT_UPLOADED = "NOT_UPLOADED",
673
+ /** `choice` is AUTOGENERATED and no trailer was generated. */
674
+ NOT_GENERATED = "NOT_GENERATED",
675
+ /** A live stream with `choice` AUTOGENERATED: live streams play only `uploaded`. */
676
+ NOT_SUPPORTED_FOR_LIVE = "NOT_SUPPORTED_FOR_LIVE",
677
+ /** The chosen trailer is still being processed. */
678
+ PROCESSING = "PROCESSING",
679
+ /** Processing the chosen trailer failed. */
680
+ FAILED = "FAILED",
681
+ /** The chosen trailer is ready, but its playback URL couldn't be created. Try again later. */
682
+ UNAVAILABLE = "UNAVAILABLE"
683
+ }
684
+ /** @enumType */
685
+ type PlaybackUnavailableReasonWithLiterals = PlaybackUnavailableReason | 'NOT_ENABLED' | 'NOT_UPLOADED' | 'NOT_GENERATED' | 'NOT_SUPPORTED_FOR_LIVE' | 'PROCESSING' | 'FAILED' | 'UNAVAILABLE';
686
+ /** Who the content is suitable for. */
687
+ declare enum ContentRating {
688
+ /** Suitable for all audiences. */
689
+ ALL_AUDIENCES = "ALL_AUDIENCES",
690
+ /** Mature content (violence, profanity, nudity, drugs...). */
691
+ MATURE = "MATURE"
692
+ }
693
+ /** @enumType */
694
+ type ContentRatingWithLiterals = ContentRating | 'ALL_AUDIENCES' | 'MATURE';
695
+ /** When the embedded player shows the logo. */
696
+ declare enum DisplayMode {
697
+ /** Shown together with the player's control bar. */
698
+ WITH_CONTROL_BAR = "WITH_CONTROL_BAR",
699
+ /** Always shown. */
700
+ ALWAYS = "ALWAYS"
701
+ }
702
+ /** @enumType */
703
+ type DisplayModeWithLiterals = DisplayMode | 'WITH_CONTROL_BAR' | 'ALWAYS';
704
+ /** The logo the embedded player shows. */
705
+ interface Logo {
706
+ /**
707
+ * Whether the embedded player shows the logo. Turning it off keeps `display_mode` and `url`, so it can be
708
+ * turned back on.
709
+ */
710
+ visible?: boolean | null;
711
+ /** When the logo is shown: with the player's control bar, or always. Applies only when `visible` is true. */
712
+ displayMode?: DisplayModeWithLiterals;
713
+ /**
714
+ * The logo image: one of the embed logos uploaded to the site.
715
+ * @format WEB_URL
716
+ */
717
+ url?: string | null;
718
+ }
719
+ /** The kind of production the video is, such as a film, vlog or tutorial. */
720
+ declare enum ContentType {
721
+ /** The stored type isn't one of the values below. */
722
+ UNKNOWN_CONTENT_TYPE = "UNKNOWN_CONTENT_TYPE",
723
+ /** A movie released in theaters. */
724
+ MOVIE_THEATRICAL = "MOVIE_THEATRICAL",
725
+ /** A TV show or episode. */
726
+ TELEVISION = "TELEVISION",
727
+ /** A movie released directly to video, not in theaters. */
728
+ MADE_FOR_VIDEO = "MADE_FOR_VIDEO",
729
+ /** A lesson in a course. */
730
+ VIDEO_COURSE = "VIDEO_COURSE",
731
+ /** A showreel or portfolio piece. */
732
+ PORTFOLIO = "PORTFOLIO",
733
+ /** A personal or family video. */
734
+ PERSONAL = "PERSONAL",
735
+ /** Any other film, such as a short or independent film. */
736
+ FILM = "FILM",
737
+ /** A video blog. */
738
+ VLOG = "VLOG",
739
+ /** An episode of a series made for the web. */
740
+ WEB_SERIES = "WEB_SERIES",
741
+ /** A product demo. */
742
+ PRODUCT_DEMO = "PRODUCT_DEMO",
743
+ /** Customer testimonials. */
744
+ TESTIMONIALS = "TESTIMONIALS",
745
+ /** A how-to or tutorial. */
746
+ TUTORIALS = "TUTORIALS",
747
+ /** Educational content that isn't a course. */
748
+ EDUCATION = "EDUCATION",
749
+ /** A music video or performance. */
750
+ MUSIC = "MUSIC",
751
+ /** None of the above. */
752
+ OTHER = "OTHER"
753
+ }
754
+ /** @enumType */
755
+ type ContentTypeWithLiterals = ContentType | 'UNKNOWN_CONTENT_TYPE' | 'MOVIE_THEATRICAL' | 'TELEVISION' | 'MADE_FOR_VIDEO' | 'VIDEO_COURSE' | 'PORTFOLIO' | 'PERSONAL' | 'FILM' | 'VLOG' | 'WEB_SERIES' | 'PRODUCT_DEMO' | 'TESTIMONIALS' | 'TUTORIALS' | 'EDUCATION' | 'MUSIC' | 'OTHER';
756
+ /** Whether site visitors get the video. */
757
+ interface StatusInfo {
758
+ /** Visibility state. */
759
+ value?: VideoStatusWithLiterals;
760
+ }
761
+ /** A person who worked on the video. */
762
+ interface CrewMember {
763
+ /** The person's position on the crew, e.g. DIRECTOR. */
764
+ position?: PositionWithLiterals;
765
+ /**
766
+ * The person's full name, as the owner entered it.
767
+ * @maxLength 1024
768
+ */
769
+ fullName?: string | null;
770
+ }
771
+ /** A person who appears in the video. */
772
+ interface CastMember {
773
+ /**
774
+ * The character the person plays, as the owner entered it.
775
+ * @maxLength 1024
776
+ */
777
+ role?: string | null;
778
+ /**
779
+ * The person's full name, as the owner entered it.
780
+ * @maxLength 1024
781
+ */
782
+ fullName?: string | null;
783
+ }
784
+ /** Prices for buying or renting this video on its own. Channel pricing can also grant access; see `Channel.pricing`. */
785
+ interface Pricing {
786
+ /**
787
+ * Currency of every offer's `price`, set in the site's video settings. Empty when the settings have no currency.
788
+ * @format CURRENCY
789
+ * @readonly
790
+ */
791
+ currency?: string;
792
+ /**
793
+ * The sale and rental offers. Empty for YouTube, Vimeo and Facebook videos, which are free.
794
+ * @maxSize 2
795
+ */
796
+ offers?: Offer[];
797
+ }
798
+ /**
799
+ * The video's cover. `url` is the cover to show; `choice` says whether it was picked automatically or uploaded by
800
+ * the owner.
801
+ */
802
+ interface Cover {
803
+ /**
804
+ * The cover to show.
805
+ * @format WEB_URL
806
+ */
807
+ url?: string | null;
808
+ /** Which cover option `url` is. */
809
+ choice?: ChoiceWithLiterals;
810
+ /**
811
+ * Frames picked automatically from the video. `url` is one of them when `choice` is AUTOMATIC.
812
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
813
+ * @readonly
814
+ */
815
+ automaticUrls?: AutomaticUrlsInfo;
816
+ /**
817
+ * The owner's uploaded cover.
818
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
819
+ * @format WEB_URL
820
+ * @readonly
821
+ */
822
+ customUrl?: string | null;
823
+ }
824
+ /** The image shown in the player before the video plays. */
825
+ interface Poster {
826
+ /**
827
+ * The owner's uploaded image. Unset when the owner has not set one.
828
+ * @format WEB_URL
829
+ */
830
+ url?: string | null;
831
+ }
832
+ /**
833
+ * What the video plays: a file uploaded to Wix, a YouTube, Vimeo or Facebook video, or a live stream.
834
+ * `source` says which `source_details` member is set. When a live stream finishes, its recording replaces it
835
+ * and `source` becomes WIX_MEDIA.
836
+ */
837
+ interface Media extends MediaSourceDetailsOneOf {
838
+ /** Set when `source` is WIX_MEDIA. */
839
+ wixMediaDetails?: WixMediaDetails;
840
+ /** Set when `source` is YOUTUBE. */
841
+ youtubeDetails?: YoutubeDetails;
842
+ /** Set when `source` is VIMEO. */
843
+ vimeoDetails?: VimeoDetails;
844
+ /** Set when `source` is FACEBOOK. */
845
+ facebookDetails?: FacebookDetails;
846
+ /** Set when `source` is LIVE_STREAM. When the stream finishes, `source` becomes WIX_MEDIA and this is cleared. */
847
+ liveStreamDetails?: LiveStreamDetails;
848
+ /**
849
+ * Where the media comes from. Selects which `source_details` member is set. YOUTUBE, VIMEO and FACEBOOK videos
850
+ * are free and play from the provider's URL.
851
+ */
852
+ source?: SourceWithLiterals;
853
+ /**
854
+ * The media's ID at its source: the Wix file ID for WIX_MEDIA (same as `wix_media_details.file.file_id`), the
855
+ * provider's video ID for YOUTUBE, VIMEO and FACEBOOK, and the stream ID for LIVE_STREAM.
856
+ * @maxLength 256
857
+ * @readonly
858
+ */
859
+ sourceId?: string | null;
860
+ /**
861
+ * Length of the media in milliseconds. Unset when unknown, and always for FACEBOOK. For YOUTUBE and VIMEO, the
862
+ * provider's duration at import. For LIVE_STREAM, the stream's length.
863
+ * @readonly
864
+ */
865
+ durationInMillis?: string | null;
866
+ /**
867
+ * Thumbnail from the source: a frame picked by Wix for WIX_MEDIA, or the provider's thumbnail. Unset for
868
+ * LIVE_STREAM. To show a video's image, use `Video.cover`.
869
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
870
+ * @format WEB_URL
871
+ * @readonly
872
+ */
873
+ thumbnailUrl?: string | null;
874
+ /**
875
+ * When the media was attached to the video.
876
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
877
+ * @readonly
878
+ */
879
+ _createdDate?: Date | null;
880
+ /**
881
+ * When the media last changed, e.g. finished processing or was re-synced from the provider.
882
+ * Returned only to callers with the `video:v4:video:video_read_private_fields` permission.
883
+ * @readonly
884
+ */
885
+ _updatedDate?: Date | null;
886
+ }
887
+ /** @oneof */
888
+ interface MediaSourceDetailsOneOf {
889
+ /** Set when `source` is WIX_MEDIA. */
890
+ wixMediaDetails?: WixMediaDetails;
891
+ /** Set when `source` is YOUTUBE. */
892
+ youtubeDetails?: YoutubeDetails;
893
+ /** Set when `source` is VIMEO. */
894
+ vimeoDetails?: VimeoDetails;
895
+ /** Set when `source` is FACEBOOK. */
896
+ facebookDetails?: FacebookDetails;
897
+ /** Set when `source` is LIVE_STREAM. When the stream finishes, `source` becomes WIX_MEDIA and this is cleared. */
898
+ liveStreamDetails?: LiveStreamDetails;
899
+ }
900
+ /**
901
+ * The trailer shown to visitors who can't watch the video. The owner can keep every kind of trailer and pick one
902
+ * with `choice`; only that one gets a `playback` URL. Trailers are free for everyone.
903
+ */
904
+ interface Trailer {
905
+ /** Whether a trailer is shown to visitors who can't watch the video. */
906
+ enabled?: boolean | null;
907
+ /** Which trailer is shown. */
908
+ choice?: TrailerChoiceWithLiterals;
909
+ /** The clip from the start of the video. Shown when `choice` is CONTENT_CLIP. */
910
+ contentClip?: ContentClip;
911
+ /** A trailer file the owner uploaded. Shown when `choice` is UPLOADED. Live streams can have one too. */
912
+ uploaded?: WixMediaVideo;
913
+ /** A trailer generated from the video at the owner's request. Shown when `choice` is AUTOGENERATED. */
914
+ autogenerated?: WixMediaVideo;
915
+ /**
916
+ * HLS URL of the trailer that is shown, valid until `playback.expiration_date`. Set only when `enabled` is true
917
+ * and that trailer is READY; otherwise `playback_unavailable_reason` says why not. A live stream shows
918
+ * `uploaded`, and only when `choice` is CONTENT_CLIP or UPLOADED.
919
+ * @readonly
920
+ */
921
+ playback?: WixMediaPlayback;
922
+ /**
923
+ * Why `playback` is unset. Set only when `playback` is not, and never for YouTube, Vimeo and Facebook videos.
924
+ * @readonly
925
+ */
926
+ playbackUnavailableReason?: PlaybackUnavailableReasonWithLiterals;
927
+ }
928
+ /** Download settings for the video. */
929
+ interface DownloadOptions {
930
+ /** Whether visitors can download the video. Always false for YouTube, Vimeo and Facebook videos. */
931
+ enabled?: boolean | null;
932
+ }
933
+ /** Who can watch the video, and who it is suitable for. */
934
+ interface ViewerOptions {
935
+ /** Whether only logged-in site members can watch the video. */
936
+ memberLoginRequired?: boolean | null;
937
+ /** Who the video is suitable for. */
938
+ contentRating?: ContentRatingWithLiterals;
939
+ }
940
+ /**
941
+ * Settings for embedding the video on other websites. `enabled` turns embedding on; the other fields set up the
942
+ * embedded player and apply only when it's on.
943
+ */
944
+ interface EmbedOptions {
945
+ /** Whether the video can be embedded on other websites. Always false for YouTube, Vimeo and Facebook videos. */
946
+ enabled?: boolean | null;
947
+ /** Whether the embedded player shows the info button. */
948
+ infoButtonVisible?: boolean | null;
949
+ /** Whether the embedded player shows the share button. */
950
+ shareButtonVisible?: boolean | null;
951
+ /** Whether the embedded player shows the video title. */
952
+ titleVisible?: boolean | null;
953
+ /** Shown only when `logo.visible` is true and `url` is set. */
954
+ logo?: Logo;
955
+ }
956
+ /**
957
+ * Data for search engines. Set only when the video is VISIBLE, free (by its own pricing, not its channel's),
958
+ * and uploaded to Wix (not YouTube, Vimeo or Facebook).
959
+ */
960
+ interface SeoInfo {
961
+ /**
962
+ * HLS URL to use as the `contentUrl` in the video's structured data. The same for every caller.
963
+ * @format WEB_URL
964
+ */
965
+ url?: string | null;
966
+ }
967
+ interface GetVideoRequest {
968
+ /**
969
+ * The video's `id`.
970
+ * @format GUID
971
+ */
972
+ videoId: string;
973
+ }
974
+ interface GetVideoResponse {
975
+ /** The requested video. */
976
+ video?: Video;
977
+ }
978
+ interface GenerateVideoPlaybackUrlRequest {
979
+ /**
980
+ * The video to play.
981
+ * @format GUID
982
+ */
983
+ videoId: string;
984
+ /**
985
+ * The channel the video is played from. Access is checked against it, so a channel purchase counts. Must contain
986
+ * the video. Omit when the video isn't played from a channel.
987
+ * @format GUID
988
+ */
989
+ channelId?: string | null;
990
+ }
991
+ /** The URL the caller can play. */
992
+ interface GenerateVideoPlaybackUrlResponse {
993
+ /** What the caller can play: the video, or its trailer when the caller can't watch the video. */
994
+ playback?: Playback;
995
+ }
996
+ /** The URL the caller can play, generated for this caller. `type` says which `playback_details` member is set. */
997
+ interface Playback extends PlaybackPlaybackDetailsOneOf {
998
+ /** Set when `type` is WIX_MEDIA. */
999
+ wixMediaDetails?: WixMediaPlayback;
1000
+ /** Set when `type` is LIVE_STREAM. */
1001
+ liveStreamDetails?: LiveStreamPlayback;
1002
+ /** What is playable; selects which `playback_details` member is set. */
1003
+ type?: TypeWithLiterals;
1004
+ /** Whether `playback_details` plays the video or its trailer. */
1005
+ content?: ContentWithLiterals;
1006
+ }
1007
+ /** @oneof */
1008
+ interface PlaybackPlaybackDetailsOneOf {
1009
+ /** Set when `type` is WIX_MEDIA. */
1010
+ wixMediaDetails?: WixMediaPlayback;
1011
+ /** Set when `type` is LIVE_STREAM. */
1012
+ liveStreamDetails?: LiveStreamPlayback;
1013
+ }
1014
+ /** Whether the URL plays a recorded video or a live stream. */
1015
+ declare enum Type {
1016
+ /** A recorded Wix-hosted video. */
1017
+ WIX_MEDIA = "WIX_MEDIA",
1018
+ /** A stream that is live now. A finished stream is WIX_MEDIA: its recording plays instead. */
1019
+ LIVE_STREAM = "LIVE_STREAM"
1020
+ }
1021
+ /** @enumType */
1022
+ type TypeWithLiterals = Type | 'WIX_MEDIA' | 'LIVE_STREAM';
1023
+ /** An HLS URL for a live stream. It doesn't expire. */
1024
+ interface LiveStreamPlayback {
1025
+ /**
1026
+ * HLS manifest URL to pass to the player.
1027
+ * @format WEB_URL
1028
+ */
1029
+ url?: string;
1030
+ }
1031
+ /** What `playback_details` plays. */
1032
+ declare enum Content {
1033
+ /** The video itself: the caller can watch it. */
1034
+ FULL_VIDEO = "FULL_VIDEO",
1035
+ /** The video's trailer (`Video.trailer.choice`), because the caller can't watch the video. Always WIX_MEDIA. */
1036
+ TRAILER = "TRAILER"
1037
+ }
1038
+ /** @enumType */
1039
+ type ContentWithLiterals = Content | 'FULL_VIDEO' | 'TRAILER';
1040
+ interface GenerateVideoDownloadUrlRequest {
1041
+ /**
1042
+ * The video to download.
1043
+ * @format GUID
1044
+ */
1045
+ videoId: string;
1046
+ /**
1047
+ * The channel the video is downloaded from. Access is checked against it, so a channel purchase counts. Must
1048
+ * contain the video. Omit when the video isn't downloaded from a channel: only the video's own pricing is checked.
1049
+ * @format GUID
1050
+ */
1051
+ channelId?: string | null;
1052
+ }
1053
+ interface GenerateVideoDownloadUrlResponse {
1054
+ /**
1055
+ * Download URL for the video file. Valid until `expiration_date`.
1056
+ * @format WEB_URL
1057
+ */
1058
+ url?: string;
1059
+ /** When `url` stops working, 6 hours after it was generated. */
1060
+ expirationDate?: Date | null;
1061
+ }
1062
+ /** @docsIgnore */
1063
+ type GenerateVideoPlaybackUrlApplicationErrors = {
1064
+ code?: 'PLAYBACK_REQUIRES_PAYMENT';
1065
+ description?: string;
1066
+ data?: Record<string, any>;
1067
+ } | {
1068
+ code?: 'PLAYBACK_REQUIRES_MEMBER_LOGIN';
1069
+ description?: string;
1070
+ data?: Record<string, any>;
1071
+ } | {
1072
+ code?: 'PLAYBACK_NOT_SUPPORTED_FOR_EXTERNAL_VIDEO';
1073
+ description?: string;
1074
+ data?: Record<string, any>;
1075
+ } | {
1076
+ code?: 'PLAYBACK_UNAVAILABLE';
1077
+ description?: string;
1078
+ data?: Record<string, any>;
1079
+ };
1080
+ /** @docsIgnore */
1081
+ type GenerateVideoDownloadUrlApplicationErrors = {
1082
+ code?: 'DOWNLOAD_REQUIRES_PAYMENT';
1083
+ description?: string;
1084
+ data?: Record<string, any>;
1085
+ } | {
1086
+ code?: 'DOWNLOAD_REQUIRES_MEMBER_LOGIN';
1087
+ description?: string;
1088
+ data?: Record<string, any>;
1089
+ } | {
1090
+ code?: 'DOWNLOAD_DISABLED';
1091
+ description?: string;
1092
+ data?: Record<string, any>;
1093
+ } | {
1094
+ code?: 'DOWNLOAD_NOT_SUPPORTED_FOR_EXTERNAL_VIDEO';
1095
+ description?: string;
1096
+ data?: Record<string, any>;
1097
+ } | {
1098
+ code?: 'DOWNLOAD_UNAVAILABLE';
1099
+ description?: string;
1100
+ data?: Record<string, any>;
1101
+ };
1102
+ interface GenerateVideoPlaybackUrlOptions {
1103
+ /**
1104
+ * The channel the video is played from. Access is checked against it, so a channel purchase counts. Must contain
1105
+ * the video. Omit when the video isn't played from a channel.
1106
+ * @format GUID
1107
+ */
1108
+ channelId?: string | null;
1109
+ }
1110
+ interface GenerateVideoDownloadUrlOptions {
1111
+ /**
1112
+ * The channel the video is downloaded from. Access is checked against it, so a channel purchase counts. Must
1113
+ * contain the video. Omit when the video isn't downloaded from a channel: only the video's own pricing is checked.
1114
+ * @format GUID
1115
+ */
1116
+ channelId?: string | null;
1117
+ }
1118
+
1119
+ export { type AutomaticUrlsInfo, BroadcastApp, type BroadcastAppInfo, type BroadcastAppWithLiterals, type CastMember, Choice, type ChoiceWithLiterals, Content, type ContentClip, ContentRating, type ContentRatingWithLiterals, ContentType, type ContentTypeWithLiterals, type ContentWithLiterals, type Cover, type CrewMember, DisplayMode, type DisplayModeWithLiterals, type DownloadOptions, type EmbedOptions, type FacebookDetails, type GenerateVideoDownloadUrlApplicationErrors, type GenerateVideoDownloadUrlOptions, type GenerateVideoDownloadUrlRequest, type GenerateVideoDownloadUrlResponse, type GenerateVideoPlaybackUrlApplicationErrors, type GenerateVideoPlaybackUrlOptions, type GenerateVideoPlaybackUrlRequest, type GenerateVideoPlaybackUrlResponse, type GetVideoRequest, type GetVideoResponse, type IdentificationData, type IdentificationDataIdOneOf, IdentityType, type IdentityTypeWithLiterals, type LiveStreamDetails, type LiveStreamPlayback, type Logo, type Media, type MediaError, MediaQuality, type MediaQualityWithLiterals, type MediaSourceDetailsOneOf, MediaStatus, type MediaStatusWithLiterals, type Offer, type Playback, type PlaybackPlaybackDetailsOneOf, PlaybackUnavailableReason, type PlaybackUnavailableReasonWithLiterals, Position, type PositionWithLiterals, type Poster, type Pricing, Protocol, type ProtocolWithLiterals, PurchaseType, type PurchaseTypeWithLiterals, type SeoInfo, Source, type SourceWithLiterals, Status, type StatusInfo, type StatusWithLiterals, Storage, type StorageInfo, type StorageWithLiterals, type Trailer, TrailerChoice, type TrailerChoiceWithLiterals, Type, type TypeWithLiterals, UploadOrigin, type UploadOriginWithLiterals, type Video, VideoStatus, type VideoStatusWithLiterals, type ViewerOptions, type VimeoDetails, type WixMediaDetails, type WixMediaPlayback, type WixMediaVideo, type YoutubeDetails };