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