diff --git a/.github/workflows/fastpix-python.yml b/.github/workflows/fastpix-python.yml
index 9fa4a2b..4e91d61 100644
--- a/.github/workflows/fastpix-python.yml
+++ b/.github/workflows/fastpix-python.yml
@@ -43,4 +43,4 @@ jobs:
# `--skip-existing` makes the upload idempotent — re-running for the
# same version won't fail if it's already on PyPI. Useful when both
# `push: tags` and `release: published` fire for the same tag.
- run: twine upload --skip-existing dist/*
\ No newline at end of file
+ run: twine upload --skip-existing dist/*
diff --git a/.gitignore b/.gitignore
index 4f948b8..f1fbcd8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -151,3 +151,13 @@ tests/*OPENAPI_RESPONSE*.md
tests/BROKEN_LINKS_REPORT.md
tests/NON_GET_ENDPOINTS_VALIDATION_REPORT.md
tests/GET_ENDPOINTS_VALIDATION_REPORT.md
+
+# Local SDK usage examples (contain live workspace credentials/IDs)
+tests/examples/
+
+node_modules/
+
+#Local files
+/fixed.yaml
+/fastpix-openai.yaml
+fastpix.yaml
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2bbe479..c13cd09 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,55 @@
All notable changes to this project will be documented in this file.
+---
+
+## [1.1.5]
+
+### Fixed
+
+- **`import fastpix_python` crashed on Python 3.9–3.13** — `playback.py` used
+ `List` without importing it, raising `NameError` at import time. Affected
+ 1.1.3 and 1.1.4; masked on 3.14 by lazy annotations.
+- **Playback restriction methods had invalid return annotations** — corrected to
+ the actual `...ResponseBody` types.
+- **`models.DefaultError` was unregistered**, so the playback error path failed
+ to resolve.
+- **`fastpix.errors.list_errors` was unreachable** — `errors.py` was shadowed by
+ the `errors/` exception package; the resource module is now `errors_sdk.py`.
+- **`mp4Support` is a list of renditions**, not a string — deserialization
+ failed on `get_media`, `list_media`, `updated_media`, `updated_source_access`,
+ `updated_mp4Support`, `list_live_clips`.
+- **`updated_mp4_support()` sent an empty body** when `mp4_support` was omitted
+ (`400`). Now required.
+- **`sourceResolution` rejected bare numeric values** (`"1080"`, `"720"`). Both
+ forms are accepted, and the `360` tier was added.
+- **`maxDuration` and `resolution` rejected uncapped resources** — `maxDuration`
+ is now `0` or `60`–`28800`, and `CreatePlaybackId.resolution` is nullable.
+- **Version metadata disagreed** — `setup.py` `1.1.3` vs `1.1.5` elsewhere.
+
+### Added
+
+- **`get_summary()` / `get_summary_async()`** — `GET /on-demand/{mediaId}/summary`.
+- **Track `title`** on the track models and on `update_media_track()` /
+ `generate_subtitle_track()`.
+- **`optimize_audio`** on the live-clip response.
+
+### Removed
+
+- **`models.MediaMp4Support`** — use `models.MediaMp4SupportEntry`.
+- **`update_media_track()` no longer accepts `url`** — raises `TypeError`.
+- **Dead `ValidationErrorResponseError` export** — it pointed at a module that
+ was never generated, so importing it always raised `ImportError`.
+
+### Documentation
+
+- MP4 model pages point at `MediaMp4SupportEntry`; `mp4_support` marked required.
+- Doc links migrated to the restructured site;
+ `video.media.subtitle.generated.ready` → `video.media.subtitle.generated`.
+
+> The spec marks `mp4Support` on the update-mp4Support body both `required` and
+> `default: capped_4k`, which conflict. The SDK implements `required`.
+
---
## [1.1.4]
diff --git a/README.md b/README.md
index 1546298..fee8d6d 100644
--- a/README.md
+++ b/README.md
@@ -179,7 +179,7 @@ with Fastpix(
},
)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
## Available Resources and Operations
@@ -365,7 +365,7 @@ with Fastpix(
),
)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
If you'd like to override the default retry strategy for all operations that support retries, you can use the `retry_config` optional parameter when initializing the SDK:
@@ -402,7 +402,7 @@ with Fastpix(
},
)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -447,7 +447,7 @@ with Fastpix(
},
)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
except errors.FastpixError as e:
print(e.message)
print(e.status_code)
@@ -510,7 +510,7 @@ with Fastpix(
},
)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/models/addmediatrackrequest.md b/docs/models/addmediatrackrequest.md
index bf1b549..5e60641 100644
--- a/docs/models/addmediatrackrequest.md
+++ b/docs/models/addmediatrackrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `body` | [models.AddMediaTrackRequestBody](../models/addmediatrackrequestbody.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/addtrackrequest.md b/docs/models/addtrackrequest.md
index 99a5545..08cde05 100644
--- a/docs/models/addtrackrequest.md
+++ b/docs/models/addtrackrequest.md
@@ -10,4 +10,5 @@ Contains details about the track being added to the media file.
| `url` | *Optional[str]* | :heavy_minus_sign: | The direct URL of the track file. It must point to a valid audio or subtitle file. | https://static.fastpix.com/music-1.mp3 |
| `type` | [Optional[models.AddTrackRequestType]](../models/addtrackrequesttype.md) | :heavy_minus_sign: | Specifies the type of track being added. It can be either `audio` or `subtitle`. | audio |
| `language_code` | *Optional[str]* | :heavy_minus_sign: | The BCP 47 language code representing the track’s language. | it |
-| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language corresponding to the `languageCode`. | Italian |
\ No newline at end of file
+| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language corresponding to the `languageCode`. | Italian |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | your-track-title |
\ No newline at end of file
diff --git a/docs/models/addtrackresponse.md b/docs/models/addtrackresponse.md
index a7a11a1..63085a8 100644
--- a/docs/models/addtrackresponse.md
+++ b/docs/models/addtrackresponse.md
@@ -7,8 +7,9 @@ Contains details about the track that was added or updated.
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the track. | ace60fc7-e876-4fc6-b9d9-c33fa242f84b |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the track. | your-track-id |
| `type` | [Optional[models.AddTrackResponseType]](../models/addtrackresponsetype.md) | :heavy_minus_sign: | Specifies the type of track (audio or subtitle). | audio |
| `url` | *Optional[str]* | :heavy_minus_sign: | The direct URL of the track file. | https://static.fastpix.com/music-1.mp3 |
| `language_code` | *Optional[str]* | :heavy_minus_sign: | The BCP 47 language code representing the track's language. | it |
-| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language corresponding to the `languageCode`. | Italian |
\ No newline at end of file
+| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language corresponding to the `languageCode`. | Italian |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | your-track-title |
\ No newline at end of file
diff --git a/docs/models/audioinput.md b/docs/models/audioinput.md
index 8777e3f..2831f9c 100644
--- a/docs/models/audioinput.md
+++ b/docs/models/audioinput.md
@@ -6,5 +6,5 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| `type` | [models.AudioInputType](../models/audioinputtype.md) | :heavy_check_mark: | Type of overlay (currently only supports "audio"). | audio |
-| `swap_track_url` | *str* | :heavy_check_mark: | URL of the audio track to replace the existing audio in the video. | https://file-examples.com/storage/fe0e9b723466913cf9611b7/2017/11/file_example_MP3_700KB.mp3 |
+| `swap_track_url` | *str* | :heavy_check_mark: | URL of the audio track to replace the existing audio in the video. | https://example.com/storage/fe0e9b723466913cf9611b7/2017/11/file_example_MP3_700KB.mp3 |
| `impose_tracks` | List[[models.ImposeTrack](../models/imposetrack.md)] | :heavy_minus_sign: | List of additional audio tracks to overlay on the video. | |
\ No newline at end of file
diff --git a/docs/models/audiotrack.md b/docs/models/audiotrack.md
index 70affaf..fb0cbe5 100644
--- a/docs/models/audiotrack.md
+++ b/docs/models/audiotrack.md
@@ -10,5 +10,6 @@ A media consists of different media tracks, like video, audio, and subtitle, all
| `id` | *Optional[str]* | :heavy_minus_sign: | FastPix generates a unique identifier for each track. | 9oa85f64-5717-4562-b3fc-2c963f66afa6 |
| `type` | [Optional[models.AudioTrackType]](../models/audiotracktype.md) | :heavy_minus_sign: | Defines the type of input track. | audio |
| `status` | *Optional[str]* | :heavy_minus_sign: | Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played. | available |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | My track title |
| `language_name` | *Optional[str]* | :heavy_minus_sign: | Name of the language in which the subtitles will be generated.
| english |
| `language_code` | *Optional[str]* | :heavy_minus_sign: | Language codes are concise, standardized symbols that denote languages, utilizing either two or three characters for identification. The language code must be compliant with the BCP 47 standard to ensure compatibility. (for text only).
| en |
\ No newline at end of file
diff --git a/docs/models/canceluploadrequest.md b/docs/models/canceluploadrequest.md
index 7ff6cf5..878a36b 100644
--- a/docs/models/canceluploadrequest.md
+++ b/docs/models/canceluploadrequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
-| `upload_id` | *str* | :heavy_check_mark: | When uploading the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
\ No newline at end of file
+| `upload_id` | *str* | :heavy_check_mark: | When uploading the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters. | your-upload-id |
\ No newline at end of file
diff --git a/docs/models/chaptersresponse.md b/docs/models/chaptersresponse.md
index 7f4249d..4ebe17b 100644
--- a/docs/models/chaptersresponse.md
+++ b/docs/models/chaptersresponse.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
-| `media_id` | *Optional[str]* | :heavy_minus_sign: | N/A | c695988b-ff84-42ae-bb21-10f284fedb0e |
+| `media_id` | *Optional[str]* | :heavy_minus_sign: | N/A | your-media-id |
| `is_chapters_enabled` | *Optional[bool]* | :heavy_minus_sign: | N/A | true |
\ No newline at end of file
diff --git a/docs/models/completelivestreamrequest.md b/docs/models/completelivestreamrequest.md
index d47d13d..ee7eaa4 100644
--- a/docs/models/completelivestreamrequest.md
+++ b/docs/models/completelivestreamrequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 91a264dcc447b63da6fb79ef925cd76d |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
\ No newline at end of file
diff --git a/docs/models/createlivestreamresponsedto.md b/docs/models/createlivestreamresponsedto.md
index b569d81..3b9fc77 100644
--- a/docs/models/createlivestreamresponsedto.md
+++ b/docs/models/createlivestreamresponsedto.md
@@ -7,7 +7,7 @@ Displays the result of the request.
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `stream_id` | *Optional[str]* | :heavy_minus_sign: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 61a264dcc447b63da6fb79ef925cd76d |
+| `stream_id` | *Optional[str]* | :heavy_minus_sign: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
| `stream_key` | *Optional[str]* | :heavy_minus_sign: | A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key. | |
| `srt_secret` | *Optional[str]* | :heavy_minus_sign: | A secret used for securing the SRT stream. This ensures that only authorized users can access the stream. | |
| `trial` | *Optional[bool]* | :heavy_minus_sign: | FastPix allows for a to trial the live stream for free. The duration of trial streams is five minutes. After five minutes of activity, the trial stream is turned off, and the recorded asset is removed after a day. | true |
@@ -19,7 +19,7 @@ Displays the result of the request.
| `enable_recording` | *Optional[bool]* | :heavy_minus_sign: | When set to true, the livestream will be recorded and stored for later viewing purposes. If set to false, the livestream will not be recorded. | {
"example": true,
"default": true
} |
| `enable_dvr_mode` | *Optional[bool]* | :heavy_minus_sign: | Enables DVR (Digital Video Recorder) functionality for the live stream. When set to true, viewers can pause, rewind, and resume playback during the live broadcast. This allows time-shifted viewing of the stream while it is still ongoing. | {
"example": true,
"default": false
} |
| `media_policy` | *Optional[str]* | :heavy_minus_sign: | Determines whether the recorded stream should be publicly accessible or private in Live to VOD (Video on Demand). | {
"possibleValue": "public, private",
"example": "public",
"default": "public"
} |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"livestream_name": "fastpix_livestream"
} |
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"livestream_name": "your-livestream-name"
} |
| `low_latency` | *Optional[bool]* | :heavy_minus_sign: | Enables low-latency streaming mode to reduce playback delay. | true |
| `closed_captions` | *Optional[bool]* | :heavy_minus_sign: | when provided true Enables closed captions for the livestream. | false |
| `playback_ids` | List[[models.PlaybackIDResponse](../models/playbackidresponse.md)] | :heavy_minus_sign: | A collection of Playback ID objects utilized for crafting HLS playback urls. | |
diff --git a/docs/models/createmediaplaybackidrequest.md b/docs/models/createmediaplaybackidrequest.md
index 512afde..5a50320 100644
--- a/docs/models/createmediaplaybackidrequest.md
+++ b/docs/models/createmediaplaybackidrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | dbb8a39a-e4a5-4120-9f22-22f603f1446e |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `body` | [Optional[models.CreateMediaPlaybackIDRequestBody]](../models/createmediaplaybackidrequestbody.md) | :heavy_minus_sign: | Request body for creating playback id for an media | |
\ No newline at end of file
diff --git a/docs/models/createmediaplaybackidrequestbody.md b/docs/models/createmediaplaybackidrequestbody.md
index 28d7a18..0c2614a 100644
--- a/docs/models/createmediaplaybackidrequestbody.md
+++ b/docs/models/createmediaplaybackidrequestbody.md
@@ -9,5 +9,5 @@ Request body for creating playback id for an media
| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `access_policy` | [models.AccessPolicy](../models/accesspolicy.md) | :heavy_check_mark: | Access policy for media content | |
| `access_restrictions` | [Optional[models.CreateMediaPlaybackIDAccessRestrictions]](../models/createmediaplaybackidaccessrestrictions.md) | :heavy_minus_sign: | N/A | |
-| `drm_configuration_id` | *Optional[str]* | :heavy_minus_sign: | DRM configuration ID (required if accessPolicy is "drm") | 123e4567-e89b-12d3-a456-426614174000 |
+| `drm_configuration_id` | *Optional[str]* | :heavy_minus_sign: | DRM configuration ID (required if accessPolicy is "drm") | your-drm-configuration-id |
| `resolution` | [Optional[models.CreateMediaPlaybackIDResolution]](../models/createmediaplaybackidresolution.md) | :heavy_minus_sign: | The maximum resolution for the playback ID. | 1080p |
\ No newline at end of file
diff --git a/docs/models/createmediarequest.md b/docs/models/createmediarequest.md
index c4960a1..102874b 100644
--- a/docs/models/createmediarequest.md
+++ b/docs/models/createmediarequest.md
@@ -7,9 +7,9 @@
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `inputs` | List[[models.CreateMediaRequestInput](../models/createmediarequestinput.md)] | :heavy_check_mark: | Add one input object at a time. For example, first add a **VideoInput** object. If you also need a watermark, click **Add item** again and select **WatermarkInput**. Repeat this process for **AudioInput** or **SubtitleInput** as needed. For a complete explanation of how media uploads from URL and processing work, refer to the
FastPix Video on Demand Overview.
| |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
-| `drm_configuration_id` | *Optional[str]* | :heavy_minus_sign: | UUID of the DRM configuration to be used | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `drm_configuration_id` | *Optional[str]* | :heavy_minus_sign: | UUID of the DRM configuration to be used | your-drm-configuration-id |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
| `subtitles` | [Optional[models.Subtitles]](../models/subtitles.md) | :heavy_minus_sign: | Generates subtitle files for audio/video files.
| |
| `access_policy` | [Optional[models.CreateMediaRequestAccessPolicy]](../models/createmediarequestaccesspolicy.md) | :heavy_minus_sign: | Determines whether access to the streamed content is kept private or available to all.
| public |
| `mp4_support` | [Optional[models.CreateMediaRequestMp4Support]](../models/createmediarequestmp4support.md) | :heavy_minus_sign: | "capped_4k": Generates an mp4 video file up to 4k resolution "audioOnly": Generates an m4a audio file of the media file "audioOnly,capped_4k": Generates both video and audio media files for offline viewing
| capped_4k |
diff --git a/docs/models/createmediaresponse.md b/docs/models/createmediaresponse.md
index 2ddfc04..b947416 100644
--- a/docs/models/createmediaresponse.md
+++ b/docs/models/createmediaresponse.md
@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The Media is assigned a universal unique identifier, which can contain a maximum of 255 characters. | a1d1acdd-8f4e-4add-b498-6b398cf349d9 |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The Media is assigned a universal unique identifier, which can contain a maximum of 255 characters. | your-media-id |
| `trial` | *Optional[bool]* | :heavy_minus_sign: | FastPix allows for a free trial. Create as many media files as you like during the trial period. Remember, each clip can only be 10 seconds long and will be deleted after 24 hours. Also, all trial content will have the FastPix logo watermark.
| true |
| `status` | [Optional[models.CreateMediaResponseStatus]](../models/createmediaresponsestatus.md) | :heavy_minus_sign: | Determines the media's status, which can be one of the possible values. | Created |
| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Time the media was created, defined as a localDateTime (UTC Time). | 2023-10-20T10:50:34.594302Z |
diff --git a/docs/models/createplaybackidofstreamrequest.md b/docs/models/createplaybackidofstreamrequest.md
index caae4b4..8fef974 100644
--- a/docs/models/createplaybackidofstreamrequest.md
+++ b/docs/models/createplaybackidofstreamrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 8717422d89288ad5958d4a86e9afe2a2 |
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
| `body` | [models.PlaybackIDRequest](../models/playbackidrequest.md) | :heavy_check_mark: | N/A | {
"accessPolicy": "public"
} |
\ No newline at end of file
diff --git a/docs/models/createsigningkeyresponsedto.md b/docs/models/createsigningkeyresponsedto.md
index d341e60..71250e3 100644
--- a/docs/models/createsigningkeyresponsedto.md
+++ b/docs/models/createsigningkeyresponsedto.md
@@ -7,6 +7,6 @@ Displays the result of the request.
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier is generated by FastPix for the signing keys. | fc9d9368-6ee5-4b16-ae50-880a2374bdc4 |
-| `private_key` | *Optional[str]* | :heavy_minus_sign: | A private key is a byte encoded secret key used to create a signed JSON Web Token (JWT) for authentication. | LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRREtaN1JKT1IrbXZGeVQxSWFIL0hVUkYwQnRncDJzK0srdUd4TUZ4N1JiaGNudVBMYU14WjM1b0lNWndhdHJrdDFDM3JxVFZsQzBsSnExeENFTyt3Zi9JNHQ0bktmUFB2WG83NGFCQi82YmR0MXpaSHp0OGFIenBnL3YrdEtCWVc5SEdWQ0tYc2JpNjczbHgwcFhHdXVnem8wdnZMR2lKWDBiL0Z4WEI5U1R3RkV5Q1dQOFJhczZ3VWVuSUdVM2UwMmJiV3Z4UnNoMWNER2xSRk03RWw2RVQ2MUQrS0tLTndnUGNYR1pvY0YwZTFxRU5iVGdPZUdBMFNDU0xIT3NtQ0NBQTNtSndJS1VaY0Z2MmpGRUx4Uk5MTnhoMjM5UEdUT3BuWmdvTFp5Skt4b2REN1FpV1N1eDVZY1Z0MFgrSk9rZXNBOEpjM1ZtM0tGc0IwL3RYck9QQWdNQkFBRUNnZ0VBUHhNWUxLVmZocTgyVGw4eFdWbEVCZ0p2OG5COHdIVnpFZGVnRXZJTDgyVjY2d0lDaFZYa0IvR01TVStBSXZMT2Z0TTM0MGhIdUM2REU5ZTkwWlJMQnFoR0ExMFdNbEJWZzdSNC91YkY0aDZsbmhzWGozTDRYQnhJNVNrTnhvSGRrcE9COU16YVA4YmxFNkVLT3FES0F2KzdJY0EwdnVuZDFnWExwTmRzMkduTW5nZW1qOUhJZWh1eTNLY0taNHlheFo1YkRKVEpLZlFrTlFDQzhOR0hIdWovQmRWUnU1RHRrZVdNMFFpN2FKeW5lSXRxOGhtbXdxcVNMTnpTOTZtcHpBdzF3RzFXTHVML1A3TGxJekVWa2ZJUFc0SW1zRXhsSG5FUG0ySld1RUNMQ1pRL25NODdhQXVXekROektCYW51LzZhdXhnSDB2Wnc5YWowTmxNNFFRS0JnUURPM3Y0YlN4bWluZGJpVEdSaXdFVXVyODh4TVA3M2U5RSt2SHlzb3JZMWZycFpkdXJHOVlFb09MUFN1YnQ5WkhZNFhGOFhxRWZ4bE94d294eDVzcU9PcGNMTnFnOWhTSWxPaXEyYmVnN2V2RGpOMml6b3JKRFl3VEhGQ0Era25FbmFpL0J2TU16N3AyVVkrUEEzUnJ4Z25BK3RkQlErZWlSZ1c0WmhnMkhWcndLQmdRRDZlVEpwRTRxZVFYdmpnMy9FS081UkllRklZOHphTGMvMVVHODBqNmVvbStNK3UyTmdUVDJqVmNyMkdQbjZTbHRNRlJNem5qOVJHYmQ1MCt5a2k0Y1NYU1JPdE44alV2M0FseHJtZzEwVTVtSWIrUXFIZ3g2QldyeXkvakxHYXVvMUJnVFg1dDZ0VXVEUUZuVDJSM2xoNGRNZ044T3V4VlR3OCtadGloSllJUUtCZ1FERE00ZHpHWnBHNThrc0lBbFpaVFBpcWVKSCtJT2Q0eWUrbXZ6SnFYOWxXdjljQytuZGN5czhXTVRWd293MzllUFhxdEhQOE9weCtxUmdaSWtxREhabzArRE5UL3JUUVM3Ty9leHpHT21QSXV3MjBmZ3VWU2NZWUxRbHgwVjdmajN5Q3JvRk1YYzZ2dW1XZHMrMFdQckg3bnFjb1R1NCtHZjZ4R0k1QVUvLzRRS0JnUUR6TFcvdjdIVU1xTzhyT0tSM1FuWCtkekpPSWZibGJNMFdrdjBrdnNROFF2MGlEclN3N3MwRkkycGwvR0hXeXhKUWo3V1F5L2NWT2k2VUxWajNlQyt2ZUphamc1K1FvQ2FWTVIrQTVkRWRWWCt6UU5za0xmMFVBWkJyQjdrc1F1a1lpYnR5RWtmblp5dTFXOWc2czdINWdsS0VXUiszTXdjQTJRdkRGZVl4Z1FLQmdDWVdlKzQ4bVVaUEl5ZnR4NVFaQllnYTE2blpndzYxZmxtdEdpQlVGWGVMR3BTaU1XNXc5R3RYVDZPbFh1Zy91TkNKbHR4TDE4c0NEeDNVaU9DNWFTMEN4OTc5TlFrSm1YRWw1UDNtMFNGaVU4VlZ0SFp1dHd3SWFKTFZockZ1T3NJV1BtRFN4aHhMaFpPNmJ5aWRwbHlXLzl1eGpwMlZrQ0Y3OGd5QXRRSWsKLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo= |
+| `id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier is generated by FastPix for the signing keys. | your-signing-key-id |
+| `private_key` | *Optional[str]* | :heavy_minus_sign: | A private key is a byte encoded secret key used to create a signed JSON Web Token (JWT) for authentication. | your-private-key |
| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Time the Signing key was generated, defined as a localDateTime (UTC Time). | 2024-01-11T10:00:06.618993Z |
\ No newline at end of file
diff --git a/docs/models/createsimulcastofstreamrequest.md b/docs/models/createsimulcastofstreamrequest.md
index 653b37b..5b2ec8f 100644
--- a/docs/models/createsimulcastofstreamrequest.md
+++ b/docs/models/createsimulcastofstreamrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 8717422d89288ad5958d4a86e9afe2a2 |
-| `body` | [models.SimulcastRequest](../models/simulcastrequest.md) | :heavy_check_mark: | N/A | {
"url": "rtmp://hyd01.contribute.live-video.net/app/",
"streamKey": "live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk",
"metadata": {
"livestream_name": "Tech-Connect Summit"
}
} |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
+| `body` | [models.SimulcastRequest](../models/simulcastrequest.md) | :heavy_check_mark: | N/A | {
"url": "rtmp://hyd01.contribute.live-video.net/app/",
"streamKey": "live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk",
"metadata": {
"livestream_name": "your-livestream-name"
}
} |
\ No newline at end of file
diff --git a/docs/models/custom1.md b/docs/models/custom1.md
index 2ebf527..44886cd 100644
--- a/docs/models/custom1.md
+++ b/docs/models/custom1.md
@@ -7,4 +7,4 @@
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `dimension_name` | *Optional[str]* | :heavy_minus_sign: | Unique identifier for a custom dimension used to categorize or segment analytics data (for example, custom_1).
| custom_1 |
| `display_name` | *Optional[str]* | :heavy_minus_sign: | A user-friendly display label that represents the corresponding custom dimension in analytics dashboards and reports; users can assign a specific name based on their tracking needs.
| email |
-| `value` | *Optional[str]* | :heavy_minus_sign: | Allows assigning user-friendly data values such as email addresses, identifiers, or other meaningful information.
| johndoe@gmail.com |
\ No newline at end of file
+| `value` | *Optional[str]* | :heavy_minus_sign: | Allows assigning user-friendly data values such as email addresses, identifiers, or other meaningful information.
| user@example.com |
\ No newline at end of file
diff --git a/docs/models/deletelivestreamrequest.md b/docs/models/deletelivestreamrequest.md
index 4e3a4b3..751207e 100644
--- a/docs/models/deletelivestreamrequest.md
+++ b/docs/models/deletelivestreamrequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 8717422d89288ad5958d4a86e9afe2a2 |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
\ No newline at end of file
diff --git a/docs/models/deletemediaplaybackidrequest.md b/docs/models/deletemediaplaybackidrequest.md
index d4b0166..d293e8f 100644
--- a/docs/models/deletemediaplaybackidrequest.md
+++ b/docs/models/deletemediaplaybackidrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | dbb8a39a-e4a5-4120-9f22-22f603f1446e |
-| `playback_id` | *str* | :heavy_check_mark: | Return the universal unique identifier for playbacks which can contain a maximum of 255 characters. | dbb8a39a-e4a5-4120-9f22-22f603f1446e |
\ No newline at end of file
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
+| `playback_id` | *str* | :heavy_check_mark: | Return the universal unique identifier for playbacks which can contain a maximum of 255 characters. | your-playback-id |
\ No newline at end of file
diff --git a/docs/models/deletemediarequest.md b/docs/models/deletemediarequest.md
index 39639ed..f0e3114 100644
--- a/docs/models/deletemediarequest.md
+++ b/docs/models/deletemediarequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
\ No newline at end of file
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
\ No newline at end of file
diff --git a/docs/models/deletemediatrackrequest.md b/docs/models/deletemediatrackrequest.md
index 4784404..ce31bf0 100644
--- a/docs/models/deletemediatrackrequest.md
+++ b/docs/models/deletemediatrackrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `track_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
\ No newline at end of file
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
+| `track_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-track-id |
\ No newline at end of file
diff --git a/docs/models/deleteplaybackidofstreamrequest.md b/docs/models/deleteplaybackidofstreamrequest.md
index c2d414a..80b3814 100644
--- a/docs/models/deleteplaybackidofstreamrequest.md
+++ b/docs/models/deleteplaybackidofstreamrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 8717422d89288ad5958d4a86e9afe2a2 |
-| `playback_id` | *str* | :heavy_check_mark: | Unique identifier for the playbackId | 88b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
+| `playback_id` | *str* | :heavy_check_mark: | Unique identifier for the playbackId | your-playback-id |
\ No newline at end of file
diff --git a/docs/models/deletesimulcastofstreamrequest.md b/docs/models/deletesimulcastofstreamrequest.md
index 6f4cb30..ed0f78e 100644
--- a/docs/models/deletesimulcastofstreamrequest.md
+++ b/docs/models/deletesimulcastofstreamrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 8717422d89288ad5958d4a86e9afe2a2 |
-| `simulcast_id` | *str* | :heavy_check_mark: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | 9217422d89288ad5958d4a86e9afe2a1 |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
+| `simulcast_id` | *str* | :heavy_check_mark: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | your-simulcast-id |
\ No newline at end of file
diff --git a/docs/models/directupload.md b/docs/models/directupload.md
index 0f4bf8e..53afbde 100644
--- a/docs/models/directupload.md
+++ b/docs/models/directupload.md
@@ -10,7 +10,7 @@ Displays the result of the request.
| `upload_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 7ya85f64-5717-4562-b3fc-2c963f66afa6 |
| `trial` | *Optional[bool]* | :heavy_minus_sign: | Indicates if the upload was a trial. | false |
| `status` | [Optional[models.DirectUploadStatus]](../models/directuploadstatus.md) | :heavy_minus_sign: | Determines the media's status, which can be one of the possible values. | waiting |
-| `url` | *Optional[str]* | :heavy_minus_sign: | The url hosts the media file for FastPix, which needs to be download to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles/CC (SRT file/VTT file). While FastPix can handle various audio and video formats and codecs, using standard inputs can help with optimal processing speed. | {
"url": "https://storage.fastpix.net/uploads/08256f2c-efca-4c4f-8f21-75e40d49f225/80911756-1ce3-485a-a3b4-6653ff0937a1?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=media-svc%2F20240111%2Fus-east-1%2Fs3%2Faws4_request\u0026X-Amz-Date=20240111T123116Z\u0026X-Amz-Expires=3600\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=419ab443cdc1d4a22cf1b0f8875855590b346058e6d3859f7c1c9da3bb061f91"
} |
+| `url` | *Optional[str]* | :heavy_minus_sign: | The url hosts the media file for FastPix, which needs to be download to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles/CC (SRT file/VTT file). While FastPix can handle various audio and video formats and codecs, using standard inputs can help with optimal processing speed. | {
"url": "https://storage.fastpix.com/uploads/your-upload-id?your-signed-url-params"
} |
| `timeout` | *Optional[float]* | :heavy_minus_sign: | The duration set for the validity of the upload URL. If the upload isn't completed within this timespan, it's marked as timed out.
| 14400 |
| `cors_origin` | *Optional[str]* | :heavy_minus_sign: | Upload media directly from a device using the url name or enter "*" to allow all. | * |
| `push_media_settings` | [Optional[models.DirectUploadResponse]](../models/directuploadresponse.md) | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/disablelivestreamrequest.md b/docs/models/disablelivestreamrequest.md
index bb85e84..ebd1d15 100644
--- a/docs/models/disablelivestreamrequest.md
+++ b/docs/models/disablelivestreamrequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 91a264dcc447b63da6fb79ef925cd76d |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
\ No newline at end of file
diff --git a/docs/models/drmidresponse.md b/docs/models/drmidresponse.md
index 117dacd..8006840 100644
--- a/docs/models/drmidresponse.md
+++ b/docs/models/drmidresponse.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the DRM configuration. | e3dfdf15-16bb-4835-98b9-484c1e4320cc |
\ No newline at end of file
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the DRM configuration. | your-drm-configuration-id |
\ No newline at end of file
diff --git a/docs/models/enablelivestreamrequest.md b/docs/models/enablelivestreamrequest.md
index 091cdc5..899e985 100644
--- a/docs/models/enablelivestreamrequest.md
+++ b/docs/models/enablelivestreamrequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 91a264dcc447b63da6fb79ef925cd76d |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
\ No newline at end of file
diff --git a/docs/models/errordetails.md b/docs/models/errordetails.md
index 84b62e1..383a8d3 100644
--- a/docs/models/errordetails.md
+++ b/docs/models/errordetails.md
@@ -9,7 +9,7 @@
| `notes` | *OptionalNullable[str]* | :heavy_minus_sign: | Information about the specific error. | An informative note |
| `message` | *OptionalNullable[str]* | :heavy_minus_sign: | error message or description. | com.fastpix.stats.sdk.h71.a - android.media.mediadrm$mediadrmstateexception: failed to handle key response: drm vendor-defined error: -2998 |
| `last_seen` | *OptionalNullable[str]* | :heavy_minus_sign: | The timestamp of when the error was last observed. | 2023-12-01T11:31:07.000Z |
-| `id` | *OptionalNullable[str]* | :heavy_minus_sign: | Unique identifier for the error instance. | 5f8d0d55b54764421b7156c5 |
+| `id` | *OptionalNullable[str]* | :heavy_minus_sign: | Unique identifier for the error instance. | your-error-id |
| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | A brief description of the error. | ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT |
| `count` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of occurrences of the specific error. | 4 |
| `code` | *OptionalNullable[str]* | :heavy_minus_sign: | Error code associated with the specific error. | 1003 |
\ No newline at end of file
diff --git a/docs/models/generatesubtitletrackrequest.md b/docs/models/generatesubtitletrackrequest.md
index 993c263..9a7d0de 100644
--- a/docs/models/generatesubtitletrackrequest.md
+++ b/docs/models/generatesubtitletrackrequest.md
@@ -5,6 +5,6 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `track_id` | *str* | :heavy_check_mark: | A universally unique identifier (UUID) assigned to the specific track for which subtitles must be generated. | d46f5df9-1a8f-4f0a-b56e-9f5b5d5b9e21 |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
+| `track_id` | *str* | :heavy_check_mark: | A universally unique identifier (UUID) assigned to the specific track for which subtitles must be generated. | your-track-id |
| `body` | [models.TrackSubtitlesGenerateRequest](../models/tracksubtitlesgeneraterequest.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/generatetrackresponse.md b/docs/models/generatetrackresponse.md
index 8140a36..de87e44 100644
--- a/docs/models/generatetrackresponse.md
+++ b/docs/models/generatetrackresponse.md
@@ -7,8 +7,9 @@ Represents the response for a successfully generated subtitle track.
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier for the generated track. | ace60fc7-e876-4fc6-b9d9-c33fa242f84b |
+| `id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier for the generated track. | your-track-id |
| `type` | [Optional[models.GenerateTrackResponseType]](../models/generatetrackresponsetype.md) | :heavy_minus_sign: | The type of track generated ("subtitle"). | subtitle |
| `language_code` | [Optional[models.GenerateTrackResponseLanguageCode]](../models/generatetrackresponselanguagecode.md) | :heavy_minus_sign: | The BCP 47 language code representing the language of the generated track.
| en-US |
| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language for the generated track. | English |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
\ No newline at end of file
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | your-track-title |
\ No newline at end of file
diff --git a/docs/models/getallmediaresponse.md b/docs/models/getallmediaresponse.md
index 3754982..9bdc4a6 100644
--- a/docs/models/getallmediaresponse.md
+++ b/docs/models/getallmediaresponse.md
@@ -5,19 +5,19 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `thumbnail` | *OptionalNullable[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `source_media_id` | *Optional[str]* | :heavy_minus_sign: | The source media ID if this media was created from another media (for example, as a clip). | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `thumbnail` | *OptionalNullable[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/your-playback-id/thumbnail.png |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
+| `source_media_id` | *Optional[str]* | :heavy_minus_sign: | The source media ID if this media was created from another media (for example, as a clip). | your-source-media-id |
| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier is generated by FastPix for the workspace. | 5ta85f64-5717-4562-b3fc-2c963f66afa6 |
-| `stream_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the livestream for which the clips were created. | 98f28be5ac9bd7a4205634691a1a096b |
+| `stream_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the livestream for which the clips were created. | your-stream-id |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
| `media_quality` | [Optional[models.GetAllMediaResponseMediaQuality]](../models/getallmediaresponsemediaquality.md) | :heavy_minus_sign: | The quality tier applied to the media. | standard |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
+| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
| `max_resolution` | [Optional[models.GetAllMediaResponseMaxResolution]](../models/getallmediaresponsemaxresolution.md) | :heavy_minus_sign: | The maximum resolution specified by the user for the media. | 1080p |
| `source_resolution` | [Optional[models.GetAllMediaResponseSourceResolution]](../models/getallmediaresponsesourceresolution.md) | :heavy_minus_sign: | The actual resolution of the uploaded media. This represents the native quality of the source media. | 1080p |
| `status` | [Optional[models.GetAllMediaResponseStatus]](../models/getallmediaresponsestatus.md) | :heavy_minus_sign: | Determines the media's status, which can be one of the possible values. | Processing |
-| `mp4_support` | [Optional[models.GetAllMediaResponseMp4Support]](../models/getallmediaresponsemp4support.md) | :heavy_minus_sign: | Determines the type of MP4 support for the media.
- **none**: Disables MP4 support.
- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- **audioOnly**: Provides an MP4 stream containing only the audio.
- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
| capped_4k |
+| `mp4_support` | [Optional[List[models.MediaMp4SupportEntry]]](../models/mediamp4supportentry.md) | :heavy_minus_sign: | The MP4 renditions generated for the media when MP4 support was requested. Each entry describes one downloadable rendition (for example, a capped-4K video file or an audio-only m4a file) along with its generation status. Omitted when no MP4 support has been requested.
| [{"type": "capped_4k", "status": "ready", "height": 1080, "width": 1920, "ext": "mp4"}] |
| `source_access` | *OptionalNullable[bool]* | :heavy_minus_sign: | The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it. | true |
| `playback_ids` | List[[models.PlaybackID](../models/playbackid.md)] | :heavy_minus_sign: | A collection of Playback ID objects utilized for crafting HLS playback URLs. | |
| `tracks` | List[[models.GetAllMediaResponseTrack](../models/getallmediaresponsetrack.md)] | :heavy_minus_sign: | A media consists of different media tracks, like video, audio, and subtitle, all combined. | |
diff --git a/docs/models/getallmediaresponsemp4support.md b/docs/models/getallmediaresponsemp4support.md
deleted file mode 100644
index 497ee73..0000000
--- a/docs/models/getallmediaresponsemp4support.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# GetAllMediaResponseMp4Support
-
-Determines the type of MP4 support for the media.
-- **none**: Disables MP4 support.
-- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
-- **audioOnly**: Provides an MP4 stream containing only the audio.
-- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
-
-
-
-## Values
-
-| Name | Value |
-| ---------------------- | ---------------------- |
-| `NONE` | none |
-| `CAPPED_4K` | capped_4k |
-| `AUDIO_ONLY` | audioOnly |
-| `AUDIO_ONLY_CAPPED_4K` | audioOnly,capped_4k |
\ No newline at end of file
diff --git a/docs/models/getallsigningkeysresponsedto.md b/docs/models/getallsigningkeysresponsedto.md
index 112767d..2c3e2b6 100644
--- a/docs/models/getallsigningkeysresponsedto.md
+++ b/docs/models/getallsigningkeysresponsedto.md
@@ -7,5 +7,5 @@ Displays the result of the request.
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier is generated by FastPix for the signing keys. | 84474705-92d5-4fa9-8cb8-e4a0ddb0598a |
+| `id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier is generated by FastPix for the signing keys. | your-signing-key-id |
| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Time the Signing key was generated, defined as a localDateTime (UTC Time). | 2025-10-27T05:22:54.782954Z |
\ No newline at end of file
diff --git a/docs/models/getcreatelivestreamresponsedto.md b/docs/models/getcreatelivestreamresponsedto.md
index 168501d..477e572 100644
--- a/docs/models/getcreatelivestreamresponsedto.md
+++ b/docs/models/getcreatelivestreamresponsedto.md
@@ -7,7 +7,7 @@ Displays the result of the request.
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `stream_id` | *Optional[str]* | :heavy_minus_sign: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 61a264dcc447b63da6fb79ef925cd76d |
+| `stream_id` | *Optional[str]* | :heavy_minus_sign: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
| `stream_key` | *Optional[str]* | :heavy_minus_sign: | A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key. | |
| `srt_secret` | *Optional[str]* | :heavy_minus_sign: | A secret used for securing the SRT stream. This ensures that only authorized users can access the stream. | |
| `trial` | *Optional[bool]* | :heavy_minus_sign: | FastPix allows for a to trial the live stream for free. The duration of trial streams is five minutes. After five minutes of activity, the trial stream is turned off, and the recorded asset is removed after a day. | true |
@@ -19,7 +19,7 @@ Displays the result of the request.
| `enable_recording` | *Optional[bool]* | :heavy_minus_sign: | When set to true, FastPix records and stores the livestream for on-demand viewing. When set to false, the livestream is not recorded. | {
"example": true,
"default": true
} |
| `enable_dvr_mode` | *Optional[bool]* | :heavy_minus_sign: | Enables DVR (Digital Video Recorder) functionality for the live stream. When set to true, viewers can pause, rewind, and resume playback during the live broadcast. This allows time-shifted viewing of the stream while it is still ongoing. | {
"example": true,
"default": false
} |
| `media_policy` | *Optional[str]* | :heavy_minus_sign: | Determines whether the recorded stream must be publicly accessible or private in Live to VOD (Video on Demand). | {
"possibleValue": "public, private",
"example": "public",
"default": "public"
} |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"livestream_name": "fastpix_livestream"
} |
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"livestream_name": "your-livestream-name"
} |
| `low_latency` | *Optional[bool]* | :heavy_minus_sign: | Enables low-latency streaming mode to reduce playback delay. | true |
| `closed_captions` | *Optional[bool]* | :heavy_minus_sign: | when provided true Enables closed captions for the livestream. | false |
| `playback_ids` | List[[models.PlaybackIDResponse](../models/playbackidresponse.md)] | :heavy_minus_sign: | A collection of Playback ID objects utilized for crafting HLS playback urls. | |
diff --git a/docs/models/getdrmconfigurationbyidrequest.md b/docs/models/getdrmconfigurationbyidrequest.md
index e8c187c..ac41d1a 100644
--- a/docs/models/getdrmconfigurationbyidrequest.md
+++ b/docs/models/getdrmconfigurationbyidrequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- |
-| `drm_configuration_id` | *str* | :heavy_check_mark: | The unique identifier of the DRM configuration. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
\ No newline at end of file
+| `drm_configuration_id` | *str* | :heavy_check_mark: | The unique identifier of the DRM configuration. | your-drm-configuration-id |
\ No newline at end of file
diff --git a/docs/models/getlivestreambyidrequest.md b/docs/models/getlivestreambyidrequest.md
index a0e9ed2..8cef513 100644
--- a/docs/models/getlivestreambyidrequest.md
+++ b/docs/models/getlivestreambyidrequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 61a264dcc447b63da6fb79ef925cd76d |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
\ No newline at end of file
diff --git a/docs/models/getlivestreamplaybackidrequest.md b/docs/models/getlivestreamplaybackidrequest.md
index 813d33d..940d62b 100644
--- a/docs/models/getlivestreamplaybackidrequest.md
+++ b/docs/models/getlivestreamplaybackidrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 61a264dcc447b63da6fb79ef925cd76d |
-| `playback_id` | *str* | :heavy_check_mark: | After creating a new playbackId, FastPix assigns a unique identifier to the playback. | 61a264dcc447b63da6fb79ef925cd76d |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
+| `playback_id` | *str* | :heavy_check_mark: | After creating a new playbackId, FastPix assigns a unique identifier to the playback. | your-playback-id |
\ No newline at end of file
diff --git a/docs/models/getlivestreamviewercountbyidrequest.md b/docs/models/getlivestreamviewercountbyidrequest.md
index e73b9b4..d131aae 100644
--- a/docs/models/getlivestreamviewercountbyidrequest.md
+++ b/docs/models/getlivestreamviewercountbyidrequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 61a264dcc447b63da6fb79ef925cd76d |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
\ No newline at end of file
diff --git a/docs/models/getmediaclipsrequest.md b/docs/models/getmediaclipsrequest.md
index 8429b47..e6aad38 100644
--- a/docs/models/getmediaclipsrequest.md
+++ b/docs/models/getmediaclipsrequest.md
@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | fc733e3f-2fba-4c3d-9388-2511dc50d15f |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `offset` | *Optional[int]* | :heavy_minus_sign: | Offset determines the starting point for data retrieval within a paginated list. | 5 |
| `limit` | *Optional[int]* | :heavy_minus_sign: | The number of media clips to retrieve per request. | 20 |
| `order_by` | [Optional[models.SortOrder]](../models/sortorder.md) | :heavy_minus_sign: | The values in the list can be arranged in two ways DESC (Descending) or ASC (Ascending). | desc |
\ No newline at end of file
diff --git a/docs/models/getmediarequest.md b/docs/models/getmediarequest.md
index 8c2f5f5..a0851be 100644
--- a/docs/models/getmediarequest.md
+++ b/docs/models/getmediarequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
\ No newline at end of file
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
\ No newline at end of file
diff --git a/docs/models/getmediaresponse.md b/docs/models/getmediaresponse.md
index 276d5af..ad461f5 100644
--- a/docs/models/getmediaresponse.md
+++ b/docs/models/getmediaresponse.md
@@ -5,19 +5,19 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `thumbnail` | *OptionalNullable[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `source_media_id` | *Optional[str]* | :heavy_minus_sign: | The source media ID if this media was created from another media (for example, as a clip). | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `thumbnail` | *OptionalNullable[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/your-playback-id/thumbnail.png |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
+| `source_media_id` | *Optional[str]* | :heavy_minus_sign: | The source media ID if this media was created from another media (for example, as a clip). | your-source-media-id |
| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier is generated by FastPix for the workspace. | 5ta85f64-5717-4562-b3fc-2c963f66afa6 |
-| `stream_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the livestream for which the clips were created. | 98f28be5ac9bd7a4205634691a1a096b |
+| `stream_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the livestream for which the clips were created. | your-stream-id |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
| `media_quality` | [Optional[models.GetMediaResponseMediaQuality]](../models/getmediaresponsemediaquality.md) | :heavy_minus_sign: | The quality tier applied to the media. | standard |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
+| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
| `max_resolution` | [Optional[models.GetMediaResponseMaxResolution]](../models/getmediaresponsemaxresolution.md) | :heavy_minus_sign: | The maximum resolution specified by the user for the media. | 1080p |
| `source_resolution` | [Optional[models.GetMediaResponseSourceResolution]](../models/getmediaresponsesourceresolution.md) | :heavy_minus_sign: | The actual resolution of the uploaded media. This represents the native quality of the source media. | 1080p |
| `status` | [Optional[models.GetMediaResponseStatus]](../models/getmediaresponsestatus.md) | :heavy_minus_sign: | Determines the media's status, which can be one of the possible values. | Processing |
-| `mp4_support` | [Optional[models.GetMediaResponseMp4Support]](../models/getmediaresponsemp4support.md) | :heavy_minus_sign: | Determines the type of MP4 support for the media.
- **none**: Disables MP4 support.
- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- **audioOnly**: Provides an MP4 stream containing only the audio.
- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
| capped_4k |
+| `mp4_support` | [Optional[List[models.MediaMp4SupportEntry]]](../models/mediamp4supportentry.md) | :heavy_minus_sign: | The MP4 renditions generated for the media when MP4 support was requested. Each entry describes one downloadable rendition (for example, a capped-4K video file or an audio-only m4a file) along with its generation status. Omitted when no MP4 support has been requested.
| [{"type": "capped_4k", "status": "ready", "height": 1080, "width": 1920, "ext": "mp4"}] |
| `source_access` | *OptionalNullable[bool]* | :heavy_minus_sign: | The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it. | true |
| `playback_ids` | List[[models.PlaybackID](../models/playbackid.md)] | :heavy_minus_sign: | A collection of Playback ID objects utilized for crafting HLS playback URLs. | |
| `tracks` | List[[models.GetMediaResponseTrack](../models/getmediaresponsetrack.md)] | :heavy_minus_sign: | A media consists of different media tracks, like video, audio, and subtitle, all combined. | |
diff --git a/docs/models/getmediaresponsemp4support.md b/docs/models/getmediaresponsemp4support.md
deleted file mode 100644
index 5a7b4c8..0000000
--- a/docs/models/getmediaresponsemp4support.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# GetMediaResponseMp4Support
-
-Determines the type of MP4 support for the media.
-- **none**: Disables MP4 support.
-- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
-- **audioOnly**: Provides an MP4 stream containing only the audio.
-- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
-
-
-
-## Values
-
-| Name | Value |
-| ---------------------- | ---------------------- |
-| `NONE` | none |
-| `CAPPED_4K` | capped_4k |
-| `AUDIO_ONLY` | audioOnly |
-| `AUDIO_ONLY_CAPPED_4K` | audioOnly,capped_4k |
\ No newline at end of file
diff --git a/docs/models/getmediasummaryrequest.md b/docs/models/getmediasummaryrequest.md
index b7a5f80..e8cb0fb 100644
--- a/docs/models/getmediasummaryrequest.md
+++ b/docs/models/getmediasummaryrequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | fc733e3f-2fba-4c3d-9388-2511dc50d15f |
\ No newline at end of file
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
\ No newline at end of file
diff --git a/docs/models/getmediasummaryresponse.md b/docs/models/getmediasummaryresponse.md
index d4a32b8..118af3c 100644
--- a/docs/models/getmediasummaryresponse.md
+++ b/docs/models/getmediasummaryresponse.md
@@ -1,17 +1,11 @@
# GetMediaSummaryResponse
+Get media summary
-## Supported Types
-### `models.GetMediaSummaryResponseBody`
-
-```python
-value: models.GetMediaSummaryResponseBody = /* values here */
-```
-
-### `models.DefaultError`
-
-```python
-value: models.DefaultError = /* values here */
-```
+## Fields
+| Field | Type | Required | Description | Example |
+| ----- | ---- | -------- | ----------- | ------- |
+| `success` | *Optional[bool]* | :heavy_minus_sign: | Shows the request status. Returns true for success and false for failure. | true |
+| `data` | *Optional[str]* | :heavy_minus_sign: | The summary of the particular video. | Grandmaster Igor Spirinov introduces the Kutch Gambit... |
diff --git a/docs/models/getmediasummaryresponsebody.md b/docs/models/getmediasummaryresponsebody.md
deleted file mode 100644
index 705fe68..0000000
--- a/docs/models/getmediasummaryresponsebody.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# GetMediaSummaryResponseBody
-
-Get media summary
-
-
-## Fields
-
-| Field | Type | Required | Description | Example |
-| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `success` | *Optional[bool]* | :heavy_minus_sign: | Shows the request status. Returns true for success and false for failure. | true |
-| `data` | *Optional[str]* | :heavy_minus_sign: | The summary of the particular video. | Grandmaster Igor Spirinov introduces the Kutch Gambit, an effective chess opening for players rated below 1500. He emphasizes quick development and pressure on the opponent, particularly targeting the f7 pawn. The gambit forces opponents to play precisely, as common moves can lead to quick defeats. Spirinov outlines various responses from Black, highlighting tactical opportunities for White, including sacrifices and double checks that can lead to checkmate. He also discusses strategies for handling more experienced opponents and emphasizes the importance of maintaining a strong position and advancing pawns in the middle game. A special training bundle is offered for players seeking improvement. |
\ No newline at end of file
diff --git a/docs/models/getplaybackiddata.md b/docs/models/getplaybackiddata.md
index 14b563e..8a27179 100644
--- a/docs/models/getplaybackiddata.md
+++ b/docs/models/getplaybackiddata.md
@@ -5,6 +5,6 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
-| `id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the playback ID. | 54fd5e7e-3aa5-4817-b56d-44932f67f6c3 |
+| `id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the playback ID. | your-playback-id |
| `access_policy` | [Optional[models.GetPlaybackIDAccessPolicy]](../models/getplaybackidaccesspolicy.md) | :heavy_minus_sign: | The access policy set for the playback ID. | public |
| `access_restrictions` | [Optional[models.GetPlaybackIDAccessRestrictions]](../models/getplaybackidaccessrestrictions.md) | :heavy_minus_sign: | Restrictions applied to this playback ID. | |
\ No newline at end of file
diff --git a/docs/models/getplaybackidrequest.md b/docs/models/getplaybackidrequest.md
index 1caef5a..453055b 100644
--- a/docs/models/getplaybackidrequest.md
+++ b/docs/models/getplaybackidrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
-| `media_id` | *str* | :heavy_check_mark: | N/A | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `playback_id` | *str* | :heavy_check_mark: | N/A | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
\ No newline at end of file
+| `media_id` | *str* | :heavy_check_mark: | N/A | your-media-id |
+| `playback_id` | *str* | :heavy_check_mark: | N/A | your-playback-id |
\ No newline at end of file
diff --git a/docs/models/getpublicpemusingsigningkeyidresponsedtodata.md b/docs/models/getpublicpemusingsigningkeyidresponsedtodata.md
index b5e68dc..438c088 100644
--- a/docs/models/getpublicpemusingsigningkeyidresponsedtodata.md
+++ b/docs/models/getpublicpemusingsigningkeyidresponsedtodata.md
@@ -7,6 +7,6 @@ Displays the result of the request.
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | FastPix generates a unique identifier for each workspace. | fc9d9368-6ee5-4b16-ae50-880ab374bdc6 |
+| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | FastPix generates a unique identifier for each workspace. | your-workspace-id |
| `signing_key_id` | *Optional[str]* | :heavy_minus_sign: | N/A | 5ta85f64-5717-4562-b3fc-2c963f66afa6 |
-| `public_key` | *Optional[str]* | :heavy_minus_sign: | A public key is a byte encoded key used to create a signed JSON Web Token (JWT) for authentication. | -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvfUkdkrPIZGOAwMwrkQ9Jr6uNEsVQCgax8xHMSf4Ib3IwlE90M/wLJZGmSWcaAWzH4nSE5qh/fF4E4xHY0hYMS78Ve9GSV8mtLfzjcZ0agfmFO0B0/YVaXNKDGc3CUWAOoONZEMCA3wqLNSZ3yQhr/IZ4xVqBR0GLSYtFt2VNNAmgfAQkVLcZy+3V1ZaC49EgK4AoR51iwwv9DzRjZ/3rM8MSS9lEy0WQGXP/x+0k8hQvq482r/G32TSG00ZSKQDpRFieaFh6YRxMd/R0bhVAvTTO8STQa/M4PZGoBFqkPTpCw5uShtpe+Hm85vlHk/2qYx5NqIe4l+c/yo4w/ny/QIDAQAB
-----END PUBLIC KEY-----
|
\ No newline at end of file
+| `public_key` | *Optional[str]* | :heavy_minus_sign: | A public key is a byte encoded key used to create a signed JSON Web Token (JWT) for authentication. | your-public-key
|
\ No newline at end of file
diff --git a/docs/models/getspecificsimulcastofstreamrequest.md b/docs/models/getspecificsimulcastofstreamrequest.md
index fc4f443..c589c25 100644
--- a/docs/models/getspecificsimulcastofstreamrequest.md
+++ b/docs/models/getspecificsimulcastofstreamrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 8717422d89288ad5958d4a86e9afe2a2 |
-| `simulcast_id` | *str* | :heavy_check_mark: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | 8717422d89288ad5958d4a86e9afe2a2 |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
+| `simulcast_id` | *str* | :heavy_check_mark: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | your-simulcast-id |
\ No newline at end of file
diff --git a/docs/models/inputmediasettings.md b/docs/models/inputmediasettings.md
index f58bc0e..6292acd 100644
--- a/docs/models/inputmediasettings.md
+++ b/docs/models/inputmediasettings.md
@@ -10,5 +10,5 @@ Contains configuration details for input media settings.
| `max_resolution` | [Optional[models.CreateLiveStreamRequestMaxResolution]](../models/createlivestreamrequestmaxresolution.md) | :heavy_minus_sign: | Defines the maximum resolution for encoding, storage, and playback of the live stream.
| |
| `reconnect_window` | *Optional[int]* | :heavy_minus_sign: | Time period (in seconds) FastPix waits to reconnect before ending the stream when disconnected.
| 60 |
| `media_policy` | [Optional[models.BasicAccessPolicy]](../models/basicaccesspolicy.md) | :heavy_minus_sign: | Basic access policy for media content | |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | Custom key–value pairs for tagging livestreams.
Allows up to 10 entries with a maximum of 255 characters each.
| {
"livestream_name": "fastpix_livestream"
} |
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | Custom key–value pairs for tagging livestreams.
Allows up to 10 entries with a maximum of 255 characters each.
| {
"livestream_name": "your-livestream-name"
} |
| `enable_dvr_mode` | *Optional[bool]* | :heavy_minus_sign: | Enables DVR (Digital Video Recorder) functionality, allowing viewers to pause, rewind, and resume live playback.
| |
\ No newline at end of file
diff --git a/docs/models/listliveclipsrequest.md b/docs/models/listliveclipsrequest.md
index 7afeb32..8611f8d 100644
--- a/docs/models/listliveclipsrequest.md
+++ b/docs/models/listliveclipsrequest.md
@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `livestream_id` | *str* | :heavy_check_mark: | The stream Id is unique identifier assigned to the live stream. | b6f71268143f70c798a7851a0a92dcbf |
+| `livestream_id` | *str* | :heavy_check_mark: | The stream Id is unique identifier assigned to the live stream. | your-media-id |
| `limit` | *Optional[int]* | :heavy_minus_sign: | Limit specifies the maximum number of items to display per page. | 20 |
| `offset` | *Optional[int]* | :heavy_minus_sign: | Offset determines the starting point for data retrieval within a paginated list. | 1 |
| `order_by` | [Optional[models.SortOrder]](../models/sortorder.md) | :heavy_minus_sign: | The values in the list can be arranged in two ways: DESC (Descending) or ASC (Ascending). | desc |
\ No newline at end of file
diff --git a/docs/models/listplaybackidsdata.md b/docs/models/listplaybackidsdata.md
index 034ff86..b98cbc9 100644
--- a/docs/models/listplaybackidsdata.md
+++ b/docs/models/listplaybackidsdata.md
@@ -5,6 +5,6 @@
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the playback ID. | 54fd5e7e-3aa5-4817-b56d-44932f67f6c3 |
+| `id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the playback ID. | your-playback-id |
| `access_policy` | [Optional[models.ListPlaybackIdsAccessPolicy]](../models/listplaybackidsaccesspolicy.md) | :heavy_minus_sign: | The access policy set for the playback ID. | drm |
| `access_restrictions` | [Optional[models.ListPlaybackIdsAccessRestrictions]](../models/listplaybackidsaccessrestrictions.md) | :heavy_minus_sign: | Restrictions applied to this playback ID. | |
\ No newline at end of file
diff --git a/docs/models/listplaybackidsrequest.md b/docs/models/listplaybackidsrequest.md
index f2a5caa..0929aa9 100644
--- a/docs/models/listplaybackidsrequest.md
+++ b/docs/models/listplaybackidsrequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
-| `media_id` | *str* | :heavy_check_mark: | N/A | 5455b8db-79c7-438e-83b9-c440980214c3 |
\ No newline at end of file
+| `media_id` | *str* | :heavy_check_mark: | N/A | your-media-id |
\ No newline at end of file
diff --git a/docs/models/listvideoviewsrequest.md b/docs/models/listvideoviewsrequest.md
index 1b9a796..85c0e40 100644
--- a/docs/models/listvideoviewsrequest.md
+++ b/docs/models/listvideoviewsrequest.md
@@ -9,7 +9,7 @@
| `filterby` | *Optional[str]* | :heavy_minus_sign: | Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
| browser_name:Chrome |
| `limit` | *Optional[int]* | :heavy_minus_sign: | Pass the limit to display only the rows specified by the value.
| 10 |
| `offset` | *Optional[int]* | :heavy_minus_sign: | Pass the offset value to indicate the page number.
| 1 |
-| `viewer_id` | *Optional[str]* | :heavy_minus_sign: | Pass the viewer_id to filter the list of views. This value can be manually set during integration or generated by FastPix. When set manually it can be a string of aplha numeric values of any length.
| 09a78f7d-02ee-44f5-aa39-1b268ed2c270 |
+| `viewer_id` | *Optional[str]* | :heavy_minus_sign: | Pass the viewer_id to filter the list of views. This value can be manually set during integration or generated by FastPix. When set manually it can be a string of aplha numeric values of any length.
| your-viewer-id |
| `error_code` | *OptionalNullable[str]* | :heavy_minus_sign: | Pass the error code to filter the list of views. The possible values of error code can be fetched from list of errors end point.
| 1002 |
| `order_by` | *Optional[str]* | :heavy_minus_sign: | Pass this value to sort the view list by.
| view_end |
| `sort_order` | *Optional[str]* | :heavy_minus_sign: | The order direction to sort the view list by.
| asc |
\ No newline at end of file
diff --git a/docs/models/livemediaclips.md b/docs/models/livemediaclips.md
index 1c9bdc9..e26189c 100644
--- a/docs/models/livemediaclips.md
+++ b/docs/models/livemediaclips.md
@@ -5,19 +5,20 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `thumbnail` | *OptionalNullable[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `thumbnail` | *OptionalNullable[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/your-playback-id/thumbnail.png |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier is generated by FastPix for the workspace. | 5ta85f64-5717-4562-b3fc-2c963f66afa6 |
-| `stream_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the livestream for which the clips were created. | 98f28be5ac9bd7a4205634691a1a096b |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
+| `stream_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the livestream for which the clips were created. | your-stream-id |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
+| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
| `max_resolution` | [Optional[models.LiveMediaClipsMaxResolution]](../models/livemediaclipsmaxresolution.md) | :heavy_minus_sign: | The maximum resolution specified by the user for the media. | 1080p |
| `source_resolution` | [Optional[models.LiveMediaClipsSourceResolution]](../models/livemediaclipssourceresolution.md) | :heavy_minus_sign: | The actual resolution of the uploaded media. This represents the native quality of the source media. | 1080p |
| `status` | [Optional[models.LiveMediaClipsStatus]](../models/livemediaclipsstatus.md) | :heavy_minus_sign: | Determines the media's status, which can be one of the possible values. | Processing |
| `source_access` | *Optional[bool]* | :heavy_minus_sign: | The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it. | false |
+| `optimize_audio` | *OptionalNullable[bool]* | :heavy_minus_sign: | Whether the audio track of the media has been volume-normalized. | false |
| `playback_ids` | List[[models.PlaybackID](../models/playbackid.md)] | :heavy_minus_sign: | A collection of Playback ID objects utilized for crafting HLS playback URLs. | |
| `tracks` | List[[models.LiveMediaClipsTrack](../models/livemediaclipstrack.md)] | :heavy_minus_sign: | A media consists of different media tracks, like video, audio, and subtitle, all combined. | |
-| `mp4_support` | [Optional[models.LiveMediaClipsMp4Support]](../models/livemediaclipsmp4support.md) | :heavy_minus_sign: | Determines the type of MP4 support for the media.
- **none**: Disables MP4 support.
- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- **audioOnly**: Provides an MP4 stream containing only the audio.
- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
| capped_4k |
+| `mp4_support` | [Optional[List[models.MediaMp4SupportEntry]]](../models/mediamp4supportentry.md) | :heavy_minus_sign: | The MP4 renditions generated for the media when MP4 support was requested. Each entry describes one downloadable rendition (for example, a capped-4K video file or an audio-only m4a file) along with its generation status. Omitted when no MP4 support has been requested.
| [{"type": "capped_4k", "status": "ready", "height": 1080, "width": 1920, "ext": "mp4"}] |
| `generated_subtitles` | List[[models.TracksSubtitles](../models/trackssubtitles.md)] | :heavy_minus_sign: | List of generated subtitle tracks associated with the media. | |
| `is_audio_only` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates whether the media contains only audio (no video track). | false |
| `subtitle_available` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates whether subtitles are available for the media. | true |
diff --git a/docs/models/livemediaclipsmp4support.md b/docs/models/livemediaclipsmp4support.md
deleted file mode 100644
index 584b3c4..0000000
--- a/docs/models/livemediaclipsmp4support.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# LiveMediaClipsMp4Support
-
-Determines the type of MP4 support for the media.
-- **none**: Disables MP4 support.
-- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
-- **audioOnly**: Provides an MP4 stream containing only the audio.
-- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
-
-
-
-## Values
-
-| Name | Value |
-| ---------------------- | ---------------------- |
-| `NONE` | none |
-| `CAPPED_4K` | capped_4k |
-| `AUDIO_ONLY` | audioOnly |
-| `AUDIO_ONLY_CAPPED_4K` | audioOnly,capped_4k |
\ No newline at end of file
diff --git a/docs/models/livesimulcast.md b/docs/models/livesimulcast.md
index b724f7b..d344ad0 100644
--- a/docs/models/livesimulcast.md
+++ b/docs/models/livesimulcast.md
@@ -5,8 +5,8 @@
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `simulcast_id` | *Optional[str]* | :heavy_minus_sign: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | 8717422d89288ad5958d4a86e9afe2a2 |
+| `simulcast_id` | *Optional[str]* | :heavy_minus_sign: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | your-simulcast-id |
| `url` | *Optional[str]* | :heavy_minus_sign: | The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream. | rtmp://hyd01.contribute.live-video.net/app/ |
-| `stream_key` | *Optional[str]* | :heavy_minus_sign: | A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key. | 9310547d1df9c219d851d91d5b768b36k61a264dcc447b63da6fb79ef925cd76d |
+| `stream_key` | *Optional[str]* | :heavy_minus_sign: | A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key. | your-stream-key |
| `is_enabled` | *Optional[bool]* | :heavy_minus_sign: | When the value is true, the simulcast must be enabled for the given stream | true |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | |
\ No newline at end of file
diff --git a/docs/models/media.md b/docs/models/media.md
index a072d74..ec2bbb7 100644
--- a/docs/models/media.md
+++ b/docs/models/media.md
@@ -5,17 +5,19 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `thumbnail` | *OptionalNullable[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `thumbnail` | *OptionalNullable[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/your-playback-id/thumbnail.png |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
+| `source_media_id` | *Optional[str]* | :heavy_minus_sign: | The source media ID if this media was created from another media (for example, as a clip).
| your-source-media-id |
| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier is generated by FastPix for the workspace. | 5ta85f64-5717-4562-b3fc-2c963f66afa6 |
+| `stream_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the livestream this media was recorded or clipped from. Present on live-to-VOD recordings and live clips.
| your-stream-id |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
| `media_quality` | [Optional[models.MediaMediaQuality]](../models/mediamediaquality.md) | :heavy_minus_sign: | The quality tier applied to the media. | standard |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media.
| your-creator-id |
+| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
| `max_resolution` | [Optional[models.MediaMaxResolution]](../models/mediamaxresolution.md) | :heavy_minus_sign: | The maximum resolution specified by the user for the media. | 1080p |
| `source_resolution` | [Optional[models.MediaSourceResolution]](../models/mediasourceresolution.md) | :heavy_minus_sign: | The actual resolution of the uploaded media. This represents the native quality of the source media. | 1080p |
| `status` | [Optional[models.MediaStatus]](../models/mediastatus.md) | :heavy_minus_sign: | Determines the media’s status, which can be one of the possible values. | Processing |
-| `mp4_support` | [Optional[models.MediaMp4Support]](../models/mediamp4support.md) | :heavy_minus_sign: | Determines the type of MP4 support for the media.
- **none**: Disables MP4 support.
- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- **audioOnly**: Provides an MP4 stream containing only the audio.
- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
| capped_4k |
+| `mp4_support` | [Optional[List[models.MediaMp4SupportEntry]]](../models/mediamp4supportentry.md) | :heavy_minus_sign: | The MP4 renditions generated for the media when MP4 support was requested. Each entry describes one downloadable rendition (for example, a capped-4K video file or an audio-only m4a file) along with its generation status. Omitted when no MP4 support has been requested.
| [{"type": "capped_4k", "status": "ready", "height": 1080, "width": 1920, "ext": "mp4"}] |
| `source_access` | *OptionalNullable[bool]* | :heavy_minus_sign: | The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it. | true |
| `playback_ids` | List[[models.PlaybackID](../models/playbackid.md)] | :heavy_minus_sign: | A collection of Playback ID objects utilized for crafting HLS playback URLs. | |
| `tracks` | List[[models.MediaTrack](../models/mediatrack.md)] | :heavy_minus_sign: | A media consists of different media tracks, like video, audio, and subtitle, all combined. | |
@@ -26,6 +28,7 @@
| `moderation` | [Optional[models.AiResponseRecord]](../models/airesponserecord.md) | :heavy_minus_sign: | Represents an AI response record containing status and data for AI-generated features like summary, chapters, named entities, or moderation. | |
| `is_audio_only` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates whether the media contains only audio (no video track). | false |
| `subtitle_available` | *OptionalNullable[bool]* | :heavy_minus_sign: | Indicates whether subtitles are available for the media. | true |
+| `optimize_audio` | *Optional[bool]* | :heavy_minus_sign: | Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
| false |
| `duration` | *Optional[str]* | :heavy_minus_sign: | The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media. | 00:00:10 |
| `aspect_ratio` | *OptionalNullable[str]* | :heavy_minus_sign: | The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height. | 16:9 |
| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Time the media was created, defined as a localDateTime (UTC Time). | 2023-10-20T10:50:34.594302Z |
diff --git a/docs/models/mediacancelresponse.md b/docs/models/mediacancelresponse.md
index 8385ac6..2337c72 100644
--- a/docs/models/mediacancelresponse.md
+++ b/docs/models/mediacancelresponse.md
@@ -7,14 +7,14 @@ Response returned when an upload is cancelled.
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `upload_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the cancelled upload. | beff5537-de85-42e1-a673-2a405cd94177 |
+| `upload_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the cancelled upload. | your-upload-id |
| `trial` | *Optional[bool]* | :heavy_minus_sign: | Indicates if the upload was a trial. | false |
| `status` | *Optional[str]* | :heavy_minus_sign: | The status of the upload after cancellation. | cancelled |
-| `url` | *Optional[str]* | :heavy_minus_sign: | The upload URL (if available) after cancellation. | https://storage.googleapis.com/fastpix-uploads-us/8a5ab157-c586-458a-bb2e-caa8a8b76a19/4190bbde-4c34-41e4-b70e-90ba2aa0b79e |
+| `url` | *Optional[str]* | :heavy_minus_sign: | The upload URL (if available) after cancellation. | https://storage.googleapis.com/fastpix-uploads-us/your-media-id-1/your-media-id-2 |
| `timeout` | *OptionalNullable[int]* | :heavy_minus_sign: | The timeout value for the upload. | 14400 |
| `cors_origin` | *Optional[str]* | :heavy_minus_sign: | CORS origin allowed for the upload. | * |
| `max_resolution` | *Optional[str]* | :heavy_minus_sign: | The maximum resolution allowed for the upload. | 1080p |
| `access_policy` | *Optional[str]* | :heavy_minus_sign: | The access policy for the upload. | public |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
-| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
-| `creator_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
\ No newline at end of file
+| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
+| `creator_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
\ No newline at end of file
diff --git a/docs/models/mediaclipresponsedata.md b/docs/models/mediaclipresponsedata.md
index a306c2e..ecff943 100644
--- a/docs/models/mediaclipresponsedata.md
+++ b/docs/models/mediaclipresponsedata.md
@@ -5,9 +5,9 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media by FastPix. | b62427ec-07fd-4a89-b3c0-94909aaaa1da |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media by FastPix. | your-media-id |
| `duration` | *Optional[str]* | :heavy_minus_sign: | Duration of the media in HH:MM:SS format. | 00:00:13 |
| `status` | [Optional[models.MediaClipResponseStatus]](../models/mediaclipresponsestatus.md) | :heavy_minus_sign: | The current processing status of the media. | Ready |
-| `thumbnail` | *Optional[str]* | :heavy_minus_sign: | A video thumbnail that acts as a preview image for the video. | https://images.fastpix.app/66dc7b0b-9dfb-4721-a738-837f89ccbd0a/thumbnail.png |
+| `thumbnail` | *Optional[str]* | :heavy_minus_sign: | A video thumbnail that acts as a preview image for the video. | https://images.fastpix.app/your-media-id/thumbnail.png |
| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Timestamp of when the media was created. | 2025-03-12T06:17:26.403017Z |
| `playback_ids` | List[[models.MediaClipResponsePlaybackID](../models/mediaclipresponseplaybackid.md)] | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/mediaclipresponseplaybackid.md b/docs/models/mediaclipresponseplaybackid.md
index 5560340..99df897 100644
--- a/docs/models/mediaclipresponseplaybackid.md
+++ b/docs/models/mediaclipresponseplaybackid.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier for playback. | 66dc7b0b-9dfb-4721-a738-837f89ccbd0a |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier for playback. | your-playback-id |
| `access_policy` | *Optional[str]* | :heavy_minus_sign: | The access policy of the playback. | public |
\ No newline at end of file
diff --git a/docs/models/mediaidsrequest.md b/docs/models/mediaidsrequest.md
index d59719f..4f418db 100644
--- a/docs/models/mediaidsrequest.md
+++ b/docs/models/mediaidsrequest.md
@@ -7,4 +7,4 @@ The list of mediaId(s) you want to perform the operation on.
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
-| `media_ids` | List[*str*] | :heavy_check_mark: | N/A | [
"a1cd180e-f9b5-4e99-9d44-b9c9baabad89",
"245800c3-7b73-47d9-a201-e961260dcb30",
"41316aac-5396-4278-8f44-08d5f2495b12"
] |
\ No newline at end of file
+| `media_ids` | List[*str*] | :heavy_check_mark: | N/A | [
"your-media-id-1",
"your-media-id-2",
"your-media-id-3"
] |
\ No newline at end of file
diff --git a/docs/models/mediamp4support.md b/docs/models/mediamp4support.md
deleted file mode 100644
index b14fb86..0000000
--- a/docs/models/mediamp4support.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# MediaMp4Support
-
-Determines the type of MP4 support for the media.
-- **none**: Disables MP4 support.
-- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
-- **audioOnly**: Provides an MP4 stream containing only the audio.
-- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
-
-
-
-## Values
-
-| Name | Value |
-| ---------------------- | ---------------------- |
-| `NONE` | none |
-| `CAPPED_4K` | capped_4k |
-| `AUDIO_ONLY` | audioOnly |
-| `AUDIO_ONLY_CAPPED_4K` | audioOnly,capped_4k |
\ No newline at end of file
diff --git a/docs/models/mediamp4supportentry.md b/docs/models/mediamp4supportentry.md
new file mode 100644
index 0000000..ba4802e
--- /dev/null
+++ b/docs/models/mediamp4supportentry.md
@@ -0,0 +1,62 @@
+# MediaMp4SupportEntry
+
+A single MP4 rendition generated for the media.
+
+`Media.mp4_support` holds a list of these entries — one per downloadable rendition
+requested via `mp4Support` (for example, a capped-4K video file and an audio-only
+m4a file). The field is omitted when no MP4 support has been requested.
+
+Every field is optional: the `audioOnly` rendition carries no `height`/`width`.
+
+## Example Usage
+
+```python
+from fastpix_python import Fastpix
+
+with Fastpix(
+ username="your-access-token",
+ password="your-secret-key",
+) as fastpix:
+
+ res = fastpix.manage_videos.get_media(media_id="your-media-id")
+
+ for rendition in res.data.mp4_support or []:
+ print(rendition.type, rendition.status, rendition.ext)
+```
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------- | --------------------------------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- | --------- |
+| `type` | [Optional[models.MediaMp4SupportEntryType]](#mediamp4supportentrytype) | :heavy_minus_sign: | The MP4 rendition type. `capped_4k` is a downloadable MP4 video capped at 4K resolution, `audioOnly` is a downloadable m4a audio-only file. | capped_4k |
+| `status` | [Optional[models.MediaMp4SupportEntryStatus]](#mediamp4supportentrystatus) | :heavy_minus_sign: | Generation status of this MP4 rendition. | ready |
+| `height` | *Optional[int]* | :heavy_minus_sign: | Pixel height of the rendition. Omitted for the `audioOnly` type. | 1080 |
+| `width` | *Optional[int]* | :heavy_minus_sign: | Pixel width of the rendition. Omitted for the `audioOnly` type. | 1920 |
+| `ext` | [Optional[models.MediaMp4SupportEntryExt]](#mediamp4supportentryext) | :heavy_minus_sign: | File extension of the downloadable rendition. | mp4 |
+
+## Related enums
+
+### MediaMp4SupportEntryType
+
+| Name | Value |
+| ------------- | ----------- |
+| `CAPPED_4K` | capped_4k |
+| `AUDIO_ONLY` | audioOnly |
+
+### MediaMp4SupportEntryStatus
+
+| Name | Value |
+| ----------- | --------- |
+| `PREPARING` | preparing |
+| `READY` | ready |
+| `FAILED` | failed |
+
+### MediaMp4SupportEntryExt
+
+| Name | Value |
+| ------ | ----- |
+| `MP4` | mp4 |
+| `M4A` | m4a |
+
+Unrecognised values returned by the API pass through as plain strings rather than
+raising, so new rendition types do not break deserialization.
diff --git a/docs/models/mediasourceresolution.md b/docs/models/mediasourceresolution.md
index 3604d74..c7d888f 100644
--- a/docs/models/mediasourceresolution.md
+++ b/docs/models/mediasourceresolution.md
@@ -16,4 +16,6 @@ The actual resolution of the uploaded media. This represents the native quality
| `SEVEN_HUNDRED_AND_TWENTYP` | 720p |
| `SEVEN_HUNDRED_AND_TWENTY` | 720 |
| `FOUR_HUNDRED_AND_EIGHTYP` | 480p |
-| `FOUR_HUNDRED_AND_EIGHTY` | 480 |
\ No newline at end of file
+| `FOUR_HUNDRED_AND_EIGHTY` | 480 |
+| `THREE_HUNDRED_AND_SIXTYP` | 360p |
+| `THREE_HUNDRED_AND_SIXTY` | 360 |
\ No newline at end of file
diff --git a/docs/models/moderationresponse.md b/docs/models/moderationresponse.md
index 993be73..793c6e1 100644
--- a/docs/models/moderationresponse.md
+++ b/docs/models/moderationresponse.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
-| `media_id` | *Optional[str]* | :heavy_minus_sign: | N/A | c695988b-ff84-42ae-bb21-10f284fedb0e |
+| `media_id` | *Optional[str]* | :heavy_minus_sign: | N/A | your-media-id |
| `is_moderation_enabled` | *Optional[bool]* | :heavy_minus_sign: | N/A | true |
\ No newline at end of file
diff --git a/docs/models/namedentitiesresponse.md b/docs/models/namedentitiesresponse.md
index 65c564e..abc131e 100644
--- a/docs/models/namedentitiesresponse.md
+++ b/docs/models/namedentitiesresponse.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
-| `media_id` | *Optional[str]* | :heavy_minus_sign: | N/A | c695988b-ff84-42ae-bb21-10f284fedb0e |
+| `media_id` | *Optional[str]* | :heavy_minus_sign: | N/A | your-media-id |
| `is_named_entities_enabled` | *Optional[bool]* | :heavy_minus_sign: | N/A | true |
\ No newline at end of file
diff --git a/docs/models/patchlivestreamrequest.md b/docs/models/patchlivestreamrequest.md
index c4d3ad1..60aa3a8 100644
--- a/docs/models/patchlivestreamrequest.md
+++ b/docs/models/patchlivestreamrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"livestream_name": "Gaming_stream"
} |
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"livestream_name": "your-livestream-name"
} |
| `reconnect_window` | *Optional[int]* | :heavy_minus_sign: | In case the software streaming the live, gets disrupted for any reason and gets disconnected from FastPix, the reconnect window defines the duration FastPix waits before automatically terminating the stream. Before starting the stream, you can set the reconnect window time which is up to 1800 seconds. | 60 |
\ No newline at end of file
diff --git a/docs/models/patchresponsedata.md b/docs/models/patchresponsedata.md
index 3a0fac4..b1b6018 100644
--- a/docs/models/patchresponsedata.md
+++ b/docs/models/patchresponsedata.md
@@ -19,7 +19,7 @@ Displays the result of the request.
| `enable_recording` | *Optional[bool]* | :heavy_minus_sign: | When set to true, the livestream will be recorded and stored for later viewing purposes. If set to false, the livestream will not be recorded. | {
"example": true,
"default": true
} |
| `enable_dvr_mode` | *Optional[bool]* | :heavy_minus_sign: | Enables DVR (Digital Video Recorder) functionality for the live stream. When set to true, viewers can pause, rewind, and resume playback during the live broadcast. This allows time-shifted viewing of the stream while it is still ongoing. | {
"example": true,
"default": false
} |
| `media_policy` | *Optional[str]* | :heavy_minus_sign: | Determines whether the recorded stream must be publicly accessible or private in Live to VOD (Video on Demand). | {
"possibleValue": "public, private",
"example": "public",
"default": "public"
} |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"livestream_name": "fastpix_livestream"
} |
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"livestream_name": "your-livestream-name"
} |
| `low_latency` | *Optional[bool]* | :heavy_minus_sign: | Enables low-latency streaming mode to reduce playback delay. | true |
| `closed_captions` | *Optional[bool]* | :heavy_minus_sign: | when provided true Enables closed captions for the livestream. | false |
| `playback_ids` | List[[models.PlaybackIDResponse](../models/playbackidresponse.md)] | :heavy_minus_sign: | N/A | |
diff --git a/docs/models/playbackidresponse.md b/docs/models/playbackidresponse.md
index 6146d0b..91f65be 100644
--- a/docs/models/playbackidresponse.md
+++ b/docs/models/playbackidresponse.md
@@ -7,5 +7,5 @@ A collection of Playback ID objects utilized for crafting HLS playback urls.
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier for the playbackId | 68b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd |
+| `id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier for the playbackId | your-playback-id |
| `access_policy` | *Optional[str]* | :heavy_minus_sign: | Determines if access to the streamed content is kept private or available to all. | public |
\ No newline at end of file
diff --git a/docs/models/playbackidsuccessresponsedata.md b/docs/models/playbackidsuccessresponsedata.md
index 4471284..18c43e1 100644
--- a/docs/models/playbackidsuccessresponsedata.md
+++ b/docs/models/playbackidsuccessresponsedata.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier for the playbackId | 68b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd |
+| `id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier for the playbackId | your-playback-id |
| `access_policy` | *Optional[str]* | :heavy_minus_sign: | Determines if access to the streamed content is kept private or available to all. | public |
\ No newline at end of file
diff --git a/docs/models/playlistbyidresponsedatamanual.md b/docs/models/playlistbyidresponsedatamanual.md
index 04f8b28..8644d5d 100644
--- a/docs/models/playlistbyidresponsedatamanual.md
+++ b/docs/models/playlistbyidresponsedatamanual.md
@@ -5,13 +5,13 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique id of the playlist | 2455174e-64d9-4324-86bd-80cb1af5b20a |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique id of the playlist | your-playlist-id |
| `name` | *Optional[str]* | :heavy_minus_sign: | The name of the playlist set by the user | playlist1 |
| `reference_id` | *Optional[str]* | :heavy_minus_sign: | Unique string value assigned by user to the playlist. | playlists301 |
| `type` | *Literal["manual"]* | :heavy_check_mark: | type of the playlist, when it was created | manual |
| `description` | *Optional[str]* | :heavy_minus_sign: | Description of the playlist set by the user. | This is a manual playlist |
| `media_list` | List[[models.PlaylistByIDResponseMediaListItem](../models/playlistbyidresponsemedialistitem.md)] | :heavy_minus_sign: | N/A | |
-| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | The unique id of the workspace in which the playlist is present. | d760b903-86ef-44d6-9b73-334130e0cf2d |
+| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | The unique id of the workspace in which the playlist is present. | your-workspace-id |
| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Timestamp of playlist creation. | 2025-05-12T12:55:24.368182Z |
| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Playlist's most recent update timestamp. | 2025-05-27T09:51:03.166094Z |
| `media_count` | *Optional[int]* | :heavy_minus_sign: | No. of media present in the playlist | 3 |
\ No newline at end of file
diff --git a/docs/models/playlistbyidresponsedatasmart.md b/docs/models/playlistbyidresponsedatasmart.md
index 399c4cc..1487b49 100644
--- a/docs/models/playlistbyidresponsedatasmart.md
+++ b/docs/models/playlistbyidresponsedatasmart.md
@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique id of the playlist | 2455174e-64d9-4324-86bd-80cb1af5b20a |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique id of the playlist | your-playlist-id |
| `name` | *Optional[str]* | :heavy_minus_sign: | The name of the playlist set by the user | playlist1 |
| `reference_id` | *Optional[str]* | :heavy_minus_sign: | Unique string value assigned by user to the playlist. | playlists301 |
| `type` | *Literal["smart"]* | :heavy_check_mark: | type of the playlist, when it was created | smart |
@@ -13,7 +13,7 @@
| `play_order` | [models.PlaylistOrder](../models/playlistorder.md) | :heavy_check_mark: | Determines the insertion order of media into playlist. | |
| `metadata` | [models.PlaylistByIDResponseMetadata](../models/playlistbyidresponsemetadata.md) | :heavy_check_mark: | Required when the playlist type is `smart`. Media created between `startDate` and `endDate` of `createdDate` is added. Optionally, you can include media based on `updatedDate`. | |
| `media_list` | List[[models.PlaylistByIDResponseMediaListItem](../models/playlistbyidresponsemedialistitem.md)] | :heavy_minus_sign: | N/A | |
-| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | The unique id of the workspace in which the playlist is present. | d760b903-86ef-44d6-9b73-334130e0cf2d |
+| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | The unique id of the workspace in which the playlist is present. | your-workspace-id |
| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Timestamp of playlist creation. | 2025-05-12T12:55:24.368182Z |
| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Playlist's most recent update timestamp. | 2025-05-27T09:51:03.166094Z |
| `media_count` | *Optional[int]* | :heavy_minus_sign: | No. of media present in the playlist | 3 |
\ No newline at end of file
diff --git a/docs/models/playlistbyidresponsemedialistitem.md b/docs/models/playlistbyidresponsemedialistitem.md
index 42e4ab4..3a389f5 100644
--- a/docs/models/playlistbyidresponsemedialistitem.md
+++ b/docs/models/playlistbyidresponsemedialistitem.md
@@ -8,8 +8,8 @@
| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Timestamp of media creation in the workspace. | 2025-03-21T05:58:38.000708Z |
| `creator_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Creator ID of the media. | FastPix@14612 |
| `duration` | *Optional[str]* | :heavy_minus_sign: | Duration of the media in hh:mm:ss format. | 00:00:10 |
-| `id` | *Optional[str]* | :heavy_minus_sign: | unique id of the particular media. | 942e0ced-146b-487e-988f-6de578de1000 |
+| `id` | *Optional[str]* | :heavy_minus_sign: | unique id of the particular media. | your-playlist-id |
| `source_resolution` | *Optional[str]* | :heavy_minus_sign: | source resolution of the media. | 1080p |
| `status` | *Optional[str]* | :heavy_minus_sign: | status of the media, only media with ready status is added to playlist. | Ready |
-| `thumbnail` | *Optional[str]* | :heavy_minus_sign: | thumbnail for the particular media. | https://venus-images.fastpix.dev/ff31b32e-4979-4d2b-ad2a-685af43c9902/thumbnail.png |
+| `thumbnail` | *Optional[str]* | :heavy_minus_sign: | thumbnail for the particular media. | https://venus-images.fastpix.dev/your-playlist-id/thumbnail.png |
| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media. | Media 1 |
\ No newline at end of file
diff --git a/docs/models/playlistitem.md b/docs/models/playlistitem.md
index 71eee5b..bb46c93 100644
--- a/docs/models/playlistitem.md
+++ b/docs/models/playlistitem.md
@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique id of the playlist | db6e860f-cb57-43dd-8acf-39c9effd5608 |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique id of the playlist | your-playlist-id |
| `name` | *Optional[str]* | :heavy_minus_sign: | The name of the playlist set by the user | playlist1 |
| `type` | [Optional[models.PlaylistItemType]](../models/playlistitemtype.md) | :heavy_minus_sign: | type of the playlist, when it was created | smart |
| `reference_id` | *Optional[str]* | :heavy_minus_sign: | Unique string value assigned by user to the playlist. | a111dfdfdafsdfe |
diff --git a/docs/models/pushmediasettings.md b/docs/models/pushmediasettings.md
index bc705fe..3f653fd 100644
--- a/docs/models/pushmediasettings.md
+++ b/docs/models/pushmediasettings.md
@@ -16,9 +16,9 @@ For a complete explanation of how media uploads and processing work, refer to th
| `end_time` | *Optional[float]* | :heavy_minus_sign: | End time indicates where encoding must end within the video file, in seconds. | 60 |
| `inputs` | List[[models.DirectUploadVideoMediaInput](../models/directuploadvideomediainput.md)] | :heavy_minus_sign: | Add one input object at a time. For example, first add a **WatermarkInput** object. If you also need a audio, click **Add item** again and select **AudioInput**. Repeat this process for **SubtitleInput** as needed.
| |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | "Tag a video in "key" : "value" pairs for searchable metadata. Maximum 10 entries, 255 characters each."
| {
"key1": "value1"
} |
-| `drm_configuration_id` | *Optional[str]* | :heavy_minus_sign: | UUID of the DRM configuration to be used. | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `drm_configuration_id` | *Optional[str]* | :heavy_minus_sign: | UUID of the DRM configuration to be used. | your-drm-configuration-id |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
| `subtitles` | [Optional[models.DirectUploadVideoMediaSubtitles]](../models/directuploadvideomediasubtitles.md) | :heavy_minus_sign: | Generates subtitle files for audio/video files.
| |
| `optimize_audio` | *Optional[bool]* | :heavy_minus_sign: | Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
| true |
| `max_resolution` | [Optional[models.DirectUploadVideoMediaMaxResolution]](../models/directuploadvideomediamaxresolution.md) | :heavy_minus_sign: | Determines the highest quality resolution available.
| 1080p |
diff --git a/docs/models/retrievemediainputinforequest.md b/docs/models/retrievemediainputinforequest.md
index 6c4bcf0..6502512 100644
--- a/docs/models/retrievemediainputinforequest.md
+++ b/docs/models/retrievemediainputinforequest.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | Pass the list of the input objects used to create the media, along with applied settings. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
\ No newline at end of file
+| `media_id` | *str* | :heavy_check_mark: | Pass the list of the input objects used to create the media, along with applied settings. | your-media-id |
\ No newline at end of file
diff --git a/docs/models/simulcastrequest.md b/docs/models/simulcastrequest.md
index 582b57f..dfd230d 100644
--- a/docs/models/simulcastrequest.md
+++ b/docs/models/simulcastrequest.md
@@ -7,4 +7,4 @@
| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `url` | *Optional[str]* | :heavy_minus_sign: | The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream. | rtmp://hyd01.contribute.live-video.net/app/ |
| `stream_key` | *Optional[str]* | :heavy_minus_sign: | A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key. | live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs. | {
"livestream_name": "Tech-Connect Summit"
} |
\ No newline at end of file
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs. | {
"livestream_name": "your-livestream-name"
} |
\ No newline at end of file
diff --git a/docs/models/simulcastresponsedata.md b/docs/models/simulcastresponsedata.md
index 321e81a..6190433 100644
--- a/docs/models/simulcastresponsedata.md
+++ b/docs/models/simulcastresponsedata.md
@@ -7,8 +7,8 @@ Displays the result of the request.
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `simulcast_id` | *Optional[str]* | :heavy_minus_sign: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | 8717422d89288ad5958d4a86e9afe2a2 |
+| `simulcast_id` | *Optional[str]* | :heavy_minus_sign: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | your-simulcast-id |
| `url` | *Optional[str]* | :heavy_minus_sign: | The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream. | rtmp://hyd01.contribute.live-video.net/app/ |
-| `stream_key` | *Optional[str]* | :heavy_minus_sign: | A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key. | 9310547d1df9c219d851d91d5b768b36k61a264dcc447b63da6fb79ef925cd76d |
+| `stream_key` | *Optional[str]* | :heavy_minus_sign: | A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key. | your-stream-key |
| `is_enabled` | *Optional[bool]* | :heavy_minus_sign: | When the value is true, the simulcast must be enabled for the given stream | true |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | |
\ No newline at end of file
diff --git a/docs/models/simulcastupdaterequest.md b/docs/models/simulcastupdaterequest.md
index 3954bc9..3a84240 100644
--- a/docs/models/simulcastupdaterequest.md
+++ b/docs/models/simulcastupdaterequest.md
@@ -6,4 +6,4 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `is_enabled` | *Optional[bool]* | :heavy_minus_sign: | When set to false, the simulcast is disabled for the specified stream. | true |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs. | {
"livestream_name": "Tech today"
} |
\ No newline at end of file
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs. | {
"livestream_name": "your-livestream-name"
} |
\ No newline at end of file
diff --git a/docs/models/simulcastupdateresponsedata.md b/docs/models/simulcastupdateresponsedata.md
index 9044268..9a28076 100644
--- a/docs/models/simulcastupdateresponsedata.md
+++ b/docs/models/simulcastupdateresponsedata.md
@@ -7,8 +7,8 @@ Displays the result of the request.
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `simulcast_id` | *Optional[str]* | :heavy_minus_sign: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | 8717422d89288ad5958d4a86e9afe2a2 |
+| `simulcast_id` | *Optional[str]* | :heavy_minus_sign: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | your-simulcast-id |
| `url` | *Optional[str]* | :heavy_minus_sign: | The RTMP hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream. | rtmp://hyd01.contribute.live-video.net/app/ |
-| `stream_key` | *Optional[str]* | :heavy_minus_sign: | A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key. | 9310547d1df9c219d851d91d5b768b36k61a264dcc447b63da6fb79ef925cd76d |
+| `stream_key` | *Optional[str]* | :heavy_minus_sign: | A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key. | your-stream-key |
| `is_enabled` | *Optional[bool]* | :heavy_minus_sign: | When set to false, the simulcast is disabled for the specified stream. | false |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"simulcast_name": "Tech today"
} |
\ No newline at end of file
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"simulcast_name": "your-livestream-name"
} |
\ No newline at end of file
diff --git a/docs/models/sourceaccessmedia.md b/docs/models/sourceaccessmedia.md
index 038b35f..54bebf5 100644
--- a/docs/models/sourceaccessmedia.md
+++ b/docs/models/sourceaccessmedia.md
@@ -5,17 +5,17 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `thumbnail` | *OptionalNullable[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `thumbnail` | *OptionalNullable[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/your-playback-id/thumbnail.png |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier is generated by FastPix for the workspace. | 5ta85f64-5717-4562-b3fc-2c963f66afa6 |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
| `media_quality` | [Optional[models.SourceAccessMediaMediaQuality]](../models/sourceaccessmediamediaquality.md) | :heavy_minus_sign: | The quality tier applied to the media. | standard |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
+| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
| `max_resolution` | [Optional[models.SourceAccessMediaMaxResolution]](../models/sourceaccessmediamaxresolution.md) | :heavy_minus_sign: | The maximum resolution specified by the user for the media. | 1080p |
| `source_resolution` | [Optional[models.SourceAccessMediaSourceResolution]](../models/sourceaccessmediasourceresolution.md) | :heavy_minus_sign: | The actual resolution of the uploaded media. This represents the native quality of the source media. | 1080p |
| `status` | [Optional[models.SourceAccessMediaStatus]](../models/sourceaccessmediastatus.md) | :heavy_minus_sign: | Determines the media's status, which can be one of the possible values. | Processing |
-| `mp4_support` | [Optional[models.SourceAccessMediaMp4Support]](../models/sourceaccessmediamp4support.md) | :heavy_minus_sign: | Determines the type of MP4 support for the media.
- **none**: Disables MP4 support.
- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- **audioOnly**: Provides an MP4 stream containing only the audio.
- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
| capped_4k |
+| `mp4_support` | [Optional[List[models.MediaMp4SupportEntry]]](../models/mediamp4supportentry.md) | :heavy_minus_sign: | The MP4 renditions generated for the media when MP4 support was requested. Each entry describes one downloadable rendition (for example, a capped-4K video file or an audio-only m4a file) along with its generation status. Omitted when no MP4 support has been requested.
| [{"type": "capped_4k", "status": "ready", "height": 1080, "width": 1920, "ext": "mp4"}] |
| `source_access` | *OptionalNullable[bool]* | :heavy_minus_sign: | The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it. | true |
| `playback_ids` | List[[models.PlaybackID](../models/playbackid.md)] | :heavy_minus_sign: | A collection of Playback ID objects utilized for crafting HLS playback URLs. | |
| `tracks` | List[[models.SourceAccessMediaTrack](../models/sourceaccessmediatrack.md)] | :heavy_minus_sign: | A media consists of different media tracks, like video, audio, and subtitle, all combined. | |
diff --git a/docs/models/sourceaccessmediamp4support.md b/docs/models/sourceaccessmediamp4support.md
deleted file mode 100644
index 2d838d6..0000000
--- a/docs/models/sourceaccessmediamp4support.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# SourceAccessMediaMp4Support
-
-Determines the type of MP4 support for the media.
-- **none**: Disables MP4 support.
-- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
-- **audioOnly**: Provides an MP4 stream containing only the audio.
-- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
-
-
-
-## Values
-
-| Name | Value |
-| ---------------------- | ---------------------- |
-| `NONE` | none |
-| `CAPPED_4K` | capped_4k |
-| `AUDIO_ONLY` | audioOnly |
-| `AUDIO_ONLY_CAPPED_4K` | audioOnly,capped_4k |
\ No newline at end of file
diff --git a/docs/models/subtitletrack.md b/docs/models/subtitletrack.md
index e2fa88d..794b884 100644
--- a/docs/models/subtitletrack.md
+++ b/docs/models/subtitletrack.md
@@ -10,5 +10,6 @@ A media consists of different media tracks, like video, audio, and subtitle, all
| `id` | *Optional[str]* | :heavy_minus_sign: | FastPix generates a unique identifier for each track. | 9oa85f64-5717-4562-b3fc-2c963f66afa6 |
| `type` | [Optional[models.SubtitleTrackType]](../models/subtitletracktype.md) | :heavy_minus_sign: | Defines the type of input track. | subtitle |
| `status` | *Optional[str]* | :heavy_minus_sign: | Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played. | available |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | My track title |
| `language_name` | *Optional[str]* | :heavy_minus_sign: | Name of the language in which the subtitles will be generated.
| english |
| `language_code` | *Optional[str]* | :heavy_minus_sign: | Language codes are concise, standardized symbols that denote languages, utilizing either two or three characters for identification. The language code must be compliant with the BCP 47 standard to ensure compatibility. (for text only).
| en |
\ No newline at end of file
diff --git a/docs/models/summaryresponse.md b/docs/models/summaryresponse.md
index 27ccc0d..547d2c6 100644
--- a/docs/models/summaryresponse.md
+++ b/docs/models/summaryresponse.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
-| `media_id` | *Optional[str]* | :heavy_minus_sign: | N/A | c695988b-ff84-42ae-bb21-10f284fedb0e |
+| `media_id` | *Optional[str]* | :heavy_minus_sign: | N/A | your-media-id |
| `is_summary_enabled` | *Optional[bool]* | :heavy_minus_sign: | N/A | true |
\ No newline at end of file
diff --git a/docs/models/tracksubtitlesgeneraterequest.md b/docs/models/tracksubtitlesgeneraterequest.md
index 75e3b7c..1bc4c01 100644
--- a/docs/models/tracksubtitlesgeneraterequest.md
+++ b/docs/models/tracksubtitlesgeneraterequest.md
@@ -9,4 +9,5 @@ Contains details for generating subtitle tracks for a media file.
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language used to generate the subtitles. | English |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
-| `language_code` | [Optional[models.LanguageCode]](../models/languagecode.md) | :heavy_minus_sign: | Language code for content localization | en-US |
\ No newline at end of file
+| `language_code` | [Optional[models.LanguageCode]](../models/languagecode.md) | :heavy_minus_sign: | Language code for content localization | en-US |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | your-track-title |
\ No newline at end of file
diff --git a/docs/models/unuseddirectupload.md b/docs/models/unuseddirectupload.md
index 6b045fd..9f95548 100644
--- a/docs/models/unuseddirectupload.md
+++ b/docs/models/unuseddirectupload.md
@@ -10,7 +10,7 @@ Displays the result of the request.
| `upload_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 7ya85f64-5717-4562-b3fc-2c963f66afa6 |
| `trial` | *Optional[bool]* | :heavy_minus_sign: | Indicates if the upload was a trial. | false |
| `status` | [Optional[models.UnusedDirectUploadStatus]](../models/unuseddirectuploadstatus.md) | :heavy_minus_sign: | Determines the media's status, which can be one of the possible values. | waiting |
-| `url` | *Optional[str]* | :heavy_minus_sign: | The url hosts the media file for FastPix, which needs to be download to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles/CC (SRT file/VTT file). While FastPix can handle various audio and video formats and codecs, using standard inputs can help with optimal processing speed. | {
"url": "https://storage.fastpix.net/uploads/08256f2c-efca-4c4f-8f21-75e40d49f225/80911756-1ce3-485a-a3b4-6653ff0937a1?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=media-svc%2F20240111%2Fus-east-1%2Fs3%2Faws4_request\u0026X-Amz-Date=20240111T123116Z\u0026X-Amz-Expires=3600\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=419ab443cdc1d4a22cf1b0f8875855590b346058e6d3859f7c1c9da3bb061f91"
} |
+| `url` | *Optional[str]* | :heavy_minus_sign: | The url hosts the media file for FastPix, which needs to be download to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles/CC (SRT file/VTT file). While FastPix can handle various audio and video formats and codecs, using standard inputs can help with optimal processing speed. | {
"url": "https://storage.fastpix.com/uploads/your-upload-id?your-signed-url-params"
} |
| `timeout` | *Optional[float]* | :heavy_minus_sign: | The duration set for the validity of the upload URL. If the upload isn’t completed within this timespan, it is marked as timed out.
| 14400 |
| `cors_origin` | *Optional[str]* | :heavy_minus_sign: | Upload media directly from a device using the url name or enter "*" to allow all. | * |
| `push_media_settings` | [Optional[models.UnusedDirectUploadResponse]](../models/unuseddirectuploadresponse.md) | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/updatedmediarequest.md b/docs/models/updatedmediarequest.md
index 8bc319c..0c4c90a 100644
--- a/docs/models/updatedmediarequest.md
+++ b/docs/models/updatedmediarequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `body` | [models.UpdatedMediaRequestBody](../models/updatedmediarequestbody.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/updatedmediarequestbody.md b/docs/models/updatedmediarequestbody.md
index e3a5c35..8bbddb5 100644
--- a/docs/models/updatedmediarequestbody.md
+++ b/docs/models/updatedmediarequestbody.md
@@ -5,6 +5,6 @@
| Field | Type | Required | Description | Example |
| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | N/A | {
"user": "fastpix_admin"
} |
-| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
\ No newline at end of file
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | N/A | {
"user": "your-metadata-value"
} |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
\ No newline at end of file
diff --git a/docs/models/updatedmp4supportrequest.md b/docs/models/updatedmp4supportrequest.md
index bb3fd0c..8b31b37 100644
--- a/docs/models/updatedmp4supportrequest.md
+++ b/docs/models/updatedmp4supportrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| your-media-id |
| `body` | [models.UpdatedMp4SupportRequestBody](../models/updatedmp4supportrequestbody.md) | :heavy_check_mark: | N/A | {
"mp4Support": "capped_4k"
} |
\ No newline at end of file
diff --git a/docs/models/updatedmp4supportrequestbody.md b/docs/models/updatedmp4supportrequestbody.md
index a4aa2bd..59c3ddf 100644
--- a/docs/models/updatedmp4supportrequestbody.md
+++ b/docs/models/updatedmp4supportrequestbody.md
@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `mp4_support` | [Optional[models.UpdatedMp4SupportMp4Support]](../models/updatedmp4supportmp4support.md) | :heavy_minus_sign: | Determines the type of MP4 support for the media. - **none**: Disables MP4 support. - **capped_4k**: Enables MP4 downloads with resolutions up to 4K. - **audioOnly**: Provides an MP4 stream containing only the audio. - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
| capped_4k |
\ No newline at end of file
+| `mp4_support` | [models.UpdatedMp4SupportMp4Support](../models/updatedmp4supportmp4support.md) | :heavy_check_mark: | Determines the type of MP4 support for the media. - **none**: Disables MP4 support. - **capped_4k**: Enables MP4 downloads with resolutions up to 4K. - **audioOnly**: Provides an MP4 stream containing only the audio. - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
| capped_4k |
\ No newline at end of file
diff --git a/docs/models/updatedomainrestrictionsrequest.md b/docs/models/updatedomainrestrictionsrequest.md
index 91f5323..6fbb715 100644
--- a/docs/models/updatedomainrestrictionsrequest.md
+++ b/docs/models/updatedomainrestrictionsrequest.md
@@ -5,6 +5,6 @@
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | N/A | 5ebfa8f7-3ff1-4a35-8b1a-d3a16e22184c |
-| `playback_id` | *str* | :heavy_check_mark: | N/A | 0199deff-9aef-457e-9461-7a28afdf8773 |
+| `media_id` | *str* | :heavy_check_mark: | N/A | your-media-id |
+| `playback_id` | *str* | :heavy_check_mark: | N/A | your-playback-id |
| `body` | [models.UpdateDomainRestrictionsRequestBody](../models/updatedomainrestrictionsrequestbody.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/updatedsourceaccessrequest.md b/docs/models/updatedsourceaccessrequest.md
index 7a7d9a9..f997159 100644
--- a/docs/models/updatedsourceaccessrequest.md
+++ b/docs/models/updatedsourceaccessrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| your-media-id |
| `body` | [models.UpdatedSourceAccessRequestBody](../models/updatedsourceaccessrequestbody.md) | :heavy_check_mark: | N/A | {
"sourceAccess": true
} |
\ No newline at end of file
diff --git a/docs/models/updatelivestreamrequest.md b/docs/models/updatelivestreamrequest.md
index 2b341cd..7bdf4ea 100644
--- a/docs/models/updatelivestreamrequest.md
+++ b/docs/models/updatelivestreamrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 91a264dcc447b63da6fb79ef925cd76d |
-| `body` | [models.PatchLiveStreamRequest](../models/patchlivestreamrequest.md) | :heavy_check_mark: | N/A | {
"metadata": {
"livestream_name": "Gaming_stream"
},
"reconnectWindow": 100
} |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
+| `body` | [models.PatchLiveStreamRequest](../models/patchlivestreamrequest.md) | :heavy_check_mark: | N/A | {
"metadata": {
"livestream_name": "your-livestream-name"
},
"reconnectWindow": 100
} |
\ No newline at end of file
diff --git a/docs/models/updatemedia.md b/docs/models/updatemedia.md
index c54c2c9..91f9c71 100644
--- a/docs/models/updatemedia.md
+++ b/docs/models/updatemedia.md
@@ -5,17 +5,17 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `thumbnail` | *Optional[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `thumbnail` | *Optional[str]* | :heavy_minus_sign: | A video thumbnail is a still image that acts as the preview image for your video. | https://images.fastpix.com/your-playback-id/thumbnail.png |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier is generated by FastPix for the workspace. | 5ta85f64-5717-4562-b3fc-2c963f66afa6 |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"key1": "value1"
} |
| `media_quality` | [Optional[models.UpdateMediaMediaQuality]](../models/updatemediamediaquality.md) | :heavy_minus_sign: | The quality tier applied to the media. | standard |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
| `max_resolution` | [Optional[models.UpdateMediaMaxResolution]](../models/updatemediamaxresolution.md) | :heavy_minus_sign: | The maximum resolution specified by the user for the media. | 1080p |
| `source_resolution` | [Optional[models.UpdateMediaSourceResolution]](../models/updatemediasourceresolution.md) | :heavy_minus_sign: | The actual resolution of the uploaded media. This represents the native quality of the source media. | 1080p |
| `status` | [Optional[models.UpdateMediaStatus]](../models/updatemediastatus.md) | :heavy_minus_sign: | Determines the media's status, which can be one of the possible values. | preparing |
-| `mp4_support` | [Optional[models.UpdateMediaMp4Support]](../models/updatemediamp4support.md) | :heavy_minus_sign: | Determines the type of MP4 support for the media.
- **none**: Disables MP4 support.
- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- **audioOnly**: Provides an MP4 stream containing only the audio.
- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
| capped_4k |
+| `mp4_support` | [Optional[List[models.MediaMp4SupportEntry]]](../models/mediamp4supportentry.md) | :heavy_minus_sign: | The MP4 renditions generated for the media when MP4 support was requested. Each entry describes one downloadable rendition (for example, a capped-4K video file or an audio-only m4a file) along with its generation status. Omitted when no MP4 support has been requested.
| [{"type": "capped_4k", "status": "ready", "height": 1080, "width": 1920, "ext": "mp4"}] |
| `source_access` | *Optional[bool]* | :heavy_minus_sign: | The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it | true |
| `playback_ids` | List[[models.PlaybackID](../models/playbackid.md)] | :heavy_minus_sign: | A collection of Playback ID objects utilized for crafting HLS playback URLs. | |
| `tracks` | List[[models.UpdateMediaTrack](../models/updatemediatrack.md)] | :heavy_minus_sign: | A media consists of different media tracks, like video, audio, and subtitle, all combined. | |
diff --git a/docs/models/updatemediachaptersrequest.md b/docs/models/updatemediachaptersrequest.md
index 5b5e495..ec062d7 100644
--- a/docs/models/updatemediachaptersrequest.md
+++ b/docs/models/updatemediachaptersrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| your-media-id |
| `body` | [models.UpdateMediaChaptersRequestBody](../models/updatemediachaptersrequestbody.md) | :heavy_check_mark: | N/A | {
"chapters": true
} |
\ No newline at end of file
diff --git a/docs/models/updatemediamoderationrequest.md b/docs/models/updatemediamoderationrequest.md
index 816cf4c..4db99f8 100644
--- a/docs/models/updatemediamoderationrequest.md
+++ b/docs/models/updatemediamoderationrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| 0cec3c88-c69d-4232-9b96-f0976327fa2d |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| your-media-id |
| `body` | [models.UpdateMediaModerationRequestBody](../models/updatemediamoderationrequestbody.md) | :heavy_check_mark: | N/A | {
"moderation": {
"type": "video"
}
} |
\ No newline at end of file
diff --git a/docs/models/updatemediamp4support.md b/docs/models/updatemediamp4support.md
deleted file mode 100644
index 7c28893..0000000
--- a/docs/models/updatemediamp4support.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# UpdateMediaMp4Support
-
-Determines the type of MP4 support for the media.
-- **none**: Disables MP4 support.
-- **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
-- **audioOnly**: Provides an MP4 stream containing only the audio.
-- **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
-
-
-
-## Values
-
-| Name | Value |
-| ---------------------- | ---------------------- |
-| `NONE` | none |
-| `CAPPED_4K` | capped_4k |
-| `AUDIO_ONLY` | audioOnly |
-| `AUDIO_ONLY_CAPPED_4K` | audioOnly,capped_4k |
\ No newline at end of file
diff --git a/docs/models/updatemedianamedentitiesrequest.md b/docs/models/updatemedianamedentitiesrequest.md
index 69de8c4..6319cad 100644
--- a/docs/models/updatemedianamedentitiesrequest.md
+++ b/docs/models/updatemedianamedentitiesrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| 0cec3c88-c69d-4232-9b96-f0976327fa2d |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| your-media-id |
| `body` | [models.UpdateMediaNamedEntitiesRequestBody](../models/updatemedianamedentitiesrequestbody.md) | :heavy_check_mark: | N/A | {
"namedEntities": true
} |
\ No newline at end of file
diff --git a/docs/models/updatemediasummaryrequest.md b/docs/models/updatemediasummaryrequest.md
index 0281671..249f883 100644
--- a/docs/models/updatemediasummaryrequest.md
+++ b/docs/models/updatemediasummaryrequest.md
@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| your-media-id |
| `body` | [models.UpdateMediaSummaryRequestBody](../models/updatemediasummaryrequestbody.md) | :heavy_check_mark: | N/A | {
"generate": true,
"summaryLength": 100
} |
\ No newline at end of file
diff --git a/docs/models/updatemediatrackrequest.md b/docs/models/updatemediatrackrequest.md
index dfab3bc..367d18c 100644
--- a/docs/models/updatemediatrackrequest.md
+++ b/docs/models/updatemediatrackrequest.md
@@ -5,6 +5,6 @@
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `track_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `track_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-track-id |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `body` | [models.UpdateTrackRequest](../models/updatetrackrequest.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/updatespecificsimulcastofstreamrequest.md b/docs/models/updatespecificsimulcastofstreamrequest.md
index 4bf130e..4f29f22 100644
--- a/docs/models/updatespecificsimulcastofstreamrequest.md
+++ b/docs/models/updatespecificsimulcastofstreamrequest.md
@@ -5,6 +5,6 @@
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
-| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 9714422d89287ad5758d4a86e9afe1a2 |
-| `simulcast_id` | *str* | :heavy_check_mark: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | 8717422d89288ad5958d4a86e9afe2a2 |
-| `body` | [models.SimulcastUpdateRequest](../models/simulcastupdaterequest.md) | :heavy_check_mark: | N/A | {
"isEnabled": true,
"metadata": {
"simulcast_name": "Tech today"
}
} |
\ No newline at end of file
+| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
+| `simulcast_id` | *str* | :heavy_check_mark: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | your-simulcast-id |
+| `body` | [models.SimulcastUpdateRequest](../models/simulcastupdaterequest.md) | :heavy_check_mark: | N/A | {
"isEnabled": true,
"metadata": {
"simulcast_name": "your-livestream-name"
}
} |
\ No newline at end of file
diff --git a/docs/models/updatetrackrequest.md b/docs/models/updatetrackrequest.md
index d770ddf..28a6887 100644
--- a/docs/models/updatetrackrequest.md
+++ b/docs/models/updatetrackrequest.md
@@ -7,6 +7,6 @@ Contains details about the track being added to the media file.
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
-| `url` | *Optional[str]* | :heavy_minus_sign: | The direct URL of the track file. It must point to a valid audio or subtitle file. | http://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt |
| `language_code` | *Optional[str]* | :heavy_minus_sign: | The BCP 47 language code representing the track’s language. | fr |
-| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language corresponding to the `languageCode`. | French |
\ No newline at end of file
+| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language corresponding to the `languageCode`. | French |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | your-track-title |
\ No newline at end of file
diff --git a/docs/models/updatetrackresponse.md b/docs/models/updatetrackresponse.md
index 6589edf..89e1be9 100644
--- a/docs/models/updatetrackresponse.md
+++ b/docs/models/updatetrackresponse.md
@@ -7,8 +7,9 @@ Contains details about the track that was added or updated.
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
-| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the track. | a5833611-e92c-4ba9-89f0-a42f8e9aef5e |
+| `id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the track. | your-track-id |
| `type` | [Optional[models.UpdateTrackResponseType]](../models/updatetrackresponsetype.md) | :heavy_minus_sign: | Specifies the type of track (audio or subtitle). | subtitle |
| `url` | *Optional[str]* | :heavy_minus_sign: | The direct URL of the track file. | http://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt |
| `language_code` | *Optional[str]* | :heavy_minus_sign: | The BCP 47 language code representing the track's language. | fr |
-| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language corresponding to the `languageCode`. | french |
\ No newline at end of file
+| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language corresponding to the `languageCode`. | french |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | your-track-title |
\ No newline at end of file
diff --git a/docs/models/updateuseragentrestrictionsrequest.md b/docs/models/updateuseragentrestrictionsrequest.md
index 74d4dcb..d995dcb 100644
--- a/docs/models/updateuseragentrestrictionsrequest.md
+++ b/docs/models/updateuseragentrestrictionsrequest.md
@@ -5,6 +5,6 @@
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | N/A | 5ebfa8f7-3ff1-4a35-8b1a-d3a16e22184c |
-| `playback_id` | *str* | :heavy_check_mark: | N/A | 0199deff-9aef-457e-9461-7a28afdf8773 |
+| `media_id` | *str* | :heavy_check_mark: | N/A | your-media-id |
+| `playback_id` | *str* | :heavy_check_mark: | N/A | your-playback-id |
| `body` | [models.UpdateUserAgentRestrictionsRequestBody](../models/updateuseragentrestrictionsrequestbody.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/models/videotrack.md b/docs/models/videotrack.md
index c4c1571..d92e907 100644
--- a/docs/models/videotrack.md
+++ b/docs/models/videotrack.md
@@ -12,4 +12,5 @@ A media consists of different media tracks, like video, audio, and subtitle, all
| `width` | *Optional[float]* | :heavy_minus_sign: | Track width denotes the range of widths applicable to a specific track. Currently, this setting can be modified only for video tracks | 1920 |
| `height` | *Optional[float]* | :heavy_minus_sign: | Track height denotes the range of height applicable to a specific track. Currently, this setting can be modified only for video tracks. | 1080 |
| `frame_rate` | *Optional[str]* | :heavy_minus_sign: | Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. The indeterminable frame rate of the input file is indicated by a value of -1. | 30/1 |
-| `status` | *Optional[str]* | :heavy_minus_sign: | Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played. | available |
\ No newline at end of file
+| `status` | *Optional[str]* | :heavy_minus_sign: | Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played. | available |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | My track title |
\ No newline at end of file
diff --git a/docs/models/videotrackforgetall.md b/docs/models/videotrackforgetall.md
index a71eaa2..edfa70a 100644
--- a/docs/models/videotrackforgetall.md
+++ b/docs/models/videotrackforgetall.md
@@ -11,4 +11,5 @@ A media consists of different media tracks, like video, audio, and subtitle, all
| `type` | *Optional[str]* | :heavy_minus_sign: | Defines the type of input. This option is mandatory. | {
"enum": [
"video"
],
"availableValue": "video",
"possibleValue": "video, audio, subtitle"
} |
| `width` | *Optional[float]* | :heavy_minus_sign: | Track width denotes the range of widths applicable to a specific track. Currently, this setting can be modified only for video tracks | 1920 |
| `height` | *Optional[float]* | :heavy_minus_sign: | Track height denotes the range of height applicable to a specific track. Currently, this setting can be modified only for video tracks. | 1080 |
-| `status` | *Optional[str]* | :heavy_minus_sign: | Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played. | available |
\ No newline at end of file
+| `status` | *Optional[str]* | :heavy_minus_sign: | Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played. | available |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | My track title |
\ No newline at end of file
diff --git a/docs/models/views.md b/docs/models/views.md
index 3ae371a..8a60887 100644
--- a/docs/models/views.md
+++ b/docs/models/views.md
@@ -48,7 +48,7 @@ Displays the result of the request.
| `fp_playback_id` | *OptionalNullable[str]* | :heavy_minus_sign: | FastPix Playback ID refers to the unique identifier associated with the playback instance of a video, particularly used in FastPix Video Platform.
| |
| `fp_sdk` | *OptionalNullable[str]* | :heavy_minus_sign: | FastPix SDK Name identifies the name of the FastPix Player SDK utilized within the player workspace.
| shakaplayer-fastpix |
| `fp_sdk_version` | *OptionalNullable[str]* | :heavy_minus_sign: | FastPix SDK Version specifies the version of the FastPix Player SDK integrated into the player.
| 1.1.0 |
-| `fp_viewer_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Represents a unique, anonymized identifier assigned to each viewer by the FastPix SDK. This ID helps correlate multiple playback sessions or events to the same viewer across sessions or devices without exposing any personal information.
| cf4ab502-23ef-4927-ae55-89b2a319432f |
+| `fp_viewer_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Represents a unique, anonymized identifier assigned to each viewer by the FastPix SDK. This ID helps correlate multiple playback sessions or events to the same viewer across sessions or devices without exposing any personal information.
| your-view-id |
| `insert_timestamp` | *Optional[str]* | :heavy_minus_sign: | Insert Timestamp refers to the time instance when the view is started.
| 1710591342067 |
| `ip_address` | *Optional[str]* | :heavy_minus_sign: | Represents the IP address of the user or device that initiated the playback session.
| 124.123.136.94 |
| `jump_latency` | *OptionalNullable[float]* | :heavy_minus_sign: | Jump Latency refers to the delay or latency experienced when there is a jump or seek action performed by the viewer while watching a video.
| 2396 |
@@ -67,9 +67,9 @@ Displays the result of the request.
| `player_autoplay_on` | *Optional[bool]* | :heavy_minus_sign: | Player Autoplay On indicates whether the video player automatically initiated playback of the video content.
| true |
| `player_height` | [OptionalNullable[models.PlayerHeight]](../models/playerheight.md) | :heavy_minus_sign: | Player Height refers to the vertical dimension, measured in pixels, of the video player as it appears on the webpage.
| 2856 |
| `player_initialization_time` | *OptionalNullable[int]* | :heavy_minus_sign: | Player Initialization Time measures the duration, in milliseconds, from the initialization of the player within the webpage to its readiness to receive further instructions.
| 24 |
-| `player_instance_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Player Instance ID is a unique identifier that distinguishes each instance of the Player class created when initializing a video.
| f479de20-6a25-46a5-b394-9fbdb07ea6df |
+| `player_instance_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Player Instance ID is a unique identifier that distinguishes each instance of the Player class created when initializing a video.
| your-player-instance-id |
| `player_language` | *OptionalNullable[str]* | :heavy_minus_sign: | Player Language indicates the language used for text elements within the video player interface.
| |
-| `player_name` | *OptionalNullable[str]* | :heavy_minus_sign: | Player Name serves to differentiate various configurations or types of players used across the website or application.
| ChanaJor Player |
+| `player_name` | *OptionalNullable[str]* | :heavy_minus_sign: | Player Name serves to differentiate various configurations or types of players used across the website or application.
| your-player-name |
| `player_poster` | *OptionalNullable[str]* | :heavy_minus_sign: | Player Poster refers to the image displayed as a preview before the video playback begins.
| |
| `player_preload_on` | *Optional[bool]* | :heavy_minus_sign: | Player Preload On indicates whether the player is configured to preload the video content upon page load.
| true |
| `player_remote_played` | *Optional[bool]* | :heavy_minus_sign: | Player Remote Played specifies if the video is being remotely played to devices such as AirPlay or Chromecast, obtained from the SDK.
| false |
@@ -86,7 +86,7 @@ Displays the result of the request.
| `quality_of_experience_score` | *OptionalNullable[float]* | :heavy_minus_sign: | Quality Of Experience Score quantifies the overall viewer experience based on various metrics, providing a decimal score to assess the quality of the viewing experience.
| 0.922192410885397 |
| `region` | *OptionalNullable[str]* | :heavy_minus_sign: | Region denotes the geographical region of the viewer accessing the video content.
| Telangana |
| `render_quality_score` | *OptionalNullable[float]* | :heavy_minus_sign: | Render Quality Score is a decimal value representing the score indicating the perceived quality of the video.
| 1 |
-| `session_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Session ID refers to the unique identifier tracking a viewers session within the FastPix platform.
| 58a97574-da3f-473f-8904-08f9f01489c8 |
+| `session_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Session ID refers to the unique identifier tracking a viewers session within the FastPix platform.
| your-session-id |
| `sign` | *OptionalNullable[str]* | :heavy_minus_sign: | Represents a cryptographic signature used to verify the authenticity and integrity of the playback or API request within the FastPix platform. It ensures that the data has not been tampered with and originates from a trusted source.
| |
| `stability_score` | *OptionalNullable[float]* | :heavy_minus_sign: | Stability Score quantifies the smoothness of video playback, typically represented as a decimal value.
| 0.8320748 |
| `startup_score` | *OptionalNullable[float]* | :heavy_minus_sign: | Startup Score evaluates the startup performance of the player, usually represented as a decimal value
| 0.97811466 |
@@ -98,35 +98,35 @@ Displays the result of the request.
| `video_content_type` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Content Type specifies the classification of the video content.
| |
| `video_duration` | *OptionalNullable[int]* | :heavy_minus_sign: | Video Duration represents the length of the video, provided in milliseconds, typically supplied to FastPix through custom metadata.
| 588 |
| `video_encoding_variant` | *OptionalNullable[str]* | :heavy_minus_sign: | Indicates the specific encoding variant or rendition of the video being played, such as resolution, bitrate, or codec type. This helps identify which encoded version of the video was selected for playback.
| 1080p_h264 |
-| `video_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Video ID refers to an internal identifier assigned by the user or system to uniquely identify a particular video.
| 65b65e7e20ce0aaf6d7d5596 |
+| `video_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Video ID refers to an internal identifier assigned by the user or system to uniquely identify a particular video.
| your-video-id |
| `video_language` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Language denotes the primary audio language of the video content, assuming it remains unchanged after playback initiation.
| |
| `video_producer` | *OptionalNullable[str]* | :heavy_minus_sign: | Specifies the creator or source responsible for producing the video content.
| |
| `video_resolution` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Resolution refers to the resolution of the video being played.
| 1080X1920 |
-| `video_series` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Series denotes the name of a series to which the video content belongs.
| Propel 23 |
-| `video_source_domain` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Source Domain identifies the domain from which the video source originates.
| ibee.ai |
+| `video_series` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Series denotes the name of a series to which the video content belongs.
| your-video-series |
+| `video_source_domain` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Source Domain identifies the domain from which the video source originates.
| example.com |
| `video_source_duration` | *OptionalNullable[int]* | :heavy_minus_sign: | Video Source Duration represents the duration of the video source content, measured in milliseconds.
| 771090 |
-| `video_source_hostname` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Source Hostname represents the hostname of the video.
| ott-sandbox-cdn.ibee.ai |
+| `video_source_hostname` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Source Hostname represents the hostname of the video.
| cdn.example.com |
| `video_source_stream_type` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Source Stream Type denotes the type of stream used by the player, although it is currently unused.
| on-demand |
| `video_source_type` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Source Type denotes the format of the video source as determined by the player.
| application/dash+xml |
-| `video_source_url` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Source URL refers to the URL of the video source accessed by the player.
| https://ott-sandbox-cdn.ibee.ai/videos/650801bd148907a509076b99/650801bd148907a509076b99_h264.mpd |
+| `video_source_url` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Source URL refers to the URL of the video source accessed by the player.
| https://cdn.example.com/videos/your-video-id/your-video-id_h264.mpd |
| `video_startup_failed` | *Optional[bool]* | :heavy_minus_sign: | Video Startup Failure is a boolean metric indicating whether a viewer encountered an error before the first frame of the video commenced playback.
| false |
| `video_startup_time` | *OptionalNullable[int]* | :heavy_minus_sign: | Video Startup Time measures the duration, in milliseconds, from the initialization of the player within the webpage to its readiness to receive further instructions.
| 209 |
-| `video_title` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Title refers to the title of the video content being viewed.
| Cycle |
+| `video_title` | *OptionalNullable[str]* | :heavy_minus_sign: | Video Title refers to the title of the video content being viewed.
| your-video-title |
| `video_variant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Represents the unique identifier for the specific video variant or rendition being played. Each variant corresponds to a particular encoding configuration, such as resolution or bitrate, used for adaptive streaming and performance tracking.
| |
| `video_variant_name` | *OptionalNullable[str]* | :heavy_minus_sign: | Specifies the human-readable name of the video variant or rendition being played (for example, “1080p H.264” or “720p AV1”). This helps identify the playback quality or encoding configuration selected during streaming.
| |
| `view_end` | *OptionalNullable[str]* | :heavy_minus_sign: | View End refers to the date and time, in Coordinated Universal Time (UTC), when the video viewing session concluded.
| 1710591342067 |
| `view_has_ad` | *Optional[bool]* | :heavy_minus_sign: | View Has Ad is a boolean metric indicating whether an advertisement played or attempted to play during the video view.
| false |
| `view_has_error` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether any playback error occurred during the video view. This boolean flag helps identify failed or interrupted playback sessions caused by player, network, or media-related issues.
| false |
-| `view_id` | *Optional[str]* | :heavy_minus_sign: | View ID is a unique identifier assigned to each individual video viewing session.
| 36935287-5d08-47a0-9365-5eaa150fc4fa |
+| `view_id` | *Optional[str]* | :heavy_minus_sign: | View ID is a unique identifier assigned to each individual video viewing session.
| your-view-id |
| `view_max_playhead_position` | *OptionalNullable[int]* | :heavy_minus_sign: | View Max Playhead Position represents the furthest point reached by the playhead during the video view, measured in milliseconds.
| 2524 |
-| `view_page_url` | *OptionalNullable[str]* | :heavy_minus_sign: | View Page URL denotes the URL address of the web page where the video content is being accessed.
| https://chanajor.com/player/659d7de2500fe544eb2706da_1_1?time=66 |
+| `view_page_url` | *OptionalNullable[str]* | :heavy_minus_sign: | View Page URL denotes the URL address of the web page where the video content is being accessed.
| https://example.com/player/659d7de2500fe544eb2706da_1_1?time=66 |
| `view_playing_time` | *OptionalNullable[int]* | :heavy_minus_sign: | Playing Time denotes the total duration of time the video content was actively playing during the view, excluding time spent buffering, seeking, or joining.
| 523657 |
| `view_seeked_count` | *OptionalNullable[int]* | :heavy_minus_sign: | View Seeked Count signifies the number of times the viewer attempted to seek to a new location within the video.
| 1 |
| `view_seeked_duration` | *OptionalNullable[int]* | :heavy_minus_sign: | View Seeked Duration indicates the total duration of time spent waiting for playback to resume after the viewer seeks to a new location. Seek Latency metric in the Dashboard is derived by dividing this value by the view_seek_count.
| 809 |
-| `view_session_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Represents the unique identifier assigned to a single playback session within FastPix. This ID is used to correlate all playback events, errors, and metrics that occur during the same viewing session.
| 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `view_session_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Represents the unique identifier assigned to a single playback session within FastPix. This ID is used to correlate all playback events, errors, and metrics that occur during the same viewing session.
| your-session-id |
| `view_start` | *OptionalNullable[str]* | :heavy_minus_sign: | View Start refers to the date and time, in Coordinated Universal Time (UTC), when the video viewing session commenced.
| 1710591342067 |
| `view_total_content_playback_time` | *OptionalNullable[int]* | :heavy_minus_sign: | View Total Content Playback Time represents the cumulative duration of video content watched by the viewer, measured in milliseconds. This metric is internally utilized to calculate upscale and downscale percentages.
| 22358 |
-| `viewer_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Viewer ID refers to a customer-defined identifier representing the viewer who is watching the video stream. It must be anonymized and not contain any personally identifiable information.
| 649c5098ba7cb499f5e1041f |
+| `viewer_id` | *OptionalNullable[str]* | :heavy_minus_sign: | Viewer ID refers to a customer-defined identifier representing the viewer who is watching the video stream. It must be anonymized and not contain any personally identifiable information.
| your-viewer-id |
| `watch_time` | *OptionalNullable[int]* | :heavy_minus_sign: | Total Watch Time denotes the total duration of video content watched by the viewer, encompassing startup time, playing time, and potential rebuffering time, measured in milliseconds.
| 4307 |
-| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | It is a unique identifier associated with a specific workspace within the FastPix platform.
| c08f55f8-92e1-4e17-9475-bc9024a07f78 |
+| `workspace_id` | *Optional[str]* | :heavy_minus_sign: | It is a unique identifier associated with a specific workspace within the FastPix platform.
| your-workspace-id |
| `events` | List[[models.Event](../models/event.md)] | :heavy_minus_sign: | Events specifies the order of events journey of the video playback
| {
"availableValue": [
{
"event_name": "playing",
"event_time": 1710591342067,
"viewer_time": 1710591347846,
"playback_time": 8990,
"details": {}
},
{
"event_name": "rendition_change",
"event_time": 1710591942067,
"viewer_time": 1710592342067,
"playback_time": 8990,
"details": {
"player_source_bitrate": 7837883,
"player_source_codec": "avc1.4d4028",
"player_source_height": 1920,
"player_source_width": 1080
}
}
]
} |
\ No newline at end of file
diff --git a/docs/models/viewslist.md b/docs/models/viewslist.md
index b21ff25..ba68ecc 100644
--- a/docs/models/viewslist.md
+++ b/docs/models/viewslist.md
@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `view_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier for the viewing session of the user.
| 550e8400-e29b-41d4-a716-446655440000 |
+| `view_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier for the viewing session of the user.
| your-view-id |
| `operating_system` | *OptionalNullable[str]* | :heavy_minus_sign: | Operating System signifies the software platform utilized by the viewer
| macOs |
| `application` | *OptionalNullable[str]* | :heavy_minus_sign: | The browser name of the viewer.
| chrome |
| `view_start_time` | *OptionalNullable[str]* | :heavy_minus_sign: | The start timestamp of the video view.
| 2023-12-06T08:04:14Z |
diff --git a/docs/sdks/dimensions/README.md b/docs/sdks/dimensions/README.md
index 3ebf451..cebabee 100644
--- a/docs/sdks/dimensions/README.md
+++ b/docs/sdks/dimensions/README.md
@@ -36,7 +36,7 @@ with Fastpix(
res = fastpix.dimensions.list_dimensions()
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -87,7 +87,7 @@ with Fastpix(
res = fastpix.dimensions.list_filter_values_for_dimension(dimensions_id="browser_name", timespan="24:hours", filterby="browser_name:Chrome")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/drmconfigurations/README.md b/docs/sdks/drmconfigurations/README.md
index 8aca0d9..4b90516 100644
--- a/docs/sdks/drmconfigurations/README.md
+++ b/docs/sdks/drmconfigurations/README.md
@@ -40,7 +40,7 @@ with Fastpix(
res = fastpix.drm_configurations.get_drm_configuration(offset=1, limit=10)
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -91,7 +91,7 @@ with Fastpix(
res = fastpix.drm_configurations.get_drm_configuration_by_id(drm_configuration_id="your-drm-configuration-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/errors/README.md b/docs/sdks/errors/README.md
index ba4eafd..a138f29 100644
--- a/docs/sdks/errors/README.md
+++ b/docs/sdks/errors/README.md
@@ -45,7 +45,7 @@ with Fastpix(
res = fastpix.errors.list_errors(timespan="24:hours", filterby="browser_name:Chrome", limit=1)
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/inputvideo/README.md b/docs/sdks/inputvideo/README.md
index 86bc62e..b0fd135 100644
--- a/docs/sdks/inputvideo/README.md
+++ b/docs/sdks/inputvideo/README.md
@@ -39,9 +39,9 @@ Upon successful creation, the API returns an `id` that must be retained for futu
4. Use the id in subsequent API calls, such as checking the status of the media with the Get Media by ID endpoint to determine when the media is ready for playback.
-FastPix uses webhooks to tell your application about things that happen in the background, outside of the API regular request flow. For instance, after the media file is created (but not yet processed or encoded), FastPix sends a `POST` request to your specified webhook URL with the event video.media.created.
+FastPix uses webhooks to tell your application about things that happen in the background, outside of the API regular request flow. For instance, after the media file is created (but not yet processed or encoded), FastPix sends a `POST` request to your specified webhook URL with the event video.media.created.
-After processing completes, monitor the events video.media.ready and video.media.failed to track the status of the media file.
+After processing completes, monitor the events video.media.ready and video.media.failed to track the status of the media file.
Related guide: Upload videos from URL
@@ -88,7 +88,7 @@ with Fastpix(
)
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -98,9 +98,9 @@ with Fastpix(
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `inputs` | List[[models.CreateMediaRequestInput](../../models/createmediarequestinput.md)] | :heavy_check_mark: | Add one input object at a time. For example, first add a **VideoInput** object. If you also need a watermark, click **Add item** again and select **WatermarkInput**. Repeat this process for **AudioInput** or **SubtitleInput** as needed. For a complete explanation of how media uploads from URL and processing work, refer to the
FastPix Video on Demand Overview.
| |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
-| `drm_configuration_id` | *Optional[str]* | :heavy_minus_sign: | UUID of the DRM configuration to be used | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `drm_configuration_id` | *Optional[str]* | :heavy_minus_sign: | UUID of the DRM configuration to be used | your-drm-configuration-id |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
| `subtitles` | [Optional[models.Subtitles]](../../models/subtitles.md) | :heavy_minus_sign: | Generates subtitle files for audio/video files.
| |
| `access_policy` | [Optional[models.CreateMediaRequestAccessPolicy]](../../models/createmediarequestaccesspolicy.md) | :heavy_minus_sign: | Determines whether access to the streamed content is kept private or available to all.
| public |
| `mp4_support` | [Optional[models.CreateMediaRequestMp4Support]](../../models/createmediarequestmp4support.md) | :heavy_minus_sign: | "capped_4k": Generates an mp4 video file up to 4k resolution "audioOnly": Generates an m4a audio file of the media file "audioOnly,capped_4k": Generates both video and audio media files for offline viewing
| capped_4k |
@@ -178,7 +178,7 @@ with Fastpix(
})
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/invideoai/README.md b/docs/sdks/invideoai/README.md
index e3d4173..732b060 100644
--- a/docs/sdks/invideoai/README.md
+++ b/docs/sdks/invideoai/README.md
@@ -15,11 +15,11 @@ This endpoint enables you to generate chapters for an existing media file.
2. Include the `chapters` parameter in the request body to enable.
3. The response contains the updated media data, confirming the changes made.
-You can use the video.mediaAI.chapters.ready webhook event to track and notify about the chapters generation.
+You can use the video.mediaAI.chapters.ready webhook event to track and notify about the chapters generation.
**Use case:** This is particularly useful when a user uploads a video and later decides to enable chapters without re-uploading the entire video.
-Related guide: Video chapters
+Related guide: Video chapters
### Example Usage
@@ -41,7 +41,7 @@ with Fastpix(
res = fastpix.in_video_ai_features.update_media_chapters(media_id="your-media-id", chapters=True )
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/invideoaifeatures/README.md b/docs/sdks/invideoaifeatures/README.md
index a35294a..1ac6d50 100644
--- a/docs/sdks/invideoaifeatures/README.md
+++ b/docs/sdks/invideoaifeatures/README.md
@@ -18,11 +18,11 @@ This endpoint allows you to generate the summary for an existing media.
3. Include the `summaryLength` parameter, specify the desired length of the summary in words (for example, 120 words), this determines how concise or detailed the summary will be. If no specific summary length is provided, the default length will be 100 words.
4. The response includes the updated media data and confirmation of the changes applied.
-You can use the video.mediaAI.summary.ready webhook event to track and notify about the summary generation.
+You can use the video.mediaAI.summary.ready webhook event to track and notify about the summary generation.
**Use case**: This is particularly useful when a user uploads a video and later chooses to generate a summary without needing to re-upload the video.
-Related guide: Video summary
+Related guide: Video summary
### Example Usage
@@ -45,7 +45,7 @@ with Fastpix(
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -77,11 +77,11 @@ This endpoint enables moderation features, such as NSFW and profanity filtering,
2. Include the `moderation` object and provide the requried `type` parameter in the request body to specify the media type (for example, video/audio/av).
4. The response contains the updated media data, confirming the changes made.
-You can use the video.mediaAI.moderation.ready webhook event to track and notify about the detected moderation results.
+You can use the video.mediaAI.moderation.ready webhook event to track and notify about the detected moderation results.
**Use case:** This is particularly useful when a user uploads a video and later decides to enable moderation detection without the need to re-upload it.
-Related guide: Moderate NSFW & Profanity
+Related guide: Moderate NSFW & Profanity
### Example Usage
@@ -104,7 +104,7 @@ with Fastpix(
})
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -112,7 +112,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| 0cec3c88-c69d-4232-9b96-f0976327fa2d |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| your-media-id |
| `moderation` | [Optional[models.UpdateMediaModerationModeration]](../../models/updatemediamoderationmoderation.md) | :heavy_minus_sign: | N/A | |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
@@ -140,11 +140,11 @@ Named Entity Recognition (NER) is a fundamental natural language processing (NLP
2. Include the `namedEntities` parameter in the request body to enable.
3. Receive a response containing the updated media data, confirming the changes made.
-You can use the video.mediaAI.named-entities.ready webhook event to track and notify about the named entities extraction.
+You can use the video.mediaAI.named-entities.ready webhook event to track and notify about the named entities extraction.
**Use case:** If a user uploads a video and later decides to enable named entity extraction without re-uploading the entire video.
-Related guide: Named entities
+Related guide: Named entities
### Example Usage
@@ -167,7 +167,7 @@ with Fastpix(
res = fastpix.in_video_ai_features.update_media_named_entities(media_id="your-media-id", named_entities=True)
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -175,7 +175,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| 0cec3c88-c69d-4232-9b96-f0976327fa2d |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| your-media-id |
| `named_entities` | *bool* | :heavy_check_mark: | Enable or disable named entity extraction. Set to `true` to enable or `false` to disable.
| true |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
diff --git a/docs/sdks/liveplayback/README.md b/docs/sdks/liveplayback/README.md
index 968e48a..a3a3cc6 100644
--- a/docs/sdks/liveplayback/README.md
+++ b/docs/sdks/liveplayback/README.md
@@ -37,7 +37,7 @@ with Fastpix(
res = fastpix.live_playback.create_playback_id_of_stream(stream_id="your-stream-id", access_policy="public")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -88,7 +88,7 @@ with Fastpix(
)
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -133,10 +133,10 @@ with Fastpix(
),
) as fastpix:
- res = fastpix.live_playback.get_live_stream_playback_id(stream_id="61a264dcc447b63da6fb79ef925cd76d", playback_id="61a264dcc447b63da6fb79ef925cd76d")
+ res = fastpix.live_playback.get_live_stream_playback_id(stream_id="your-stream-id", playback_id="your-playback-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -144,8 +144,8 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 61a264dcc447b63da6fb79ef925cd76d |
-| `playback_id` | *str* | :heavy_check_mark: | After creating a new playbackId, FastPix assigns a unique identifier to the playback. | 61a264dcc447b63da6fb79ef925cd76d |
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
+| `playback_id` | *str* | :heavy_check_mark: | After creating a new playbackId, FastPix assigns a unique identifier to the playback. | your-playback-id |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
diff --git a/docs/sdks/livestreams/README.md b/docs/sdks/livestreams/README.md
index 5d92285..4c5ddd4 100644
--- a/docs/sdks/livestreams/README.md
+++ b/docs/sdks/livestreams/README.md
@@ -36,7 +36,7 @@ with Fastpix(
res = fastpix.manage_live_stream.get_all_streams(limit=20, offset=1, order_by="desc")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -84,10 +84,10 @@ with Fastpix(
),
) as fastpix:
- res = fastpix.manage_live_stream.get_live_stream_by_id(stream_id="61a264dcc447b63da6fb79ef925cd76d")
+ res = fastpix.manage_live_stream.get_live_stream_by_id(stream_id="your-stream-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -95,7 +95,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 61a264dcc447b63da6fb79ef925cd76d |
+| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -141,7 +141,7 @@ with Fastpix(
res = fastpix.manage_live_stream.enable_live_stream(stream_id="your-stream-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -149,7 +149,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 91a264dcc447b63da6fb79ef925cd76d |
+| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -193,7 +193,7 @@ with Fastpix(
res = fastpix.manage_live_stream.disable_live_stream(stream_id="your-stream-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -201,7 +201,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 91a264dcc447b63da6fb79ef925cd76d |
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
diff --git a/docs/sdks/managelivestream/README.md b/docs/sdks/managelivestream/README.md
index f9b6db6..0b0c98b 100644
--- a/docs/sdks/managelivestream/README.md
+++ b/docs/sdks/managelivestream/README.md
@@ -36,10 +36,10 @@ with Fastpix(
),
) as fastpix:
- res = fastpix.manage_live_stream.get_live_stream_viewer_count_by_id(stream_id="61a264dcc447b63da6fb79ef925cd76d")
+ res = fastpix.manage_live_stream.get_live_stream_viewer_count_by_id(stream_id="your-stream-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -47,7 +47,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 61a264dcc447b63da6fb79ef925cd76d |
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -90,12 +90,12 @@ with Fastpix(
res = fastpix.manage_live_stream.update_live_stream(stream_id="your-stream-id", metadata={
- "livestream_name": "Gaming_stream",
+ "livestream_name": "your-livestream-name",
}, reconnect_window=100)
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -103,8 +103,8 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | 91a264dcc447b63da6fb79ef925cd76d |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"livestream_name": "Gaming_stream"
} |
+| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed. | {
"livestream_name": "your-livestream-name"
} |
| `reconnect_window` | *Optional[int]* | :heavy_minus_sign: | In case the software streaming the live, gets disrupted for any reason and gets disconnected from FastPix, the reconnect window defines the duration FastPix waits before automatically terminating the stream. Before starting the stream, you can set the reconnect window time which is up to 1800 seconds. | 60 |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
@@ -148,10 +148,10 @@ with Fastpix(
),
) as fastpix:
- res = fastpix.manage_live_stream.complete_live_stream(stream_id="91a264dcc447b63da6fb79ef925cd76d")
+ res = fastpix.manage_live_stream.complete_live_stream(stream_id="your-stream-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -159,7 +159,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
-| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 91a264dcc447b63da6fb79ef925cd76d |
+| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
diff --git a/docs/sdks/managevideos/README.md b/docs/sdks/managevideos/README.md
index b13f852..f213eef 100644
--- a/docs/sdks/managevideos/README.md
+++ b/docs/sdks/managevideos/README.md
@@ -43,7 +43,7 @@ with Fastpix(
res = fastpix.manage_videos.list_media(limit=20, offset=1, order_by="desc")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -78,7 +78,7 @@ This endpoint allows you to update specific parameters of an existing media file
3. The response returns the updated media data, confirming the changes.
-4. Monitor the video.media.updated webhook event to track the update status in your system.
+4. Monitor the video.media.updated webhook event to track the update status in your system.
#### Example
If a user uploads a video and later needs to change the title, add a new description, or update tags, you can use this endpoint to update the media metadata without re-uploading the entire video.
@@ -101,12 +101,12 @@ with Fastpix(
res = fastpix.manage_videos.updated_media(media_id="your-media-id", metadata={
- "user": "fastpix_admin",
+ "user": "your-metadata-value",
})
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -114,10 +114,10 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | N/A | {
"user": "fastpix_admin"
} |
-| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | My Video Title |
-| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | 8fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | N/A | {
"user": "your-metadata-value"
} |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the media file. | your-video-title |
+| `creator_id` | *Optional[str]* | :heavy_minus_sign: | The unique identifier of the user who created this media. | your-creator-id |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -141,7 +141,7 @@ This endpoint allows you to cancel ongoing upload by its `uploadId`. Once cancel
#### Webhook Events
-Once the upload is cancelled, you must receive the webhook event video.media.upload.cancelled.
+Once the upload is cancelled, you must receive the webhook event video.media.upload.cancelled.
#### Example
@@ -167,7 +167,7 @@ with Fastpix(
res = fastpix.manage_videos.cancel_upload(upload_id="your-upload-id")
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -175,7 +175,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
-| `upload_id` | *str* | :heavy_check_mark: | When uploading the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `upload_id` | *str* | :heavy_check_mark: | When uploading the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters. | your-upload-id |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -202,11 +202,11 @@ This endpoint allows you to generate subtitles for an existing audio track in a
#### Webhook Events
-1. After the subtitle track is generated and ready, you receive the webhook event video.media.subtitle.generated.ready.
+1. After the subtitle track is generated and ready, you receive the webhook event video.media.subtitle.generated.
-2. Finally the video.media.updated event notifies your system about the media’s updated status.
+2. Finally the video.media.updated event notifies your system about the media’s updated status.
- Related guide: Add auto-generated subtitles
+ Related guide: Add auto-generated subtitles
### Example Usage
@@ -225,12 +225,12 @@ with Fastpix(
) as fastpix:
- res = fastpix.manage_videos.generate_subtitle_track(media_id="your-media-id", track_id="your-track0-id", language_name="Italian", metadata={
+ res = fastpix.manage_videos.generate_subtitle_track(media_id="your-media-id", track_id="your-track0-id", language_name="your-langugae-name", metadata={
"key1": "value1",
})
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -238,8 +238,8 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `track_id` | *str* | :heavy_check_mark: | A universally unique identifier (UUID) assigned to the specific track for which subtitles must be generated. | d46f5df9-1a8f-4f0a-b56e-9f5b5d5b9e21 |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
+| `track_id` | *str* | :heavy_check_mark: | A universally unique identifier (UUID) assigned to the specific track for which subtitles must be generated. | your-track-id |
| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language used to generate the subtitles. | English |
| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
| {
"key1": "value1"
} |
| `language_code` | [Optional[models.LanguageCode]](../../models/languagecode.md) | :heavy_minus_sign: | Language code for content localization | en-US |
@@ -286,10 +286,10 @@ with Fastpix(
),
) as fastpix:
- res = fastpix.manage_videos.get_summary(media_id="fc733e3f-2fba-4c3d-9388-2511dc50d15f")
+ res = fastpix.manage_videos.get_summary(media_id="your-media-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -297,7 +297,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | fc733e3f-2fba-4c3d-9388-2511dc50d15f |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -321,7 +321,7 @@ This endpoint allows you to update the `sourceAccess` setting of an existing med
2. Include the updated `sourceAccess` parameter in the request body.
3. You receive a response confirming the update to the media’s source access status.
-4. Webhook events: video.media.source.ready, video.media.source.deleted
+4. Webhook events: video.media.source.ready, video.media.source.deleted
### Example Usage
@@ -343,7 +343,7 @@ with Fastpix(
res = fastpix.manage_videos.updated_source_access(media_id="your-media-id", source_access=True)
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -351,7 +351,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| your-media-id |
| `source_access` | *bool* | :heavy_check_mark: | The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it. | true |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
@@ -389,7 +389,7 @@ This endpoint allows you to update the `mp4Support` setting of an existing media
#### Webhook events
-- video.media.mp4Support.ready – Triggered when the MP4 support setting is successfully updated.
+- video.media.mp4Support.ready – Triggered when the MP4 support setting is successfully updated.
#### Example
Suppose you have a video uploaded to the FastPix platform, and you want to allow users to download the video in MP4 format. By setting "mp4Support": "capped_4k", the system generates an MP4 rendition of the video up to 4K resolution, making it available for download through the stream URL(`https://stream.fastpix.com/{playbackId}/{capped-4k.mp4 | audio.m4a}`). If you want users to stream only the audio from the media file, you can set "mp4Support": "audioOnly". This provides an audio-only stream URL that allows users to listen to the media without video. By setting "mp4Support": "audioOnly,capped_4k", both options are enabled. Users can download the MP4 video and also stream just the audio version of the media.
@@ -415,7 +415,7 @@ with Fastpix(
res = fastpix.manage_videos.updated_mp4_support(media_id="your-media-id", mp4_support="capped_4k")
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -423,8 +423,8 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `mp4_support` | [Optional[models.UpdatedMp4SupportMp4Support]](../../models/updatedmp4supportmp4support.md) | :heavy_minus_sign: | Determines the type of MP4 support for the media. - **none**: Disables MP4 support. - **capped_4k**: Enables MP4 downloads with resolutions up to 4K. - **audioOnly**: Provides an MP4 stream containing only the audio. - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
| capped_4k |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID.
| your-media-id |
+| `mp4_support` | [models.UpdatedMp4SupportMp4Support](../../models/updatedmp4supportmp4support.md) | :heavy_check_mark: | Determines the type of MP4 support for the media. - **none**: Disables MP4 support. - **capped_4k**: Enables MP4 downloads with resolutions up to 4K. - **audioOnly**: Provides an MP4 stream containing only the audio. - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
| capped_4k |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -473,7 +473,7 @@ with Fastpix(
res = fastpix.manage_videos.list_uploads(limit=20, offset=1, order_by="desc")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/mediasdk/README.md b/docs/sdks/mediasdk/README.md
index 1b4d63a..163e8de 100644
--- a/docs/sdks/mediasdk/README.md
+++ b/docs/sdks/mediasdk/README.md
@@ -21,7 +21,7 @@ Retrieves a list of all media clips generated from a specific livestream. Each m
#### Use case
Suppose you’re hosting a live gaming event and want to showcase key moments from the stream — such as top plays or final match highlights. You can use this endpoint to fetch all clips generated from that livestream, display them in your dashboard, or use them for post-event editing and sharing.
-Related guide: Instant live clipping
+Related guide: Instant live clipping
### Example Usage
@@ -39,10 +39,10 @@ with Fastpix(
),
) as fastpix:
- res = fastpix.manage_videos.list_live_clips(livestream_id="b6f71268143f70c798a7851a0a92dcbf", limit=20, offset=1, order_by="desc")
+ res = fastpix.manage_videos.list_live_clips(livestream_id="your-stream-id", limit=20, offset=1, order_by="desc")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -50,7 +50,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `livestream_id` | *str* | :heavy_check_mark: | The stream Id is unique identifier assigned to the live stream. | b6f71268143f70c798a7851a0a92dcbf |
+| `livestream_id` | *str* | :heavy_check_mark: | The stream Id is unique identifier assigned to the live stream. | your-stream-id |
| `limit` | *Optional[int]* | :heavy_minus_sign: | Limit specifies the maximum number of items to display per page. | 20 |
| `offset` | *Optional[int]* | :heavy_minus_sign: | Offset determines the starting point for data retrieval within a paginated list. | 1 |
| `order_by` | [Optional[models.SortOrder]](../../models/sortorder.md) | :heavy_minus_sign: | The values in the list can be arranged in two ways: DESC (Descending) or ASC (Ascending). | desc |
@@ -103,7 +103,7 @@ with Fastpix(
res = fastpix.manage_videos.get_media(media_id="your-media-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -159,7 +159,7 @@ with Fastpix(
res = fastpix.manage_videos.retrieve_media_input_info(media_id="your-media-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/mediatracks/README.md b/docs/sdks/mediatracks/README.md
index ba27d8c..071151d 100644
--- a/docs/sdks/mediatracks/README.md
+++ b/docs/sdks/mediatracks/README.md
@@ -9,7 +9,7 @@
## add_media_track
-This endpoint allows you to add an audio or subtitle track to an existing media file using its `mediaId`. You need to provide the track `url` along with its `type` (audio or subtitle), `languageName` and `languageCode` in the request payload.
+This endpoint allows you to add an audio or subtitle track to an existing media file using its `mediaId`. You need to provide the track `url` along with its `type` (audio or subtitle), `languageName` and `languageCode` in the request payload. You can optionally provide a `title` for the track.
#### How it works
@@ -21,16 +21,16 @@ This endpoint allows you to add an audio or subtitle track to an existing media
#### Webhook events
-1. After successfully adding a track, your system must receive the webhook event video.media.track.created.
+1. After successfully adding a track, your system must receive the webhook event video.media.track.created.
-2. Once the track is processed and ready, you must receive the webhook event video.media.track.ready.
+2. Once the track is processed and ready, you must receive the webhook event video.media.track.ready.
-3. Finally, an update event video.media.updated must notify your system about the media's updated status.
+3. Finally, an update event video.media.updated must notify your system about the media's updated status.
#### Example
-Suppose you have a video uploaded to the FastPix platform, and you want to add an Italian audio track to it. By calling this API, you can attach an external audio file (https://static.fastpix.com/music-1.mp3) to the media file. Similarly, if you need to add subtitles in different languages, you can specify type: `subtitle` with the corresponding subtitle `url`, `languageCode` and `languageName`.
+Suppose you have a video uploaded to the FastPix platform, and you want to add an your-track-title track to it. By calling this API, you can attach an external audio file (https://static.fastpix.com/music-1.mp3) to the media file. Similarly, if you need to add subtitles in different languages, you can specify type: `subtitle` with the corresponding subtitle `url`, `languageCode` and `languageName`.
-Related guides: Add own subtitle tracks, Add own audio tracks
+Related guides: Add own subtitle tracks, Add own audio tracks
### Example Usage
@@ -51,7 +51,7 @@ with Fastpix(
res = fastpix.manage_videos.add_media_track(media_id="your-media-id", tracks={})
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -75,7 +75,7 @@ with Fastpix(
## update_media_track
-This endpoint allows you to update an existing audio or subtitle track associated with a media file. When updating a track, you must provide the new track `url`, `languageName`, and `languageCode`, ensuring all three parameters are included in the request.
+This endpoint allows you to update an existing audio or subtitle track associated with a media file. When updating a track, you must provide the new `languageName` and `languageCode`, ensuring both parameters are included in the request. You can optionally provide a `title` for the track.
#### How it works
@@ -89,11 +89,11 @@ This endpoint allows you to update an existing audio or subtitle track associate
After updating a track, your system must receive webhook notifications:
-1. After successfully updating a track, your system must receive the webhook event video.media.track.updated.
+1. After successfully updating a track, your system must receive the webhook event video.media.track.updated.
-2. Once the new track is processed and ready, you must receive the webhook event video.media.track.ready.
+2. Once the new track is processed and ready, you must receive the webhook event video.media.track.ready.
-3. Once the media file is updated with the new track details, a video.media.updated event must be triggered.
+3. Once the media file is updated with the new track details, a video.media.updated event must be triggered.
#### Example
Suppose you previously added a French subtitle track to a video but now need to update it with a different file. By calling this API, you can replace the existing subtitle file (.vtt) with a new one while keeping the same track ID. This is useful when:
@@ -101,7 +101,7 @@ Suppose you previously added a French subtitle track to a video but now need to
- The original track file has errors and needs correction.
- You want to improve subtitle translations or replace an audio track with a better-quality version.
-Related guides: Add own subtitle tracks, Add own audio tracks
+Related guides: Add own subtitle tracks, Add own audio tracks
### Example Usage
@@ -120,11 +120,11 @@ with Fastpix(
) as fastpix:
- res = fastpix.manage_videos.update_media_track(track_id="your-track-id", media_id="your-media-id", url="http://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt", language_code="fr", language_name="french")
+ res = fastpix.manage_videos.update_media_track(track_id="your-track-id", media_id="your-media-id", language_code="fr", language_name="french", title="your-track-title")
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -134,9 +134,9 @@ with Fastpix(
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `track_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-track-id |
| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
-| `url` | *Optional[str]* | :heavy_minus_sign: | The direct URL of the track file. It must point to a valid audio or subtitle file. | http://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt |
| `language_code` | *Optional[str]* | :heavy_minus_sign: | The BCP 47 language code representing the track’s language. | fr |
| `language_name` | *Optional[str]* | :heavy_minus_sign: | The full name of the language corresponding to the `languageCode`. | French |
+| `title` | *Optional[str]* | :heavy_minus_sign: | Title of the track. | your-track-title |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
diff --git a/docs/sdks/metrics/README.md b/docs/sdks/metrics/README.md
index bfb6f6d..60187a8 100644
--- a/docs/sdks/metrics/README.md
+++ b/docs/sdks/metrics/README.md
@@ -60,7 +60,7 @@ with Fastpix(
res = fastpix.metrics.list_breakdown_values(metric_id="quality_of_experience_score", timespan="24:hours", filterby="browser_name:Chrome", limit=10, offset=1, group_by="browser_name", order_by="views", sort_order="asc", measurement="avg")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -131,7 +131,7 @@ with Fastpix(
res = fastpix.metrics.list_overall_values(metric_id="quality_of_experience_score", measurement="avg", timespan="24:hours", filterby="browser_name:Chrome")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -184,7 +184,7 @@ with Fastpix(
res = fastpix.metrics.get_timeseries_data(metric_id="quality_of_experience_score", group_by="minute", sort_order="asc", measurement="avg", timespan="24:hours", filterby="browser_name:Chrome")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -252,7 +252,7 @@ with Fastpix(
res = fastpix.metrics.list_comparison_values(timespan="24:hours", filterby="browser_name:Chrome", dimension="browser_name", value="Chrome")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/playback/README.md b/docs/sdks/playback/README.md
index 500db49..386614d 100644
--- a/docs/sdks/playback/README.md
+++ b/docs/sdks/playback/README.md
@@ -49,7 +49,7 @@ with Fastpix(
res = fastpix.playback.create_media_playback_id(media_id="your-media-id", access_policy="public", drm_configuration_id="your-drm-configuration-id", resolution="1080p")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -60,7 +60,7 @@ with Fastpix(
| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `access_policy` | [models.AccessPolicy](../../models/accesspolicy.md) | :heavy_check_mark: | Access policy for media content | |
| `access_restrictions` | [Optional[models.CreateMediaPlaybackIDAccessRestrictions]](../../models/createmediaplaybackidaccessrestrictions.md) | :heavy_minus_sign: | N/A | |
-| `drm_configuration_id` | *Optional[str]* | :heavy_minus_sign: | DRM configuration ID (required if accessPolicy is "drm") | 123e4567-e89b-12d3-a456-426614174000 |
+| `drm_configuration_id` | *Optional[str]* | :heavy_minus_sign: | DRM configuration ID (required if accessPolicy is "drm") | your-drm-configuration-id |
| `resolution` | [Optional[models.CreateMediaPlaybackIDResolution]](../../models/createmediaplaybackidresolution.md) | :heavy_minus_sign: | The maximum resolution for the playback ID. | 1080p |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
@@ -104,7 +104,7 @@ with Fastpix(
res = fastpix.playback.list_playback_ids(media_id="your-media-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -161,7 +161,7 @@ with Fastpix(
)
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -210,10 +210,10 @@ with Fastpix(
),
) as fastpix:
- res = fastpix.playback.get_playback_id(media_id="4fa85f64-5717-4562-b3fc-2c963f66afa6", playback_id="4fa85f64-5717-4562-b3fc-2c963f66afa6")
+ res = fastpix.playback.get_playback_id(media_id="your-media-id", playback_id="your-playback-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -221,8 +221,8 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | N/A | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
-| `playback_id` | *str* | :heavy_check_mark: | N/A | 4fa85f64-5717-4562-b3fc-2c963f66afa6 |
+| `media_id` | *str* | :heavy_check_mark: | N/A | your-media-id |
+| `playback_id` | *str* | :heavy_check_mark: | N/A | your-playback-id |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -264,7 +264,7 @@ with Fastpix(
),
) as fastpix:
- res = fastpix.playback.update_domain_restrictions(media_id="your-media-id", playback_id="your-secret-key", default_policy="allow", allow=[
+ res = fastpix.playback.update_domain_restrictions(media_id="your-media-id", playback_id="your-playback-id", default_policy="allow", allow=[
"yourdomain.com",
"sampledomain.com",
], deny=[
@@ -272,7 +272,7 @@ with Fastpix(
])
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -280,8 +280,8 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | N/A | 5ebfa8f7-3ff1-4a35-8b1a-d3a16e22184c |
-| `playback_id` | *str* | :heavy_check_mark: | N/A | 0199deff-9aef-457e-9461-7a28afdf8773 |
+| `media_id` | *str* | :heavy_check_mark: | N/A | your-media-id |
+| `playback_id` | *str* | :heavy_check_mark: | N/A | your-playback-id |
| `default_policy` | [Optional[models.UpdateDomainRestrictionsDefaultPolicy]](../../models/updatedomainrestrictionsdefaultpolicy.md) | :heavy_minus_sign: | Specify the fallback behavior for domains that are not listed in the `allow` or `deny` lists. | allow |
| `allow` | List[*str*] | :heavy_minus_sign: | List of domains explicitly allowed to play the media. | [
"yourdomain.com",
"sampledomain.com"
] |
| `deny` | List[*str*] | :heavy_minus_sign: | List of domains explicitly denied from accessing the media. | [
"yourworkdomain.com"
] |
@@ -333,7 +333,7 @@ with Fastpix(
])
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -341,8 +341,8 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | N/A | 5ebfa8f7-3ff1-4a35-8b1a-d3a16e22184c |
-| `playback_id` | *str* | :heavy_check_mark: | N/A | 0199deff-9aef-457e-9461-7a28afdf8773 |
+| `media_id` | *str* | :heavy_check_mark: | N/A | your-media-id |
+| `playback_id` | *str* | :heavy_check_mark: | N/A | your-playback-id |
| `default_policy` | [Optional[models.UpdateUserAgentRestrictionsDefaultPolicy]](../../models/updateuseragentrestrictionsdefaultpolicy.md) | :heavy_minus_sign: | The default behavior when a user-agent is not listed in `allow` or `deny`. | allow |
| `allow` | List[*str*] | :heavy_minus_sign: | List of user-agent substrings explicitly allowed. | [
"Mozilla/55.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
] |
| `deny` | List[*str*] | :heavy_minus_sign: | List of user-agent substrings explicitly denied. | [
"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/53745.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36"
] |
diff --git a/docs/sdks/playlist/README.md b/docs/sdks/playlist/README.md
index 115bf72..0a80f62 100644
--- a/docs/sdks/playlist/README.md
+++ b/docs/sdks/playlist/README.md
@@ -109,7 +109,7 @@ with Fastpix(
password="your-secret-key",
),
) as fastpix:
- res = fastpix.playlist.get_playlist_by_id(playlist_id="")
+ res = fastpix.playlist.get_playlist_by_id(playlist_id="your-playlist-id")
print(json.dumps(to_api_payload(res), indent=2))
@@ -158,7 +158,7 @@ with Fastpix(
password="your-secret-key",
),
) as fastpix:
- res = fastpix.playlist.delete_a_playlist(playlist_id="")
+ res = fastpix.playlist.delete_a_playlist(playlist_id="your-playlist-id")
print(json.dumps(to_api_payload(res), indent=2))
@@ -223,7 +223,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `playlist_id` | *str* | :heavy_check_mark: | The unique id of the playlist you want to perform the operation on. | |
-| `media_ids` | List[*str*] | :heavy_check_mark: | N/A | [
"a1cd180e-f9b5-4e99-9d44-b9c9baabad89",
"245800c3-7b73-47d9-a201-e961260dcb30",
"41316aac-5396-4278-8f44-08d5f2495b12"
] |
+| `media_ids` | List[*str*] | :heavy_check_mark: | N/A | [
"your-media-id-1",
"your-media-id-2",
"your-media-id-3"
] |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -263,7 +263,7 @@ with Fastpix(
),
) as fastpix:
res = fastpix.playlist.delete_media_from_playlist(
- playlist_id="",
+ playlist_id="your-playlist-id",
media_ids=[
"your-media-id-1",
"your-media-id-2",
@@ -281,7 +281,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `playlist_id` | *str* | :heavy_check_mark: | The unique id of the playlist you want to perform the operation on. | |
-| `media_ids` | List[*str*] | :heavy_check_mark: | N/A | [
"a1cd180e-f9b5-4e99-9d44-b9c9baabad89",
"245800c3-7b73-47d9-a201-e961260dcb30",
"41316aac-5396-4278-8f44-08d5f2495b12"
] |
+| `media_ids` | List[*str*] | :heavy_check_mark: | N/A | [
"your-media-id-1",
"your-media-id-2",
"your-media-id-3"
] |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
diff --git a/docs/sdks/playlists/README.md b/docs/sdks/playlists/README.md
index 6de98de..d2088ad 100644
--- a/docs/sdks/playlists/README.md
+++ b/docs/sdks/playlists/README.md
@@ -161,7 +161,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `playlist_id` | *str* | :heavy_check_mark: | The unique id of the playlist you want to perform the operation on. | |
-| `media_ids` | List[*str*] | :heavy_check_mark: | N/A | [
"a1cd180e-f9b5-4e99-9d44-b9c9baabad89",
"245800c3-7b73-47d9-a201-e961260dcb30",
"41316aac-5396-4278-8f44-08d5f2495b12"
] |
+| `media_ids` | List[*str*] | :heavy_check_mark: | N/A | [
"your-media-id-1",
"your-media-id-2",
"your-media-id-3"
] |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
diff --git a/docs/sdks/signingkeys/README.md b/docs/sdks/signingkeys/README.md
index 7b3de5d..3097008 100644
--- a/docs/sdks/signingkeys/README.md
+++ b/docs/sdks/signingkeys/README.md
@@ -47,7 +47,7 @@ with Fastpix(
res = fastpix.signing_keys.create_signing_key()
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -100,7 +100,7 @@ with Fastpix(
res = fastpix.signing_keys.list_signing_keys(limit=25, offset=1)
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -159,7 +159,7 @@ with Fastpix(
)
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -192,8 +192,8 @@ In the response, the API returns the workspaceId and publicKey associated with t
```
{
- "kid": "359302ee-2446-4afe-9348-8b4656b9ddb1",
- "aud": "media:6cee6f85-9334-4a51-9ce3-e0241d94ceef",
+ "kid": "your-signing-key-id",
+ "aud": "media:your-playback-id",
"iss": "fastpix.com",
"sub": "",
"iat": 1706703204,
@@ -232,10 +232,10 @@ with Fastpix(
),
) as fastpix:
- res = fastpix.signing_keys.get_signing_key_by_id(signing_key_id="5ta85f64-5717-4562-b3fc-2c963f66afa6")
+ res = fastpix.signing_keys.get_signing_key_by_id(signing_key_id="signing_key_id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/simulcast/README.md b/docs/sdks/simulcast/README.md
index bbfaa2b..b669ff0 100644
--- a/docs/sdks/simulcast/README.md
+++ b/docs/sdks/simulcast/README.md
@@ -37,7 +37,7 @@ with Fastpix(
)
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/simulcaststream/README.md b/docs/sdks/simulcaststream/README.md
index 3f4a2c3..eae2706 100644
--- a/docs/sdks/simulcaststream/README.md
+++ b/docs/sdks/simulcaststream/README.md
@@ -20,7 +20,7 @@ Creates a simulcast for a parent live stream. Simulcasting allows you to broadca
#### Example
An event manager sets up a live stream for a virtual conference and wants to simulcast the stream on YouTube and Facebook Live. They first create the primary live stream in FastPix, ensuring it's in the idle state. Then, they use the API to create a simulcast target for YouTube.
-Related guide: Simulcast to 3rd party platforms
+Related guide: Simulcast to 3rd party platforms
### Example Usage
@@ -39,11 +39,11 @@ with Fastpix(
) as fastpix:
res = fastpix.simulcast_stream.create_simulcast_of_stream(stream_id="your-stream-id", url="rtmp://hyd01.contribute.live-video.net/app/", stream_key="live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk", metadata={
- "livestream_name": "Tech-Connect Summit",
+ "livestream_name": "your-livestream-name",
})
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -54,7 +54,7 @@ with Fastpix(
| `stream_id` | *str* | :heavy_check_mark: | After creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
| `url` | *Optional[str]* | :heavy_minus_sign: | The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream. | rtmp://hyd01.contribute.live-video.net/app/ |
| `stream_key` | *Optional[str]* | :heavy_minus_sign: | A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key. | live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs. | {
"livestream_name": "Tech-Connect Summit"
} |
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs. | {
"livestream_name": "your-livestream-name"
} |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
@@ -93,7 +93,7 @@ with Fastpix(
res = fastpix.simulcast_stream.get_specific_simulcast_of_stream(stream_id="your-stream-id", simulcast_id="your-simulcast-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -141,11 +141,11 @@ with Fastpix(
) as fastpix:
res = fastpix.simulcast_stream.update_specific_simulcast_of_stream(stream_id="your-stream-id", simulcast_id="your-simulcast-id", is_enabled=True, metadata={
- "simulcast_name": "Tech today",
+ "simulcast_name": "your-livestream-name",
})
# Handle response (convert datetimes to JSON-serializable strings)
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -153,10 +153,10 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
-| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | 9714422d89287ad5758d4a86e9afe1a2 |
-| `simulcast_id` | *str* | :heavy_check_mark: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | 8717422d89288ad5958d4a86e9afe2a2 |
+| `stream_id` | *str* | :heavy_check_mark: | Upon creating a new live stream, FastPix assigns a unique identifier to the stream. | your-stream-id |
+| `simulcast_id` | *str* | :heavy_check_mark: | When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters. | your-simulcast-id |
| `is_enabled` | *Optional[bool]* | :heavy_minus_sign: | When set to false, the simulcast is disabled for the specified stream. | true |
-| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs. | {
"livestream_name": "Tech today"
} |
+| `metadata` | Dict[str, *str*] | :heavy_minus_sign: | You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs. | {
"livestream_name": "your-livestream-name"
} |
| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | |
### Response
diff --git a/docs/sdks/startlivestream/README.md b/docs/sdks/startlivestream/README.md
index e149dfc..f916d40 100644
--- a/docs/sdks/startlivestream/README.md
+++ b/docs/sdks/startlivestream/README.md
@@ -44,12 +44,12 @@ with Fastpix(
res = fastpix.start_live_stream.create_new_stream(playback_settings={}, input_media_settings={
"metadata": {
- "livestream_name": "fastpix_livestream",
+ "livestream_name": "your-livestream-name",
},
})
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/streams/README.md b/docs/sdks/streams/README.md
index 93fbd8a..dde3192 100644
--- a/docs/sdks/streams/README.md
+++ b/docs/sdks/streams/README.md
@@ -37,7 +37,7 @@ with Fastpix(
res = fastpix.manage_live_stream.delete_live_stream(stream_id="your-stream-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/docs/sdks/videos/README.md b/docs/sdks/videos/README.md
index 837982e..be9f791 100644
--- a/docs/sdks/videos/README.md
+++ b/docs/sdks/videos/README.md
@@ -18,7 +18,7 @@ This endpoint allows you to permanently delete a a specific video or audio media
2. This action is irreversible. Make sure you no longer need the media before proceeding. Once deleted, the media can’t be retrieved or played back.
-3. Monitor the following webhook event: video.media.deleted
+3. Monitor the following webhook event: video.media.deleted
#### Example
A user on a video-sharing platform decides to remove an old video from their profile, or suppose you're running a content moderation system, and one of the videos uploaded by a user violates your platform's policies. Using this endpoint, the media is permanently deleted from your library, ensuring it's no longer accessible or viewable by other users.
@@ -42,7 +42,7 @@ with Fastpix(
res = fastpix.manage_videos.delete_media(media_id="your-media-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -77,7 +77,7 @@ This endpoint allows you to delete an existing audio or subtitle track from a me
1. After successfully deleting a track, your system must receive the webhook event **video.media.track.deleted**.
-2. Once the media file is updated to reflect the track removal, a video.media.updated event must be triggered.
+2. Once the media file is updated to reflect the track removal, a video.media.updated event must be triggered.
#### Example
Suppose you uploaded an audio track in Italian for a video but later realize it's incorrect or no longer needed. By calling this API, you can remove the specific track while keeping the rest of the media file unchanged. This is useful when:
@@ -86,7 +86,7 @@ Suppose you uploaded an audio track in Italian for a video but later realize it'
- The content owner requests the removal of a specific subtitle or audio track.
- A new version of the track gets uploaded to replace the existing one.
-Related guides: Add own subtitle tracks, Add own audio tracks
+Related guides: Add own subtitle tracks, Add own audio tracks
### Example Usage
@@ -107,7 +107,7 @@ with Fastpix(
res = fastpix.manage_videos.delete_media_track(media_id="your-media-id", track_id="your-track-id")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -167,7 +167,7 @@ with Fastpix(
res = fastpix.manage_videos.get_media_clips(source_media_id="your-media-id", offset=5, limit=20, order_by="desc")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -175,7 +175,7 @@ with Fastpix(
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
-| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | fc733e3f-2fba-4c3d-9388-2511dc50d15f |
+| `media_id` | *str* | :heavy_check_mark: | The unique identifier assigned to the media when created. The value must be a valid UUID. | your-media-id |
| `offset` | *Optional[int]* | :heavy_minus_sign: | Offset determines the starting point for data retrieval within a paginated list. | 5 |
| `limit` | *Optional[int]* | :heavy_minus_sign: | The number of media clips to retrieve per request. | 20 |
| `order_by` | [Optional[models.SortOrder]](../../models/sortorder.md) | :heavy_minus_sign: | The values in the list can be arranged in two ways DESC (Descending) or ASC (Ascending). | desc |
diff --git a/docs/sdks/viewssdk/README.md b/docs/sdks/viewssdk/README.md
index 165d0ed..25e2842 100644
--- a/docs/sdks/viewssdk/README.md
+++ b/docs/sdks/viewssdk/README.md
@@ -52,10 +52,10 @@ with Fastpix(
),
) as fastpix:
- res = fastpix.views.list_video_views(timespan="24:hours", filterby="browser_name:Chrome", limit=10, offset=1, viewer_id="09a78f7d-02ee-44f5-aa39-1b268ed2c270", error_code="1002", order_by="view_end", sort_order="asc")
+ res = fastpix.views.list_video_views(timespan="24:hours", filterby="browser_name:Chrome", limit=10, offset=1, viewer_id="your-viewer-id", error_code="1002", order_by="view_end", sort_order="asc")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -67,7 +67,7 @@ with Fastpix(
| `filterby` | *Optional[str]* | :heavy_minus_sign: | Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
| browser_name:Chrome |
| `limit` | *Optional[int]* | :heavy_minus_sign: | Pass the limit to display only the rows specified by the value.
| 10 |
| `offset` | *Optional[int]* | :heavy_minus_sign: | Pass the offset value to indicate the page number.
| 1 |
-| `viewer_id` | *Optional[str]* | :heavy_minus_sign: | Pass the viewer_id to filter the list of views. This value can be manually set during integration or generated by FastPix. When set manually it can be a string of aplha numeric values of any length.
| 09a78f7d-02ee-44f5-aa39-1b268ed2c270 |
+| `viewer_id` | *Optional[str]* | :heavy_minus_sign: | Pass the viewer_id to filter the list of views. This value can be manually set during integration or generated by FastPix. When set manually it can be a string of aplha numeric values of any length.
| your-viewer-id |
| `error_code` | *OptionalNullable[str]* | :heavy_minus_sign: | Pass the error code to filter the list of views. The possible values of error code can be fetched from list of errors end point.
| 1002 |
| `order_by` | *Optional[str]* | :heavy_minus_sign: | Pass this value to sort the view list by.
| view_end |
| `sort_order` | *Optional[str]* | :heavy_minus_sign: | The order direction to sort the view list by.
| asc |
@@ -114,7 +114,7 @@ with Fastpix(
res = fastpix.views.get_video_view_details(view_id="")
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
@@ -172,7 +172,7 @@ with Fastpix(
res = fastpix.views.list_by_top_content(timespan="24:hours", filterby="browser_name:Chrome", limit=10)
# Handle response
- print(json.dumps(res.model_dump(mode="json", by_alias=True), indent=2))
+ print(json.dumps(res.model_dump(mode="json", by_alias=True, exclude_unset=True), indent=2))
```
diff --git a/fastpix_python/_version.py b/fastpix_python/_version.py
index ae888f5..f4a4147 100644
--- a/fastpix_python/_version.py
+++ b/fastpix_python/_version.py
@@ -3,10 +3,10 @@
import importlib.metadata
__title__: str = "fastpix_python"
-__version__: str = "1.1.4"
+__version__: str = "1.1.5"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.723.4"
-__user_agent__: str = "fastpix-sdk/python 1.1.4 2.723.4 1.1.4 fastpix_python"
+__user_agent__: str = "fastpix-sdk/python 1.1.5 2.723.4 1.1.5 fastpix_python"
try:
if __package__ is not None:
diff --git a/fastpix_python/errors.py b/fastpix_python/errors_sdk.py
similarity index 100%
rename from fastpix_python/errors.py
rename to fastpix_python/errors_sdk.py
diff --git a/fastpix_python/fastpix.yaml b/fastpix_python/fastpix.yaml
deleted file mode 100644
index 6141c35..0000000
--- a/fastpix_python/fastpix.yaml
+++ /dev/null
@@ -1,11522 +0,0 @@
-openapi: 3.0.0
-servers:
- - description: FastPix Video APIs
- url: https://api.fastpix.com/v1/
-x-fastpix-retries:
- strategy: backoff
- backoff:
- strategy: exponential
- initialInterval: 1000
- maxInterval: 10000
- multiplier: 2
- maxAttempts: 3
- retryConnectionErrors: true
- statusCodes:
- - 408
- - 429
- - 500
- - 502
- - 503
- - 504
-info:
- description: >-
- FastPix provides a comprehensive set of APIs that enable developers to manage both
- **on-demand media (video/audio)** and **live streaming experiences**, with built-in
- security features through **cryptographic signing keys**. These APIs cover the full
- lifecycle of content creation, management, distribution, playback, and secure access,
- making them ideal for building scalable video-first applications.
-
- ### Media APIs (Video & Audio on Demand)
-
- The **Media APIs** allow developers to create, retrieve, update, and delete media
- files, as well as manage metadata, playback settings, and additional tracks such as
- audio or subtitles. With these endpoints, developers can:
-
- - Upload videos directly or create media from URLs.
- - Manage playback permissions and configure playback IDs.
- - Add multilingual audio or subtitle tracks for global audiences.
- - Build robust video-on-demand (VOD) and audio-on-demand (AOD) libraries.
-
- **Use case scenarios**
- - **Video-on-Demand Platforms:** Manage large content libraries for streaming services.
- - **E-Learning Solutions:** Upload and organize lecture videos, metadata, and playback settings.
- - **Multilingual Content Delivery:** Add multiple language tracks or subtitles to serve global users.
-
- ### Live Stream APIs
-
- The **Live Stream APIs** simplify the process of creating, managing, and distributing
- live content. Developers can initiate broadcasts, configure stream settings, and extend
- streams to external platforms through simulcasting. These endpoints also support
- real-time interaction and customization of live events.
-
- - Start and manage live broadcasts programmatically.
- - Control stream metadata, privacy, and playback options.
- - Simulcast to platforms like YouTube, Facebook, or Twitch.
- - Update stream details and manage live playback IDs in real time.
-
- **Use case scenarios**
- - **Event Broadcasting:** Enable organizers to set up live streams for conferences, concerts, or webinars.
- - **Creator Platforms:** Provide streamers with tools for broadcasting gameplay, tutorials, or vlogs with simulcasting support.
- - **Corporate Streaming:** Deliver secure internal town halls or meetings with privacy and playback controls.
-
- ### Video Data APIs
-
- The **Video Data APIs** Provide insights into viewer interactions, performance metrics, and playback errors to optimize content delivery and user experience.
-
- - Track video views, unique viewers, and engagement metrics
- - Identify top-performing content and usage patterns
- - Break down data by browser, device, or geography
- - Detect playback errors and performance issues
- - Enable data-driven content strategy decisions
-
- **Use case scenarios**
- - Analytics Dashboards: Monitor performance across content libraries
- - Quality Monitoring: Diagnose and resolve playback issues
- - Content Strategy Optimization: Identify high-value content
- - User Behavior Insights: Understand audience interactions
-
- ### Signing Keys
-
- FastPix also provides endpoints for managing **cryptographic signing keys**, which are
- essential for securely signing and verifying tokens, such as JSON Web Tokens (JWTs).
- These keys are critical for authenticating and authorizing API requests, as well as for
- protecting access to media assets.
-
- - **Private key:** Used to create digital signatures (kept secret).
- - **Public key:** Used to verify digital signatures (shared for verification).
-
- By rotating and managing signing keys regularly, developers can maintain strong
- security practices and prevent unauthorized access.
-
- **Use case scenarios**
- - **Token-based authentication:** Validate user access to premium or subscription-based content.
- - **Key rotation:** Regularly rotate keys to reduce risk of compromise.
- - **Protect intellectual property:** Prevent unauthorized distribution of valuable media assets.
- - **Control usage:** Restrict access to specific users, groups, or contexts.
- - **Prevent tampering:** Ensure requested assets have not been modified.
- - **Time-bound access:** Enable signed URLs with expiration for controlled viewing windows.
- version: 1.0.0
- title: FASTPIX API'S
- contact:
- email: support@fastpix.com
-tags:
- - name: on-demand
- description: On-demand APIs
- - name: livestream
- description: Livestream APIs
- - name: Signing keys
- description: Operations involving signing keys
- - name: Views
- description: Operations involving views
- - name: Dimensions
- description: Operations involving dimensions
- - name: Metrics
- description: Operations involving metrics
- - name: Errors
- x-fastpix-name-override: error_operations
- description: Operations involving errors
- - name: Live playback
- description: Operations for live stream playback management
- - name: Simulcast stream
- description: Operations for simulcast stream management
- - name: Input video
- description: Operations for inputting and creating video media
- - name: Manage videos
- description: Operations for managing video media
- - name: In-video AI features
- description: Operations for AI-powered video features
- - name: Playback
- description: Operations for video playback management
- - name: Playlist
- description: Operations for playlist management
- - name: DRM configurations
- description: Operations for DRM configuration management
- - name: Start live stream
- description: Operations for starting live streams
- - name: Manage live stream
- description: Operations for managing live streams
-paths:
- /on-demand:
- post:
- security:
- - BasicAuth: []
- tags:
- - Input video
- summary: Create media from URL
- description: |
- This endpoint allows developers or users to create a new video or audio media in FastPix using a publicly accessible URL. FastPix fetches the media from the provided URL, processes it, and stores it on the platform for use.
-
-
-
- #### Public URL requirement:
-
-
- The provided URL must be publicly accessible and must point to a video stored in one of the following supported formats: .m4v, .ogv, .mpeg, .mov, .3gp, .f4v, .rm, .ts, .wtv, .avi, .mp4, .wmv, .webm, .mts, .vob, .mxf, asf, m2ts
-
-
-
- #### Supported storage types:
-
- The URL can originate from various cloud storage services or content delivery networks (CDNs) such as:
-
-
- * **Amazon S3:** URLs from Amazon's Simple Storage Service.
-
- * **Google Cloud Storage:** URLs from Google Cloud's storage solution.
-
- * **Azure Blob Storage:** URLs from Microsoft's Azure storage.
-
- * **Public CDNs:** URLs from public content delivery networks that host video files.
-
- Upon successful creation, the API returns an `id` that must be retained for future operations related to this media.
-
- #### How it works
-
-
- 1. Send a POST request to this endpoint with the media URL (typically a video or audio file) and optional media settings.
-
- 2. FastPix uploads the video from the provided URL to its storage.
-
- 3. Receive a response containing the unique id for the newly created media item.
-
- 4. Use the id in subsequent API calls, such as checking the status of the media with the Get Media by ID endpoint to determine when the media is ready for playback.
-
- FastPix uses webhooks to tell your application about things that happen in the background, outside of the API regular request flow. For instance, after the media file is created (but not yet processed or encoded), FastPix sends a `POST` request to your specified webhook URL with the event video.media.created.
-
-
- After processing completes, monitor the events video.media.ready and video.media.failed to track the status of the media file.
-
- Related guide: Upload videos from URL
- operationId: create-media
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CreateMediaRequest"
- example:
- inputs:
- - type: video
- url: https://static.fastpix.com/fp-sample-video.mp4
- metadata:
- key1: value1
- accessPolicy: public
- maxResolution: 1080p
- mediaQuality: standard
- description: Request body for uploading a video media from URL
- responses:
- "201":
- description: Media is created successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CreateMediaSuccessResponse"
- example:
- success: true
- data:
- id: 22ab3a33-bf96-4070-ae1f-60b3d0900fa5
- trial: false
- status: Created
- createdAt: "2025-11-03T10:03:48.595604Z"
- updatedAt: "2025-11-03T10:03:48.595624Z"
- playbackIds:
- - id: 5c9de6f2-3e90-40a5-b529-35ada8f7914f
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- metadata:
- key1: value1
- mediaQuality: standard
- sourceAccess: false
- maxResolution: 1080p
- inputs:
- - type: video
- url: https://static.fastpix.com/fp-sample-video.mp4
- optimizeAudio: false
-
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
-
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get list of all media
- description: |
- This endpoint returns a list of all media files uploaded to FastPix within a specific workspace. Each media entry contains data such as the media `id`, `createdAt`, `status`, `type` and more. It allows you to retrieve an overview of your media assets, making it easier to manage and review them.
-
-
- #### How it works
-
- Use the access token and secret key related to the workspace in the request header. When called, the API provides a paginated response containing all the media items in that specific workspace. This is helpful for retrieving a large volume of media and managing content in bulk.
-
-
-
- #### Example
- If you manage a video platform and need to review all uploaded media in your library to ensure that outdated or low-quality content isn’t being served, you can use this endpoint to retrieve a complete list of media. You can then filter, sort, or update items as needed.
- operationId: list-media
- parameters:
- - in: query
- name: limit
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 20
- description: Limit specifies the maximum number of items to display per page.
- - in: query
- name: offset
- schema:
- type: integer
- default: 1
- example: 1
- description: Offset determines the starting point for data retrieval within a paginated list.
- - in: query
- name: orderBy
- schema:
- type: string
- example: desc
- default: desc
- $ref: "#/components/schemas/SortOrder"
- responses:
- "200":
- description: List of video media
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- description: Displays the result of the request.
- type: array
- items:
- $ref: "#/components/schemas/GetAllMediaResponse"
- pagination:
- $ref: "#/components/schemas/Pagination"
- example:
- success: true
- data:
- - thumbnail: https://images.fastpix.com/837f028b-dcaf-4c23-b368-3748641f74ac/thumbnail.png
- id: cfeec1a3-6cbd-40df-a425-2ed7f8f72ced
- workspaceId: 6dc2b4e0-0615-42fd-a580-1f4aad932dfe
- metadata:
- key1: value1
- mediaQuality: standard
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- sourceAccess: false
- playbackIds:
- - id: 837f028b-dcaf-4c23-b368-3748641f74ac
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: f301a2a1-b40d-40fa-b419-4d0cd92a62f8
- type: video
- width: 1920
- height: 1080
- status: available
- generatedSubtitles: []
- isAudioOnly: false
- subtitleAvailable: true
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2025-01-09T06:44:44.617138Z"
- updatedAt: "2025-01-09T06:44:53.742648Z"
- pagination:
- totalRecords: 100
- currentOffset: 1
- offsetCount: 10
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{livestreamId}/live-clips:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get all clips of a live stream
- description: |
- Retrieves a list of all media clips generated from a specific livestream. Each media entry includes metadata such as the clip media IDs, and other relevant details. A media clip is a segmented portion of an original media file (source live stream). Clips are often created for various purposes such as previews, highlights, or customized edits.
- #### How it works
- 1. Provide the livestreamId as a parameter when calling this endpoint.
-
- 2. The API returns a paginated list of media clips created from the specified livestream.
-
- 3. Pagination helps maintain performance and usability when handling large sets of media files, making it easier to organize and manage content in bulk.
-
- #### Use case
- Suppose you’re hosting a live gaming event and want to showcase key moments from the stream — such as top plays or final match highlights. You can use this endpoint to fetch all clips generated from that livestream, display them in your dashboard, or use them for post-event editing and sharing.
-
-
- Related guide: Instant live clipping
- operationId: list-live-clips
- parameters:
- - in: path
- name: livestreamId
- required: true
- schema:
- type: string
- format: uuid
- example: b6f71268143f70c798a7851a0a92dcbf
- description: The stream Id is unique identifier assigned to the live stream.
- - in: query
- name: limit
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 20
- description: Limit specifies the maximum number of items to display per page.
- - in: query
- name: offset
- schema:
- type: integer
- default: 1
- example: 1
- description: Offset determines the starting point for data retrieval within a paginated list.
- - in: query
- name: orderBy
- schema:
- type: string
- example: desc
- default: desc
- $ref: "#/components/schemas/SortOrder"
- responses:
- "200":
- description: List of video media
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- description: Displays the result of the request.
- type: array
- items:
- $ref: "#/components/schemas/Live-Media-Clips"
- pagination:
- $ref: "#/components/schemas/Pagination"
- example:
- success: true
- data:
- - thumbnail: https://images.fastpix.com/837f028b-dcaf-4c23-b368-3748641f74ac/thumbnail.png
- id: cfeec1a3-6cbd-40df-a425-2ed7f8f72ced
- workspaceId: 6dc2b4e0-0615-42fd-a580-1f4aad932dfe
- streamId: 98f28be5ac9bd7a4205634691a1a096b
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- sourceAccess: false
- playbackIds:
- - id: 837f028b-dcaf-4c23-b368-3748641f74ac
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: f301a2a1-b40d-40fa-b419-4d0cd92a62f8
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- isAudioOnly: false
- subtitleAvailable: true
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2025-01-09T06:44:44.617138Z"
- updatedAt: "2025-01-09T06:44:53.742648Z"
- pagination:
- totalRecords: 100
- currentOffset: 1
- offsetCount: 10
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get a media by ID
- description: |
- By calling this endpoint, you can retrieve detailed information about a specific media item, including its current `status` and a `playbackId`. This is particularly useful for retrieving specific media details when managing large content libraries.
-
-
-
- #### How it works
-
- 1. Send a GET request to this endpoint. Use the `` you received after uploading the media file.
-
- 2. The response includes details about the media:
- - **status** – Indicates whether the media is still *Processing* or has transitioned to *Ready*.
- - **playbackId** – A unique identifier that allows you to stream the media once it is *Ready*.
- You can construct the stream URL as follows:
- `https://stream.fastpix.com/.m3u8`
-
- #### Example
-
- If your platform provides users with a dashboard to manage uploaded content, a user might want to check whether a video has finished processing and is ready for playback. You can use the media ID to retrieve the information from FastPix and display it in the user’s dashboard.
- operationId: get-media
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- responses:
- "200":
- description: Get a video media by id
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/GetMediaResponse"
- example:
- success: true
- data:
- thumbnail: https://images.fastpix.com/837f028b-dcaf-4c23-b368-3748641f74ac/thumbnail.png
- id: cfeec1a3-6cbd-40df-a425-2ed7f8f72ced
- workspaceId: 6dc2b4e0-0615-42fd-a580-1f4aad932dfe
- metadata:
- key1: value1
- mediaQuality: standard
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- mp4Support: capped_4k
- sourceAccess: false
- playbackIds:
- - id: 837f028b-dcaf-4c23-b368-3748641f74ac
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: f301a2a1-b40d-40fa-b419-4d0cd92a62f8
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- isAudioOnly: false
- subtitleAvailable: true
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2025-01-09T06:44:44.617138Z"
- updatedAt: "2025-01-09T06:44:53.742648Z"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- patch:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Update a media by ID
- description: |
- This endpoint allows you to update specific parameters of an existing media file. You can modify the key-value pairs of the metadata that were provided in the payload during the creation of media from a URL or when uploading the media directly from device.
-
-
- #### How it works
-
- 1. Make a PATCH request to this endpoint. Replace `` with the unique ID (`uploadId` or `id`) of the media you received after uploading to FastPix
-
- 2. Include the updated parameters in the request body.
-
- 3. The response returns the updated media data, confirming the changes.
-
- 4. Monitor the video.media.updated webhook event to track the update status in your system.
-
- #### Example
- If a user uploads a video and later needs to change the title, add a new description, or update tags, you can use this endpoint to update the media metadata without re-uploading the entire video.
- operationId: updated-media
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- example:
- metadata:
- user: fastpix_admin
- title: test title
- creatorId: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- schema:
- type: object
- properties:
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- user: fastpix_admin
- default:
- user: fastpix_admin
- title:
- type: string
- maxLength: 255
- example: My Video Title
- default: My Video Title
- description: Title of the media file.
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- default: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- responses:
- "200":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/Update-Media"
- example:
- success: true
- data:
- thumbnail: https://images.fastpix.com/837f028b-dcaf-4c23-b368-3748641f74ac/thumbnail.png
- id: cfeec1a3-6cbd-40df-a425-2ed7f8f72ced
- workspaceId: 6dc2b4e0-0615-42fd-a580-1f4aad932dfe
- metadata:
- user: fastpix_admin
- mediaQuality: standard
- creatorId: fastpix-123
- title: Test-Video-Title
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- sourceAccess: false
- playbackIds:
- - id: 837f028b-dcaf-4c23-b368-3748641f74ac
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: f301a2a1-b40d-40fa-b419-4d0cd92a62f8
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- generatedSubtitles: []
- isAudioOnly: false
- subtitleAvailable: true
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2025-01-09T06:44:44.617138Z"
- updatedAt: "2025-01-09T06:44:53.742648Z"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Delete a media by ID
- operationId: delete-media
- description: |
- This endpoint allows you to permanently delete a a specific video or audio media file along with all associated data. If you wish to remove a media from FastPix storage, use this endpoint with the `mediaId` (either `uploadId` or `id`) received during the media's creation or upload.
-
-
- #### How it works
-
-
- 1. Send a DELETE request to this endpoint. Replace `` with the `uploadId` or the `id` of the media you want to delete.
-
- 2. This action is irreversible. Make sure you no longer need the media before proceeding. Once deleted, the media can’t be retrieved or played back.
-
- 3. Monitor the following webhook event: video.media.deleted
-
- #### Example
- A user on a video-sharing platform decides to remove an old video from their profile, or suppose you're running a content moderation system, and one of the videos uploaded by a user violates your platform's policies. Using this endpoint, the media is permanently deleted from your library, ensuring it's no longer accessible or viewable by other users.
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- responses:
- "200":
- description: Delete a video media
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- example:
- success: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/tracks:
- post:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Add audio / subtitle track
- description: |
- This endpoint allows you to add an audio or subtitle track to an existing media file using its `mediaId`. You need to provide the track `url` along with its `type` (audio or subtitle), `languageName` and `languageCode` in the request payload.
-
-
- #### How it works
-
- 1. Send a POST request to this endpoint, replacing `{mediaId}` with the media ID (`uploadId` or `id`).
-
- 2. Provide the necessary details in the request body.
-
- 3. Receive a response containing a unique track ID and the details of the newly added track.
-
-
- #### Webhook events
-
- 1. After successfully adding a track, your system must receive the webhook event video.media.track.created.
-
- 2. Once the track is processed and ready, you must receive the webhook event video.media.track.ready.
-
- 3. Finally, an update event video.media.updated must notify your system about the media's updated status.
-
-
- #### Example
- Suppose you have a video uploaded to the FastPix platform, and you want to add an Italian audio track to it. By calling this API, you can attach an external audio file (https://static.fastpix.com/music-1.mp3) to the media file. Similarly, if you need to add subtitles in different languages, you can specify type: `subtitle` with the corresponding subtitle `url`, `languageCode` and `languageName`.
-
- Related guides: Add own subtitle tracks, Add own audio tracks
- operationId: Add-media-track
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - tracks
- properties:
- tracks:
- $ref: "#/components/schemas/AddTrackRequest"
- example:
- tracks:
- url: https://static.fastpix.com/music-1.mp3
- type: audio
- languageCode: it
- languageName: Italian
- responses:
- "201":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/AddTrackResponse"
- example:
- success: true
- data:
- id: ace60fc7-e876-4fc6-b9d9-c33fa242f84b
- type: audio
- url: https://static.fastpix.com/music-1.mp3
- languageCode: it
- languageName: Italian
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/upload/{uploadId}/cancel:
- put:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Cancel ongoing upload
- operationId: cancel-upload
- description: |
- This endpoint allows you to cancel ongoing upload by its `uploadId`. Once cancelled, the upload is marked as cancelled. Use this if a user aborts an upload or if you want to programmatically stop an in-progress upload.
-
- #### How it works
-
- 1. Make a PUT request to this endpoint, replacing `{uploadId}` with the unique upload ID received after starting the upload.
- 2. The response confirms the cancellation and provide the status of the upload.
-
- #### Webhook Events
-
- Once the upload is cancelled, you must receive the webhook event video.media.upload.cancelled.
-
- #### Example
-
- Suppose a user starts uploading a large video file but decides to cancel before completion. By calling this API, you can immediately stop the upload and free up resources.
- parameters:
- - in: path
- name: uploadId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: When uploading the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
- responses:
- "200":
- description: Upload cancelled successfully
- content:
- application/json:
- schema:
- type: object
- required:
- - success
- - data
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/MediaCancelResponse"
- example:
- success: true
- data:
- uploadId: beff5537-de85-42e1-a673-2a405cd94177
- trial: false
- status: cancelled
- url: https://storage.googleapis.com/uploads-fp-asia/338acdeb-29d4-438b-a40c-1d4105134462/26b1a17d-4b0b-44f8-96b8-cc33cabc962e?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=fp-prod@fastpix-vms.iam.gserviceaccount.com/20250716/auto/storage/goog4_request&X-Goog-Date=20250716T132746Z&X-Goog-Expires=14400&X-Goog-SignedHeaders=host;x-goog-resumable&X-Goog-Signature=4eb42c38711d915f2b6792edacc48ed79bde9f02f829a084dfe09830e6d0e5ec50f2f3157964ed7e32d44b02e3967bf2e0ffeb7ca9335d65ae15b3ac33c7cb40ec710939c4a12202b749bdb4e3f7af8aba2746b41a642130280a372e4615e9773cea98f231388c9fde385f96142ffa901a900949e305c7d5b4c82590c3493aaf60ac5424d4f112fbf4120b7891adf9a7e17968328cd1128fe7b6f55447d15b562624a8e7539824d10e808a729906ac6fe8b2f561424f3e0db14eecad6e21f4f18513519a975c2c50e8304a5a723723e32aa9ac659d9b9875a85f29f007d57bb69c49b5ff9099e5a9834db7199e73ca01cf0dd85cae599203d3180fa27cfdd08d&upload_id=ABgVH88kcXwWvPOlER2G4UvAnrdQw80h_nfjMqwL-jFe6wpLvfBifpBtlnvPtN2BQQTOWggTpKAQ6uGHIJLDp1LHo2g1eePyfjqNi3oRiwxOBU8
- timeout: 14400
- corsOrigin: "*"
- maxResolution: 1080p
- accessPolicy: public
- metadata:
- key1: value1
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/tracks/{trackId}:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Update audio / subtitle track
- description: |
- This endpoint allows you to update an existing audio or subtitle track associated with a media file. When updating a track, you must provide the new track `url`, `languageName`, and `languageCode`, ensuring all three parameters are included in the request.
-
-
- #### How it works
-
- 1. Send a PATCH request to this endpoint, replacing `{mediaId}` with the media ID, and `{trackId}` with the ID of the track you want to update.
-
- 2. Provide the necessary details in the request body.
-
- 3. Receive a response confirming the track update.
-
- #### Webhook Events
-
- After updating a track, your system must receive webhook notifications:
-
- 1. After successfully updating a track, your system must receive the webhook event video.media.track.updated.
-
- 2. Once the new track is processed and ready, you must receive the webhook event video.media.track.ready.
-
- 3. Once the media file is updated with the new track details, a video.media.updated event must be triggered.
-
-
- #### Example
- Suppose you previously added a French subtitle track to a video but now need to update it with a different file. By calling this API, you can replace the existing subtitle file (.vtt) with a new one while keeping the same track ID. This is useful when:
-
- - The original track file has errors and needs correction.
- - You want to improve subtitle translations or replace an audio track with a better-quality version.
-
- Related guides: Add own subtitle tracks, Add own audio tracks
- operationId: update-media-track
- parameters:
- - in: path
- name: trackId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/UpdateTrackRequest"
- example:
- url: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- languageCode: fr
- languageName: french
- responses:
- "200":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/UpdateTrackResponse"
- example:
- success: true
- data:
- id: 2452ca23-b7ed-4daf-babf-841996b0100e
- type: subtitle
- url: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- languageCode: fr
- languageName: french
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Delete audio / subtitle track
- operationId: delete-media-track
- description: |
- This endpoint allows you to delete an existing audio or subtitle track from a media file. Once deleted, the track must no longer be available for playback.
-
-
- #### How it works
-
-
- 1. Send a DELETE request to this endpoint, replacing `{mediaId}` with the media ID, and `{trackId}` with the ID of the track you want to remove.
-
- 2. The track gets deleted from the media file, and you must receive a confirmation response.
-
- #### Webhook events
-
- 1. After successfully deleting a track, your system must receive the webhook event **video.media.track.deleted**.
-
- 2. Once the media file is updated to reflect the track removal, a video.media.updated event must be triggered.
-
-
- #### Example
- Suppose you uploaded an audio track in Italian for a video but later realize it's incorrect or no longer needed. By calling this API, you can remove the specific track while keeping the rest of the media file unchanged. This is useful when:
-
- - A track was mistakenly added and needs to be removed.
- - The content owner requests the removal of a specific subtitle or audio track.
- - A new version of the track gets uploaded to replace the existing one.
-
- Related guides: Add own subtitle tracks, Add own audio tracks
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: trackId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- responses:
- "200":
- description: Delete a video media
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- example:
- success: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/tracks/{trackId}/generate-subtitles:
- post:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Generate track subtitle
- description: |
- This endpoint allows you to generate subtitles for an existing audio track in a media file. By calling this API, you can generate subtitles automatically using speech recognition
-
- #### How it works
-
- 1. Send a `POST` request to this endpoint, replacing `{mediaId}` with the media ID and `{trackId}` with the track ID.
-
- 2. Provide the necessary details in the request body, including the languageName and languageCode.
-
- 3. You receive a response containing a unique subtitle track ID and its details.
-
- #### Webhook Events
-
- 1. After the subtitle track is generated and ready, you receive the webhook event video.media.subtitle.generated.ready.
-
- 2. Finally the video.media.updated event notifies your system about the media’s updated status.
-
- Related guide: Add auto-generated subtitles
- operationId: Generate-subtitle-track
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: trackId
- required: true
- schema:
- type: string
- format: uuid
- example: d46f5df9-1a8f-4f0a-b56e-9f5b5d5b9e21
- description: A universally unique identifier (UUID) assigned to the specific track for which subtitles must be generated.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/TrackSubtitlesGenerateRequest"
- example:
- languageCode: it
- languageName: Italian
- responses:
- "200":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/GenerateTrackResponse"
- example:
- success: true
- data:
- id: ace60fc7-e876-4fc6-b9d9-c33fa242f84b
- type: subtitle
- languageCode: it
- languageName: Italian
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/summary:
- patch:
- security:
- - BasicAuth: []
- tags:
- - In-video AI features
- summary: Generate video summary
- description: |
- This endpoint allows you to generate the summary for an existing media.
-
- #### How it works
- 1. Send a `PATCH` request to this endpoint, replacing `` with the ID of the media you want to summarize.
- 2. Include the `generate` parameter in the request body.
- 3. Include the `summaryLength` parameter, specify the desired length of the summary in words (for example, 120 words), this determines how concise or detailed the summary will be. If no specific summary length is provided, the default length will be 100 words.
- 4. The response includes the updated media data and confirmation of the changes applied.
-
- You can use the video.mediaAI.summary.ready webhook event to track and notify about the summary generation.
-
-
-
-
-
- **Use case**: This is particularly useful when a user uploads a video and later chooses to generate a summary without needing to re-upload the video.
-
- Related guide: Video summary
- operationId: update-media-summary
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- generate:
- type: boolean
- example: true
- description: |
- Enable or disable the summary feature for the media. Set to true to enable summary or false to disable.
- summaryLength:
- type: integer
- example: 100
- default: 100
- maximum: 250
- minimum: 30
- description: |
- Specifies the desired word count for the generated summary.
- - The value must be between **30** and **250** words.
- required:
- - generate
- example:
- generate: true
- summaryLength: 100
- responses:
- "200":
- description: Media details updated successfully with the generated summary
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/SummaryResponse"
- example:
- success: true
- data:
- mediaId: c695988b-ff84-42ae-bb21-10f284fedb0e
- isSummaryEnabled: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get the summary of a video
- description: |
- This endpoint returns the generated summary of a video.
-
- The summary is created using the **InVideo Summary** feature, which processes the video content and produces a textual summary.
-
- To use this endpoint, you must first generate the video summary using the Generate Video Summary endpoint. This endpoint can return the summary only after that process is complete.
-
- Typical use cases include:
- - Providing viewers with a quick preview of the video's main content.
- - Enabling search or recommendation systems to surface summarized insights.
- - Supporting accessibility and content discovery without requiring users to watch the full video.
-
- If the summary has not been generated or the feature is disabled for the requested media, the endpoint returns an error indicating that the summary is unavailable.
-
- operationId: get-media-summary
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: fc733e3f-2fba-4c3d-9388-2511dc50d15f
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
-
- responses:
- "200":
- description: Get media summary
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: string
- example: "Grandmaster Igor Spirinov introduces the Kutch Gambit, an effective chess opening for players rated below 1500. He emphasizes quick development and pressure on the opponent, particularly targeting the f7 pawn. The gambit forces opponents to play precisely, as common moves can lead to quick defeats. Spirinov outlines various responses from Black, highlighting tactical opportunities for White, including sacrifices and double checks that can lead to checkmate. He also discusses strategies for handling more experienced opponents and emphasizes the importance of maintaining a strong position and advancing pawns in the middle game. A special training bundle is offered for players seeking improvement."
- description: The summary of the particular video.
-
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/chapters:
- patch:
- security:
- - BasicAuth: []
- tags:
- - In-video AI features
- summary: Generate video chapters
- description: |
- This endpoint enables you to generate chapters for an existing media file.
-
- #### How it works
- 1. Make a `PATCH` request to this endpoint, replacing `` with the ID of the media for which you want to generate chapters.
- 2. Include the `chapters` parameter in the request body to enable.
- 3. The response contains the updated media data, confirming the changes made.
-
- You can use the video.mediaAI.chapters.ready webhook event to track and notify about the chapters generation.
-
- **Use case:** This is particularly useful when a user uploads a video and later decides to enable chapters without re-uploading the entire video.
-
- Related guide: Video chapters
- operationId: update-media-chapters
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- chapters:
- type: boolean
- example: true
- default: true
- description: |
- Enable or disable the chapters feature for the media. Set to `true` to enable chapters or `false` to disable.
- required:
- - chapters
- example:
- chapters: true
- responses:
- "200":
- description: Media details updated successfully with the chapters feature enabled or disabled
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/ChaptersResponse"
- example:
- success: true
- data:
- mediaId: c695988b-ff84-42ae-bb21-10f284fedb0e
- isChaptersEnabled: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/named-entities:
- patch:
- security:
- - BasicAuth: []
- tags:
- - In-video AI features
- summary: Generate named entities
- description: |
- This endpoint allows you to extract named entities from an existing media.
- Named Entity Recognition (NER) is a fundamental natural language processing (NLP) technique that identifies and classifies key information (entities) in text into predefined categories. For instance:
-
- - Organizations (for example, "Microsoft", "United Nations")
- - Locations (for example, "Paris", "Mount Everest")
- - Product names (for example, "iPhone", "Coca-Cola")
-
- #### How it works
- 1. Make a PATCH request to this endpoint, replacing `` with the ID of the media you want to extract named-entities.
- 2. Include the `namedEntities` parameter in the request body to enable.
- 3. Receive a response containing the updated media data, confirming the changes made.
-
- You can use the video.mediaAI.named-entities.ready webhook event to track and notify about the named entities extraction.
-
- **Use case:** If a user uploads a video and later decides to enable named entity extraction without re-uploading the entire video.
-
- Related guide: Named entities
- operationId: update-media-named-entities
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 0cec3c88-c69d-4232-9b96-f0976327fa2d
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- namedEntities:
- type: boolean
- example: true
- description: |
- Enable or disable named entity extraction. Set to `true` to enable or `false` to disable.
- required:
- - namedEntities
- example:
- namedEntities: true
- responses:
- "200":
- description: Media details updated successfully with the named entity extraction feature enabled or disabled
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Indicates if the request was successful or not.
- data:
- $ref: "#/components/schemas/NamedEntitiesResponse"
- example:
- success: true
- data:
- mediaId: c695988b-ff84-42ae-bb21-10f284fedb0e
- isNamedEntitiesEnabled: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/moderation:
- patch:
- security:
- - BasicAuth: []
- tags:
- - In-video AI features
- summary: Enable video moderation
- description: |
- This endpoint enables moderation features, such as NSFW and profanity filtering, to detect inappropriate content in existing media.
-
- #### How it works
- 1. Make a `PATCH` request to this endpoint, replacing `` with the ID of the media you want to update.
- 2. Include the `moderation` object and provide the requried `type` parameter in the request body to specify the media type (for example, video/audio/av).
- 4. The response contains the updated media data, confirming the changes made.
-
- You can use the video.mediaAI.moderation.ready webhook event to track and notify about the detected moderation results.
-
- **Use case:** This is particularly useful when a user uploads a video and later decides to enable moderation detection without the need to re-upload it.
-
- Related guide: Moderate NSFW & Profanity
- operationId: update-media-moderation
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 0cec3c88-c69d-4232-9b96-f0976327fa2d
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- moderation:
- type: object
- properties:
- type:
- $ref: "#/components/schemas/MediaType"
- description: |
- Defines the type of input. Possible values include video, audio, av.
- example:
- moderation:
- type: video
-
- responses:
- "200":
- description: Media details updated successfully with the named entity extraction feature enabled or disabled
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/ModerationResponse"
- example:
- success: true
- data:
- mediaId: c695988b-ff84-42ae-bb21-10f284fedb0e
- isModerationEnabled: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/source-access:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Update the source access of a media by ID
- description: |
- This endpoint allows you to update the `sourceAccess` setting of an existing media file. The `sourceAccess` parameter determines whether the original media file is accessible or restricted. Setting this to `true` enables access to the media source, while setting it to `false` restricts access.
-
- #### How it works
-
- 1. Make a `PATCH` request to this endpoint, replacing `{mediaId}` with the ID of the media you want to update.
-
- 2. Include the updated `sourceAccess` parameter in the request body.
-
- 3. You receive a response confirming the update to the media’s source access status.
- 4. Webhook events: video.media.source.ready, video.media.source.deleted
- operationId: updated-source-access
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- sourceAccess:
- type: boolean
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- required:
- - sourceAccess
- example:
- sourceAccess: true
- responses:
- "200":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/sourceAccessMedia"
- example:
- success: true
- data:
- thumbnail: https://venus-images.fastpix.dev/cf41c9f7-ece3-4efe-8d31-c6e000dc422b/thumbnail.png
- id: eb56a668-0354-40c2-9233-f3197e1baabd
- workspaceId: c788be40-91a5-4d2d-abf7-47398a6276a1
- metadata:
- key1: value1
- mediaQuality: standard
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- sourceAccess: true
- playbackIds:
- - id: cf41c9f7-ece3-4efe-8d31-c6e000dc422b
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: 344fd5bc-82af-4d11-bc1c-785d9e6f9aef
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- generatedSubtitles: []
- isAudioOnly: false
- subtitleAvailable: false
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2024-12-06T03:47:26.489888Z"
- updatedAt: "2024-12-06T03:47:47.593400Z"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/update-mp4Support:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Update the mp4Support of a media by ID
- description: |
- This endpoint allows you to update the `mp4Support` setting of an existing media file using its media ID. You can specify the MP4 support level, such as `none`, `capped_4k`, `audioOnly`, or a combination of `audioOnly`, `capped_4k`, in the request payload.
-
- #### How it works
-
- 1. Send a PATCH request to this endpoint, replacing `{mediaId}` with the media ID.
-
- 2. Provide the desired `mp4Support` value in the request body.
-
- 3. You receive a response confirming the update, including the media’s updated MP4 support status.
-
- #### MP4 Support Options
-
- - `none` – MP4 support is disabled for this media.
-
- - `capped_4k` – Generates MP4 renditions up to 4K resolution.
-
- - `audioOnly` – Generates an M4A file that contains only the audio track.
-
- - `audioOnly,capped_4k` – Generates both an audio-only M4A file and MP4 renditions up to 4K resolution.
-
- #### Webhook events
-
- - video.media.mp4Support.ready – Triggered when the MP4 support setting is successfully updated.
-
- #### Example
- Suppose you have a video uploaded to the FastPix platform, and you want to allow users to download the video in MP4 format. By setting "mp4Support": "capped_4k", the system generates an MP4 rendition of the video up to 4K resolution, making it available for download through the stream URL(`https://stream.fastpix.com/{playbackId}/{capped-4k.mp4 | audio.m4a}`). If you want users to stream only the audio from the media file, you can set "mp4Support": "audioOnly". This provides an audio-only stream URL that allows users to listen to the media without video. By setting "mp4Support": "audioOnly,capped_4k", both options are enabled. Users can download the MP4 video and also stream just the audio version of the media.
-
-
- Related guide: Use MP4 support for offline viewing
- operationId: updated-mp4Support
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - mp4Support
- properties:
- mp4Support:
- type: string
- example: capped_4k
- default: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: >
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- example:
- mp4Support: capped_4k
-
- responses:
- "200":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/Media"
- example:
- success: true
- data:
- thumbnail: https://venus-images.fastpix.dev/cf41c9f7-ece3-4efe-8d31-c6e000dc422b/thumbnail.png
- id: eb56a668-0354-40c2-9233-f3197e1baabd
- workspaceId: c788be40-91a5-4d2d-abf7-47398a6276a1
- metadata:
- key1: value1
- mediaQuality: standard
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- mp4Support: capped_4k
- sourceAccess: true
- playbackIds:
- - id: cf41c9f7-ece3-4efe-8d31-c6e000dc422b
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: 344fd5bc-82af-4d11-bc1c-785d9e6f9aef
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- generatedSubtitles: []
- isAudioOnly: false
- subtitleAvailable: false
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2024-12-06T03:47:26.489888Z"
- updatedAt: "2024-12-06T03:47:47.593400Z"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/input-info:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get info of media inputs
- operationId: retrieveMediaInputInfo
- description: |
- This endpoint lets you retrieve detailed information about the media inputs associated with a specific media item. You can use it to verify the media file’s input URL, track its creation status, and check its container format. You must provide the mediaId (either the uploadId or the id) to fetch this information.
-
-
- #### How it works
-
- Upon making a `GET` request with the mediaId, FastPix returns a response with:
-
- * The public storage input `url` of the uploaded media file.
-
- * Information about the media’s video and audio tracks, including whether they were successfully created.
-
- * The container format of the uploaded media file (for example, MP4, MKV).
-
- This endpoint is particularly useful for ensuring that all necessary tracks (video and audio) have been correctly associated with the media during the upload or media creation process.
- parameters:
- - in: path
- name: mediaId
- description: Pass the list of the input objects used to create the media, along with applied settings.
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- responses:
- "200":
- description: Get video media input information
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- description: Displays the result of the request.
- properties:
- configuration:
- type: object
- description: Represents configuration details for the media.
- properties:
- url:
- type: string
- example: https://static.fastpix.com/fp-sample-video.mp4
- description: >
- The URL hosting the media file to be downloaded and processed by FastPix.
- Supports formats like MP4, MOV, MKV, TS, MP3, and text tracks (SRT/VTT).
- Using standard formats ensures optimal processing speed.
- file:
- type: object
- description: Contains metadata and structural details about the media file.
- properties:
- containerFormat:
- type: string
- example: mp4
- description: Specifies the container format that encapsulates audio, video, subtitles, and metadata.
- tracks:
- type: array
- description: A list of all media tracks including video, audio, and subtitles.
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- example:
- success: true
- data:
- configuration:
- url: https://static.fastpix.com/fp-sample-video.mp4
- file:
- containerFormat: mp4
- tracks:
- - id: 6eb56a83-9a8b-47a5-94b2-cadb4458cf4d
- type: video
- width: 1280
- height: 720
- frameRate: "30/1"
- status: available
-
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/playback-ids:
- post:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Create a playback ID
- description: |
- You can create a new playback ID for a specific media asset. If you have already retrieved an existing `playbackId` using the Get Media by ID endpoint for a media asset, you can use this endpoint to generate a new playback ID with a specified access policy.
-
-
-
- If you want to create a private playback ID for a media asset that already has a public playback ID, this endpoint also allows you to do so by specifying the desired access policy.
-
- #### How it works
-
- 1. Make a `POST` request to this endpoint, replacing `` with the `uploadId` or `id` of the media asset.
-
- 2. Include the `accessPolicy` in the request body with `private` or `public` as the value.
-
- 3. You receive a response containing the newly created playback ID with the specified access level.
-
-
- #### Example
- A video streaming service generates playback IDs for each media file when users request to view specific content. The video player then uses the playback ID to stream the video.
- operationId: create-media-playback-id
- parameters:
- - in: path
- name: mediaId
- required: true
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- schema:
- type: string
- format: uuid
- example: dbb8a39a-e4a5-4120-9f22-22f603f1446e
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- description: Request body for creating playback id for an media
- content:
- application/json:
- schema:
- type: object
- required:
- - accessPolicy
- properties:
- accessPolicy:
- $ref: "#/components/schemas/AccessPolicy"
- accessRestrictions:
- type: object
- properties:
- domains:
- $ref: "#/components/schemas/DomainRestrictions"
- userAgents:
- $ref: "#/components/schemas/UserAgentRestrictions"
- drmConfigurationId:
- type: string
- format: uuid
- description: DRM configuration ID (required if accessPolicy is "drm")
- example: 123e4567-e89b-12d3-a456-426614174000
- resolution:
- type: string
- enum:
- - 480p
- - 720p
- - 1080p
- - 1440p
- - 2160p
- description: The maximum resolution for the playback ID.
- example: 1080p
- responses:
- "201":
- description: Playback ID for a media content.
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/CreatePlaybackId"
- example:
- success: true
- data:
- id: b331e0d8-bef4-4ad2-8760-757fdb2818b7
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- resolution: 1080p
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
-
- get:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Get all playback IDs details for a media
- description: |
- Retrieves all playback IDs associated with a given media asset, including each playback ID’s access policy and detailed access restrictions such as allowed or denied domains and user agents.
-
- **How it works:**
- 1. Send a `GET` request to this endpoint with the target `mediaId`.
- 2. The response includes an array of playback ID records with their respective access controls.
-
- **Use case:**
- Useful for validating and managing playback permissions programmatically, reviewing restriction settings, or powering an access control dashboard.
-
- operationId: list-playback-ids
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 5455b8db-79c7-438e-83b9-c440980214c3
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- responses:
- "200":
- description: Successfully retrieved playback IDs and their restrictions
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 54fd5e7e-3aa5-4817-b56d-44932f67f6c3
- description: Unique identifier of the playback ID.
- accessPolicy:
- type: string
- enum:
- - public
- - private
- - drm
- example: drm
- description: The access policy set for the playback ID.
- accessRestrictions:
- type: object
- description: Restrictions applied to this playback ID.
- properties:
- domains:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: allow
- allow:
- type: array
- items:
- type: string
- example: ["example.com", "trustedsite.org"]
- deny:
- type: array
- items:
- type: string
- example: ["malicioussite.com", "abc.net"]
- userAgents:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: deny
- allow:
- type: array
- items:
- type: string
- example:
- - Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36
- deny:
- type: array
- items:
- type: string
- example:
- - PostmanRuntime/7.29.0
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
-
- delete:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Delete a playback ID
- description: |
- This endpoint deletes a specific playback ID associated with a media asset. Deleting a `playback ID` revokes access to the media content linked to that ID.
-
-
- #### How it works
-
- 1. Make a `DELETE` request to this endpoint, replacing `` with the unique ID of the media asset from which you want to delete the playback ID.
-
- 2. Include the `playbackId` you want to delete in the request body.
-
- #### Example
-
- Your platform offers limited-time access to premium content. When the subscription expires, you can revoke access to the content by deleting the associated playback ID, preventing users from streaming the video further.
- operationId: delete-media-playback-id
- parameters:
- - in: path
- name: mediaId
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- required: true
- schema:
- type: string
- format: uuid
- example: dbb8a39a-e4a5-4120-9f22-22f603f1446e
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: query
- name: playbackId
- description: "Return the universal unique identifier for playbacks which can contain a maximum of 255 characters. "
- required: true
- schema:
- type: string
- example: dbb8a39a-e4a5-4120-9f22-22f603f1446e
- format: uuid
- description: when creating the plyabackIds, FastPix assigns a universal unique identifier with a maximum of 255 characters.
- responses:
- "200":
- description: Deleted a Playback Id successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- example:
- success: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/upload:
- post:
- security:
- - BasicAuth: []
- tags:
- - Input video
- summary: Upload media from device
- operationId: direct-upload-video-media
- description: |
- This endpoint enables accelerated uploads of large media files directly from your local device to FastPix for processing and storage.
-
- > **NOTE**
- >
- > This version now supports uploads with no file size limitations and offers faster uploads. The previous endpoint (which had a 500MB size limit) is now deprecated. You can find details in the [changelog](https://fastpix.com/docs/changelog/api-update-direct-upload-media-from-device).
-
- #### How it works
-
- 1. Send a POST request to this endpoint with optional media settings.
-
- 2. The response includes an `uploadId` and a signed `url` for direct video file upload.
-
- 3. Upload your video file to the provided url by making a PUT request. The API accepts the media file from your device and uploads it to the FastPix platform. (Refer to Step 3: Initiate the upload for complete instructions.)
-
-
- 4. Once uploaded, the media undergoes processing and is assigned a unique ID for tracking. Retain this `uploadId` for any future operations related to this upload.
-
-
-
- After uploading, you can use the Get Media by ID endpoint to check the status of the uploaded media asset and see if it has transitioned to a `Ready` status for playback.
-
- To notify your application about the status of this API request check for the webhooks for media related events.
-
-
- #### Example
-
- A social media platform allows users to upload video content directly from their phones or computers. This endpoint facilitates the upload process. For example, if you are developing a video-sharing app where users can upload short clips from their mobile devices, this endpoint enables them to select a video, upload it to the platform.
-
- Related guide: Upload videos directly
- requestBody:
- required: true
- description: Request body for direct upload
- content:
- application/json:
- schema:
- type: object
- required:
- - corsOrigin
- properties:
- corsOrigin:
- type: string
- example: "*"
- default: "*"
- description: Upload media directly from a device using the URL name or enter "*" to allow all.
- pushMediaSettings:
- title: Push Media Settings
- type: object
- required:
- - accessPolicy
- description: |
- Configuration settings for uploading and processing media on the FastPix platform.
- These settings define how the uploaded video is handled, including access control, resolution, DRM, and optional metadata.
- For a complete explanation of how media uploads and processing work, refer to the
- FastPix Video on Demand Overview.
- properties:
- accessPolicy:
- type: string
- example: public
- default: public
- enum:
- - public
- - private
- - drm
- description: Determines if access to the streamed content is kept private, drm or available to all.
- startTime:
- type: number
- example: "0"
- description: Start time indicates where encoding must begin within the video file, in seconds.
- endTime:
- type: number
- example: "60"
- description: End time indicates where encoding must end within the video file, in seconds.
- inputs:
- type: array
- description: >
- Add one input object at a time. For example, first add a **WatermarkInput** object.
- If you also need a audio, click **Add item** again and select **AudioInput**.
- Repeat this process for **SubtitleInput** as needed.
- items:
- anyOf:
- - $ref: "#/components/schemas/VideoInput"
- - $ref: "#/components/schemas/WatermarkInput"
- - $ref: "#/components/schemas/AudioInput"
- - $ref: "#/components/schemas/SubtitleInput"
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- default:
- key1: value1
- description: |
- "Tag a video in "key" : "value" pairs for searchable metadata. Maximum 10 entries, 255 characters each."
- drmConfigurationId:
- type: string
- format: uuid
- description: UUID of the DRM configuration to be used.
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- title:
- type: string
- maxLength: 255
- example: My Video Title
- description: Title of the media file.
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- subtitles:
- type: object
- description: |
- Generates subtitle files for audio/video files.
- properties:
- languageName:
- type: string
- example: english
- description: Name of the language for the subtitles.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- "Tag a video in "key" : "value" pairs for searchable metadata. Maximum 10 entries, 255 characters each."
- languageCode:
- type: string
- example: en
- enum:
- - en
- - it
- - pl
- - es
- - fr
- - ru
- - nl
- description: |
- Language codes (BCP 47 compliant) used for text files.
- optimizeAudio:
- type: boolean
- example: true
- description: |
- Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: |
- Determines the highest quality resolution available.
- mediaQuality:
- type: string
- example: standard
- default: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- sourceAccess:
- type: boolean
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Generates MP4 video up to 4K ("capped_4k"), m4a audio only ("audioOnly"), or both for offline viewing.
- summary:
- type: object
- properties:
- generate:
- type: boolean
- example: true
- description: |
- Enable or disable the summary feature for the media. Set to true to enable summary or false to disable.
- summaryLength:
- type: integer
- example: 100
- maximum: 250
- minimum: 30
- description: |
- Specifies the desired word count for the generated summary.
- - The value must be between **30** and **250** words.
- chapters:
- type: boolean
- example: true
- description: |
- Enable or disable the chapters feature for the media. Set to `true` to enable chapters or `false` to disable.
- namedEntities:
- type: boolean
- example: true
- description: |
- Enable or disable named entity extraction. Set to `true` to enable or `false` to disable.
- moderation:
- type: object
- properties:
- type:
- type: string
- example: video
- enum:
- - video
- - audio
- - av
- description: |
- Defines the type of input. Possible values include video, audio, av.
- accessRestrictions:
- type: object
- properties:
- domains:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- description: |
- Specifies the default access policy for domains.
- If set to `allow`, all domains are allowed access unless otherwise specified in the `deny` list.
- If set to `deny`, all domains are denied access unless otherwise specified in the `allow` list.
- allow:
- type: array
- items:
- type: string
- example:
- - example.com
- - trustedsite.org
- description: |
- A list of domain names or patterns that are explicitly allowed access.
- This list is only effective when the `defaultPolicy` is set to `deny`.
- deny:
- type: array
- items:
- type: string
- example:
- - malicioussite.com
- - spamdomain.net
- description: |
- A list of domain names or patterns that are explicitly denied access.
- This list is only effective when the `defaultPolicy` is set to `allow`.
- userAgents:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- description: |
- Specifies the default access policy for user agents (browsers, bots, etc.).
- If set to `allow`, all user agents are allowed access unless otherwise specified in the `deny` list.
- If set to `deny`, all user agents are denied access unless otherwise specified in the `allow` list.
- allow:
- type: array
- items:
- type: string
- example:
- - Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36
- - curl/7.68.0
- description: |
- A list of user agents (identified by string names or patterns) that are explicitly allowed access.
- This list is only effective when the `defaultPolicy` is set to `deny`.
- deny:
- type: array
- items:
- type: string
- example:
- - Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
- - PostmanRuntime/7.29.0
- description: |
- A list of user agents (identified by string names or patterns) that are explicitly denied access.
- This list is only effective when the `defaultPolicy` is set to `allow`.
- example:
- corsOrigin: "*"
- pushMediaSettings:
- metadata:
- key1: value1
- accessPolicy: public
- maxResolution: 1080p
- mediaQuality: standard
- responses:
- "201":
- description: Direct upload created successfully
- content:
- application/json:
- schema:
- type: object
- required:
- - success
- - data
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/DirectUpload"
- example:
- success: true
- data:
- uploadId: beff5537-de85-42e1-a673-2a405cd94177
- trial: false
- status: waiting
- url: https://storage.googleapis.com/fastpix-uploads-us/8a5ab157-c586-458a-bb2e-caa8a8b76a19/4190bbde-4c34-41e4-b70e-90ba2aa0b79e?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=dev-staging-pub-sub%40fastpix-vms.iam.gserviceaccount.com%2F20250708%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250708T071545Z&X-Goog-Expires=14400&X-Goog-SignedHeaders=host%3Bx-goog-resumable&X-Goog-Signature=7be4a17c181b222f5f70e5156843585dc2a9769d61126d77c7b83413a97256cbb8214aa09a8977ce09c1023148ef0f1f42265ddc436df29e66e00e76fbbed13b01e01bc95d15aa65aef695ef7556a306fad5cdc8bf81049ac17e8e95dd95dc80bac3ca684c584dc7a23494f3b29c2dfe9c039a5152d66dddb603c20409d0fda685981b3dfe0f8e0f34fc983d444fce9bbe0dda750a3eb756d1e2887ffa1aef242f208b157988c5fc5f68aa574dd1ef401162f150bc8d5218156d9655c368b359ad5b12c96d2e69654d4da87f34c4df9f22613cdd88357c448aa1f340e11e482e53156bc18a256e4dcf2b37a0ee875c9c941f978ab660637acfc3ccddb37628e8
- timeout: 14400
- corsOrigin: "*"
- pushMediaSettings:
- playbackIds:
- - accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- metadata:
- key1: value1
- mediaQuality: standard
- sourceAccess: false
- optimizeAudio: false
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/uploads:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get all unused upload URLs
- description: |
- This endpoint retrieves a paginated list of all unused upload signed URLs within your organization. It provides comprehensive metadata including upload IDs, creation dates, status, and URLs, helping you manage your media resources efficiently.
-
- An unused upload URL is a signed URL that gets generated when an user initiates upload but never completed the upload process. This can happen due to reasons like network issues, manual cancellation of upload, browser/app crashes or session timeouts.These URLs remain in the system as "unused" since they were created but never resulted in a successful media file upload.
-
- #### How it works
-
- - The endpoint returns metadata for all unused upload URLs in your organization's library.
- - Results are paginated to manage large datasets effectively.
- - Signed URLs expire after 24 hours from creation.
- - Each entry includes full metadata about the unused upload.
-
-
-
- #### Example
-
- A video management team at a media organization regularly uploads content but often forgets to delete or use unused uploads. These unused uploads have signed URLs that expire after 24 hours and need to be managed efficiently. By using this API, the team can retrieve metadata for all unused uploads, identify expired signed URLs, and decide whether to regenerate URLs, reuse the uploads, or delete them.
- operationId: list-uploads
- parameters:
- - in: query
- name: limit
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 20
- description: Limit specifies the maximum number of items to display per page.
- - in: query
- name: offset
- schema:
- type: integer
- default: 1
- example: 1
- description: Offset determines the starting point for data retrieval within a paginated list.
- - in: query
- name: orderBy
- schema:
- type: string
- example: desc
- default: desc
- $ref: "#/components/schemas/SortOrder"
- responses:
- "200":
- description: List of video media
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- description: Displays the result of the request.
- type: array
- items:
- $ref: "#/components/schemas/UnusedDirectUpload"
- pagination:
- $ref: "#/components/schemas/Pagination"
- example:
- success: true
- data:
- - uploadId: 9149264c-6cb9-40d3-9313-95a85c56135e
- trial: true
- status: waiting
- url: https://storage.fastpix.net/uploads/7619ee69-d758-4589-80ee-965f6bfc922c/9149264c-6cb9-40d3-9313-95a85c56135e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=assets-svc%2F20250109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250109T084749Z&X-Amz-Expires=14400&X-Amz-SignedHeaders=host&X-Amz-Signature=f0a1e3798792543bff7fed64314cc386f56adc1bc1a65f6d4d9c137c6998b6ce
- timeout: 14400
- corsOrigin: "*"
- pushMediaSettings:
- playbackIds:
- - accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- metadata:
- key1: value1
- mediaQuality: standard
- pagination:
- totalRecords: 100
- currentOffset: 1
- offsetCount: 10
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/media-clips:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get all clips of a media
- description: |
- This endpoint retrieves a list of all media clips associated with a given source media ID. It helps you organize and manage media efficiently by providing metadata such as clip media IDs and other relevant details.
-
- A media clip is a segmented portion of an original media file (source media). Clips are often created for various purposes such as previews, highlights, or customized edits. This API allows you to fetch all such clips linked to a specific source media, making it easier to track and manage clips.
-
-
- #### How it works
-
- - The endpoint returns metadata for all media clips associated with the given `mediaId`.
- - Results are paginated to efficiently handle large datasets.
- - Each entry includes detailed metadata such as media `id`, `duration`, and `status`.
- - Helps in organizing clips effectively by providing structured information.
-
-
- #### Example
-
- Imagine you’re managing a video editing platform where users upload full-length videos and create short clips for social media sharing. To keep track of all clips linked to a particular video, you call this API with the sourceMediaId. The response provides a list of all associated clips, allowing you to manage, edit, or repurpose them as needed.
-
- Related guide: Create clips from existing media
- operationId: get-media-clips
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: fc733e3f-2fba-4c3d-9388-2511dc50d15f
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: query
- name: offset
- schema:
- type: integer
- default: 1
- minimum: 1
- example: 5
- description: Offset determines the starting point for data retrieval within a paginated list.
- - in: query
- name: limit
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 20
- description: The number of media clips to retrieve per request.
- - in: query
- name: orderBy
- schema:
- $ref: "#/components/schemas/SortOrder"
- description: The values in the list can be arranged in two ways DESC (Descending) or ASC (Ascending).
- responses:
- "200":
- description: Get media clips
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MediaClipResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/playlists:
- post:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Create a new playlist
- description: |-
- This endpoint creates a new playlist within a specified workspace. A playlist acts as a container for organizing media items either manually or based on filters and metadata.
- ### Playlists can be created in two modes
- - **Manual:** Creates an empty playlist without any initial media items. Use this mode for manual curation, where you add items later in a user-defined sequence.
- - **Smart:** Auto-populates the playlist at creation time based on the filter criteria (for example, a video creation date range) that you provide in the request.
-
- For more details, see Create and manage playlist.
-
- #### How it works
-
- - When you send a `POST` request to this endpoint, FastPix creates a playlist and returns a playlist ID, using which items can be added later in a user-defined sequence.
- - You can create a smart playlist that is auto-populated based on the metadata in the request body.
-
-
- #### Example
- An e-learning platform creates a new playlist titled Beginner Python Series through the API. The response returns a unique playlist ID. The platform uses this ID to add a series of video tutorials to the playlist in a defined order. The playlist appears on the frontend as a structured learning path for learners.
- operationId: create-a-playlist
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CreatePlaylistRequest"
- responses:
- "201":
- description: Playlist created successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/playlistCreatedResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Get all playlists
- description: |-
- This endpoint retrieves all playlists in a specified workspace. It allows you to view the collection of manual and smart playlists along with their associated metadata.
- #### How it works
-
- - When a user sends a GET request to this endpoint, FastPix returns a list of all playlists in the workspace, including details such as playlist IDs, titles, creation mode (manual or smart), and other relevant metadata.
-
- #### Example
-
- An e-learning platform requests all playlists within a workspace to display an overview of available learning paths. The response includes multiple playlists like "Beginner Python Series" and "Advanced Java Tutorials," enabling the platform to show users a catalog of curated content collections.
- operationId: get-all-playlists
- parameters:
- - name: limit
- in: query
- required: false
- description: The number of playlists to return (default is 10, max is 50).
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 1
- - name: offset
- in: query
- required: false
- description: The page number to retrieve, starting from 1. Use this parameter to paginate the playlist results.
- schema:
- type: integer
- default: 1
- minimum: 1
- example: 1
- responses:
- "200":
- description: Successfully retrieved all playlists
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/GetAllPlaylistsResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/playlists/{playlistId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Get a playlist by ID
- description: |-
- This endpoint retrieves detailed information about a specific playlist using its unique `playlistId`. It provides comprehensive metadata about the playlist, including its title, creation mode (manual or smart), media items along with the metadata of each media in the playlist.
-
-
- #### Example
- An e-learning platform requests details for the playlist "Beginner Python Series" by providing its unique `playlistId`. The response includes the playlist"s title, creation mode, and the ordered list of video tutorials contained within, enabling the platform to present the full learning path to users.
- operationId: get-playlist-by-id
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to retrieve.
- schema:
- type: string
- responses:
- "200":
- description: Successfully retrieved all playlists
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaylistByIdResponse"
- examples:
- manual:
- summary: Manual playlist (no playOrder)
- value:
- success: true
- data:
- id: 46d5fce1-683a-457f-86d7-c048bb429505
- name: My Manual Playlist
- referenceId: 122q
- type: manual
- description: This is a manual playlist.
- mediaList: []
- workspaceId: d760b903-86ef-44d6-9b73-334130e0cf2d
- createdAt: "2025-06-05T09:10:30.655275Z"
- updatedAt: "2025-06-05T12:23:47.096690Z"
- mediaCount: 0
- smart:
- summary: Smart playlist (playOrder required)
- value:
- success: true
- data:
- id: 46d5fce1-683a-457f-86d7-c048bb429505
- name: My Smart Playlist
- referenceId: 122q
- type: smart
- description: This Playlist contains videos from December 2024.
- playOrder: createdDate ASC
- metadata:
- createdDate:
- startDate: "2024-12-11"
- endDate: "2024-12-12"
- updatedDate:
- startDate: "2024-12-11"
- endDate: "2024-12-12"
- mediaList: []
- workspaceId: d760b903-86ef-44d6-9b73-334130e0cf2d
- createdAt: "2025-06-05T09:10:30.655275Z"
- updatedAt: "2025-06-05T12:23:47.096690Z"
- mediaCount: 0
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- put:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Update a playlist by ID
- description: |-
- This endpoint allows you to update the name and description of an existing playlist. It enables modifications to the playlist's metadata without altering the media items or playlist structure.
- #### How it works
-
- - When a user sends a PUT request to this endpoint with the `playlistId` and updated name and description in the request body, FastPix updates the playlist metadata accordingly and returns the updated playlist details.
-
- #### Example
- An e-learning platform updates the playlist titled "Beginner Python Series" to rename it as "Python Basics" and add a more detailed description. The updated metadata is reflected when retrieving the playlist, helping users better understand the playlist content.
- operationId: update-a-playlist
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to retrieve.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/UpdatePlaylistRequest"
- responses:
- "200":
- description: Playlist updated successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/playlistCreatedResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Delete a playlist by ID
- description: |-
- This endpoint allows you to delete an existing playlist from the workspace. After deleted, the playlist and its metadata are permanently removed and cannot be recovered.
- #### How it works
- - When a user sends a DELETE request to this endpoint with the `playlistId`, FastPix removes the specified playlist from the workspace and returns a confirmation of successful deletion.
-
- #### Example
- An e-learning platform deletes an outdated playlist titled "Old Python Tutorials" by providing its unique playlist ID. The platform receives confirmation that the playlist has been removed, ensuring learners no longer see the obsolete content.
- operationId: delete-a-playlist
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to delete.
- schema:
- type: string
- responses:
- "200":
- description: Playlist deleted successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaylistDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/playlists/{playlistId}/media:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Add media to a playlist by ID
- description: |-
- This endpoint allows you to add one or more media items to an existing playlist. By passing the media ID(s) in the request, the specified media items are appended to the playlist in the order provided.
- #### How it works
-
- - When a user sends a PATCH request to this endpoint with the `playlistId` as path parameter and a list of media ID(s) in the request body, FastPix adds the specified media items to the playlist and returns the updated playlist details.
-
- #### Example
- An e-learning platform adds new video tutorials to the "Beginner Python Series" playlist by sending their media IDs in the request. The playlist is updated with the new content, ensuring learners have access to the latest tutorials in sequence.
- operationId: add-media-to-playlist
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to perform the operation on.
- schema:
- type: string
- format: uuid
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MediaIdsRequest"
- responses:
- "200":
- description: Added media to playlist successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaylistByIdResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- put:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Change media order in a playlist by ID
- description: |-
- This endpoint allows you to change the order of media items within a playlist. By passing the complete list of media IDs in the desired sequence, the playlist's play order is updated accordingly.
- #### How it works
-
- - When a user sends a PUT request to this endpoint with the `playlistId` as path parameter and the reordered list of all media IDs in the request body, FastPix updates the playlist to reflect the new media sequence and returns the updated playlist details.
-
- #### Example
- An e-learning platform rearranges the "Beginner Python Series" playlist by submitting a reordered list of media IDs. The playlist now follows the new sequence, providing learners with a better structured learning path.
- operationId: change-media-order-in-playlist
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to perform the operation on.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MediaIdsRequest"
- responses:
- "200":
- description: Added media to playlist successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaylistByIdResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Delete media in a playlist by ID
- description: |-
- This endpoint allows you to delete one or more media items from an existing playlist. By passing the media ID(s) in the request, the specified media items are removed from the playlist.
- #### How it works
-
- - When a user sends a DELETE request to this endpoint with the playlist ID as the path parameter and the media ID(s) to be removed in the request body, FastPix deletes the specified media items from the playlist and returns the updated playlist details.
-
- #### Example
- An e-learning platform removes outdated video tutorials from the "Beginner Python Series" playlist by specifying their media IDs in the request. The playlist is updated to exclude these items, ensuring learners only access relevant content.
- operationId: delete-media-from-playlist
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to perform the operation on.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MediaIdsRequest"
- responses:
- "200":
- description: Deleted media from playlist successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaylistByIdResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/playback-ids/{playbackId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Get a playback ID
- description: |
- This endpoint retrieves details about a specific playback ID associated with a media asset. Use it to check the access policy for that specific playback ID, such as whether it is public or private.
-
- **How it works:**
- 1. Make a GET request to the endpoint, replacing `{mediaId}` with the media ID and `{playbackId}` with the playback ID.
- 2. This request is useful for auditing or validation before granting playback access in your application.
-
- **Example:**
- A media platform might use this endpoint to verify if a playback ID is public or private before embedding the video in a frontend player or allowing access to a restricted group.
- operationId: get-playback-id
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: playbackId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the playback when created. The value must be a valid UUID.
- responses:
- "200":
- description: Successfully retrieved playback ID details
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 54fd5e7e-3aa5-4817-b56d-44932f67f6c3
- description: Unique identifier of the playback ID.
- accessPolicy:
- type: string
- enum:
- - public
- - private
- - drm
- example: public
- description: The access policy set for the playback ID.
- accessRestrictions:
- type: object
- description: Restrictions applied to this playback ID.
- properties:
- domains:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: allow
- allow:
- type: array
- items:
- type: string
- example: ["example.com", "trustedsite.org"]
- deny:
- type: array
- items:
- type: string
- example: ["malicioussite.com", "abc.net"]
- userAgents:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: deny
- allow:
- type: array
- items:
- type: string
- example:
- - Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36
- deny:
- type: array
- items:
- type: string
- example:
- - PostmanRuntime/7.29.0
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/playback-ids/{playbackId}/domains:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Update domain restrictions for a playback ID
- description: |
- This endpoint updates domain-level restrictions for a specific playback ID associated with a media asset.
- It allows you to restrict playback to specific domains or block known unauthorized domains.
-
- **How it works:**
- 1. Make a `PATCH` request to this endpoint with your desired domain access configuration.
- 2. Set a default policy (`allow` or `deny`) and specify domain names in the `allow` or `deny` lists.
- 3. This is commonly used to restrict video playback to your website or approved client domains.
-
- **Example:**
- A streaming service can allow playback only from `example.com` and deny all others by setting: `"defaultPolicy": "deny"` and `"allow": ["example.com"]`.
-
- operationId: update-domain-restrictions
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 5ebfa8f7-3ff1-4a35-8b1a-d3a16e22184c
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: playbackId
- required: true
- schema:
- type: string
- format: uuid
- example: 0199deff-9aef-457e-9461-7a28afdf8773
- description: The unique identifier assigned to the playback when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: allow
- default: allow
- description: Specify the fallback behavior for domains that are not listed in the `allow` or `deny` lists.
- allow:
- type: array
- items:
- type: string
- example: ["yourdomain.com", "sampledomain.com"]
- default: ["yourdomain.com"]
- description: List of domains explicitly allowed to play the media.
- deny:
- type: array
- items:
- type: string
- example: ["yourworkdomain.com"]
- default: []
- description: List of domains explicitly denied from accessing the media.
-
- responses:
- "200":
- description: Successfully updated domain restrictions
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- properties:
- defaultPolicy:
- type: string
- example: allow
- description: Specify the fallback behavior for domains that are not listed in the allow or deny lists.
- allow:
- type: array
- items:
- type: string
- description: List of domains explicitly allowed to play the media.
- example: ["yourdomain.com", "yourworkdomain.com"]
- deny:
- type: array
- items:
- type: string
- description: List of domains explicitly denied from accessing the media.
- example: ["sampledomain.com"]
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
-
- /on-demand/{mediaId}/playback-ids/{playbackId}/user-agents:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Update user-agent restrictions for a playback ID
- description: |
- This endpoint allows updating user-agent restrictions for a specific playback ID associated with a media asset.
- It can be used to allow or deny specific user-agents during playback request evaluation.
-
- **How it works:**
- 1. Make a `PATCH` request to this endpoint with your desired user-agent access configuration.
- 2. Specify a default policy (`allow` or `deny`) and provide specific `allow` or `deny` lists.
- 3. Use this to restrict access to specific browsers, devices, or bots.
-
- **Example:**
- A developer may configure a playback ID to deny access from known scraping user-agents while allowing all others by default.
-
- operationId: update-user-agent-restrictions
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 5ebfa8f7-3ff1-4a35-8b1a-d3a16e22184c
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: playbackId
- required: true
- schema:
- type: string
- format: uuid
- example: 0199deff-9aef-457e-9461-7a28afdf8773
- description: The unique identifier assigned to the playback when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: allow
- default: allow
- description: The default behavior when a user-agent is not listed in `allow` or `deny`.
- allow:
- type: array
- items:
- type: string
- example:
- - "Mozilla/55.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
- default:
- - "Mozilla/55.0 (Macintosh; Intel Mac OS X 10_15_7)"
- description: List of user-agent substrings explicitly allowed.
- deny:
- type: array
- items:
- type: string
- example:
- - "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/53745.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36"
- default: []
- description: List of user-agent substrings explicitly denied.
-
- responses:
- "200":
- description: Successfully updated user-agent restrictions
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- properties:
- defaultPolicy:
- type: string
- example: allow
- description: Specifies the default behavior for user agents not listed in the allow or deny lists.
- allow:
- type: array
- items:
- type: string
- example: ["Mozilla/55.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"]
- description: List of user-agent substrings explicitly allowed.
- deny:
- type: array
- items:
- type: string
- example: ["Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/53745.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36"]
- description: List of user-agent substrings explicitly denied.
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/drm-configurations:
- get:
- tags:
- - DRM configurations
- security:
- - BasicAuth: []
- summary: Get list of DRM configuration IDs
- description: |
-
- This endpoint retrieves the DRM configuration (DRM ID) associated with a workspace. It returns a list of DRM configurations, identified by a unique DRM ID, which is used for creating DRM encrypted asset.
-
- **How it works:**
- 1. Make a GET request to this endpoint.
- 2. Optionally use the `offset` and `limit` query parameters to paginate through the list of DRM configurations.
- 3. The response includes a list of DRM IDs and pagination metadata.
-
- **Example:**
- A media service provider may retrieve DRM configuration for a workspace to create DRM content.
-
- Related guide: Manage DRM configuration
- operationId: getDrmConfiguration
- parameters:
- - in: query
- name: offset
- schema:
- type: integer
- default: 1
- minimum: 1
- example: 1
- description: Offset determines the starting point for data retrieval within a paginated list.
- - in: query
- name: limit
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 10
- description: Limit specifies the maximum number of items to display per page.
- responses:
- "200":
- description: DRM configuration(s) retrieved successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- items:
- $ref: "#/components/schemas/DrmIdResponse"
- pagination:
- $ref: "#/components/schemas/Pagination"
- example:
- success: true
- data:
- - id: e3dfdf15-16bb-4835-98b9-484c1e4320cc
- pagination:
- totalRecords: 1
- currentOffset: 1
- offsetCount: 1
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/drm-configurations/{drmConfigurationId}:
- get:
- tags:
- - DRM configurations
- security:
- - BasicAuth: []
- summary: Get DRM configuration by ID
- description: |
-
- This endpoint retrieves a DRM configuration ID. It is used to fetch the DRM-related ID for a workspace, typically required when validating or applying DRM policies to video assets.
-
- **How it works:**
- 1. Make a GET request to this endpoint, replacing `{drmConfigurationId}` with the UUID of the DRM configuration.
- 2. The response contains the associated DRM configuration ID.
-
- Related guide: Manage DRM configuration
- operationId: getDrmConfigurationById
- parameters:
- - in: path
- name: drmConfigurationId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the DRM configuration.
- responses:
- "200":
- description: DRM configuration retrieved successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/DrmIdResponse"
- example:
- success: true
- data:
- id: e3dfdf15-16bb-4835-98b9-484c1e4320cc
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams:
- post:
- security:
- - BasicAuth: []
- tags:
- - Start live stream
- summary: Create a new stream
- description: |-
- Creates a new RTMPS or SRT live stream in FastPix. When you create a stream, FastPix generates a unique `streamKey` and `srtSecret` that you can use with broadcasting software such as OBS to connect to FastPix RTMPS or SRT servers. Use SRT for live streaming in unstable network conditions, as it provides error correction and encryption for a more reliable and secure broadcast.
-
- Leverage SRT for live streaming in environments with unstable networks, taking advantage of its error correction and encryption features for a resilient and secure broadcast.
-
- How it works
-
- 1. Send a `POST` request to this endpoint. You can configure the stream settings, including `metadata` (such as stream name and description), `reconnectWindow` (in case of disconnection), and privacy options (`public` or `private`).
-
- 2. FastPix returns the stream details for both RTMPS and SRT configurations. These keys and IDs from the stream details are essential for connecting the broadcasting software to FastPix’s servers and transmitting the live stream to viewers.
-
- 3. After the live stream is created, FastPix sends a `POST` request to your specified webhook endpoint with the event video.live_stream.created.
-
-
- **Example:**
-
-
- Imagine a gaming platform that allows users to live stream gameplay directly from their dashboard. The API creates a new stream, provides the necessary stream key, and sets it to "private" so that only specific viewers can access it.
-
-
- Related guide: How to live stream
- operationId: create-new-stream
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CreateLiveStreamRequest"
- responses:
- "201":
- description: Stream created successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/liveStreamResponseDTO"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Get all live streams
- description: |-
- Retrieves a list of all live streams associated with the current workspace. It provides an overview of both current and past live streams, including details like `streamId`, `metadata`, `status`, `createdAt` and more.
-
-
- #### How it works
-
- Use the access token and secret key related to the workspace in the request header. When called, the API provides a paginated response containing all the live streams in that specific workspace. This is helpful for retrieving a large volume of streams and managing content in bulk.
- operationId: get-all-streams
- parameters:
- - name: limit
- in: query
- description: Limit specifies the maximum number of items to display per page.
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 20
- - name: offset
- in: query
- description: Offset determines the starting point for data retrieval within a paginated list.
- schema:
- type: integer
- default: 1
- example: 1
- - name: orderBy
- in: query
- description: The list of value can be order in two ways DESC (Descending) or ASC (Ascending). In case not specified, by default it will be DESC.
- schema:
- type: string
- example: desc
- default: desc
- enum:
- - asc
- - desc
- responses:
- "200":
- description: All streams retrieved sucessfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/getStreamsResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/viewer-count:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Get stream views by ID
- description: |-
- This endpoint retrieves the current number of viewers watching a specific live stream, identified by its unique `streamId`.
-
- The viewer count is an **approximate value**, optimized for performance. It provides a near-real-time estimate of how many clients are actively watching the stream. This approach ensures high efficiency, especially when the stream is being watched at large scale across multiple devices or platforms.
-
- #### Example
-
- Suppose a content creator is hosting a live concert and wants to display the number of live viewers on their dashboard. This endpoint can be queried to show up-to-date viewer statistics.
-
- Related guide: Manage streams
-
- operationId: get-live-stream-viewer-count-by-id
- parameters:
- - name: streamId
- in: path
- required: true
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream viewer count retrieved successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ViewsCountResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Get stream by ID
- description: |-
- This endpoint retrieves details about a specific live stream by its unique `streamId`. It includes data such as the stream’s `status` (idle, preparing, active, disabled), `metadata` (title, description), and more.
- #### Example
-
- Suppose a news agency is broadcasting a live event and wants to track the configurations set for the live stream while also checking the stream's status.
-
-
- Related guide: Manage streams
- operationId: get-live-stream-by-id
- parameters:
- - name: streamId
- in: path
- required: true
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream details retrieved successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/livestreamgetResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Delete a stream
- description: |-
- Permanently deletes a specified live stream from the workspace. If the stream is active, the encoder is disconnected and ingestion stops immediately. This action is irreversible, and any future playback attempts fail as a result.
-
- Provide the `streamId` in the request to terminate active connections and remove the stream from the workspace. You can further look for video.live_stream.deleted webhook to notify your system about the status.
-
- #### Example
-
- For an online concert platform, a trial stream was mistakenly made public. The event manager deletes the stream before the concert begins to avoid confusion among viewers.
-
-
- Related guide: Manage streams
- operationId: delete-live-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream deleted successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LiveStreamDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- patch:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Update a stream
- description: |-
- This endpoint allows you to modify the parameters of an existing live stream, such as its `metadata` (title, description) or the `reconnectWindow`. It’s useful for making changes to a stream that has already been created but not yet ended. After the live stream is disabled, you cannot update a stream.
-
-
- The updated stream parameters and the `streamId` needs to be shared in the request, and FastPix returns the updated stream details. After the update, video.live_stream.updated webhook event notifies your system.
-
- #### Example
-
- A host realizes they need to extend the reconnect window for their live stream in case they lose connection temporarily during the event. Or suppose during a multi-day online conference, the event organizers need to update the stream title to reflect the next day"s session while keeping the same stream ID for continuity.
-
-
-
- Related guide: Manage streams
- operationId: update-live-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 91a264dcc447b63da6fb79ef925cd76d
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/patchLiveStreamRequest"
- responses:
- "200":
- description: Stream details updated successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/patchResponseDTO"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/live-enable:
- put:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Enable a stream
- description: |-
- This endpoint allows you to enable a livestream by transitioning its status from `disabled` to `idle`. After it is enabled, the stream becomes available and ready to accept an incoming broadcast from a streaming tool.
-
- Streams on the trial plan cannot be re-enabled if they are in the `disabled` state.
-
- The `livestreamId` must be provided in the path, and the stream must not already be in an enabled state (`idle`, `preparing`, or `active`).
-
- #### Example
-
- A creator disables a livestream to pause it temporarily. Later, they decide to continue the session. By calling this endpoint with the stream's ID, they can re-enable and restart the same livestream.
-
- Related guide Manage streams
- operationId: enable-live-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 91a264dcc447b63da6fb79ef925cd76d
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream details updated successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LiveStreamDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/live-disable:
- put:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Disable a stream
- description: |-
- This endpoint disables a livestream by setting its status to `disabled`. Use this to stop a livestream when it's no longer needed or must be taken offline intentionally.
-
- A disabled stream can later be re-enabled using the enable endpoint — however, if you're on a trial plan, re-enabling is not allowed once the stream is disabled.
-
- #### Example
-
- A speaker finishes their live session and wants to prevent the stream from being mistakenly started again. By calling this endpoint, the stream is transitioned to a `disabled` state, ensuring it's permanently stopped (unless re-enabled on a paid plan).
-
- Related guide Manage streams
- operationId: disable-live-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 91a264dcc447b63da6fb79ef925cd76d
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream details updated successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LiveStreamDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/finish:
- put:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Complete a stream
- description: |-
- This endpoint marks a livestream as completed by stopping the active stream and transitioning its status to `idle`. It is typically used after a livestream session has ended.
-
- This operation only works when the stream is in the `active` state.
-
- Completing a stream can help finalize the session and trigger post-processing events like VOD generation.
-
- #### Example
-
- A virtual event ends, and the system or host needs to close the livestream to prevent further streaming. This endpoint ensures the livestream status is changed from `active` to `idle`, indicating it's officially completed.
-
- Related guide Manage streams
- operationId: complete-live-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 91a264dcc447b63da6fb79ef925cd76d
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream details updated successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LiveStreamDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/playback-ids:
- post:
- security:
- - BasicAuth: []
- tags:
- - Live playback
- summary: Create a playbackId
- description: |-
- Generates a new playback ID for the live stream, allowing viewers to access the stream through this ID. The playback ID can be shared with viewers for direct access to the live broadcast.
-
- By calling this endpoint with the `streamId`, FastPix returns a unique `playbackId`, which can be used to stream the live content.
-
- #### Example
-
- A media platform needs to distribute a unique playback ID to users for an exclusive live concert. The platform can also embed the stream on various partner websites.
- operationId: create-playbackId-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/playbackIdRequest"
- responses:
- "201":
- description: New PlaybackId created successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaybackIdSuccessResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Live playback
- summary: Delete a playbackId
- description: |-
- Deletes a previously created playback ID for a live stream.This prevents new viewers from accessing the stream using the playback ID, while current viewers can continue watching for a short period before the connection ends. FastPix deletes the ID and ensures the new playback request fails.
-
- #### Example
- A streaming service wants to prevent new users from joining a live stream that is nearing its end. The host can delete the playback ID to ensure no one can join the stream or replay it once it ends.
- operationId: delete-playbackId-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- - name: playbackId
- in: query
- required: true
- example: 88b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd
- description: Unique identifier for the playbackId
- schema:
- type: string
- responses:
- "200":
- description: Stream's playbackId deleted successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LiveStreamDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/playback-ids/{playbackId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Live playback
- summary: Get playbackId details
- description: |-
- Retrieves details for an existing playback ID. When you provide the playbackId returned from a previous stream or playback creation request, FastPix returns the associated playback information, including the access policy.
-
- #### Example
- A developer needs to confirm the access policy of the playback ID to ensure whether the stream is public or private for viewers.
- operationId: get-live-stream-playback-id
- parameters:
- - name: streamId
- in: path
- required: true
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- - name: playbackId
- in: path
- required: true
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: After creating a new playbackId, FastPix assigns a unique identifier to the playback.
- schema:
- type: string
- responses:
- "200":
- description: Stream details retrieved successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaybackIdSuccessResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/simulcast:
- post:
- security:
- - BasicAuth: []
- tags:
- - Simulcast stream
- summary: Create a simulcast
- description: |-
- Creates a simulcast for a parent live stream. Simulcasting allows you to broadcast a live stream to multiple social platforms simultaneously (for example, YouTube, Facebook, or Twitch). This helps expand your audience reach across platforms. A simulcast can only be created when the parent live stream is in the idle state (not currently live or disabled). Only one simulcast target can be created per API call.
- #### How it works
-
- 1. Change to: When you call this endpoint, provide the parent `streamId` along with the simulcast target details (such as platform and credentials). The API returns a unique `simulcastId`, which you can use to manage the simulcast later.
-
- 2. To notify your application about the status of simulcast related events check for the webhooks for simulcast target events.
-
- #### Example
- An event manager sets up a live stream for a virtual conference and wants to simulcast the stream on YouTube and Facebook Live. They first create the primary live stream in FastPix, ensuring it's in the idle state. Then, they use the API to create a simulcast target for YouTube.
-
- Related guide: Simulcast to 3rd party platforms
- operationId: create-simulcast-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastRequest"
- responses:
- "201":
- description: New Simulcast created successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/simulcast/{simulcastId}:
- delete:
- security:
- - BasicAuth: []
- tags:
- - Simulcast stream
- summary: Delete a simulcast
- description: |-
- Deletes a simulcast using its unique simulcastId, which you received during the simulcast creation process. Deleting a simulcast stops the broadcast to the associated platform, while the parent stream continues if it’s live. This action can’t be undone, and you must create a new simulcast to resume streaming to the same platform.
-
- Webhook event: video.live_stream.simulcast_target.deleted
-
-
- #### Example
- A broadcaster may need to stop simulcasting to one platform while keeping the stream active on others. For example, a tech company is simulcasting a product launch across multiple platforms. Midway through the event, they decide to stop the simulcast on Facebook due to performance issues but continue streaming on YouTube. They use this API to delete the Facebook simulcast target.
-
- operationId: delete-simulcast-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- - name: simulcastId
- in: path
- required: true
- example: 9217422d89288ad5958d4a86e9afe2a1
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- schema:
- type: string
- responses:
- "200":
- description: Stream's simulcast deleted successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastdeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- security:
- - BasicAuth: []
- tags:
- - Simulcast stream
- summary: Get a specific simulcast
- description: |-
- Retrieves the details of a specific simulcast associated with a parent live stream. By providing both the `streamId` of the parent stream and the `simulcastId`, FastPix returns detailed information about the simulcast, such as the stream URL, the status of the simulcast, and metadata.
-
- #### Example
- This endpoint can be used to verify the status of the simulcast on external platforms before the live stream begins. For example, before starting a live gaming event, the organizer wants to ensure that the simulcast to Twitch is set up correctly. They retrieve the simulcast information to confirm that everything is properly configured.
- operationId: get-specific-simulcast-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- - name: simulcastId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- schema:
- type: string
- responses:
- "200":
- description: Stream's simulcast details fetched successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- put:
- security:
- - BasicAuth: []
- tags:
- - Simulcast stream
- summary: Update a simulcast
- description: |-
- Updates the status of a specific simulcast linked to a parent live stream. You can enable or disable the simulcast at any time while the parent stream is active or idle. After the live stream is disabled, the simulcast can no longer be modified.
-
- Webhook event: video.live_stream.simulcast_target.updated
-
- #### Example
- When a `PATCH` request is made to this endpoint, the API updates the status of the simulcast. This can be useful for pausing or resuming a simulcast on a particular platform without stopping the parent live stream.
- operationId: update-specific-simulcast-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 9714422d89287ad5758d4a86e9afe1a2
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- - name: simulcastId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastUpdateRequest"
- responses:
- "200":
- description: Stream's simulcast details fetched successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastUpdateResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /iam/signing-keys:
- post:
- tags:
- - Signing keys
- summary: Create a signing key
- operationId: create_signing_key
- description: |-
- This endpoint allows you to create a new signing key pair for FastPix. When you call this endpoint, the API generates a 2048-bit RSA key pair. The privateKey is returned in the response, encoded in Base64 format. You also receive a unique key ID to reference the key in future operations. FastPix securely stores the public key to validate signed tokens.
-
-
- Instructions
-
-
- **Private key handling:** The privateKey you receive is encoded in Base64. To use it, decode the value using Base64 decoding. Make sure to store this private key securely, as it is required for signing tokens.
-
-
- **Key-ID:** The ID is used to reference this specific key pair in future API requests or configurations.
-
-
- After the key pair is generated, the developer must securely store the private key because FastPix does not save it. The public key is used by FastPix to verify signed tokens and ensure that the client interacting with the system is legitimate.
-
-
-
-
-
- Use case scenario
-
-
-
- **Use case:** A developer building a video subscription service wants to ensure that only authorized users can access premium content. By generating a signing key, the developer can issue signed JSON Web Tokens (JWTs) to authenticate and authorize users. These tokens can be validated by FastPix using the stored public key.
-
-
- **Detailed example:** You are building a video-on-demand platform that restricts access based on user subscriptions. To ensure only subscribed users can stream content, you generate a signing key using this API. Each time a user logs in, you create a JWT signed with the private key. When the user attempts to play a video, FastPix uses the public key to verify the token and confirms that the user is authorized.
- Related guide: Create and use signing keys
- security:
- - BasicAuth: []
- responses:
- "201":
- description: created a signing key successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CreateResponse"
- example:
- success: true
- data:
- id: fc9d9368-6ee5-4b16-ae50-880a2374bdc4
- privateKey: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRREtaN1JKT1IrbXZGeVQxSWFIL0hVUkYwQnRncDJzK0srdUd4TUZ4N1JiaGNudVBMYU14WjM1b0lNWndhdHJrdDFDM3JxVFZsQzBsSnExeENFTyt3Zi9JNHQ0bktmUFB2WG83NGFCQi82YmR0MXpaSHp0OGFIenBnL3YrdEtCWVc5SEdWQ0tYc2JpNjczbHgwcFhHdXVnem8wdnZMR2lKWDBiL0Z4WEI5U1R3RkV5Q1dQOFJhczZ3VWVuSUdVM2UwMmJiV3Z4UnNoMWNER2xSRk03RWw2RVQ2MUQrS0tLTndnUGNYR1pvY0YwZTFxRU5iVGdPZUdBMFNDU0xIT3NtQ0NBQTNtSndJS1VaY0Z2MmpGRUx4Uk5MTnhoMjM5UEdUT3BuWmdvTFp5Skt4b2REN1FpV1N1eDVZY1Z0MFgrSk9rZXNBOEpjM1ZtM0tGc0IwL3RYck9QQWdNQkFBRUNnZ0VBUHhNWUxLVmZocTgyVGw4eFdWbEVCZ0p2OG5COHdIVnpFZGVnRXZJTDgyVjY2d0lDaFZYa0IvR01TVStBSXZMT2Z0TTM0MGhIdUM2REU5ZTkwWlJMQnFoR0ExMFdNbEJWZzdSNC91YkY0aDZsbmhzWGozTDRYQnhJNVNrTnhvSGRrcE9COU16YVA4YmxFNkVLT3FES0F2KzdJY0EwdnVuZDFnWExwTmRzMkduTW5nZW1qOUhJZWh1eTNLY0taNHlheFo1YkRKVEpLZlFrTlFDQzhOR0hIdWovQmRWUnU1RHRrZVdNMFFpN2FKeW5lSXRxOGhtbXdxcVNMTnpTOTZtcHpBdzF3RzFXTHVML1A3TGxJekVWa2ZJUFc0SW1zRXhsSG5FUG0ySld1RUNMQ1pRL25NODdhQXVXekROektCYW51LzZhdXhnSDB2Wnc5YWowTmxNNFFRS0JnUURPM3Y0YlN4bWluZGJpVEdSaXdFVXVyODh4TVA3M2U5RSt2SHlzb3JZMWZycFpkdXJHOVlFb09MUFN1YnQ5WkhZNFhGOFhxRWZ4bE94d294eDVzcU9PcGNMTnFnOWhTSWxPaXEyYmVnN2V2RGpOMml6b3JKRFl3VEhGQ0Era25FbmFpL0J2TU16N3AyVVkrUEEzUnJ4Z25BK3RkQlErZWlSZ1c0WmhnMkhWcndLQmdRRDZlVEpwRTRxZVFYdmpnMy9FS081UkllRklZOHphTGMvMVVHODBqNmVvbStNK3UyTmdUVDJqVmNyMkdQbjZTbHRNRlJNem5qOVJHYmQ1MCt5a2k0Y1NYU1JPdE44alV2M0FseHJtZzEwVTVtSWIrUXFIZ3g2QldyeXkvakxHYXVvMUJnVFg1dDZ0VXVEUUZuVDJSM2xoNGRNZ044T3V4VlR3OCtadGloSllJUUtCZ1FERE00ZHpHWnBHNThrc0lBbFpaVFBpcWVKSCtJT2Q0eWUrbXZ6SnFYOWxXdjljQytuZGN5czhXTVRWd293MzllUFhxdEhQOE9weCtxUmdaSWtxREhabzArRE5UL3JUUVM3Ty9leHpHT21QSXV3MjBmZ3VWU2NZWUxRbHgwVjdmajN5Q3JvRk1YYzZ2dW1XZHMrMFdQckg3bnFjb1R1NCtHZjZ4R0k1QVUvLzRRS0JnUUR6TFcvdjdIVU1xTzhyT0tSM1FuWCtkekpPSWZibGJNMFdrdjBrdnNROFF2MGlEclN3N3MwRkkycGwvR0hXeXhKUWo3V1F5L2NWT2k2VUxWajNlQyt2ZUphamc1K1FvQ2FWTVIrQTVkRWRWWCt6UU5za0xmMFVBWkJyQjdrc1F1a1lpYnR5RWtmblp5dTFXOWc2czdINWdsS0VXUiszTXdjQTJRdkRGZVl4Z1FLQmdDWVdlKzQ4bVVaUEl5ZnR4NVFaQllnYTE2blpndzYxZmxtdEdpQlVGWGVMR3BTaU1XNXc5R3RYVDZPbFh1Zy91TkNKbHR4TDE4c0NEeDNVaU9DNWFTMEN4OTc5TlFrSm1YRWw1UDNtMFNGaVU4VlZ0SFp1dHd3SWFKTFZockZ1T3NJV1BtRFN4aHhMaFpPNmJ5aWRwbHlXLzl1eGpwMlZrQ0Y3OGd5QXRRSWsKLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
- createdAt: "2024-01-11T10:00:06.618993Z"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- tags:
- - Signing keys
- summary: Get list of signing key
- operationId: list_signing_keys
- description: |-
- This endpoint returns a list of all the signing keys associated with an organization in FastPix. Each key entry in the response includes metadata such as the key id, creation date, and workspace details. This helps you manage multiple keys, track their usage, and identify which keys are valid for signing API requests.
-
-
-
-
- How it works
-
-
- The API returns the list in a paginated format, allowing you to audit and track all keys used for your application. Regularly reviewing this list is essential for ensuring that old or compromised keys are promptly revoked and that new keys are properly integrated into workflows.
-
-
-
-
- Use case scenario
-
-
-
- **Use case:** A security-conscious development team wants to ensure they follow a key rotation policy, rotating signing keys every few months. By retrieving the list of signing keys, they can identify which keys are still in use and which ones need to be rotated.
-
-
- **Detailed example:** You manage a multi-region video platform where teams in different regions use their own signing keys. To comply with your organization’s security policies, you regularly review the list of signing keys to verify which ones are still active. You notice that some keys haven’t been used for several months. Based on their creation dates, you decide to rotate those keys.
- security:
- - BasicAuth: []
- parameters:
- - in: query
- name: limit
- schema:
- type: integer
- minimum: 1
- maximum: 50
- default: 10
- example: 25
- description: Limit specifies the maximum number of items to display per page.
- - in: query
- name: offset
- schema:
- type: integer
- minimum: 1
- default: 1
- example: 1
- description: "It is used for pagination, indicating the starting point for fetching data. "
- responses:
- "200":
- description: successfully fetched all signing keys
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/GetAllSigningKeysResponse"
-
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /iam/signing-keys/{signingKeyId}:
- delete:
- tags:
- - Signing keys
- summary: Delete a signing key
- operationId: delete_signing_key
- description: |-
- This endpoint allows you to delete an existing signing key, and the action is permanent. After a key is deleted, any signatures or tokens generated with that key become invalid immediately. This means you can no longer use the key to sign JSON Web Tokens (JWTs) or authenticate API requests.
- Usage
- To delete a signing key, provide the unique key ID that you obtained when creating the key. This key id serves as the identifier for the specific signing key you want to remove from your account.
-
-
-
- How it works
-
- When you specify the keyId, the API removes the signing key from the system. After the key is deleted, any API requests or tokens that rely on it fail. This action is useful when a key is compromised or when rotating keys as part of security policies.
-
-
-
- Use case scenario
-
-
- **Use case:** A key used by an outdated application version has been compromised, or a developer accidentally leaked it. To prevent unauthorized access, the developer deletes the signing key, revoking its ability to sign requests immediately.
-
-
- **Detailed example:** Suppose you have a signing key used for a specific version of your mobile app, and you discover that the key has been compromised due to a security breach. To mitigate the issue, you delete the key to invalidate any tokens generated using it. As soon as the key is deleted, users on the compromised version of the app can no longer make valid requests, thus preventing further exploitation.
- security:
- - BasicAuth: []
- parameters:
- - name: signingKeyId
- in: path
- required: true
- schema:
- type: string
- format: uuid
- example: 3ta85f64-5717-4562-b3fc-2c963f66afa6
- description: When creating the signing key, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
- responses:
- "200":
- description: successfully fetched all signing keys
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/DeleteSigningKeyResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- tags:
- - Signing keys
- summary: Get signing key by ID
- operationId: get-signing_key_by_id
- description: |-
- This endpoint allows you to retrieve detailed information about a specific signing key using its unique key id. While the private key is not returned for security reasons, You can view the key’s creation date, status, and other associated metadata. This endpoint also returns the workspaceId and publicKey in the response.
-
-
- Usage: Generating a JWT token
-
- In the response, the API returns the workspaceId and publicKey associated with the signing key. With the publicKey and the privateKey obtained from the "Create a Signing Key" endpoint, you can generate a JSON Web Token (JWT) using the RS256 algorithm. This token can be utilized for accessing private media assets, GIFs, thumbnails, and spritesheets.
-
-
-
- Payload:
-
-
- ```
- {
- "kid": "359302ee-2446-4afe-9348-8b4656b9ddb1",
- "aud": "media:6cee6f85-9334-4a51-9ce3-e0241d94ceef",
- "iss": "fastpix.com",
- "sub": "",
- "iat": 1706703204,
- "exp": 1735626783
-
- }
- ```
-
-
-
- * **kid:** The key ID of the signing key.
- * **aud:** The audience for which the token is intended, enter the playbackId here.
- * **iss:** The issuer of the token (for example, "fastpix.com ").
- * **sub:** The subject of the token, typically representing the user or entity the token is issued for. In this case, use the workspaceId fetched from the "Get Signing Key by ID" endpoint.
- * **groups:** An array of groups the subject belongs to (for example, ["user"]).
- * **iat:** The issued-at timestamp, indicating when the token was created.
- * **exp:** The expiration timestamp, indicating when the token will no longer be valid.
-
-
-
-
-
- Use case scenario
-
-
-
- **Use case:** A developer is unsure about the status of a signing key they created months ago and wants to verify whether it's still in use or has expired.
-
-
-
- **Detailed example:** You’re working on a streaming platform and realize you haven’t checked the status of a signing key that was used for playback access several months ago. By fetching the key details using its ID, you can confirm whether it’s still active, when it was created, and if it’s nearing expiration. This allows you to plan a rotation or deactivation if needed.
- security:
- - BasicAuth: []
- parameters:
- - name: signingKeyId
- in: path
- required: true
- schema:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: "When creating the signing key, FastPix assigns a universally unique identifier with a maximum length of 255 characters. "
- responses:
- "200":
- description: successfully fetched signing key
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/getPublicPemUsingSigningKeyIdResponseDTO"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/viewlist:
- get:
- security:
- - BasicAuth: []
- tags:
- - Views
- summary: List video views
- operationId: list_video_views
- description: |-
- Retrieves a list of video views that fall within the specified filters and have been completed within a defined timespan. It lets you to analyse viewer interactions with your video content effectively.
-
-
- #### How it works
-
- 1. Send a `GET` request to this endpoint with the desired query parameters.
-
- 2. Specify the timespan for which you want to retrieve the video views using the `timespan[]` parameter.
-
- 3. Filter the views based on dimensions such as browser, device, video title, viewer ID, etc., using the `filterby[]` parameter. Get the dimensions by calling list the dimensions endpoint.
-
- 4. Paginate the results using the `limit` and `offset` parameters.
-
- 5. You can also filter by `viewerId`, `errorCode`, `orderBy` a specific field, and `sortOrder` in ascending or descending order.
-
- 6. You receive a response containing the list of video views matching the specified criteria.
-
- Each view in the response includes a unique `viewId`. You can use this `viewId` with the Get Video View Details endpoint to retrieve more detailed information about that specific view.
-
-
- #### Example
-
- If you manage a video streaming service and want to analyze content performance across devices and browsers. By calling the List Video Views endpoint with filters such as `browser_name` and `device_type`, you can identify which platforms are most popular with your audience. This information helps optimize content for widely used platforms and troubleshoot playback issues on less common devices.
-
-
- Related guide: Audience metrics, Views dashboard
- parameters:
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
-
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- - in: query
- name: limit
- description: |
- Pass the limit to display only the rows specified by the value.
- schema:
- type: integer
- example: 10
- default: 10
- - in: query
- name: offset
- description: |
- Pass the offset value to indicate the page number.
- schema:
- type: integer
- example: 1
- default: 1
- - in: query
- name: viewerId
- description: |
- Pass the viewer_id to filter the list of views. This value can be manually set during integration or generated by FastPix. When set manually it can be a string of aplha numeric values of any length.
- schema:
- type: string
- example: 09a78f7d-02ee-44f5-aa39-1b268ed2c270
- - in: query
- name: errorCode
- description: |
- Pass the error code to filter the list of views. The possible values of error code can be fetched from list of errors end point.
- schema:
- type: string
- nullable: true
- example: 1002
- - in: query
- name: orderBy
- description: |
- Pass this value to sort the view list by.
- schema:
- type: string
- example: view_end
- default: view_end
- - in: query
- name: sortOrder
- description: |
- The order direction to sort the view list by.
- schema:
- type: string
- example: asc
- default: asc
- responses:
- "200":
- description: Get the list of Views
- content:
- application/json:
- schema:
- example:
- success: true
- data:
- - viewId: 92752c49-1bce-4cf8-bea4-5c2c2ac7575d
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-15T04:43:44"
- viewEndTime: "2024-04-15T04:44:05"
- videoTitle: "Champion Engagement Model: Best practices for identifying and engaging your champion"
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 10016
- QoeScore: 0.955924359113425
- - viewId: aa3f20e4-6065-4c7c-aed5-c7f8d127bcba
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-15T11:31:48"
- viewEndTime: "2024-04-15T11:32:30"
- videoTitle: How to reduce time-to-value for your customers
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 31926
- QoeScore: 0.958520302068513
- - viewId: d7e6929a-9b7f-4f88-a8eb-033fb9e6dc6d
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-15T20:34:42"
- viewEndTime: "2024-04-15T20:35:00"
- videoTitle: Implementing projects the ISRO way
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 17562
- QoeScore: 0.958648125844009
- - viewId: eca6400a-73e9-4250-8d0a-cb1cda15fed4
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-15T20:38:48"
- viewEndTime: "2024-04-15T20:39:23"
- videoTitle: Designing your onboarding and adoption journey
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 34823
- QoeScore: 0.956301364903515
- - viewId: 687b3a54-6646-4343-bfbe-459742042f54
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-16T09:20:34"
- viewEndTime: "2024-04-16T09:21:24"
- videoTitle: How to Approach an Irate Customer With Mimecast"s Alice Jeffery
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 13493
- QoeScore: 0.472563044953793
- - viewId: c1464fdb-f3f8-4ccd-8914-94e1851e8459
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-16T09:22:42"
- viewEndTime: "2024-04-16T09:22:45"
- videoTitle: How to Approach an Irate Customer With Mimecast"s Alice Jeffery
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 1
- QoeScore: 0.5
- pagination:
- totalRecords: 27
- currentOffset: 1
- offsetCount: 3
- timespan:
- - 1712910924
- - 1713515724
- type: object
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- description: Displays the result of the request.
- items:
- $ref: "#/components/schemas/ViewsList"
- pagination:
- $ref: "#/components/schemas/DataPagination"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/viewlist/{viewId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Views
- summary: Get details of video view
- operationId: get_video_view_details
- description: |-
- Retrieves detailed information about a specific video view using its unique `viewId`. This provides insights into individual viewer interactions with your video content, helping you enhance user experience and improve engagement with your videos.
-
- To use this endpoint, send `GET` request with the `viewId`. The response includes detailed metrics and attributes related to the specified video view.
-
-
- #### Example
-
- If a developer receives a report of a poor viewing experience for a specific user. By using this endpoint with the users `viewId`, the developer can retrieve metrics like buffering duration, playback errors, and session length. This data allows the developer to pinpoint issues (such as poor connectivity or a browser-specific problem) and take steps to improve the user experience.
-
-
- Related guide: What Video Data do we capture?
- parameters:
- - in: path
- name: viewId
- description: Pass View Id
- required: true
- schema:
- type: string
- responses:
- "200":
- description: Get a video view by id
- content:
- application/json:
- schema:
- example:
- success: true
- data:
- asnId: 55836
- asnName: AS55836 Reliance Jio Infocomm Limited
- averageBitrate: 1512855.0
- avgDownscaling: 0.0
- avgRequestLatency: 0.0
- avgRequestThroughput: 1.2588331E7
- avgUpscaling: 0.0
- beaconDomain: metrix.ws
- browserEngine: null
- browserName: Chrome
- browserVersion: Chrome 5.8.3
- bufferCount: 0
- bufferFill: 0
- bufferFrequency: 0.0
- bufferRatio: 0.0
- cdn: null
- city: Gaddi Annaram
- connectionType: cellular
- continent: AS
- country: India
- countryCode: IN
- custom:
- Custom:
- - dimensionName: custom_1
- displayName: displayName-1
- value: ShortVideo
- deviceManufacturer: vivo
- deviceModel: V2130
- deviceName: V2130
- deviceType: Mobile
- drmType: null
- droppedFrameCount: 0
- errorCode: null
- errorContext: null
- errorId: null
- errorMessage: null
- exitBeforeVideoStart: false
- experimentName: null
- fpApiVersion: 1.0
- fpEmbed: false
- fpEmbedVersion: 1.0.0
- fpLiveStreamId: null
- fpPlaybackId: null
- fpSdk: media3_fastpix
- fpSdkVersion: 1.0.0
- fpViewerId: 36c707a3-7f9a-48ab-9ba4-416617d20889
- insertTimestamp: 2025-09-24T07:33:53.39Z
- ipAddress: 192.168.136.251
- jumpLatency: 72.0
- latitude: 17.366900
- liveStreamLatency: null
- longitude: 78.524200
- maxDownscaling: 0.0
- maxRequestLatency: 0.0
- maxUpscaling: 0.0
- mediaId: null
- osName: Android
- osVersion: Android 14
- pageContext: null
- pageLoadTime: 0
- playbackScore: 1.0
- playerAutoplayOn: false
- playerHeight: 383
- playerInitializationTime: 0
- playerInstanceId: 859e3520-acb7-44fc-b856-69aa364de566
- playerLanguage: null
- playerName: null
- playerPoster: null
- playerPreloadOn: false
- playerRemotePlayed: false
- playerResolution: 393x383
- playerSoftwareName: media3-generic
- playerSoftwareVersion: 1.6.1
- playerSourceDomain: null
- playerSourceHeight: 720
- playerSourceWidth: 1280
- playerVersion: null
- playerViewCount: 0
- playerWidth: 393
- propertyId: null
- qualityOfExperienceScore: 0.9697980416156672
- region: Telangana
- renderQualityScore: 1.0
- sessionId: 8c7859bf-6d0c-4de8-a1d7-a3d8bdecc977
- sign: 1
- stabilityScore: 1.0
- startupScore: 0.8901746967842439
- subPropertyId: null
- totalStartupTime: 987
- updatedTimestamp: 2025-09-24T07:33:55.074Z
- usedFullScreen: false
- userAgent: Dalvik/2.1.0 (Linux; U; Android 14; V2130 Build/UP1A.231005.007)
- videoContentType: null
- videoDuration: null
- videoEncodingVariant: null
- videoId: 68d3780f38aec4265abe453a
- videoLanguage: null
- videoProducer: null
- videoResolution: 720X1280
- videoSeries: null
- videoSourceDomain: null
- videoSourceDuration: 30120
- videoSourceHostname: unknown
- videoSourceStreamType: null
- videoSourceType: null
- videoSourceUrl: null
- videoStartupFailed: false
- videoStartupTime: 987
- videoTitle: Best practices for identifying and engaging your champion
- videoVariantId: null
- videoVariantName: null
- viewEnd: 2025-09-24T07:33:55.074Z
- viewHasAd: false
- viewHasError: false
- viewId: 202b8e4f-c078-4b98-88c8-6f7c23ba7272
- viewMaxPlayheadPosition: 0
- viewPageUrl: null
- viewPlayingTime: 0
- viewSeekedCount: 1
- viewSeekedDuration: 72
- viewSessionId: 059c5bc2-12fc-45f1-b893-db9f1d0bf7d1
- viewStart: 2025-09-24T07:33:53.39Z
- viewTotalContentPlaybackTime: 0
- viewerId: null
- watchTime: 987
- workspaceId: fdae281f-b582-4ea0-8694-15fccd1cbd98
- events:
- - pt: 0
- e: playerReady
- vt: 1713156224677
- - pt: 0
- e: viewBegin
- vt: 1713156224677
- - pt: 0
- e: play
- vt: 1713156224677
- - pt: 0
- e: waiting
- vt: 1713156224677
- - pt: 0
- e: loadstart
- vt: 1713156224677
- - pt: 0
- e: playing
- vt: 1713156224677
- - pt: 0
- e: variantChanged
- vt: 1713156224677
- - pt: 0
- e: seeking
- vt: 1713156224677
- - pt: 0
- e: pause
- vt: 1713156224677
- - pt: 0
- e: ended
- vt: 1713156224677
- - pt: 0
- e: viewCompleted
- vt: 1713156224677
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- data:
- $ref: "#/components/schemas/Views"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/viewlist/top-content:
- get:
- security:
- - BasicAuth: []
- tags:
- - Views
- summary: List by top content
- operationId: list_by_top_content
- description: |
- Retrieves a list of the top video views that fall within the specified filters and have been completed within a defined timespan. It lets you to identify the most popular content based on viewer interactions.
-
- #### How it works
-
- 1. Send a `GET` request to this endpoint with the desired query parameters.
-
- 2. Specify the timespan for which you want to retrieve the top content using the `timespan[]` parameter.
-
- 3. Filter the views based on dimensions such as browser, device, video title, etc., using the `filterby[]` parameter.
-
- 4. You can use `Limit` to control number of top views returned.
-
- 5. You receive a response containing the list of top video views matching the specified criteria.
-
-
- Related guide: Get top-performing content
- parameters:
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- - in: query
- name: limit
- description: |
- Pass the limit to display only the rows specified by the value.
- schema:
- type: integer
- example: 10
- default: 10
- responses:
- "200":
- description: Get the list of Views
- content:
- application/json:
- schema:
- example:
- success: true
- data:
- - videoTitle: Cycle
- views: 44
- uniqueViews: 40
- timespan:
- - 1712910924
- - 1713515724
- type: object
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- description: Displays the result of the request.
- items:
- $ref: "#/components/schemas/ViewsByTopContentDetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/dimensions:
- get:
- security:
- - BasicAuth: []
- tags:
- - Dimensions
- summary: List the dimensions
- description: |
- Retrieves a list of dimensions that can be used as query parameters across various data endpoints. Each dimension has a unique id that can be used to filter data effectively.
-
- The dimensions retrieved from this endpoint can be used in conjunction with the list video views and list by top content endpoints to filter results based on specific criteria. For example, you can filter views by `browser_name`, `os_name`, `device_type`, and more.
-
- Related guides: What Video Data do we capture? , Use passable dimensions
- operationId: list_dimensions
- responses:
- "200":
- description: Get the list of Views
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- example: true
- data:
- $ref: "#/components/schemas/Dimensions"
- description: Displays the result of the request.
- example:
- - browser_name
- - browser_version
- - os_name
- - os_version
- - device_name
- - device_model
- - device_type
- - device_manufacturer
- - player_remote_played
- - player_name
- - player_version
- - player_software_name
- - player_software_version
- - player_resolution
- - fp_sdk
- - fp_sdk_version
- - player_autoplay_on
- - player_preload_on
- - video_title
- - video_id
- - video_series
- - fp_playback_id
- - fp_live_stream_id
- - media_id
- - video_source_stream_type
- - video_source_type
- - video_encoding_variant
- - experiment_name
- - sub_property_id
- - drm_type
- - asn_name
- - cdn
- - video_source_hostname
- - connection_type
- - view_session_id
- - continent
- - country
- - region
- - viewer_id
- - error_code
- - exit_before_video_start
- - view_has_ad
- - video_startup_failed
- - video_content_type
- - page_context
- - playback_failed
- - custom_1
- - custom_2
- - custom_3
- - custom_4
- - custom_5
- - custom_6
- - custom_7
- - custom_8
- - custom_9
- - custom_10
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/dimensions/{dimensionsId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Dimensions
- summary: List the filter values for a dimension
- description: |
- This endpoint returns the filter values associated with a specific dimension, along with the total number of video views for each value. For example, it can list all `browser_name` (dimension) and show how many views occurred for all available browsers like Chrome, Safari (filter values).
-
-
- In order to use the Custom Dimensions, you must enable them in the dashboard under settings option based on the plan you have opted for.
-
- #### Example
-
- A developer wants to know how their video content performs across different browsers. By calling this endpoint for the `device_type` dimension, they can retrieve a breakdown of video views by each device (for example, Desktop, Mobile, Tablet). This data helps the developer understand where optimizations or troubleshooting is necessary.
-
-
- Related guide: Filters and timespan
- operationId: list_filter_values_for_dimension
- parameters:
- - in: path
- name: dimensionsId
- description: |
- Pass Dimensions Id
- required: true
- schema:
- type: string
- example: browser_name
- enum:
- - browser_name
- - browser_version
- - os_name
- - os_version
- - device_name
- - device_model
- - device_type
- - device_manufacturer
- - player_remote_played
- - player_name
- - player_version
- - player_software_name
- - player_software_version
- - player_resolution
- - fp_sdk
- - fp_sdk_version
- - player_autoplay_on
- - player_preload_on
- - video_title
- - video_id
- - video_series
- - fp_playback_id
- - fp_live_stream_id
- - media_id
- - video_source_stream_type
- - video_source_type
- - video_encoding_variant
- - experiment_name
- - sub_property_id
- - drm_type
- - asn_name
- - cdn
- - video_source_hostname
- - connection_type
- - view_session_id
- - continent
- - country
- - region
- - viewer_id
- - error_code
- - exit_before_video_start
- - view_has_ad
- - video_startup_failed
- - video_content_type
- - page_context
- - playback_failed
- - custom_1
- - custom_2
- - custom_3
- - custom_4
- - custom_5
- - custom_6
- - custom_7
- - custom_8
- - custom_9
- - custom_10
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- responses:
- "200":
- description: Get filter / dimension value details by dimension name.
- content:
- application/json:
- schema:
- example:
- success: true
- data:
- - value: Chrome
- uniqueCount: 20
- count: 44
- timespan:
- - 1610025789
- - 1610025947
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- data:
- $ref: "#/components/schemas/Dimensiondetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/metrics/{metricId}/breakdown:
- get:
- security:
- - BasicAuth: []
- tags:
- - Metrics
- summary: List breakdown values
- operationId: list_breakdown_values
- description: |
- Retrieves breakdown values for a specified metric and timespan, allowing you to analyze the performance of your content based on various dimensions. It provides insights into how different factors contribute to the overall metrics.
-
- #### How it works
-
- 1. Before using this endpoint, you can call the List Dimensions endpoint to retrieve all available dimensions that can be used in your query.
-
- 2. Send a `GET` request to this endpoint with the required `metricId` and other query parameters.
-
- 3. You receive a response containing the breakdown values for the specified metric, grouped and filtered according to your parameters.
-
- 4. Upon successful retrieval, the response includes the breakdown values based on the specified parameters. Note that the time values ( `totalWatchTime` and `totalPlayingTime` ) are in milliseconds
-
-
- #### Example
-
-
- A developer wants to analyze how watch time varies across different device types. By calling this endpoint for the `playing_time` metric and filtering by `device_type`, they can understand how engagement differs between mobile, desktop, and tablet users. This data guides optimization efforts for different platforms.
-
- #### Key fields in response
-
-
- * **views:** The count of views based based on the applied filters.
-
- * **value:** The specific metric value calculated based on the applied filters.
- * **totalWatchTime:** Total time watched across all views, represented in milliseconds.
-
- * **totalPlayTime:** Total time spent playing the video, represented in milliseconds.
- * **field:** The grouping field value based on the groupBy parameter.
-
-
- Related guide: Understand data definitions
- parameters:
- - in: path
- name: metricId
- required: true
- description: |
- Pass metric Id
- schema:
- type: string
- example: quality_of_experience_score
- enum:
- - views
- - unique_viewers
- - playing_time
- - quality_of_experience_score
- - playback_score
- - playback_failure_percentage
- - exit_before_video_start
- - video_startup_failure_percentage
- - startup_score
- - video_startup_time
- - player_startup_time
- - page_load_time
- - total_startup_time
- - live_stream_latency
- - average_bitrate
- - buffer_count
- - render_quality_score
- - avg_upscaling
- - avg_downscaling
- - max_upscaling
- - max_downscaling
- - jump_latency
- - stability_score
- - buffer_ratio
- - buffer_frequency
- - buffer_fill
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- - in: query
- name: limit
- description: |
- Pass the limit to display only the rows specified by the value.
- schema:
- type: integer
- example: 10
- default: 10
- - in: query
- name: offset
- description: |
- Pass the offset value to indicate the page number.
- schema:
- type: integer
- example: 1
- default: 1
- - in: query
- name: groupBy
- description: |
- Pass this value to group the metrics list by.
- Possible Values : ["browser_name", "browser_version", "os_name","os_version" , "device_name", "device_model", "device_type", "device_manufacturer", "player_remote_played",player_name", "player_version", "player_software_name", "player_software_version", "player_resolution", "fp_sdk","fp_sdk_version", "player_autoplay_on", "player_preload_on","video_title", "video_id", "video_series" , "fp_playback_id","fp_live_stream_id", "media_id","video_source_stream_type", "video_source_type", "video_encoding_variant", "experiment_name", "sub_property_id", "drm_type","asn_name", "cdn", "video_source_hostname", "connection_type", "view_session_id","continent","country", "region","viewer_id", "error_code", "exit_before_video_start", "view_has_ad", "video_startup_failed" , "page_context", "playback_failed".]
- schema:
- type: string
- example: browser_name
- - in: query
- name: orderBy
- description: |
- Pass this value to order the metrics list by.
- schema:
- type: string
- example: views
- default: views
- - in: query
- name: sortOrder
- description: |
- The order direction to sort the metrics list by.
- schema:
- type: string
- example: asc
- default: asc
- enum:
- - asc
- - desc
- - in: query
- name: measurement
- description: |
- The measurement for the given metrics.
- Possible Values : [95th, median, avg, count or sum]
- schema:
- type: string
- example: avg
- default: avg
- responses:
- "200":
- description: Get filter/ dimension value details by dimension name.
- content:
- application/json:
- schema:
- example:
- success: true
- metadata:
- aggregation: view_end
- data:
- - views: 3
- value: 30
- totalWatchTime: 83208
- totalPlayingTime: 57165
- field: PostmanRuntime
- - views: 24
- value: 28
- totalWatchTime: 913048
- totalPlayingTime: 2624467
- field: Chrome
- pagination:
- totalRecords: 2
- currentOffset: 1
- offsetCount: 1
- timespan:
- - 1712915263
- - 1713520063
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- metadata:
- $ref: "#/components/schemas/MetricsmetadataDetails"
- data:
- $ref: "#/components/schemas/MetricsBreakdownDetails"
- pagination:
- $ref: "#/components/schemas/DataPagination"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/metrics/{metricId}/overall:
- get:
- security:
- - BasicAuth: []
- tags:
- - Metrics
- summary: List overall values
- operationId: list_overall_values
- description: |
- Retrieves overall values for a specified metric, providing summary statistics that help you understand the performance of your content. The response includes key metrics such as `totalWatchTime`, `uniqueViews`, `totalPlayTime` and `totalViews`.
-
- #### How it works
-
- 1. Before using this endpoint, you can call the list dimensions endpoint to retrieve all available dimensions that can be used in your query.
-
- 2. Send a `GET` request to this endpoint with the required `metricId` and other query parameters.
-
- 3. You receive a response containing the overall values for the specified metric, which may vary based on the applied filters.
-
-
-
-
-
-
- #### Key fields in response
-
-
- * **value:** The specific metric value calculated based on the applied filters.
- * **totalWatchTime:** Total time watched across all views, represented in milliseconds.
- * **uniqueViews:** The count of unique viewers who interacted with the content.
- * **totalViews:** The total number of views recorded.
- * **totalPlayTime:** Total time spent playing the video, represented in milliseconds.
- * **globalValue:** A global metric value that reflects the overall performance of the specified metric across the entire dataset for the given timespan. This value is not affected by specific filters.
-
-
- Related guide: Understand data definitions
- parameters:
- - in: path
- name: metricId
- required: true
- description: |
- Pass metric Id
- schema:
- type: string
- example: quality_of_experience_score
- enum:
- - views
- - unique_viewers
- - playing_time
- - quality_of_experience_score
- - playback_score
- - playback_failure_percentage
- - exit_before_video_start
- - video_startup_failure_percentage
- - startup_score
- - video_startup_time
- - player_startup_time
- - page_load_time
- - total_startup_time
- - live_stream_latency
- - average_bitrate
- - buffer_count
- - render_quality_score
- - avg_upscaling
- - avg_downscaling
- - max_upscaling
- - max_downscaling
- - jump_latency
- - stability_score
- - buffer_ratio
- - buffer_frequency
- - buffer_fill
- - in: query
- name: measurement
- description: |
- The measurement for the given metrics.
- Possible Values : [95th, median, avg, count or sum]
- schema:
- type: string
- example: avg
- default: avg
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- responses:
- "200":
- description: Get filter/ dimension value details by dimension name.
- content:
- application/json:
- schema:
- example:
- success: true
- metadata:
- aggregation: view_end
- data:
- value: 0.740365072855583
- totalWatchTime: 59534302
- uniqueViews: 44
- totalViews: 195
- totalPlayTime: 24729470
- globalValue: 0.740365072855583
- timespan:
- - 1610025789
- - 1610025947
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- metadata:
- $ref: "#/components/schemas/MetricsOverallmetadataDetails"
- data:
- $ref: "#/components/schemas/MetricsOverallDataDetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/metrics/{metricId}/timeseries:
- get:
- security:
- - BasicAuth: []
- tags:
- - Metrics
- summary: Get timeseries data
- operationId: get_timeseries_data
- description: |
- This endpoint retrieves timeseries data for a specified metric, providing insights into how the metric values change over time. The response includes an array of data points, each representing the metrics value at specific intervals.
-
- #### Key fields in response
-
- * **intervalTime:** The timestamp for the data point indicating when the metric value was recorded.
- * **metricValue:** The value of the specified metric at the given interval, reflecting the performance or engagement level during that time.
- * **numberOfViews:** The total number of views recorded during that interval, providing context for the metric value.
- parameters:
- - in: path
- name: metricId
- required: true
- description: |
- Pass metric Id
- schema:
- type: string
- example: quality_of_experience_score
- enum:
- - views
- - unique_viewers
- - playing_time
- - quality_of_experience_score
- - playback_score
- - playback_failure_percentage
- - exit_before_video_start
- - video_startup_failure_percentage
- - startup_score
- - video_startup_time
- - player_startup_time
- - page_load_time
- - total_startup_time
- - live_stream_latency
- - average_bitrate
- - buffer_count
- - render_quality_score
- - avg_upscaling
- - avg_downscaling
- - max_upscaling
- - max_downscaling
- - jump_latency
- - stability_score
- - buffer_ratio
- - buffer_frequency
- - buffer_fill
- - in: query
- name: groupBy
- description: |
- Pass this value to group the metrics list by.
- schema:
- type: string
- example: minute
- default: minute
- enum:
- - minute
- - ten_minutes
- - hour
- - day
- - in: query
- name: sortOrder
- description: |
- The order direction to sort the metrics list by.
- schema:
- type: string
- example: asc
- default: asc
- enum:
- - asc
- - desc
- - in: query
- name: measurement
- description: |
- The measurement for the given metrics.
- Possible Values : [95th, median, avg, count or sum]
- schema:
- type: string
- example: avg
- default: avg
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- responses:
- "200":
- description: Get filter/ dimension value details by dimension name.
- content:
- application/json:
- schema:
- example:
- success: true
- metadata:
- granularity: day
- aggregation: view_end
- data:
- - intervalTime: "2023-12-04T14:00:00Z"
- metricValue: 0.793110142151515
- numberOfViews: 143244
- timespan:
- - 1610025789
- - 1610025947
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- metadata:
- $ref: "#/components/schemas/MetricsTimeseriesmetadataDetails"
- data:
- description: Displays the result of the request.
- type: array
- items:
- $ref: "#/components/schemas/MetricsTimeseriesDataDetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/metrics/comparison:
- get:
- security:
- - BasicAuth: [ ]
- tags:
- - Metrics
- summary: List comparison values
- operationId: list_comparison_values
- description: |
- This endpoint lets you to compare multiple metrics across specified dimensions. You can specify the metrics you want to compare in the query parameters, and the response includes the relevant metrics for the specified dimensions.
-
- #### Key fields in response
-
- * **value:** The specific metric value calculated based on the applied filters.
- * **type:** The data unit or format type (for example, "number", "milliseconds", "percentage").
- * **name:** The display name of the metric (for example, "Views", "Overall Score").
- * **metric:** The metric field represents the name of the Key Performance Indicator (KPI) being tracked or analyzed. It identifies a specific measurable aspect of the video playback experience, such as buffering time, video start failure rate, or playback quality.
- * **items:** Nested breakdown of related metrics for more detailed analysis.
- * **measurement:** Defines the aggregation type (for example, "avg", "sum", "median", "95th").
-
- #### How it works
-
- 1. Before making a request to this endpoint, call the list dimensions endpoint to obtain all available dimensions that can be used for comparison.
-
- 2. Send a `GET` request to this endpoint with the desired metrics specified in the query parameters.
-
- 3. You Receive a response containing the comparison values for the specified metrics across the selected dimensions.
-
-
- Related guide: Compare metrics in dashboard
- parameters:
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- - in: query
- name: dimension
- description: |
- The dimension id in which the views are watched.
- schema:
- type: string
- example: browser_name
- enum:
- - browser_name
- - browser_version
- - os_name
- - os_version
- - device_name
- - device_model
- - device_type
- - device_manufacturer
- - player_remote_played
- - player_name
- - player_version
- - player_software_name
- - player_software_version
- - player_resolution
- - fp_sdk
- - fp_sdk_version
- - player_autoplay_on
- - player_preload_on
- - video_title
- - video_id
- - video_series
- - fp_playback_id
- - fp_live_stream_id
- - media_id
- - video_source_stream_type
- - video_source_type
- - video_encoding_variant
- - experiment_name
- - sub_property_id
- - drm_type
- - asn_name
- - cdn
- - video_source_hostname
- - connection_type
- - view_session_id
- - continent
- - country
- - region
- - viewer_id
- - error_code
- - exit_before_video_start
- - view_has_ad
- - video_startup_failed
- - page_context
- - video_content_type
- - playback_failed
- - custom_1
- - custom_2
- - custom_3
- - custom_4
- - custom_5
- - custom_6
- - custom_7
- - custom_8
- - custom_9
- - custom_10
- - in: query
- name: value
- description: |
- The value for the selected dimension.
- For example:
- If `dimension` is `browser_name`, the value could be `Chrome` `,` `Firefox` `etc` .
- If `dimension` is `os_name`, the value could be `macOS` `,` `Windows` `etc` .
- schema:
- type: string
- example: Chrome
- responses:
- "200":
- description: Get filter/ dimension value details by dimension name.
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- data:
- type: array
- description: |
- Displays the result of the request.
- items:
- $ref: "#/components/schemas/MetricsComparisonDetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- example:
- success: true
- data:
- - value: 6
- type: number
- name: Views
- metric: views
- measurement: count
- items:
- - value: 6
- type: number
- name: Unique Viewers
- metric: uniqueViewers
- measurement: count
- items: null
- - value: 503934
- type: milliseconds
- name: Playing Time
- metric: playingTime
- measurement: sum
- items: null
-
- timespan:
- - 1610025789
- - 1610025947
-
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/errors:
- get:
- security:
- - BasicAuth: []
- tags:
- - Errors
- summary: List errors
- operationId: list_errors
- description: |
- This endpoint returns the total number of playback errors that occurred, along with the total number of views captured, based on the specified timespan and filters. It provides insights into the overall playback quality and helps identify potential issues that may impact viewer experience.
-
-
- #### Key fields in response
-
- * **percentage:** The percentage of views affected by the specific error.
- * **uniqueViewersEffectedPercentage:** The percentage of unique viewers affected by the specific error (available only in the topErrors section).
- * **notes:** Additional notes or information about the specific error.
- * **message:** The error message or description.
- * **lastSeen:** The timestamp of when the error was last observed.
- * **id:** The unique identifier for the specific error.
- * **description:** A description of the specific error.
- * **count:** The number of occurrences of the specific error.
- * **code:** The error code associated with the specific error.
-
-
- Related guide: Troubleshoot errors
- parameters:
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- - in: query
- name: limit
- description: |
- Pass the limit to display only the rows specified by the value for top errors.
- schema:
- type: integer
- example: 1
- default: 1
- responses:
- "200":
- description: Get filter/ dimension value details by dimension name.
- content:
- application/json:
- schema:
- example:
- success: true
- data:
- errors:
- - percentage: 0.0222222222222222
- notes: An informative note on specific error
- message: "com.fastpix.stats.sdk.h71.a - android.media.mediadrm$mediadrmstateexception: failed to handle key response: drm vendor-defined error: -2998"
- lastSeen: "2023-12-01T11:31:07Z"
- id: 9pa85f64-5717-4562-b3fc-2c963f66afa6
- description: a description for the specific error
- count: 4
- code: 1003
- topErrors:
- - percentage: 0.0222222222222222
- uniqueViewersEffectedPercentage: 0.0122222222222222
- notes: An informative note for a specific error
- message: "com.fastpix.stats.sdk.h71.a - android.media.mediadrm$mediadrmstateexception: failed to handle key response: drm vendor-defined error: -2998"
- lastSeen: "2023-12-01T11:31:07Z"
- count: 4
- code: 1003
- timespan:
- - 1610025789
- - 1610025947
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- data:
- description: Displays the result of the request.
- type: object
- properties:
- errors:
- $ref: "#/components/schemas/ErrorDetails"
- topErrors:
- $ref: "#/components/schemas/TopErrorDetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
-components:
- securitySchemes:
- BasicAuth:
- type: http
- scheme: basic
- description: |
- FastPix APIs are secured with Basic Authentication.
- Use your Access Token ID as the username and Secret Key as the password in the Authorization header of each API request.
- - Username: Access Token ID
- - Password: Secret Key
-
- Activate your FastPix account to generate your API credentials. See the guide here
-
- schemas:
- # Common enums
- SortOrder:
- type: string
- enum:
- - asc
- - desc
- default: desc
- example: desc
- description: "The values in the list can be arranged in two ways: DESC (Descending) or ASC (Ascending)."
-
- PlaylistOrder:
- type: string
- enum:
- - createdDate ASC
- - createdDate DESC
- description: Determines the insertion order of media into playlist.
-
- DateRange:
- type: object
- properties:
- startDate:
- type: string
- example: "2024-11-11"
- endDate:
- type: string
- example: "2024-11-11"
- description: Date range with start and end dates.
-
- MediaType:
- type: string
- default: audio
- enum:
- - video
- - audio
- - av
- description: Type of media content
-
- AccessPolicy:
- type: string
- enum:
- - public
- - private
- - drm
- description: Access policy for media content
-
- BasicAccessPolicy:
- type: string
- enum:
- - public
- - private
- default: public
- description: Basic access policy for media content
-
- PolicyAction:
- type: string
- enum:
- - allow
- - deny
- description: Policy action type
-
- # Reusable access restriction schemas
- DomainRestrictions:
- type: object
- description: Restrictions based on the originating domain of a request
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of domain names or patterns that are explicitly allowed access
- deny:
- type: array
- items:
- type: string
- description: A list of domain names or patterns that are explicitly denied access
-
- UserAgentRestrictions:
- type: object
- description: Restrictions based on the user agent
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of user agents that are explicitly allowed access
- deny:
- type: array
- items:
- type: string
- description: A list of user agents that are explicitly denied access
-
- SrtPlaybackResponse:
- type: object
- description: This object contains the livestream playback response details for SRT Protocol
- properties:
- srtPlaybackStreamId:
- type: string
- description: A unique identifier for the SRT playback stream. This ID is used to distinguish between different playback streams
- srtPlaybackSecret:
- type: string
- description: A playback secret used for securing the SRT playback stream. This ensures that only authorized users can access the playback
-
- LanguageCode:
- type: string
- example: en-US
- default: en-US
- enum:
- - ar-SA
- - bn-BD
- - bn-IN
- - ca-ES
- - cs-CZ
- - da-DK
- - de-AT
- - de-CH
- - de-DE
- - el-GR
- - en-AU
- - en-CA
- - en-GB
- - en-IE
- - en-IN
- - en-NZ
- - en-US
- - en-ZA
- - es-AR
- - es-CL
- - es-CO
- - es-ES
- - es-MX
- - es-US
- - fi-FI
- - fr-BE
- - fr-CA
- - fr-CH
- - fr-FR
- - he-IL
- - hi-IN
- - hr-HR
- - hu-HU
- - id-ID
- - it-CH
- - it-IT
- - ja-JP
- - ko-KR
- - ms-MY
- - nb-NO
- - nl-BE
- - nl-NL
- - no-NO
- - pl-PL
- - pt-BR
- - pt-PT
- - ro-RO
- - ru-RU
- - sk-SK
- - sv-SE
- - ta-IN
- - ta-LK
- - te-IN
- - th-TH
- - tr-TR
- - uk-UA
- - vi-VN
- - bg-BG
- - zh-CN
- - zh-HK
- - zh-TW
- description: Language code for content localization
-
- # Response schemas
- CreateMediaSuccessResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/CreateMediaResponse"
- MediaClipResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: b62427ec-07fd-4a89-b3c0-94909aaaa1da
- description: The unique identifier assigned to the media by FastPix.
- duration:
- type: string
- example: "00:00:13"
- description: Duration of the media in HH:MM:SS format.
- status:
- type: string
- example: Ready
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: The current processing status of the media.
- thumbnail:
- type: string
- format: uri
- example: https://images.fastpix.app/66dc7b0b-9dfb-4721-a738-837f89ccbd0a/thumbnail.png
- description: A video thumbnail that acts as a preview image for the video.
- createdAt:
- type: string
- format: date-time
- example: "2025-03-12T06:17:26.403017Z"
- description: Timestamp of when the media was created.
- playbackIds:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 66dc7b0b-9dfb-4721-a738-837f89ccbd0a
- description: The unique identifier for playback.
- accessPolicy:
- type: string
- example: public
- description: The access policy of the playback.
- pagination:
- type: object
- properties:
- totalRecords:
- type: integer
- example: 4
- description: Total number of records available.
- currentOffset:
- type: integer
- example: 1
- description: The starting offset of the current result set.
- offsetCount:
- type: integer
- example: 4
- description: The number of items returned in the current response.
- GetAllMediaResponse:
- type: object
- properties:
- thumbnail:
- type: string
- nullable: true
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- sourceMediaId:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The source media ID if this media was created from another media (for example, as a clip).
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- streamId:
- type: string
- example: 98f28be5ac9bd7a4205634691a1a096b
- description: The ID of the livestream for which the clips were created.
- metadata:
- type: object
- nullable: true
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- nullable: true
- example: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: Processing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- sourceAccess:
- type: boolean
- nullable: true
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrackForGetAll"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- summary:
- $ref: "#/components/schemas/AiSummaryRecord"
- description: AI-generated summary of the media content, if available.
- chapters:
- $ref: "#/components/schemas/AiResponseRecord"
- description: AI-generated chapters for the media, if available.
- namedEntities:
- $ref: "#/components/schemas/AiResponseRecord"
- description: AI-extracted named entities from the media, if available.
- moderation:
- $ref: "#/components/schemas/AiResponseRecord"
- description: Moderation results for the media, if available.
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- nullable: true
- example: true
- description: Indicates whether subtitles are available for the media.
- duration:
- type: string
- example: "00:00:10"
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- frameRate:
- type: string
- example: "30/1"
- description: Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. The indeterminable frame rate of the input file is indicated by a value of -1.
- aspectRatio:
- type: string
- nullable: true
- example: "16:9"
- description: The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
- GetMediaResponse:
- type: object
- properties:
- thumbnail:
- type: string
- nullable: true
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- sourceMediaId:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The source media ID if this media was created from another media (for example, as a clip).
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- streamId:
- type: string
- example: 98f28be5ac9bd7a4205634691a1a096b
- description: The ID of the livestream for which the clips were created.
- metadata:
- type: object
- nullable: true
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- nullable: true
- example: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: Processing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- sourceAccess:
- type: boolean
- nullable: true
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- summary:
- $ref: "#/components/schemas/AiSummaryRecord"
- description: AI-generated summary of the media content, if available.
- chapters:
- $ref: "#/components/schemas/AiResponseRecord"
- description: AI-generated chapters for the media, if available.
- namedEntities:
- $ref: "#/components/schemas/AiResponseRecord"
- description: AI-extracted named entities from the media, if available.
- moderation:
- $ref: "#/components/schemas/AiResponseRecord"
- description: Moderation results for the media, if available.
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- nullable: true
- example: true
- description: Indicates whether subtitles are available for the media.
- duration:
- type: string
- example: "00:00:10"
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- frameRate:
- type: string
- example: "30/1"
- description: Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. The indeterminable frame rate of the input file is indicated by a value of -1.
- aspectRatio:
- type: string
- nullable: true
- example: "16:9"
- description: The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
-
- Live-Media-Clips:
- type: object
- properties:
- thumbnail:
- type: string
- nullable: true
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- streamId:
- type: string
- example: 98f28be5ac9bd7a4205634691a1a096b
- description: The ID of the livestream for which the clips were created.
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- nullable: true
- example: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: Processing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- sourceAccess:
- type: boolean
- example: false
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- nullable: true
- example: true
- description: Indicates whether subtitles are available for the media.
- duration:
- type: string
- example: "00:00:10"
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- aspectRatio:
- type: string
- nullable: true
- example: "16:9"
- description: The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
-
- Media:
- type: object
- properties:
- thumbnail:
- type: string
- nullable: true
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- metadata:
- type: object
- nullable: true
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- nullable: true
- example: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: Processing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media’s status, which can be one of the possible values.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- sourceAccess:
- type: boolean
- nullable: true
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- summary:
- $ref: "#/components/schemas/AiSummaryRecord"
- nullable: true
- description: AI-generated summary of the media content, if available.
- chapters:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-generated chapters for the media, if available.
- namedEntities:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-extracted named entities from the media, if available.
- moderation:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: Moderation results for the media, if available.
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- nullable: true
- example: true
- description: Indicates whether subtitles are available for the media.
- duration:
- type: string
- example: "00:00:10"
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- aspectRatio:
- type: string
- nullable: true
- example: "16:9"
- description: The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
- sourceAccessMedia:
- type: object
- properties:
- thumbnail:
- type: string
- nullable: true
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- metadata:
- type: object
- nullable: true
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- nullable: true
- example: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: Processing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- sourceAccess:
- type: boolean
- nullable: true
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- summary:
- $ref: "#/components/schemas/AiSummaryRecord"
- nullable: true
- description: AI-generated summary of the media content, if available.
- chapters:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-generated chapters for the media, if available.
- namedEntities:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-extracted named entities from the media, if available.
- moderation:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: Moderation results for the media, if available.
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- nullable: true
- example: true
- description: Indicates whether subtitles are available for the media.
- duration:
- type: string
- example: "00:00:10"
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- aspectRatio:
- type: string
- nullable: true
- example: "16:9"
- description: The aspect ratio of a video describes its shape based on the relationship between its width and height.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
- Update-Media:
- type: object
- properties:
- thumbnail:
- type: string
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- metadata:
- type: object
- nullable: true
- additionalProperties:
- type: string
- example:
- key1: value1
- description: 'You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.'
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- default: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- example: My Video Title
- default: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- - 360p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- - 360p
- - "360"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: preparing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- sourceAccess:
- type: boolean
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it
- playbackIds:
- type: array
- items:
- $ref: '#/components/schemas/PlaybackId'
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- summary:
- $ref: "#/components/schemas/AiSummaryRecord"
- nullable: true
- description: AI-generated summary of the media content, if available.
- chapters:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-generated chapters for the media, if available.
- namedEntities:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-extracted named entities from the media, if available.
- moderation:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: Moderation results for the media, if available.
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- description: Specifies whether subtitle tracks are available for the media.
- example: false
- duration:
- type: string
- example: '00:00:10'
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- aspectRatio:
- type: string
- example: '16:9'
- description: The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
- createdAt:
- type: string
- format: date-time
- example: '2023-10-20T10:50:34.594302Z'
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: '2023-10-20T10:50:34.594302Z'
- description: Time the media was updated, defined as a localDateTime (UTC Time).
- TracksSubtitles:
- type: object
- properties:
- status:
- type: string
- example: preparing
- description: Current status of the generated subtitle track.
- url:
- type: string
- nullable: true
- format: uri
- example: https://stream.fastpix.com/subtitles/abc123.vtt
- description: URL of the generated subtitle file (VTT). Null while preparing.
- AiResponseRecord:
- type: object
- properties:
- status:
- type: string
- nullable: true
- example: ready
- description: The status of the AI processing (for example, "available", "preparing", "failed").
- data:
- type: object
- nullable: true
- description: The AI-generated content data. Can be a Map, List, or other structured data depending on the AI feature type.
- additionalProperties: true
- description: Represents an AI response record containing status and data for AI-generated features like summary, chapters, named entities, or moderation.
- AiSummaryRecord:
- type: object
- properties:
- status:
- type: string
- nullable: true
- example: ready
- description: The status of the AI processing (for example, "available", "preparing", "failed").
- data:
- type: string
- nullable: true
- description: The AI-generated summary of the media content. This field contains the processed textual output produced by the AI once summarization is complete.
- additionalProperties: true
- description: Represents an AI response record containing status and data for AI-generated features like summary, chapters, named entities, or moderation.
- VideoTrack:
- type: object
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- properties:
- id:
- type: string
- format: uuid
- example: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- description: FastPix generates a unique identifier for each track.
- type:
- type: string
- example:
- enum: [video]
- availableValue: video
- possibleValue: video, audio, subtitle
- description: Defines the type of input. This option is mandatory.
- width:
- type: number
- example: 1920
- description: Track width denotes the range of widths applicable to a specific track. Currently, this setting can be modified only for video tracks
- height:
- type: number
- example: 1080
- description: Track height denotes the range of height applicable to a specific track. Currently, this setting can be modified only for video tracks.
- frameRate:
- type: string
- example: 30/1
- description: Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. The indeterminable frame rate of the input file is indicated by a value of -1.
- status:
- type: string
- example: available
- description: Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
- example:
- tracks:
- - id: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- VideoTrackForGetAll:
- type: object
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- properties:
- id:
- type: string
- format: uuid
- example: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- description: FastPix generates a unique identifier for each track.
- type:
- type: string
- example:
- enum: [video]
- availableValue: video
- possibleValue: video, audio, subtitle
- description: Defines the type of input. This option is mandatory.
- width:
- type: number
- example: 1920
- description: Track width denotes the range of widths applicable to a specific track. Currently, this setting can be modified only for video tracks
- height:
- type: number
- example: 1080
- description: Track height denotes the range of height applicable to a specific track. Currently, this setting can be modified only for video tracks.
- status:
- type: string
- example: available
- description: Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
- example:
- tracks:
- - id: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- SubtitleTrack:
- type: object
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- properties:
- id:
- type: string
- format: uuid
- example: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- description: FastPix generates a unique identifier for each track.
- type:
- type: string
- enum: [subtitle]
- example: subtitle
- description: Defines the type of input track.
- status:
- type: string
- example: available
- description: Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
- languageName:
- type: string
- example: english
- description: |
- Name of the language in which the subtitles will be generated.
- languageCode:
- type: string
- example: en
- description: |
- Language codes are concise, standardized symbols that denote languages, utilizing either two or three characters for identification. The language code must be compliant with the BCP 47 standard to ensure compatibility. (for text only).
- AudioTrack:
- type: object
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- properties:
- id:
- type: string
- format: uuid
- example: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- description: FastPix generates a unique identifier for each track.
- type:
- type: string
- enum: [audio]
- example: audio
- description: Defines the type of input track.
- status:
- type: string
- example: available
- description: Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
- languageName:
- type: string
- example: english
- description: |
- Name of the language in which the subtitles will be generated.
- languageCode:
- type: string
- example: en
- description: |
- Language codes are concise, standardized symbols that denote languages, utilizing either two or three characters for identification. The language code must be compliant with the BCP 47 standard to ensure compatibility. (for text only).
- PlaybackId:
- type: object
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- properties:
- id:
- type: string
- format: uuid
- nullable: true
- example: 6ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the playbacks.
- accessPolicy:
- $ref: "#/components/schemas/AccessPolicy"
- accessRestrictions:
- type: object
- description: Controls access based on domains and user agents. Defines a default policy (either "allow" or "deny") and provides lists for explicitly allowed or denied domains and user agents.
- properties:
- domains:
- type: object
- description: Restrictions based on the originating domain of a request (for example, whether requests from certain websites must be allowed or blocked).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly allowed access.
- deny:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly blocked from accessing the resource.
- userAgents:
- type: object
- description: Restrictions based on the user agent (which is typically a string sent by browsers or bots identifying themselves).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of specific user agents that are allowed to access the resource.
- deny:
- type: array
- items:
- type: string
- description: A list of specific user agents that are blocked.
- CreatePlaybackId:
- type: object
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- properties:
- id:
- type: string
- format: uuid
- example: 6ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the playbacks.
- accessPolicy:
- $ref: "#/components/schemas/AccessPolicy"
- accessRestrictions:
- type: object
- description: Controls access based on domains and user agents. Defines a default policy (either "allow" or "deny") and provides lists for explicitly allowed or denied domains and user agents.
- properties:
- domains:
- type: object
- description: Restrictions based on the originating domain of a request (for example, whether requests from certain websites should be allowed or blocked).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly allowed access.
- deny:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly blocked from accessing the resource.
- userAgents:
- type: object
- description: Restrictions based on the user agent (which is typically a string sent by browsers or bots identifying themselves).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of specific user agents that are allowed to access the resource.
- deny:
- type: array
- items:
- type: string
- description: A list of specific user agents that are blocked.
- resolution:
- type: string
- enum:
- - 480p
- - 720p
- - 1080p
- - 1440p
- - 2160p
- description: The maximum resolution for the playback ID.
- example: 1080p
-
- Unused-uploads-playbackId:
- type: object
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- properties:
- accessPolicy:
- $ref: "#/components/schemas/AccessPolicy"
- accessRestrictions:
- type: object
- description: Controls access based on domains and user agents. Defines a default policy (either "allow" or "deny") and provides lists for explicitly allowed or denied domains and user agents.
- properties:
- domains:
- type: object
- description: Restrictions based on the originating domain of a request (for example, whether requests from certain websites must be allowed or blocked).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly allowed access.
- deny:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly blocked from accessing the resource.
- userAgents:
- type: object
- description: Restrictions based on the user agent (which is typically a string sent by browsers or bots identifying themselves).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of specific user agents that are allowed to access the resource.
- deny:
- type: array
- items:
- type: string
- description: A list of specific user agents that are blocked.
-
- SummaryResponse:
- properties:
- mediaId:
- type: string
- format: uuid
- example: c695988b-ff84-42ae-bb21-10f284fedb0e
- isSummaryEnabled:
- type: boolean
- example: true
- ChaptersResponse:
- properties:
- mediaId:
- type: string
- format: uuid
- example: c695988b-ff84-42ae-bb21-10f284fedb0e
- isChaptersEnabled:
- type: boolean
- example: true
- NamedEntitiesResponse:
- properties:
- mediaId:
- type: string
- format: uuid
- example: c695988b-ff84-42ae-bb21-10f284fedb0e
- isNamedEntitiesEnabled:
- type: boolean
- example: true
- ModerationResponse:
- properties:
- mediaId:
- type: string
- format: uuid
- example: c695988b-ff84-42ae-bb21-10f284fedb0e
- isModerationEnabled:
- type: boolean
- example: true
- CreateMediaRequest:
- required:
- - accessPolicy
- - inputs
- properties:
- inputs:
- type: array
- description: >
- Add one input object at a time. For example, first add a **VideoInput** object.
- If you also need a watermark, click **Add item** again and select **WatermarkInput**.
- Repeat this process for **AudioInput** or **SubtitleInput** as needed.
- For a complete explanation of how media uploads from URL and processing work, refer to the
- FastPix Video on Demand Overview.
- items:
- anyOf:
- - $ref: "#/components/schemas/PullVideoInput"
- - $ref: "#/components/schemas/WatermarkInput"
- - $ref: "#/components/schemas/AudioInput"
- - $ref: "#/components/schemas/SubtitleInput"
- default:
- - type: video
- url: https://static.fastpix.com/fp-sample-video.mp4
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- default:
- key1: value1
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- drmConfigurationId:
- type: string
- format: uuid
- description: UUID of the DRM configuration to be used
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- title:
- type: string
- maxLength: 255
- example: My Video Title
- description: Title of the media file.
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- subtitles:
- type: object
- description: |
- Generates subtitle files for audio/video files.
- properties:
- languageName:
- type: string
- example: english
- description: |
- Name of the language in which the subtitles will be generated.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- languageCode:
- type: string
- example: en
- enum:
- - en
- - it
- - pl
- - es
- - fr
- - ru
- - nl
- description: |
- Language codes are concise, standardized symbols that denote languages, utilizing either two or three characters for identification. The language code must be compliant with the BCP 47 standard to ensure compatibility. (for text only).
- accessPolicy:
- type: string
- example: public
- default: public
- enum:
- - public
- - private
- - drm
- description: |
- Determines whether access to the streamed content is kept private or available to all.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- "capped_4k": Generates an mp4 video file up to 4k resolution "audioOnly": Generates an m4a audio file of the media file "audioOnly,capped_4k": Generates both video and audio media files for offline viewing
- sourceAccess:
- type: boolean
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it
- optimizeAudio:
- type: boolean
- example: true
- description: |
- normalize volume of the audio track. This is available for pre-recorded content only.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: |
- The maximum resolution tier defines the highest quality at which your media is available.
- mediaQuality:
- type: string
- example: standard
- default: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- summary:
- type: object
- properties:
- generate:
- type: boolean
- description: |
- Enable or disable the summary feature for the media.
- Set to true to enable summary or false to disable.
- summaryLength:
- type: integer
- maximum: 250
- minimum: 30
- description: |
- Specifies the desired word count for the generated summary.
- - The value must be between **30** and **250** words.
- chapters:
- type: boolean
- example: true
- description: |
- Enable or disable the chapters feature for the media. Set to `true` to enable chapters or `false` to disable.
- namedEntities:
- type: boolean
- example: true
- description: |
- Enable or disable named entity extraction. Set to `true` to enable or `false` to disable.
- moderation:
- type: object
- properties:
- type:
- type: string
- enum: [video, audio, av]
- description: |
- Defines the type of input. Possible values include video, audio, or av.
- accessRestrictions:
- type: object
- properties:
- domains:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- description: |
- Specifies the default access policy for domains.
- If set to `allow`, all domains are allowed access unless otherwise specified in the `deny` lists.
- If set to `deny`, all domains are denied access unless otherwise specified in the `allow` lists.
- allow:
- type: array
- items:
- type: string
- description: |
- A list of domain names or patterns that are explicitly allowed access.
- This list is only effective when the `defaultPolicy` is set to `deny`.
- deny:
- type: array
- items:
- type: string
- description: |
- A list of domain names or patterns that are explicitly denied access.
- This list is only effective when the `defaultPolicy` is set to `allow`.
- userAgents:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- description: |
- Specifies the default access policy for user agents (browsers, bots, etc.).
- If set to `allow`, all user agents are allowed access unless otherwise specified in the `deny` lists.
- If set to `deny`, all user agents are denied access unless otherwise specified in the `allow` lists.
- allow:
- type: array
- items:
- type: string
- description: |
- A list of user agents (identified by string names or patterns) that are explicitly allowed access.
- This list is only effective when the `defaultPolicy` is set to `deny`.
- deny:
- type: array
- items:
- type: string
- description: |
- A list of user agents (identified by string names or patterns) that are explicitly denied access.
- This list is only effective when the `defaultPolicy` is set to `allow`.
- example:
- inputs:
- - type: video
- url: https://static.fastpix.com/gtv-videos-bucket/sample/ForBiggerJoyrides.mp4
- metadata:
- key1: value1
- accessPolicy: public
- maxResolution: 1080p
- mediaQuality: standard
- VideoInput:
- required:
- - type
- properties:
- type:
- type: string
- example: video
- description: |
- Defines the type of input.
- introUrl:
- type: string
- example: https://static.fastpix.com/sample.mp4
- description: |
- The url of the intro video which is to be added at the start of the video.
- outroUrl:
- type: string
- example: https://static.fastpix.com/sample.mp4
- description: |
- The url of the outro video which is to be added at the end of the video.
- expungeSegments:
- type: array
- description: |
- The list of the startTime-endTime of the segments to be removed from the actual video.
- items:
- type: string
- example: 4-6
- example:
- - 4-6
- - 15-19
- segments:
- type: array
- description: A list of media segments to be added or processed. Each segment includes details such as the URL of the media file and instructions on where it should be inserted in the final media composition. A segment can either specify an exact timestamp (`insertAt`) or indicate that it should be added at the end (`insertAtEnd`).
- items:
- type: object
- oneOf:
- - type: object
- required:
- - url
- - insertAt
- properties:
- url:
- type: string
- format: uri
- description: URL of the segment to be added.
- example: https://storage.googleapis.com/gtv-videos-mp4
- insertAt:
- type: integer
- description: The timestamp at which the segment should be inserted.
- example: 2
- - type: object
- required:
- - url
- - insertAtEnd
- properties:
- url:
- type: string
- format: uri
- description: URL of the segment to be added.
- example: https://storage.googleapis.com/gtv-videos-mp4
- insertAtEnd:
- type: boolean
- description: Flag indicating the segment should be inserted at the end.
- example: true
- PullVideoInput:
- required:
- - url
- - type
- properties:
- type:
- type: string
- example: video
- default: video
- description: |
- Defines the type of input.
- url:
- type: string
- example: https://static.fastpix.com/fp-sample-video.mp4
- default: https://static.fastpix.com/fp-sample-video.mp4
- description: |
- The URL hosts the media file for FastPix, which needs to be downloaded to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles or closed captions (SRT/VTT files). The URL must be valid, publicly accessible, and downloadable to ensure FastPix can fetch the file successfully.
-
- While FastPix can handle various audio and video formats and codecs, using standard and widely supported formats helps achieve optimal processing speed.
- startTime:
- type: integer
- example: "0"
- description: |
- Start time indicates where encoding must begin within the video file. For example, if you want to encode a segment from 3 minutes (180 seconds) to 6 minutes (360 seconds) in a 10-minute (600 seconds) video, the start time is 3 minutes (180 seconds). Note: Start time is always mentioned in seconds.
- endTime:
- type: integer
- example: "60"
- description: |
- End time indicates where encoding must end within the video file. For example, if you want to encode a segment from 3 minutes (180 seconds) to 6 minutes (360 seconds) in a 10-minute (600 seconds) video, the end time is 6 minutes (360 seconds). Note: End time is always mentioned in seconds.
- introUrl:
- type: string
- example: https://static.fastpix.com/fp-sample-video.mp4
- description: |
- The URL of the **intro video** to be added at the beginning of the media file.
- The URL must be **valid, publicly accessible, and downloadable** so that FastPix can fetch the file successfully.
- Supported video formats include **MP4, MOV, MKV, and TS** for optimal processing performance.
-
- outroUrl:
- type: string
- example: https://static.fastpix.com/fp-sample-video.mp4
- description: |
- The URL of the **outro video** to be added at the end of the media file.
- The URL must be **valid, publicly accessible, and downloadable** so that FastPix can retrieve the file successfully.
- Supported video formats include **MP4, MOV, MKV, and TS** for best compatibility and processing speed.
-
- expungeSegments:
- type: array
- description: |
- The list of start and end times (in seconds) of the segments to be removed from the actual video.
- items:
- type: string
- example: 4-6
- example:
- - 4-6
- - 15-19
- segments:
- type: array
- description: A list of media segments to be added or processed. Each segment includes details such as the URL of the media file and instructions on where it should be inserted in the final media composition. A segment can either specify an exact timestamp (`insertAt`) or indicate that it must be added at the end (`insertAtEnd`).
- items:
- type: object
- oneOf:
- - type: object
- required:
- - url
- - insertAt
- properties:
- url:
- type: string
- format: uri
- example: https://storage.googleapis.com/gtv-videos-mp4/sample-segment.mp4
- description: |
- The URL of the **video segment** to be added.
- The URL must be **valid, publicly accessible, and downloadable** so that FastPix can retrieve and process the segment successfully.
- Supported video formats include **MP4, MOV, MKV, and TS** for best compatibility and performance.
-
- insertAt:
- type: integer
- description: The timestamp(in seconds) at which the segment must be inserted.
- example: 2
- - type: object
- required:
- - url
- - insertAtEnd
- properties:
- url:
- type: string
- format: uri
- description: |
- The URL of the **video segment** to be added.
- The URL must be **valid, publicly accessible, and downloadable** so that FastPix can retrieve and process the segment successfully.
- Supported video formats include **MP4, MOV, MKV, and TS** for best compatibility and performance.
- example: https://storage.googleapis.com/gtv-videos-mp4
- insertAtEnd:
- type: boolean
- description: Flag indicating the segment should be inserted at the end.
- example: true
- WatermarkInput:
- description: |
- Contains configuration details for applying a watermark overlay to a video.
- The watermark is placed over the media content during processing.
- For detailed setup steps and customization options, refer to the
- FastPix Watermark Guide.
- required:
- - url
- - type
- type: object
- properties:
- type:
- type: string
- enum:
- - watermark
- description: Type of overlay (currently only supports "watermark").
- example: watermark
- url:
- type: string
- format: uri
- description: URL of the watermark image.
- example: https://static.fastpix.com/watermark-4k.png
- placement:
- type: object
- properties:
- xAlign:
- type: string
- enum:
- - left
- - center
- - right
- description: Horizontal alignment of the watermark.
- example: left
- xMargin:
- type: string
- description: Horizontal margin from the edge of the video.
- example: 10%
- yAlign:
- type: string
- enum:
- - top
- - middle
- - bottom
- description: Vertical alignment of the watermark.
- example: top
- yMargin:
- type: string
- description: Vertical margin from the edge of the video.
- example: 10%
- width:
- type: string
- description: Width of the watermark in percentage or pixels.
- example: 25%
- height:
- type: string
- description: Height of the watermark in percentage or pixels.
- example: 25%
- opacity:
- type: string
- description: Opacity of the watermark in percentage.
- example: 80%
- AudioInput:
- required:
- - swapTrackUrl
- - type
- type: object
- properties:
- type:
- type: string
- enum:
- - audio
- description: Type of overlay (currently only supports "audio").
- example: audio
- swapTrackUrl:
- type: string
- format: uri
- description: URL of the audio track to replace the existing audio in the video.
- example: https://file-examples.com/storage/fe0e9b723466913cf9611b7/2017/11/file_example_MP3_700KB.mp3
- imposeTracks:
- required:
- - url
- type: array
- description: List of additional audio tracks to overlay on the video.
- items:
- type: object
- properties:
- url:
- type: string
- format: uri
- description: URL of the audio track to impose on the video.
- example: http://commondatastorage.googleapis.com/codeskulptor-demos/riceracer_assets/fx/engine-2.ogg
- startTime:
- type: integer
- description: Start time (in seconds) of the imposed audio in the video.
- example: 0
- endTime:
- type: integer
- description: End time (in seconds) of the imposed audio in the video.
- example: 5
- fadeInLevel:
- type: integer
- description: Level of fade-in effect (in seconds) at the start of the imposed audio.
- example: 1
- fadeOutLevel:
- type: integer
- description: Level of fade-out effect (in seconds) at the end of the imposed audio.
- example: 4
- CreateMediaResponse:
- properties:
- id:
- type: string
- example: a1d1acdd-8f4e-4add-b498-6b398cf349d9
- description: The Media is assigned a universal unique identifier, which can contain a maximum of 255 characters.
- trial:
- type: boolean
- default: true
- example: true
- description: |
- FastPix allows for a free trial. Create as many media files as you like during the trial period. Remember, each clip can only be 10 seconds long and will be deleted after 24 hours. Also, all trial content will have the FastPix logo watermark.
- status:
- type: string
- example: Created
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- sourceAccess:
- type: boolean
- example: false
- description: |
- The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- maxResolution:
- type: string
- example: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution tier defines the highest quality at which your media is available.
- inputs:
- type: array
- description: A list of media input sources to be processed.
- items:
- type: object
- properties:
- type:
- type: string
- description: The type of input media. Commonly set to `video`.
- example: video
- url:
- type: string
- format: uri
- description: The publicly accessible URL of the input video file.
- example: https://static.fastpix.com/fp-sample-video.mp4
- optimizeAudio:
- type: boolean
- example: false
- description: |
- Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
- TrackSubtitlesGenerateRequest:
- required:
- - languageName
- - languageCode
- type: object
- description: Contains details for generating subtitle tracks for a media file.
- properties:
- languageName:
- type: string
- description: The full name of the language used to generate the subtitles.
- example: English
- default: English
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- default:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- languageCode:
- $ref: "#/components/schemas/LanguageCode"
- GenerateTrackResponse:
- type: object
- description: Represents the response for a successfully generated subtitle track.
- properties:
- id:
- type: string
- format: uuid
- description: A unique identifier for the generated track.
- example: ace60fc7-e876-4fc6-b9d9-c33fa242f84b
- type:
- type: string
- description: The type of track generated ("subtitle").
- enum:
- - subtitle
- example: subtitle
- languageCode:
- type: string
- description: |
- The BCP 47 language code representing the language of the generated track.
- example: en-US
- enum:
- - ar-SA
- - bn-BD
- - bn-IN
- - ca-ES
- - cs-CZ
- - da-DK
- - de-AT
- - de-CH
- - de-DE
- - el-GR
- - en-AU
- - en-CA
- - en-GB
- - en-IE
- - en-IN
- - en-NZ
- - en-US
- - en-ZA
- - es-AR
- - es-CL
- - es-CO
- - es-ES
- - es-MX
- - es-US
- - fi-FI
- - fr-BE
- - fr-CA
- - fr-CH
- - fr-FR
- - he-IL
- - hi-IN
- - hr-HR
- - hu-HU
- - id-ID
- - it-CH
- - it-IT
- - ja-JP
- - ko-KR
- - nl-BE
- - nl-NL
- - no-NO
- - pl-PL
- - pt-BR
- - pt-PT
- - ro-RO
- - ru-RU
- - sk-SK
- - sv-SE
- - ta-IN
- - ta-LK
- - th-TH
- - tr-TR
- - uk-UA
- - bg-BG
- - zh-CN
- - zh-HK
- - zh-TW
- languageName:
- type: string
- description: The full name of the language for the generated track.
- example: English
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- SubtitleInput:
- required:
- - type
- - url
- - languageName
- - languageCode
- type: object
- description: Generates subtitle files for audio/video files.
- properties:
- type:
- type: string
- example: subtitle
- description: |
- Defines the type of input.
- url:
- type: string
- format: uri
- description: The direct URL of the subtitle file.
- example: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- languageName:
- type: string
- example: english
- description: Name of the language in which the subtitles will be generated.
- languageCode:
- $ref: "#/components/schemas/LanguageCode"
- AddTrackRequest:
- type: object
- description: Contains details about the track being added to the media file.
- required:
- - url
- - type
- - languageCode
- - languageName
- properties:
- url:
- type: string
- format: uri
- description: The direct URL of the track file. It must point to a valid audio or subtitle file.
- example: https://static.fastpix.com/music-1.mp3
- default: https://static.fastpix.com/music-1.mp3
- type:
- type: string
- enum:
- - audio
- - subtitle
- description: Specifies the type of track being added. It can be either `audio` or `subtitle`.
- example: audio
- default: audio
- languageCode:
- type: string
- description: The BCP 47 language code representing the track’s language.
- example: it
- default: it
- languageName:
- type: string
- description: The full name of the language corresponding to the `languageCode`.
- example: Italian
- default: Italian
-
- AddTrackResponse:
- type: object
- description: Contains details about the track that was added or updated.
- properties:
- id:
- type: string
- format: uuid
- description: The unique identifier of the track.
- example: ace60fc7-e876-4fc6-b9d9-c33fa242f84b
- type:
- type: string
- enum:
- - audio
- - subtitle
- description: Specifies the type of track (audio or subtitle).
- example: audio
- url:
- type: string
- format: uri
- description: The direct URL of the track file.
- example: https://static.fastpix.com/music-1.mp3
- languageCode:
- type: string
- description: The BCP 47 language code representing the track's language.
- example: it
- languageName:
- type: string
- description: The full name of the language corresponding to the `languageCode`.
- example: Italian
- UpdateTrackResponse:
- type: object
- description: Contains details about the track that was added or updated.
- properties:
- id:
- type: string
- format: uuid
- description: The unique identifier of the track.
- example: a5833611-e92c-4ba9-89f0-a42f8e9aef5e
- type:
- type: string
- enum:
- - audio
- - subtitle
- description: Specifies the type of track (audio or subtitle).
- example: subtitle
- url:
- type: string
- format: uri
- description: The direct URL of the track file.
- example: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- languageCode:
- type: string
- description: The BCP 47 language code representing the track's language.
- example: fr
- languageName:
- type: string
- description: The full name of the language corresponding to the `languageCode`.
- example: french
- UpdateTrackRequest:
- type: object
- description: Contains details about the track being added to the media file.
- required:
- - url
- - languageCode
- - languageName
- properties:
- url:
- type: string
- format: uri
- description: The direct URL of the track file. It must point to a valid audio or subtitle file.
- example: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- default: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- languageCode:
- type: string
- description: The BCP 47 language code representing the track’s language.
- example: fr
- default: fr
- languageName:
- type: string
- description: The full name of the language corresponding to the `languageCode`.
- example: French
- default: French
-
- DirectUpload:
- type: object
- description: Displays the result of the request.
- properties:
- uploadId:
- type: string
- example: 7ya85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- trial:
- type: boolean
- example: false
- description: Indicates if the upload was a trial.
- status:
- type: string
- example: waiting
- enum:
- - waiting
- description: Determines the media's status, which can be one of the possible values.
- url:
- type: string
- example:
- url: https://storage.fastpix.net/uploads/08256f2c-efca-4c4f-8f21-75e40d49f225/80911756-1ce3-485a-a3b4-6653ff0937a1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=media-svc%2F20240111%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240111T123116Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=419ab443cdc1d4a22cf1b0f8875855590b346058e6d3859f7c1c9da3bb061f91
- description: The url hosts the media file for FastPix, which needs to be download to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles/CC (SRT file/VTT file). While FastPix can handle various audio and video formats and codecs, using standard inputs can help with optimal processing speed.
- timeout:
- type: number
- example: 14400
- default: 14400
- description: |
- The duration set for the validity of the upload URL. If the upload isn't completed within this timespan, it's marked as timed out.
- corsOrigin:
- type: string
- example: "*"
- description: Upload media directly from a device using the url name or enter "*" to allow all.
- pushMediaSettings:
- $ref: "#/components/schemas/DirectUploadResponse"
- DirectUploadResponse:
- properties:
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- sourceAccess:
- type: boolean
- example: false
- description: |
- The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- optimizeAudio:
- type: boolean
- example: false
- description: |
- Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
-
- UnusedDirectUpload:
- type: object
- description: Displays the result of the request.
- properties:
- uploadId:
- type: string
- example: 7ya85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- trial:
- type: boolean
- example: false
- description: Indicates if the upload was a trial.
- status:
- type: string
- example: waiting
- enum:
- - waiting
- description: Determines the media's status, which can be one of the possible values.
- url:
- type: string
- example:
- url: https://storage.fastpix.net/uploads/08256f2c-efca-4c4f-8f21-75e40d49f225/80911756-1ce3-485a-a3b4-6653ff0937a1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=media-svc%2F20240111%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240111T123116Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=419ab443cdc1d4a22cf1b0f8875855590b346058e6d3859f7c1c9da3bb061f91
- description: The url hosts the media file for FastPix, which needs to be download to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles/CC (SRT file/VTT file). While FastPix can handle various audio and video formats and codecs, using standard inputs can help with optimal processing speed.
- timeout:
- type: number
- example: 14400
- default: 14400
- description: |
- The duration set for the validity of the upload URL. If the upload isn’t completed within this timespan, it is marked as timed out.
- corsOrigin:
- type: string
- example: "*"
- description: Upload media directly from a device using the url name or enter "*" to allow all.
- pushMediaSettings:
- $ref: "#/components/schemas/UnusedDirectUploadResponse"
- UnusedDirectUploadResponse:
- properties:
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/Unused-uploads-playbackId"
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- sourceAccess:
- type: boolean
- example: false
- description: |
- The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- optimizeAudio:
- type: boolean
- example: false
- description: |
- Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
-
- Default-Error:
- type: object
- properties:
- success:
- type: boolean
- example: false
- description: Shows if the request was completed successfully. Returns `true` for success and `false` for failure.
- error:
- type: object
- description: Contains details about the error if the request failed.
- properties:
- code:
- type: integer
- example: HTTP status code
- description: The HTTP status code that explains the type of error (for example, 400 for a bad request, 404 for not found).
- message:
- type: string
- example: Message describing the error
- description: A short message describing what went wrong.
- description:
- type: string
- example: Detailed explanation of why the request failed
- description: |
- A detailed explanation of the error and what caused it. May also include links to documentation or tips for fixing the issue.
-
- Pagination:
- type: object
- description: Pagination organizes content into pages for better readability and navigation.
- properties:
- totalRecords:
- type: integer
- example: 100
- description: It gives the total number of media assets that are accessible overall.
- currentOffset:
- type: integer
- example: 1
- description: "Offset determines the current point for data retrieval within a paginated list. "
- offsetCount:
- type: integer
- example: 10
- description: The offset count is expressed as total records by limit
- SigningKeysPagination:
- type: object
- description: Pagination organizes content into pages for better readability and navigation.
- properties:
- totalRecords:
- type: integer
- example: 1
- description: It gives the total number of Signing keys that are created by a user.
- currentOffset:
- type: integer
- example: 1
- description: Offset determines the current point for data retrieval within a paginated list.
- offsetCount:
- type: integer
- example: 10
- description: The offset count is expressed as total records by limit
- CreatePlaylistRequest:
- oneOf:
- - $ref: "#/components/schemas/CreatePlaylistRequestManual"
- - $ref: "#/components/schemas/CreatePlaylistRequestSmart"
- discriminator:
- propertyName: type
- mapping:
- manual: "#/components/schemas/CreatePlaylistRequestManual"
- smart: "#/components/schemas/CreatePlaylistRequestSmart"
-
- CreatePlaylistRequestManual:
- type: object
- additionalProperties: false
- required:
- - name
- - referenceId
- - type
- properties:
- name:
- type: string
- description: Name of the playlist.
- example: "Playlist name"
- referenceId:
- type: string
- description: Unique string value assigned by user to the playlist.
- example: "a1"
- type:
- type: string
- enum:
- - manual
- example: "manual"
- description: Manual playlist type (no `playOrder`).
- description:
- type: string
- example: "This is a playlist"
- description: Description for a playlist (Optional).
- limit:
- type: integer
- default: 1000
- description: Optional parameter to limit no. of media in a playlist.
-
- CreatePlaylistRequestSmart:
- type: object
- additionalProperties: false
- required:
- - name
- - referenceId
- - type
- - playOrder
- - metadata
- properties:
- name:
- type: string
- description: Name of the playlist.
- example: "Playlist name"
- referenceId:
- type: string
- description: Unique string value assigned by user to the playlist.
- example: "a1"
- type:
- type: string
- enum:
- - smart
- example: "smart"
- description: For a smart playlist metadata is required.
- description:
- type: string
- example: "This is a playlist"
- description: Description for a playlist (Optional).
- playOrder:
- $ref: "#/components/schemas/PlaylistOrder"
- limit:
- type: integer
- default: 1000
- description: Optional parameter to limit no. of media in a playlist.
- metadata:
- type: object
- properties:
- createdDate:
- $ref: "#/components/schemas/DateRange"
- updatedDate:
- $ref: "#/components/schemas/DateRange"
- description: Required when the playlist type is `smart`. Media created between `startDate` and `endDate` of `createdDate` is added. Optionally, you can include media based on `updatedDate`.
- example:
- name: playlist name
- referenceId: a1
- type: smart
- description: This is a playlist
- playOrder: createdDate ASC
- limit: 20
- metadata:
- createdDate:
- startDate: "2024-11-11"
- endDate: "2024-12-12"
- updatedDate:
- startDate: "2024-11-11"
- endDate: "2024-12-12"
- UpdatePlaylistRequest:
- type: object
- required:
- - name
- - description
- properties:
- name:
- type: string
- description: New name to the playlist.
- example: updated name
- description:
- type: string
- description: Updated description to the playlist.
- example: updated description
- example:
- name: updated name
- description: updated description
- playlistCreatedResponse:
- type: object
- description: Displays the result of the request.
- required:
- - success
- - data
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/playlistCreatedSchema"
- example:
- success: true
- data:
- id: e3dfdf15-16bb-4835-98b9-484c1e4320cc
- name: playist
- referenceId: a1
- type: smart
- description: This is a playlist
- playOrder: createdDate ASC
- metadata:
- createdDate:
- startDate: "2024-11-11"
- endDate: "2024-12-12"
- updatedDate:
- startDate: "2024-11-11"
- endDate: "2024-12-12"
- mediaList:
- - createdAt: "2024-11-12T05:58:38.000708Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: 942e0ced-146b-487e-988f-6de578de1000
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://venus-images.fastpix.dev/ff31b32e-4979-4d2b-ad2a-685af43c9902/thumbnail.png
- title: "Media 1"
- - createdAt: "2024-12-05T07:23:18.000108Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: 6d12262b-0686-4131-9de2-bb515f7c0f38
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://mercury-images.fastpix.dev/e49a0d7b-6f2c-4743-84d1-45522cc20ded/thumbnail.png
- title: "Media 2"
- - createdAt: "2024-12-05T07:21:15.000508Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: a1cd180e-f9b5-4e99-9d44-b9c9baabad89
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://mercury-images.fastpix.dev/e49a0d7b-6f2c-4743-84d1-45522cc20ded/thumbnail.png
- title: "Media 3"
- workspaceId: d760b903-86ef-44d6-9b73-334130e0cf2d
- createdAt: "2025-06-04T13:29:39.409886Z"
- updatedAt: "2025-06-04T13:29:39.409886Z"
- mediaCount: 3
- PlaylistItem:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: db6e860f-cb57-43dd-8acf-39c9effd5608
- description: The unique id of the playlist
- name:
- type: string
- example: playlist1
- description: The name of the playlist set by the user
- type:
- type: string
- enum:
- - manual
- - smart
- example: smart
- description: type of the playlist, when it was created
- referenceId:
- type: string
- example: a111dfdfdafsdfe
- description: Unique string value assigned by user to the playlist.
- createdAt:
- type: string
- format: date-time
- example: "2025-05-12T12:55:24.368182Z"
- description: Timestamp of playlist creation.
- mediaCount:
- type: integer
- example: 9
- description: No. of media present in the playlist
- GetAllPlaylistsResponse:
- type: object
- required:
- - success
- - data
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- items:
- $ref: "#/components/schemas/PlaylistItem"
- pagination:
- $ref: "#/components/schemas/Pagination"
- example:
- success: true
- data:
- - id: db6e860f-cb57-43dd-8acf-39c9effd5608
- name: playist1
- type: smart
- referenceId: playlists101
- createdAt: "2025-06-04T13:29:04.253244Z"
- mediaCount: 0
- - id: 5c18559f-c1b1-4697-9282-77211d4396bb
- name: playist2
- type: smart
- referenceId: playlists102
- createdAt: "2025-06-04T13:01:05.073809Z"
- mediaCount: 0
- - id: a4735902-b5e6-431f-8875-7a1a2cbc7a7b
- name: Onboarding
- type: manual
- referenceId: playlists103
- createdAt: "2025-06-04T12:17:38.917664Z"
- mediaCount: 0
- - id: 1ffce718-7072-4b61-9b27-e7d18198094d
- name: December playlist
- type: manual
- referenceId: playlists104
- createdAt: "2025-05-15T11:06:51.545280Z"
- mediaCount: 0
- - id: 2455174e-64d9-4324-86bd-80cb1af5b20a
- name: March Highlights
- type: smart
- referenceId: playlists105
- createdAt: "2025-05-12T12:55:24.368182Z"
- mediaCount: 9
- - id: d55c4e51-e426-498f-b760-6f9357e2349e
- name: playlist1
- type: smart
- referenceId: playlists106
- createdAt: "2025-05-07T10:49:29.226943Z"
- mediaCount: 9
- - id: 63d73b6e-50dd-4653-990b-8a8df85ad09f
- name: playlist1
- type: smart
- referenceId: playlists107
- createdAt: "2025-05-07T10:48:09.179324Z"
- mediaCount: 9
- - id: 5a93de86-0848-4ab4-befe-8dba4b8433e5
- name: playlist1
- type: smart
- referenceId: playlists108
- createdAt: "2025-05-07T10:47:06.339271Z"
- mediaCount: 9
- - id: d315b847-38c4-431f-b1b6-32dc5013700a
- name: playlist1
- type: smart
- referenceId: playlists109
- createdAt: "2025-05-07T10:03:21.487649Z"
- mediaCount: 9
- - id: 86348042-6367-4dfc-b018-b3ee9934f45b
- name: playlist1
- type: manual
- referenceId: playlists201
- createdAt: "2025-05-05T12:48:44.177451Z"
- mediaCount: 2
- pagination:
- totalRecords: 46
- currentOffset: 1
- offsetCount: 5
- PlaylistByIdResponse:
- type: object
- required:
- - success
- - data
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/PlaylistByIdResponseData"
- example:
- success: true
- data:
- id: 46d5fce1-683a-457f-86d7-c048bb429505
- name: My Playlist
- referenceId: 122q
- type: smart
- description: This Playlist contains videos from December 2024.
- playOrder: createdDate ASC
- metadata:
- createdDate:
- endDate: 2024-12-12
- startDate: 2024-12-11
- updatedDate:
- endDate: 2024-12-12
- startDate: 2024-12-11
- mediaList:
- - createdAt: "2025-05-27T09:37:52.445936Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: a1cd180e-f9b5-4e99-9d44-b9c9baabad89
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://venus-images.fastpix.dev/bed25609-1887-4c49-91a5-5c6b1edeb1a2/thumbnail.png
- title: "Media 1"
- - createdAt: "2025-04-04T13:26:23.507284Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: 245800c3-7b73-47d9-a201-e961260dcb30
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://mercury-images.fastpix.dev/3c6ceeea-d24b-487f-9dd0-5a16148b5d46/thumbnail.png
- title: "Media 2"
- - createdAt: "2025-04-04T13:26:12.552840Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: 41316aac-5396-4278-8f44-08d5f2495b12
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://mercury-images.fastpix.dev/8989d0d3-5c5b-41b2-89d5-df6094e6093f/thumbnail.png
- title: "Media 3"
- workspaceId: d760b903-86ef-44d6-9b73-334130e0cf2d
- createdAt: "2025-06-05T09:10:30.655275Z"
- updatedAt: "2025-06-05T12:23:47.096690Z"
- mediaCount: 3
- PlaylistByIdResponseMediaListItem:
- type: object
- properties:
- createdAt:
- type: string
- format: date-time
- example: "2025-03-21T05:58:38.000708Z"
- description: Timestamp of media creation in the workspace.
- creatorId:
- type: string
- nullable: true
- example: FastPix@14612
- description: Creator ID of the media.
- duration:
- type: string
- example: "00:00:10"
- description: Duration of the media in hh:mm:ss format.
- id:
- type: string
- format: uuid
- example: 942e0ced-146b-487e-988f-6de578de1000
- description: unique id of the particular media.
- sourceResolution:
- type: string
- example: 1080p
- description: source resolution of the media.
- status:
- type: string
- example: Ready
- description: status of the media, only media with ready status is added to playlist.
- thumbnail:
- type: string
- format: uri
- example: https://venus-images.fastpix.dev/ff31b32e-4979-4d2b-ad2a-685af43c9902/thumbnail.png
- description: thumbnail for the particular media.
- title:
- type: string
- nullable: true
- example: Media 1
- description: Title of the media.
- PlaylistByIdResponseMetadata:
- type: object
- properties:
- createdDate:
- $ref: "#/components/schemas/DateRange"
- updatedDate:
- $ref: "#/components/schemas/DateRange"
- description: Required when the playlist type is `smart`. Media created between `startDate` and `endDate` of `createdDate` is added. Optionally, you can include media based on `updatedDate`.
- PlaylistByIdResponseDataManual:
- type: object
- additionalProperties: false
- required:
- - type
- properties:
- id:
- type: string
- format: uuid
- example: 2455174e-64d9-4324-86bd-80cb1af5b20a
- description: The unique id of the playlist
- name:
- type: string
- example: playlist1
- description: The name of the playlist set by the user
- referenceId:
- type: string
- example: playlists301
- description: Unique string value assigned by user to the playlist.
- type:
- type: string
- enum:
- - manual
- example: manual
- description: type of the playlist, when it was created
- description:
- type: string
- example: This is a manual playlist
- description: Description of the playlist set by the user.
- mediaList:
- type: array
- items:
- $ref: "#/components/schemas/PlaylistByIdResponseMediaListItem"
- workspaceId:
- type: string
- format: uuid
- example: d760b903-86ef-44d6-9b73-334130e0cf2d
- description: The unique id of the workspace in which the playlist is present.
- createdAt:
- type: string
- format: date-time
- example: "2025-05-12T12:55:24.368182Z"
- description: Timestamp of playlist creation.
- updatedAt:
- type: string
- format: date-time
- example: "2025-05-27T09:51:03.166094Z"
- description: Playlist's most recent update timestamp.
- mediaCount:
- type: integer
- example: 3
- description: No. of media present in the playlist
- PlaylistByIdResponseDataSmart:
- type: object
- additionalProperties: false
- required:
- - type
- - playOrder
- - metadata
- properties:
- id:
- type: string
- format: uuid
- example: 2455174e-64d9-4324-86bd-80cb1af5b20a
- description: The unique id of the playlist
- name:
- type: string
- example: playlist1
- description: The name of the playlist set by the user
- referenceId:
- type: string
- example: playlists301
- description: Unique string value assigned by user to the playlist.
- type:
- type: string
- enum:
- - smart
- example: smart
- description: type of the playlist, when it was created
- description:
- type: string
- example: This is a smart playlist
- description: Description of the playlist set by the user.
- playOrder:
- $ref: "#/components/schemas/PlaylistOrder"
- metadata:
- $ref: "#/components/schemas/PlaylistByIdResponseMetadata"
- mediaList:
- type: array
- items:
- $ref: "#/components/schemas/PlaylistByIdResponseMediaListItem"
- workspaceId:
- type: string
- format: uuid
- example: d760b903-86ef-44d6-9b73-334130e0cf2d
- description: The unique id of the workspace in which the playlist is present.
- createdAt:
- type: string
- format: date-time
- example: "2025-05-12T12:55:24.368182Z"
- description: Timestamp of playlist creation.
- updatedAt:
- type: string
- format: date-time
- example: "2025-05-27T09:51:03.166094Z"
- description: Playlist's most recent update timestamp.
- mediaCount:
- type: integer
- example: 3
- description: No. of media present in the playlist
- PlaylistByIdResponseData:
- oneOf:
- - $ref: "#/components/schemas/PlaylistByIdResponseDataManual"
- - $ref: "#/components/schemas/PlaylistByIdResponseDataSmart"
- discriminator:
- propertyName: type
- mapping:
- manual: "#/components/schemas/PlaylistByIdResponseDataManual"
- smart: "#/components/schemas/PlaylistByIdResponseDataSmart"
- PlaylistDeleteResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- MediaIdsRequest:
- type: object
- properties:
- mediaIds:
- type: array
- items:
- type: string
- format: uuid
- description: The unique identifier of the media.
- example:
- - a1cd180e-f9b5-4e99-9d44-b9c9baabad89
- - 245800c3-7b73-47d9-a201-e961260dcb30
- - 41316aac-5396-4278-8f44-08d5f2495b12
- default:
- - 41316aac-5396-4278-8f44-08d5f2495b12
- required:
- - mediaIds
- description: The list of mediaId(s) you want to perform the operation on.
-
- MediaCancelResponse:
- type: object
- description: Response returned when an upload is cancelled.
- properties:
- uploadId:
- type: string
- format: uuid
- example: beff5537-de85-42e1-a673-2a405cd94177
- description: The unique identifier of the cancelled upload.
- trial:
- type: boolean
- example: false
- description: Indicates if the upload was a trial.
- status:
- type: string
- example: cancelled
- description: The status of the upload after cancellation.
- url:
- type: string
- example: https://storage.googleapis.com/fastpix-uploads-us/8a5ab157-c586-458a-bb2e-caa8a8b76a19/4190bbde-4c34-41e4-b70e-90ba2aa0b79e
- description: The upload URL (if available) after cancellation.
- timeout:
- type: integer
- nullable: true
- example: 14400
- description: The timeout value for the upload.
- corsOrigin:
- type: string
- example: "*"
- description: CORS origin allowed for the upload.
- maxResolution:
- type: string
- example: 1080p
- description: The maximum resolution allowed for the upload.
- accessPolicy:
- type: string
- example: public
- description: The access policy for the upload.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- title:
- type: string
- nullable: true
- maxLength: 255
- example: My Video Title
- description: Title of the media file.
- creatorId:
- type: string
- nullable: true
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- DrmIdResponse:
- type: object
- properties:
- id:
- type: string
- format: uuid
- description: The unique identifier of the DRM configuration.
- example: e3dfdf15-16bb-4835-98b9-484c1e4320cc
- playlistCreatedSchema:
- oneOf:
- - $ref: "#/components/schemas/PlaylistByIdResponseDataManual"
- - $ref: "#/components/schemas/PlaylistByIdResponseDataSmart"
- discriminator:
- propertyName: type
- mapping:
- manual: "#/components/schemas/PlaylistByIdResponseDataManual"
- smart: "#/components/schemas/PlaylistByIdResponseDataSmart"
- patchLiveStreamRequest:
- type: object
- properties:
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- livestream_name: Gaming_stream
- reconnectWindow:
- type: integer
- example: 60
- maximum: 1800
- minimum: 60
- default: 60
- description: In case the software streaming the live, gets disrupted for any reason and gets disconnected from FastPix, the reconnect window defines the duration FastPix waits before automatically terminating the stream. Before starting the stream, you can set the reconnect window time which is up to 1800 seconds.
- example:
- metadata:
- livestream_name: Gaming_stream
- reconnectWindow: 100
- ViewsCountResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- description: Contains the view count details.
- properties:
- views:
- type: integer
- example: 20
- description: Number of views for the stream or resource.
- example:
- success: true
- data:
- views: 20
- CreateLiveStreamRequest:
- type: object
- required:
- - playbackSettings
- - inputMediaSettings
- properties:
- playbackSettings:
- $ref: "#/components/schemas/playbackSettings"
- inputMediaSettings:
- type: object
- description: Contains configuration details for input media settings.
- properties:
- maxResolution:
- type: string
- default: 1080p
- enum:
- - 1080p
- - 720p
- - 480p
- description: |
- Defines the maximum resolution for encoding, storage, and playback of the live stream.
- reconnectWindow:
- type: integer
- example: 60
- maximum: 1800
- minimum: 60
- default: 60
- description: |
- Time period (in seconds) FastPix waits to reconnect before ending the stream when disconnected.
- mediaPolicy:
- $ref: "#/components/schemas/BasicAccessPolicy"
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: |
- Custom key–value pairs for tagging livestreams.
- Allows up to 10 entries with a maximum of 255 characters each.
- example:
- livestream_name: fastpix_livestream
- enableDvrMode:
- type: boolean
- description: |
- Enables DVR (Digital Video Recorder) functionality, allowing viewers to pause, rewind, and resume live playback.
- default:
- playbackSettings:
- accessPolicy: public
- inputMediaSettings:
- maxResolution: 1080p
- reconnectWindow: 60
- mediaPolicy: public
- metadata:
- livestream_name: fastpix_livestream
-
- playbackSettings:
- type: object
- description: Displays the result of the playback settings.
- properties:
- accessPolicy:
- $ref: "#/components/schemas/BasicAccessPolicy"
- liveStreamResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/CreateLiveStreamResponseDTO"
- example:
- success: true
- data:
- streamId: fa7f8c0950ea48ebcc5ef9de8c23deaa
- streamKey: 3dc5d7641f918baa083a5c52a5bd9cbckfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtSecret: c51739512d0088d98a46925c9b74c73akfa7f8c0950ea48ebcc5ef9de8c23deaa
- trial: false
- status: idle
- maxResolution: 1080p
- maxDuration: 28800
- createdAt: "2024-10-15T08:48:31.551351Z"
- reconnectWindow: 60
- enableRecording: true
- enableDvrMode: true
- mediaPolicy: public
- metadata:
- livestream_name: fastpix_livestream
- lowLatency: true
- closedCaptions: false
- playbackIds:
- - id: 4e43ec52-4775-4f68-a3ff-a57d8a59bba8
- accessPolicy: public
- srtPlaybackResponse:
- srtPlaybackStreamId: playfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtPlaybackSecret: 490e707dd4d165c9e38d261b252f9457kfa7f8c0950ea48ebcc5ef9de8c23deaa
- livestreamgetResponse:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/getCreateLiveStreamResponseDTO"
- example:
- success: true
- data:
- streamId: fa7f8c0950ea48ebcc5ef9de8c23deaa
- streamKey: 3dc5d7641f918baa083a5c52a5bd9cbckfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtSecret: c51739512d0088d98a46925c9b74c73akfa7f8c0950ea48ebcc5ef9de8c23deaa
- trial: false
- status: idle
- maxResolution: 1080p
- maxDuration: 28800
- createdAt: "2024-10-15T08:48:31.551351Z"
- reconnectWindow: 60
- enableRecording: true
- enableDvrMode: false
- mediaPolicy: public
- metadata:
- livestream_name: fastpix_livestream
- lowLatency: true
- closedCaptions: false
- playbackIds:
- - id: 4e43ec52-4775-4f68-a3ff-a57d8a59bba8
- accessPolicy: public
- mediaIds:
- - 03cdf35d-8626-4b5f-bd14-d2212cd2a991
- srtPlaybackResponse:
- srtPlaybackStreamId: playfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtPlaybackSecret: 490e707dd4d165c9e38d261b252f9457kfa7f8c0950ea48ebcc5ef9de8c23deaa
- patchResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/patchResponseData"
- example:
- success: true
- data:
- streamId: fa7f8c0950ea48ebcc5ef9de8c23deaa
- streamKey: 3dc5d7641f918baa083a5c52a5bd9cbckfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtSecret: c51739512d0088d98a46925c9b74c73akfa7f8c0950ea48ebcc5ef9de8c23deaa
- trial: false
- status: idle
- maxResolution: 1080p
- maxDuration: 28800
- createdAt: "2024-10-15T08:48:31.551351Z"
- reconnectWindow: 100
- enableRecording: true
- enableDvrMode: false
- mediaPolicy: public
- metadata:
- livestream_name: Gaming_stream
- lowLatency: true
- closedCaptions: false
- playbackIds:
- - id: 4e43ec52-4775-4f68-a3ff-a57d8a59bba8
- accessPolicy: public
- srtPlaybackResponse:
- srtPlaybackStreamId: playfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtPlaybackSecret: 490e707dd4d165c9e38d261b252f9457kfa7f8c0950ea48ebcc5ef9de8c23deaa
-
- LiveStreamDeleteResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- example:
- success: true
- PlaybackIdResponse:
- type: object
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- properties:
- id:
- type: string
- format: uuid
- example: 68b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd
- description: Unique identifier for the playbackId
- accessPolicy:
- type: string
- example: public
- description: Determines if access to the streamed content is kept private or available to all.
- LiveStreamPagination:
- type: object
- description: Pagination organizes content into pages for better readability and navigation.
- properties:
- totalRecords:
- type: integer
- example: 12
- description: It gives the total number of media assets that are accessible overall.
- currentOffset:
- type: integer
- example: 5
- description: Determines the current point for data retrieval within a paginated list.
- offsetCount:
- type: integer
- example: 2
- description: The offset count is expressed as total records by limit.
- getCreateLiveStreamResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- streamId:
- type: string
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- streamKey:
- type: string
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- srtSecret:
- type: string
- description: A secret used for securing the SRT stream. This ensures that only authorized users can access the stream.
- trial:
- type: boolean
- example: true
- description: FastPix allows for a to trial the live stream for free. The duration of trial streams is five minutes. After five minutes of activity, the trial stream is turned off, and the recorded asset is removed after a day.
- status:
- type: string
- example:
- possibleValue: idle, preparing, active, disabled
- example: idle
- description: The current live stream status can be one of four values:Idle, Preparing, Active or Disabled.The Idle status signifies that there isn"t a broadcast in progress.The preparing status indicates that the stream is getting prepared. while, the Active status indicates that a broadcast is currently in progress. The Disabled status means that no more RTMPS streams can be published.
- maxResolution:
- type: string
- example:
- possibleValue: 1080p, 720p, 480p
- example: 1080p
- default: 1080p
- description: Max resolution can be used to control the maximum resolution your media is encoded, stored, and streamed at.
- maxDuration:
- type: integer
- example: 28800
- maximum: 28800
- minimum: 60
- description: The maximum duration in seconds that a live stream can have before it ends the stream.
- createdAt:
- type: string
- format: date-time
- description: It is the moment when the stream was created Time the media was generated, defined as a localDateTime (UTC Time).
- reconnectWindow:
- type: integer
- example: 60
- maximum: 1800
- minimum: 60
- default: 60
- description: In case the software streaming the live, gets disrupted for any reason and gets disconnected from FastPix, the reconnect window specifies the time span FastPix will wait before ending the stream. Before starting the stream, you can set the reconnect window time which is up to 1800 seconds.
- enableRecording:
- type: boolean
- example:
- example: true
- default: true
- description: When set to true, FastPix records and stores the livestream for on-demand viewing. When set to false, the livestream is not recorded.
- enableDvrMode:
- type: boolean
- example:
- example: true
- default: false
- description: Enables DVR (Digital Video Recorder) functionality for the live stream. When set to true, viewers can pause, rewind, and resume playback during the live broadcast. This allows time-shifted viewing of the stream while it is still ongoing.
- mediaPolicy:
- type: string
- example:
- possibleValue: public, private
- example: public
- default: public
- description: Determines whether the recorded stream must be publicly accessible or private in Live to VOD (Video on Demand).
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- livestream_name: fastpix_livestream
- lowLatency:
- type: boolean
- description: Enables low-latency streaming mode to reduce playback delay.
- example: true
- closedCaptions:
- type: boolean
- description: when provided true Enables closed captions for the livestream.
- example: false
- playbackIds:
- type: array
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- items:
- $ref: "#/components/schemas/PlaybackIdResponse"
- simulcastResponses:
- type: array
- description: A list of simulcast responses created for the livestream.
- items:
- $ref: '#/components/schemas/liveSimulcast'
- mediaIds:
- type: array
- description: A list of media IDs created when recording is enabled. Each media ID represents a recorded video (Live to VOD). If the stream is stopped and started again outside the reconnect window, a new media ID is generated for each session.
- items:
- type: string
- format: uuid
- srtPlaybackResponse:
- $ref: "#/components/schemas/SrtPlaybackResponse"
- CreateLiveStreamResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- streamId:
- type: string
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- streamKey:
- type: string
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- srtSecret:
- type: string
- description: A secret used for securing the SRT stream. This ensures that only authorized users can access the stream.
- trial:
- type: boolean
- example: true
- description: FastPix allows for a to trial the live stream for free. The duration of trial streams is five minutes. After five minutes of activity, the trial stream is turned off, and the recorded asset is removed after a day.
- status:
- type: string
- example:
- possibleValue: idle, preparing, active, disabled
- example: idle
- description: The current live stream status can be one of four values:Idle, Preparing, Active or Disabled.The Idle status signifies that there isn"t a broadcast in progress.The preparing status indicates that the stream is getting prepared. while, the Active status indicates that a broadcast is currently in progress. The Disabled status means that no more RTMPS streams can be published.
- maxResolution:
- type: string
- example:
- possibleValue: 1080p, 720p, 480p
- example: 1080p
- default: 1080p
- description: Max resolution can be used to control the maximum resolution your media is encoded, stored, and streamed at.
- maxDuration:
- type: integer
- example: 28800
- maximum: 28800
- minimum: 60
- description: The maximum duration in seconds that a live stream can have before it ends the stream.
- createdAt:
- type: string
- format: date-time
- description: It is the moment when the stream was created Time the media was generated, defined as a localDateTime (UTC Time).
- reconnectWindow:
- type: integer
- example: 60
- maximum: 1800
- minimum: 60
- default: 60
- description: In case the software streaming the live, gets disrupted for any reason and gets disconnected from FastPix, the reconnect window specifies the time span FastPix will wait before ending the stream. Before starting the stream, you can set the reconnect window time which is up to 1800 seconds.
- enableRecording:
- type: boolean
- example:
- example: true
- default: true
- description: When set to true, the livestream will be recorded and stored for later viewing purposes. If set to false, the livestream will not be recorded.
- enableDvrMode:
- type: boolean
- example:
- example: true
- default: false
- description: Enables DVR (Digital Video Recorder) functionality for the live stream. When set to true, viewers can pause, rewind, and resume playback during the live broadcast. This allows time-shifted viewing of the stream while it is still ongoing.
- mediaPolicy:
- type: string
- example:
- possibleValue: public, private
- example: public
- default: public
- description: Determines whether the recorded stream should be publicly accessible or private in Live to VOD (Video on Demand).
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- livestream_name: fastpix_livestream
- lowLatency:
- type: boolean
- description: Enables low-latency streaming mode to reduce playback delay.
- example: true
- closedCaptions:
- type: boolean
- description: when provided true Enables closed captions for the livestream.
- example: false
- playbackIds:
- type: array
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- items:
- $ref: "#/components/schemas/PlaybackIdResponse"
- srtPlaybackResponse:
- $ref: "#/components/schemas/SrtPlaybackResponse"
- patchResponseData:
- type: object
- description: Displays the result of the request.
- properties:
- streamId:
- type: string
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- streamKey:
- type: string
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- srtSecret:
- type: string
- description: A secret used for securing the SRT stream. This ensures that only authorized users can access the stream.
- trial:
- type: boolean
- example: false
- description: FastPix allows for a to trial the live stream for free. The duration of trial streams is five minutes. After five minutes of activity, the trial stream is turned off, and the recorded asset is removed after a day.
- status:
- type: string
- example:
- possibleValue: idle, preparing, active, disabled
- example: idle
- description: The current live stream status can be one of four values:Idle, Preparing, Active or Disabled.The Idle status signifies that there isn"t a broadcast in progress.The preparing status indicates that the stream is getting prepared. while, the Active status indicates that a broadcast is currently in progress. The Disabled status means that no more RTMPS streams can be published.
- maxResolution:
- type: string
- example:
- possibleValue: 1080p, 720p, 480p
- example: 1080p
- default: 1080p
- description: Max resolution can be used to control the maximum resolution your media is encoded, stored, and streamed at.
- maxDuration:
- type: integer
- example: 28800
- maximum: 28800
- minimum: 60
- description: The maximum duration in seconds that a live stream can have before it ends the stream.
- createdAt:
- type: string
- format: date-time
- description: It is the moment when the stream was created Time the media was generated, defined as a localDateTime (UTC Time).
- reconnectWindow:
- type: integer
- example:
- example: 60
- maximum: 1800
- minimum: 60
- default: 60
- description: In case the software streaming the live, gets disrupted for any reason and gets disconnected from FastPix, the reconnect window specifies the time span FastPix will wait before ending the stream. Before starting the stream, you can set the reconnect window time which is up to 1800 seconds.
- enableRecording:
- type: boolean
- example:
- example: true
- default: true
- description: When set to true, the livestream will be recorded and stored for later viewing purposes. If set to false, the livestream will not be recorded.
- enableDvrMode:
- type: boolean
- example:
- example: true
- default: false
- description: Enables DVR (Digital Video Recorder) functionality for the live stream. When set to true, viewers can pause, rewind, and resume playback during the live broadcast. This allows time-shifted viewing of the stream while it is still ongoing.
- mediaPolicy:
- type: string
- example:
- possibleValue: public, private
- example: public
- default: public
- description: Determines whether the recorded stream must be publicly accessible or private in Live to VOD (Video on Demand).
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- livestream_name: fastpix_livestream
- lowLatency:
- type: boolean
- description: Enables low-latency streaming mode to reduce playback delay.
- example: true
- closedCaptions:
- type: boolean
- description: when provided true Enables closed captions for the livestream.
- example: false
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackIdResponse"
- srtPlaybackResponse:
- $ref: "#/components/schemas/SrtPlaybackResponse"
- getStreamsResponse:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- description: Displays the result of the request.
- items:
- $ref: "#/components/schemas/getCreateLiveStreamResponseDTO"
- pagination:
- $ref: "#/components/schemas/LiveStreamPagination"
- example:
- success: true
- data:
- - streamId: fa7f8c0950ea48ebcc5ef9de8c23deaa
- streamKey: 3dc5d7641f918baa083a5c52a5bd9cbckfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtSecret: c51739512d0088d98a46925c9b74c73akfa7f8c0950ea48ebcc5ef9de8c23deaa
- trial: false
- status: idle
- maxResolution: 1080p
- maxDuration: 28800
- createdAt: "2024-10-15T08:48:31.551351Z"
- reconnectWindow: 100
- enableRecording: true
- enableDvrMode: true
- mediaPolicy: public
- metadata:
- livestream_name: Gaming_stream
- lowLatency: false
- closedCaptions: false
- playbackIds:
- - id: 4e43ec52-4775-4f68-a3ff-a57d8a59bba8
- accessPolicy: public
- mediaIds:
- - 03cdf35d-8626-4b5f-bd14-d2212cd2a991
- srtPlaybackResponse:
- srtPlaybackStreamId: playfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtPlaybackSecret: 490e707dd4d165c9e38d261b252f9457kfa7f8c0950ea48ebcc5ef9de8c23deaa
- pagination:
- totalRecords: 4
- currentOffset: 1
- offsetCount: 4
- playbackIdRequest:
- type: object
- properties:
- accessPolicy:
- $ref: "#/components/schemas/BasicAccessPolicy"
- example:
- accessPolicy: public
- PlaybackIdSuccessResponse:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 68b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd
- description: Unique identifier for the playbackId
- accessPolicy:
- type: string
- example: public
- description: Determines if access to the streamed content is kept private or available to all.
- example:
- success: true
- data:
- id: 88b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd
- accessPolicy: public
- simulcastRequest:
- type: object
- required:
- - url
- - streamKey
- properties:
- url:
- type: string
- example: rtmp://hyd01.contribute.live-video.net/app/
- default: rtmp://example.com/
- description: The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
- streamKey:
- type: string
- example: live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk
- default: d851d91d5b768b36k61a264dcc447b
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs.
- example:
- livestream_name: Tech-Connect Summit
- example:
- url: rtmp://hyd01.contribute.live-video.net/app/
- streamKey: live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk
- metadata:
- livestream_name: Tech-Connect Summit
-
- simulcastUpdateRequest:
- type: object
- properties:
- isEnabled:
- type: boolean
- example: true
- default: true
- description: When set to false, the simulcast is disabled for the specified stream.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs.
- example:
- livestream_name: Tech today
- example:
- isEnabled: true
- metadata:
- simulcast_name: Tech today
- liveSimulcast:
- type: object
- properties:
- simulcastId:
- type: string
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- url:
- type: string
- example: rtmp://hyd01.contribute.live-video.net/app/
- description: The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
- streamKey:
- type: string
- example: 9310547d1df9c219d851d91d5b768b36k61a264dcc447b63da6fb79ef925cd76d
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- isEnabled:
- type: boolean
- example: true
- description: When the value is true, the simulcast must be enabled for the given stream
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- simulcastResponse:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- description: Displays the result of the request.
- properties:
- simulcastId:
- type: string
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- url:
- type: string
- example: rtmp://hyd01.contribute.live-video.net/app/
- description: The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
- streamKey:
- type: string
- example: 9310547d1df9c219d851d91d5b768b36k61a264dcc447b63da6fb79ef925cd76d
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- isEnabled:
- type: boolean
- example: true
- description: When the value is true, the simulcast must be enabled for the given stream
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- success: true
- data:
- simulcastId: 8717422d89288ad5958d4a86e9afe2a2
- url: rtmp://hyd01.contribute.live-video.net/app/
- streamKey: live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk
- isEnabled: true
- metadata:
- livestream_name: Tech-Connect Summit
- simulcastUpdateResponse:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- description: Displays the result of the request.
- properties:
- simulcastId:
- type: string
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- url:
- type: string
- example: rtmp://hyd01.contribute.live-video.net/app/
- description: The RTMP hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
- streamKey:
- type: string
- example: 9310547d1df9c219d851d91d5b768b36k61a264dcc447b63da6fb79ef925cd76d
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- isEnabled:
- type: boolean
- example: false
- description: When set to false, the simulcast is disabled for the specified stream.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- simulcast_name: Tech today
- example:
- success: true
- data:
- simulcastId: 8717422d89288ad5958d4a86e9afe2a2
- url: rtmp://hyd01.contribute.live-video.net/app/
- streamKey: live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk
- isEnabled: false
- metadata:
- simulcast_name: Tech today
- simulcastdeleteResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- example:
- success: true
- CreateResponse:
- type: object
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- example: true
- data:
- $ref: "#/components/schemas/CreateSigningKeyResponseDTO"
- example:
- success: true
- data:
- id: fc9d9368-6ee5-4b16-ae50-880a2374bdc4
- privateKey: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRREtaN1JKT1IrbXZGeVQxSWFIL0hVUkYwQnRncDJzK0srdUd4TUZ4N1JiaGNudVBMYU14WjM1b0lNWndhdHJrdDFDM3JxVFZsQzBsSnExeENFTyt3Zi9JNHQ0bktmUFB2WG83NGFCQi82YmR0MXpaSHp0OGFIenBnL3YrdEtCWVc5SEdWQ0tYc2JpNjczbHgwcFhHdXVnem8wdnZMR2lKWDBiL0Z4WEI5U1R3RkV5Q1dQOFJhczZ3VWVuSUdVM2UwMmJiV3Z4UnNoMWNER2xSRk03RWw2RVQ2MUQrS0tLTndnUGNYR1pvY0YwZTFxRU5iVGdPZUdBMFNDU0xIT3NtQ0NBQTNtSndJS1VaY0Z2MmpGRUx4Uk5MTnhoMjM5UEdUT3BuWmdvTFp5Skt4b2REN1FpV1N1eDVZY1Z0MFgrSk9rZXNBOEpjM1ZtM0tGc0IwL3RYck9QQWdNQkFBRUNnZ0VBUHhNWUxLVmZocTgyVGw4eFdWbEVCZ0p2OG5COHdIVnpFZGVnRXZJTDgyVjY2d0lDaFZYa0IvR01TVStBSXZMT2Z0TTM0MGhIdUM2REU5ZTkwWlJMQnFoR0ExMFdNbEJWZzdSNC91YkY0aDZsbmhzWGozTDRYQnhJNVNrTnhvSGRrcE9COU16YVA4YmxFNkVLT3FES0F2KzdJY0EwdnVuZDFnWExwTmRzMkduTW5nZW1qOUhJZWh1eTNLY0taNHlheFo1YkRKVEpLZlFrTlFDQzhOR0hIdWovQmRWUnU1RHRrZVdNMFFpN2FKeW5lSXRxOGhtbXdxcVNMTnpTOTZtcHpBdzF3RzFXTHVML1A3TGxJekVWa2ZJUFc0SW1zRXhsSG5FUG0ySld1RUNMQ1pRL25NODdhQXVXekROektCYW51LzZhdXhnSDB2Wnc5YWowTmxNNFFRS0JnUURPM3Y0YlN4bWluZGJpVEdSaXdFVXVyODh4TVA3M2U5RSt2SHlzb3JZMWZycFpkdXJHOVlFb09MUFN1YnQ5WkhZNFhGOFhxRWZ4bE94d294eDVzcU9PcGNMTnFnOWhTSWxPaXEyYmVnN2V2RGpOMml6b3JKRFl3VEhGQ0Era25FbmFpL0J2TU16N3AyVVkrUEEzUnJ4Z25BK3RkQlErZWlSZ1c0WmhnMkhWcndLQmdRRDZlVEpwRTRxZVFYdmpnMy9FS081UkllRklZOHphTGMvMVVHODBqNmVvbStNK3UyTmdUVDJqVmNyMkdQbjZTbHRNRlJNem5qOVJHYmQ1MCt5a2k0Y1NYU1JPdE44alV2M0FseHJtZzEwVTVtSWIrUXFIZ3g2QldyeXkvakxHYXVvMUJnVFg1dDZ0VXVEUUZuVDJSM2xoNGRNZ044T3V4VlR3OCtadGloSllJUUtCZ1FERE00ZHpHWnBHNThrc0lBbFpaVFBpcWVKSCtJT2Q0eWUrbXZ6SnFYOWxXdjljQytuZGN5czhXTVRWd293MzllUFhxdEhQOE9weCtxUmdaSWtxREhabzArRE5UL3JUUVM3Ty9leHpHT21QSXV3MjBmZ3VWU2NZWUxRbHgwVjdmajN5Q3JvRk1YYzZ2dW1XZHMrMFdQckg3bnFjb1R1NCtHZjZ4R0k1QVUvLzRRS0JnUUR6TFcvdjdIVU1xTzhyT0tSM1FuWCtkekpPSWZibGJNMFdrdjBrdnNROFF2MGlEclN3N3MwRkkycGwvR0hXeXhKUWo3V1F5L2NWT2k2VUxWajNlQyt2ZUphamc1K1FvQ2FWTVIrQTVkRWRWWCt6UU5za0xmMFVBWkJyQjdrc1F1a1lpYnR5RWtmblp5dTFXOWc2czdINWdsS0VXUiszTXdjQTJRdkRGZVl4Z1FLQmdDWVdlKzQ4bVVaUEl5ZnR4NVFaQllnYTE2blpndzYxZmxtdEdpQlVGWGVMR3BTaU1XNXc5R3RYVDZPbFh1Zy91TkNKbHR4TDE4c0NEeDNVaU9DNWFTMEN4OTc5TlFrSm1YRWw1UDNtMFNGaVU4VlZ0SFp1dHd3SWFKTFZockZ1T3NJV1BtRFN4aHhMaFpPNmJ5aWRwbHlXLzl1eGpwMlZrQ0Y3OGd5QXRRSWsKLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
- createdAt: "2024-01-11T10:00:06.618993Z"
- GetAllSigningKeysResponse:
- type: object
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- example: true
- data:
- type: array
- items:
- $ref: '#/components/schemas/GetAllSigningKeysResponseDto'
- pagination:
- $ref: '#/components/schemas/SigningKeysPagination'
- DeleteSigningKeyResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- example:
- success: true
- CreateSigningKeyResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- id:
- type: string
- format: uuid
- description: A unique identifier is generated by FastPix for the signing keys.
- example: fc9d9368-6ee5-4b16-ae50-880a2374bdc4
- privateKey:
- type: string
- description: A private key is a byte encoded secret key used to create a signed JSON Web Token (JWT) for authentication.
- example: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRREtaN1JKT1IrbXZGeVQxSWFIL0hVUkYwQnRncDJzK0srdUd4TUZ4N1JiaGNudVBMYU14WjM1b0lNWndhdHJrdDFDM3JxVFZsQzBsSnExeENFTyt3Zi9JNHQ0bktmUFB2WG83NGFCQi82YmR0MXpaSHp0OGFIenBnL3YrdEtCWVc5SEdWQ0tYc2JpNjczbHgwcFhHdXVnem8wdnZMR2lKWDBiL0Z4WEI5U1R3RkV5Q1dQOFJhczZ3VWVuSUdVM2UwMmJiV3Z4UnNoMWNER2xSRk03RWw2RVQ2MUQrS0tLTndnUGNYR1pvY0YwZTFxRU5iVGdPZUdBMFNDU0xIT3NtQ0NBQTNtSndJS1VaY0Z2MmpGRUx4Uk5MTnhoMjM5UEdUT3BuWmdvTFp5Skt4b2REN1FpV1N1eDVZY1Z0MFgrSk9rZXNBOEpjM1ZtM0tGc0IwL3RYck9QQWdNQkFBRUNnZ0VBUHhNWUxLVmZocTgyVGw4eFdWbEVCZ0p2OG5COHdIVnpFZGVnRXZJTDgyVjY2d0lDaFZYa0IvR01TVStBSXZMT2Z0TTM0MGhIdUM2REU5ZTkwWlJMQnFoR0ExMFdNbEJWZzdSNC91YkY0aDZsbmhzWGozTDRYQnhJNVNrTnhvSGRrcE9COU16YVA4YmxFNkVLT3FES0F2KzdJY0EwdnVuZDFnWExwTmRzMkduTW5nZW1qOUhJZWh1eTNLY0taNHlheFo1YkRKVEpLZlFrTlFDQzhOR0hIdWovQmRWUnU1RHRrZVdNMFFpN2FKeW5lSXRxOGhtbXdxcVNMTnpTOTZtcHpBdzF3RzFXTHVML1A3TGxJekVWa2ZJUFc0SW1zRXhsSG5FUG0ySld1RUNMQ1pRL25NODdhQXVXekROektCYW51LzZhdXhnSDB2Wnc5YWowTmxNNFFRS0JnUURPM3Y0YlN4bWluZGJpVEdSaXdFVXVyODh4TVA3M2U5RSt2SHlzb3JZMWZycFpkdXJHOVlFb09MUFN1YnQ5WkhZNFhGOFhxRWZ4bE94d294eDVzcU9PcGNMTnFnOWhTSWxPaXEyYmVnN2V2RGpOMml6b3JKRFl3VEhGQ0Era25FbmFpL0J2TU16N3AyVVkrUEEzUnJ4Z25BK3RkQlErZWlSZ1c0WmhnMkhWcndLQmdRRDZlVEpwRTRxZVFYdmpnMy9FS081UkllRklZOHphTGMvMVVHODBqNmVvbStNK3UyTmdUVDJqVmNyMkdQbjZTbHRNRlJNem5qOVJHYmQ1MCt5a2k0Y1NYU1JPdE44alV2M0FseHJtZzEwVTVtSWIrUXFIZ3g2QldyeXkvakxHYXVvMUJnVFg1dDZ0VXVEUUZuVDJSM2xoNGRNZ044T3V4VlR3OCtadGloSllJUUtCZ1FERE00ZHpHWnBHNThrc0lBbFpaVFBpcWVKSCtJT2Q0eWUrbXZ6SnFYOWxXdjljQytuZGN5czhXTVRWd293MzllUFhxdEhQOE9weCtxUmdaSWtxREhabzArRE5UL3JUUVM3Ty9leHpHT21QSXV3MjBmZ3VWU2NZWUxRbHgwVjdmajN5Q3JvRk1YYzZ2dW1XZHMrMFdQckg3bnFjb1R1NCtHZjZ4R0k1QVUvLzRRS0JnUUR6TFcvdjdIVU1xTzhyT0tSM1FuWCtkekpPSWZibGJNMFdrdjBrdnNROFF2MGlEclN3N3MwRkkycGwvR0hXeXhKUWo3V1F5L2NWT2k2VUxWajNlQyt2ZUphamc1K1FvQ2FWTVIrQTVkRWRWWCt6UU5za0xmMFVBWkJyQjdrc1F1a1lpYnR5RWtmblp5dTFXOWc2czdINWdsS0VXUiszTXdjQTJRdkRGZVl4Z1FLQmdDWVdlKzQ4bVVaUEl5ZnR4NVFaQllnYTE2blpndzYxZmxtdEdpQlVGWGVMR3BTaU1XNXc5R3RYVDZPbFh1Zy91TkNKbHR4TDE4c0NEeDNVaU9DNWFTMEN4OTc5TlFrSm1YRWw1UDNtMFNGaVU4VlZ0SFp1dHd3SWFKTFZockZ1T3NJV1BtRFN4aHhMaFpPNmJ5aWRwbHlXLzl1eGpwMlZrQ0Y3OGd5QXRRSWsKLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
- createdAt:
- type: string
- format: date-time
- description: Time the Signing key was generated, defined as a localDateTime (UTC Time).
- example: "2024-01-11T10:00:06.618993Z"
- GetAllSigningKeysResponseDto:
- type: object
- description: Displays the result of the request.
- properties:
- id:
- type: string
- format: uuid
- description: A unique identifier is generated by FastPix for the signing keys.
- example: "84474705-92d5-4fa9-8cb8-e4a0ddb0598a"
- createdAt:
- type: string
- format: date-time
- description: Time the Signing key was generated, defined as a localDateTime (UTC Time).
- example: "2025-10-27T05:22:54.782954Z"
- getPublicPemUsingSigningKeyIdResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- example: true
- data:
- type: object
- description: Displays the result of the request.
- properties:
- workspaceId:
- type: string
- format: uuid
- description: FastPix generates a unique identifier for each workspace.
- example: fc9d9368-6ee5-4b16-ae50-880ab374bdc6
- signingKeyId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- publicKey:
- type: string
- description: A public key is a byte encoded key used to create a signed JSON Web Token (JWT) for authentication.
- example: |
- -----BEGIN PUBLIC KEY-----
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvfUkdkrPIZGOAwMwrkQ9Jr6uNEsVQCgax8xHMSf4Ib3IwlE90M/wLJZGmSWcaAWzH4nSE5qh/fF4E4xHY0hYMS78Ve9GSV8mtLfzjcZ0agfmFO0B0/YVaXNKDGc3CUWAOoONZEMCA3wqLNSZ3yQhr/IZ4xVqBR0GLSYtFt2VNNAmgfAQkVLcZy+3V1ZaC49EgK4AoR51iwwv9DzRjZ/3rM8MSS9lEy0WQGXP/x+0k8hQvq482r/G32TSG00ZSKQDpRFieaFh6YRxMd/R0bhVAvTTO8STQa/M4PZGoBFqkPTpCw5uShtpe+Hm85vlHk/2qYx5NqIe4l+c/yo4w/ny/QIDAQAB
- -----END PUBLIC KEY-----
- example:
- success: true
- data:
- workspaceId: fc9d9368-6ee5-4b16-ae50-880ab374bdc6
- signingKeyId: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- publicKey: |
- -----BEGIN PUBLIC KEY-----
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvfUkdkrPIZGOAwMwrkQ9Jr6uNEsVQCgax8xHMSf4Ib3IwlE90M/wLJZGmSWcaAWzH4nSE5qh/fF4E4xHY0hYMS78Ve9GSV8mtLfzjcZ0agfmFO0B0/YVaXNKDGc3CUWAOoONZEMCA3wqLNSZ3yQhr/IZ4xVqBR0GLSYtFt2VNNAmgfAQkVLcZy+3V1ZaC49EgK4AoR51iwwv9DzRjZ/3rM8MSS9lEy0WQGXP/x+0k8hQvq482r/G32TSG00ZSKQDpRFieaFh6YRxMd/R0bhVAvTTO8STQa/M4PZGoBFqkPTpCw5uShtpe+Hm85vlHk/2qYx5NqIe4l+c/yo4w/ny/QIDAQAB
- -----END PUBLIC KEY-----
- TimeSpan:
- type: array
- description: |
- The timespan from and to details displayed in the form of unix epoch timestamps.
- items:
- type: integer
- example:
- availableValue:
- - 1610025789
- - 1610025947
- ViewsList:
- type: object
- properties:
- viewId:
- type: string
- description: |
- The unique identifier for the viewing session of the user.
- example: 550e8400-e29b-41d4-a716-446655440000
- operatingSystem:
- type: string
- nullable: true
- description: |
- Operating System signifies the software platform utilized by the viewer
- example: macOs
- application:
- type: string
- nullable: true
- description: |
- The browser name of the viewer.
- example: chrome
- viewStartTime:
- type: string
- nullable: true
- description: |
- The start timestamp of the video view.
- example: "2023-12-06T08:04:14Z"
- viewEndTime:
- type: string
- nullable: true
- description: |
- The end timestamp of the video view.
- example: "2023-12-06T08:11:55Z"
- videoTitle:
- type: string
- nullable: true
- description: |
- The title of the Video.
- example: Club 69
- errorCode:
- type: string
- nullable: true
- description: |
- The code which represents specific issues or failures that occur during playback. These can be implementation specific.
- example: 1001
- errorMessage:
- type: string
- nullable: true
- description: |
- The notifications or messages that inform users or developers about issues or failures that have occurred during the playback representing error codes.
- example: An unexpected error occurred. Please try again later or contact support for assistance.
- errorId:
- type: string
- nullable: true
- description: |
- The unique identifier for the error that occurred during playback.
- example: 9pa85f64-5717-4562-b3fc-2c963f66afa6
- country:
- type: string
- nullable: true
- description: |
- Country of the viewer.
- example: USA
- viewWatchTime:
- type: number
- nullable: true
- description: |
- The watch time represents the time spent watching the video including staruptime, playback time ,buffering time.
- example: 0.5
- QoeScore:
- type: number
- nullable: true
- description: |
- The viewer experience encapsulated in the form of score while watching the video.
- example: 0.55
- Views:
- description: Displays the result of the request.
- type: object
- properties:
- asnId:
- type: integer
- nullable: true
- description: |
- The unique identifier assigned to an Autonomous System (AS) on the Internet. The ASN is used to identify and exchange routing information between different networks.
- format: long
- example: 55836
- asnName:
- type: string
- nullable: true
- description: |
- The Name associated with the asnId.
- example: RELIANCEJIO-IN Reliance Jio Infocomm Limited
- averageBitrate:
- description: |
- Average Bitrate represents the average bitrate of the video content watched by the viewer, expressed in bits per second (bps). This metric provides insight into the quality of the video stream.
- type: number
- nullable: true
- format: double
- example: 1512855.0
- avgDownscaling:
- description: |
- Average Downscaling refers to the average reduction in video resolution or quality during the playback of video content.
- type: number
- nullable: true
- format: double
- example: 0.045843694
- avgRequestLatency:
- description: |
- Average Request Latency average time it takes for a request to be made and processed during video playback
- type: number
- nullable: true
- format: double
- example: 473
- avgRequestThroughput:
- description: |
- Average Request Throughput refers to the average throughput or data transfer rate of HTTP requests made during video playback
- type: number
- nullable: true
- format: double
- example: 3339357.5
- avgUpscaling:
- description: |
- Average Upscaling refers to the average resolution of the video source is lower than the resolution of the playback device or screen.
- type: number
- nullable: true
- format: double
- example: 0.087843694
- beaconDomain:
- description: |
- Beacon Domain specifies the domain endpoint used by the player or SDK to send analytics or tracking beacons for playback events.
- type: string
- format: string
- example: "metrix.ws"
- browserEngine:
- description: |
- Browser Engine denotes the rendering engine used by the browser (e.g., Blink, Gecko, WebKit).
- type: string
- nullable: true
- example: null
- browserName:
- description: |
- Browser Name denotes the software application utilized by the viewer to access and watch the video content
- type: string
- nullable: true
- example: Chrome
- browserVersion:
- description: |
- Browser Version signifies the specific version of the browser software employed by the viewer
- type: string
- nullable: true
- example: Chrome 5.8.3
- bufferCount:
- type: integer
- nullable: true
- description: |
- Buffer Count represents the number of rebuffering events occurring during the video view.
- example: 1
- bufferFill:
- type: integer
- nullable: true
- format: long
- description: |
- Buffer Fill indicates the total time, in milliseconds, that viewers wait for rebuffering per video view.
- example: 4567
- bufferFrequency:
- description: |
- Buffer Frequency measures the rate at which rebuffering events occur, expressed as events per millisecond.
- type: number
- nullable: true
- format: double
- example: 0.012878
- bufferRatio:
- description: |
- Buffer Ratio refers to the percentage of time during video playback where the viewer experiences buffering or rebuffering events.
- type: number
- nullable: true
- format: double
- example: 0.018711979
- cdn:
- description: |
- Content Delivery Network (CDN) refers to the network infrastructure responsible for delivering the video content to the viewer.
- type: string
- nullable: true
- example: cloudflare
- city:
- description: |
- City indicates the geographical location of the viewer accessing the video content.
- type: string
- nullable: true
- example: California
- connectionType:
- description: |
- Connection Type signifies the type of network connection utilized by the viewers device
- type: string
- nullable: true
- example: wifi
- continent:
- description: |
- Continent represents the continent name of the viewer accessing the video content.
- type: string
- nullable: true
- example: North America
- country:
- description: |
- Country represents the coded text that represents the country name of viewer accessing the video content.
- type: string
- nullable: true
- example: United States Of America
- countryCode:
- description: |
- Country Code denotes the two-letter ISO code representing the country of origin for the viewer accessing the video content.
- type: string
- nullable: true
- example: US
- # custom1-10:
- custom:
- type: object
- description: |
- User defined metadata. Only accessible once it is enabled in the organization settings.
- properties:
- Custom:
- type: array
- nullable: true
- description: A list of custom dimension objects.
- items:
- type: object
- properties:
- dimensionName:
- type: string
- description: |
- Unique identifier for a custom dimension used to categorize or segment analytics data (for example, custom_1).
- example: custom_1
- displayName:
- type: string
- description: |
- A user-friendly display label that represents the corresponding custom dimension in analytics dashboards and reports; users can assign a specific name based on their tracking needs.
- example: email
- value:
- type: string
- description: |
- Allows assigning user-friendly data values such as email addresses, identifiers, or other meaningful information.
- example: johndoe@gmail.com
- # type: array
- # items:
- # properties:
- # dimensionName:
- # description: |
- # Unique identifier for a custom dimension used to categorize or segment analytics data (for example, custom_1).
- # type: string
- # example: custom_1
- # displayName:
- # description: |
- # A user-friendly display label that represents the corresponding custom dimension in analytics dashboards and reports; users can assign a specific name based on their tracking needs.
- # type: string
- # example: email
- # value:
- # description: |
- # Allows assigning user-friendly data values such as email addresses, identifiers, or other meaningful information.
- # type: string
- # example: johndoe@gmail.com
-
- deviceManufacturer:
- description: |
- Device Manufacturer indicates the brand or manufacturer of the device used by the viewer.
- type: string
- nullable: true
- example: Apple
- deviceModel:
- description: |
- Device Model represents the specific model of the device used by the viewer.
- type: string
- nullable: true
- example: Macintosh
- deviceName:
- description: |
- Device Name refers to the name or label assigned to the device used by the viewer.
- type: string
- nullable: true
- example: Apple
- deviceType:
- description: |
- Device Type denotes the classification of the device used by the viewer
- type: string
- nullable: true
- example: Desktop
- drmType:
- description: |
- DRM Type indicates the type of Digital Rights Management (DRM) utilized during video playback
- type: string
- nullable: true
- example: wideivne
- droppedFrameCount:
- description: |
- Dropped Frame Count represents the number of frames dropped by the video player during playback.
- type: integer
- format: long
- nullable: true
- example: 7
- errorCode:
- description: |
- Error Code is an identifier representing a specific type of error that occurred during video playback, potentially leading to playback failure.
- type: string
- nullable: true
- example: 1002
- errorContext: #NANA
- description: |
- Specifies the component or stage where the playback error originated, such as streaming, cdn, decoder, or player. This context helps diagnose whether the failure was caused by delivery issues, playback logic, or media decoding problems within the FastPix streaming pipeline.
- type: string
- nullable: true
- example: player
- errorId:
- type: integer
- nullable: true
- format: long
- description: |
- The unique identifier which identifies each type of error that occurs.
- example: 3456
- errorMessage:
- description: |
- Error Message is a descriptive message generated by the video player when an error occurs during playback, associated with an error code.
- type: string
- nullable: true
- example: TIMEOUT
- exitBeforeVideoStart:
- description: |
- Exit Before Video Start indicates whether a viewer abandoned the video before it started playing, typically due to long loading times.
- type: boolean
- example: true
- experimentName:
- description: |
- Experiment Name is used in A/B testing scenarios to categorize video views into different experiments.
- type: string
- nullable: true
- example: null
- fpApiVersion: #NANA
- description: |
- Specifies the version of the FastPix API used during data collection or playback reporting. This helps ensure compatibility and traceability between client SDK versions and backend processing.
- nullable: true
- type: string
- example: v2.3
- fpEmbed: #NANA
- description: |
- Identifies the type or source of the FastPix player embed used for playback — for example, whether the video was played through a direct player integration, an iframe, or a third-party embedded context. This helps differentiate playback environments and measure performance across embed types.
- type: boolean
- nullable: true
- example: null
- fpEmbedVersion: #NANA
- description: |
- Specifies the version of the FastPix embed script or SDK used to initialize the player. This helps track playback behavior and debug issues across different embed versions or deployment environments.
- type: string
- nullable: true
- example: null
- fpLiveStreamId:
- description: |
- FastPix Live Stream ID is the unique identifier associated with a live stream video media within the FastPix Video Platform.
- type: string
- nullable: true
- format: uuid
- example: null
- fpPlaybackId:
- description: |
- FastPix Playback ID refers to the unique identifier associated with the playback instance of a video, particularly used in FastPix Video Platform.
- type: string
- nullable: true
- format: uuid
- example: null
- fpSdk:
- description: |
- FastPix SDK Name identifies the name of the FastPix Player SDK utilized within the player workspace.
- type: string
- nullable: true
- example: shakaplayer-fastpix
- fpSdkVersion:
- description: |
- FastPix SDK Version specifies the version of the FastPix Player SDK integrated into the player.
- type: string
- nullable: true
- example: 1.1.0
- fpViewerId: #NANA
- description: |
- Represents a unique, anonymized identifier assigned to each viewer by the FastPix SDK. This ID helps correlate multiple playback sessions or events to the same viewer across sessions or devices without exposing any personal information.
- type: string
- nullable: true
- example: cf4ab502-23ef-4927-ae55-89b2a319432f
- insertTimestamp: #WillRemove
- description: |
- Insert Timestamp refers to the time instance when the view is started.
- type: string
- example: 1710591342067
- ipAddress: #NANA
- description: |
- Represents the IP address of the user or device that initiated the playback session.
- type: string
- example: 124.123.136.94
- jumpLatency:
- description: |
- Jump Latency refers to the delay or latency experienced when there is a jump or seek action performed by the viewer while watching a video.
- type: number
- nullable: true
- format: double
- example: 2396
- latitude:
- description: |
- Latitude refers to the geographical coordinate representing the north-south position of the viewers location, truncated to one decimal place.
- type: string
- nullable: true
- example: 17.384
-
- liveStreamLatency:
- description: |
- Live Stream Latency measures the average time taken from the point of ingest to the point of display for live stream video views.
- type: integer
- format: long
- nullable: true
- example: null
- longitude:
- description: |
- Longitude denotes the geographical coordinate representing the east-west position of the viewers location, truncated to one decimal place.
- type: string
- nullable: true
- example: 78.4564
- maxDownscaling:
- description: |
- Maximum Downscale Percentage represents the highest percentage of downscaling applied to the video during the view.
- type: number
- nullable: true
- format: double
- example: 0.78541666
- maxRequestLatency:
- description: |
- Max Request Latency refers to the maximum rate of data transfer (throughput) during requests made by the playback.
- type: number
- nullable: true
- format: double
- example: null
- maxUpscaling:
- description: |
- Maximum Upscale Percentage represents the highest percentage of upscaling applied to the video during the view.
- type: number
- nullable: true
- format: double
- example: 0.08175
- mediaId:
- type: string
- nullable: true
- description: |
- The media Id value if the video asset is internal to FastPix.
- format: uuid
- example: rmp7fvw5lPD01l8PZ2aN74js84XrTWxHy
- osName:
- description: |
- Operating System signifies the name of software platform utilized by the viewer.
- type: string
- nullable: true
- example: MacOS
- osVersion:
- description: |
- Operating System Version specifies the specific version of the operating system being used by the viewer
- type: string
- example: MacOS 10.15.7
- pageContext:
- description: |
- Page Context provides contextual information about the type of page being accessed.
- type: string
- nullable: true
- example: iframe
- pageLoadTime:
- description: |
- Page Load Time measures the time from when the user initiates loading the page to when all resources are loaded on the page.
- type: integer
- format: long
- nullable: true
- example: 453
- playbackScore:
- description: |
- Playback Success Score represents a numerical value indicating the success or quality of the video playback experience.
- type: number
- nullable: true
- format: double
- example: 1
- playerAutoplayOn:
- description: |
- Player Autoplay On indicates whether the video player automatically initiated playback of the video content.
- type: boolean
- example: true
-
-
- playerHeight:
- description: |
- Player Height refers to the vertical dimension, measured in pixels, of the video player as it appears on the webpage.
- oneOf:
- - type: string
- - type: integer
- nullable: true
- example: 2856
- playerInitializationTime:
- description: |
- Player Initialization Time measures the duration, in milliseconds, from the initialization of the player within the webpage to its readiness to receive further instructions.
- type: integer
- format: long
- nullable: true
- example: 24
- playerInstanceId:
- description: |
- Player Instance ID is a unique identifier that distinguishes each instance of the Player class created when initializing a video.
- type: string
- nullable: true
- format: uuid
- example: f479de20-6a25-46a5-b394-9fbdb07ea6df
- playerLanguage:
- description: |
- Player Language indicates the language used for text elements within the video player interface.
- type: string
- nullable: true
- example: null
-
- playerName:
- description: |
- Player Name serves to differentiate various configurations or types of players used across the website or application.
- type: string
- nullable: true
- example: ChanaJor Player
- playerPoster:
- description: |
- Player Poster refers to the image displayed as a preview before the video playback begins.
- type: string
- nullable: true
- example: null
- playerPreloadOn:
- description: |
- Player Preload On indicates whether the player is configured to preload the video content upon page load.
- type: boolean
- example: true
- playerRemotePlayed:
- description: |
- Player Remote Played specifies if the video is being remotely played to devices such as AirPlay or Chromecast, obtained from the SDK.
- type: boolean
- example: false
- playerResolution:
- description: |
- Player Resolution refers to the resolution of the video player window or viewport where the video content is being displayed.
- type: string
- nullable: true
- example: 811X779
- playerSoftwareName: #NANA
- description: |
- Represents the name of the video player software or framework used for playback (for example, HTML5, HLS.js, Shaka Player).
- type: string
- nullable: true
- example: "HTML5"
- playerSoftwareVersion:
- description: |
- Player Software Version indicates the version number of the player software installed.
- type: string
- nullable: true
- example: v4.3.5
- playerSourceDomain: #NANA
- description: |
- Specifies the domain or source from which the player was loaded or embedded (for example, stream.fastpix.com or a customer’s custom domain). This helps identify the playback origin and differentiate between various deployment environments.
- type: string
- nullable: true
- example: stream.fastpix.com
- playerSourceHeight:
- description: |
- Player Source Height denotes the vertical dimension, measured in pixels, of the source video content being transmitted to the player.
- type: integer
- format: long
- nullable: true
- example: 1080
- playerSourceWidth:
- description: |
- Player Source Width represents the width of the source video as perceived by the player, typically measured in pixels.
- type: integer
- format: long
- nullable: true
- example: 1920
- playerVersion:
- description: |
- Player Version indicates the version of the player used to render the video content. It is often utilized for performance comparison between different player versions.
- type: string
- nullable: true
- example: null
- playerViewCount: #NANA
- description: |
- Represents the total number of times the video player has been initialized or viewed for a specific session or video. This metric helps track playback engagement and identify view patterns across different players or sessions.
- oneOf:
- - type: string
- - type: integer
- nullable: true
- example: 0
- playerWidth:
- description: |
- Player Width refers to the width of the player displayed within the webpage, measured in pixels.
- type: integer
- format: long
- nullable: true
- example: 801
- propertyId: #NANA ####
- description: |
- Represents the unique identifier assigned to a FastPix property, which is associated with a specific workspace or project. It helps link playback and analytics data to the correct property configuration.
- oneOf:
- - type: string
- - type: integer
- format: long
- nullable: true
- example: null
- qualityOfExperienceScore:
- description: |
- Quality Of Experience Score quantifies the overall viewer experience based on various metrics, providing a decimal score to assess the quality of the viewing experience.
- type: number
- nullable: true
- format: double
- example: 0.922192410885397
- region:
- description: |
- Region denotes the geographical region of the viewer accessing the video content.
- type: string
- nullable: true
- example: Telangana
- renderQualityScore:
- description: |
- Render Quality Score is a decimal value representing the score indicating the perceived quality of the video.
- type: number
- nullable: true
- format: double
- example: 1
- sessionId:
- description: |
- Session ID refers to the unique identifier tracking a viewers session within the FastPix platform.
- type: string
- nullable: true
- format: uuid
- example: 58a97574-da3f-473f-8904-08f9f01489c8
- sign: #NANA
- description: |
- Represents a cryptographic signature used to verify the authenticity and integrity of the playback or API request within the FastPix platform. It ensures that the data has not been tampered with and originates from a trusted source.
- type: string
- nullable: true
- format: string
- example: null
- stabilityScore:
- description: |
- Stability Score quantifies the smoothness of video playback, typically represented as a decimal value.
- type: number
- nullable: true
- format: double
- example: 0.8320748
- startupScore:
- description: |
- Startup Score evaluates the startup performance of the player, usually represented as a decimal value
- type: number
- nullable: true
- format: double
- example: 0.97811466
- subPropertyId:
- description: |
- Sub Property ID denotes the unique identifier assigned to FastPix properties, previously linked with a specific workspace.
- type: string
- nullable: true
- example: null
- totalStartupTime: #NANA
- description: |
- Represents the total time (in milliseconds) taken for the video player to start playback from the moment the user initiates the session. This includes loading, buffering, and initialization delays before the first frame is rendered.
- type: integer
- format: long
- nullable: true
- example: 5285
- updatedTimestamp:
- description: |
- Updated Timestamp refers to when the record is updated to a particular Video.
- type: string
- nullable: true
- format: datetime
- example: 1710591342067
- usedFullScreen:
- description: |
- Used Fullscreen denotes whether the viewer utilized the full-screen mode while watching the video.
- type: boolean
- example: true
- userAgent:
- description: |
- User Agent represents the user agent string transmitted by the viewers device to identify itself to the server, typically including information about the device and browser.
- type: string
- nullable: true
- example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
- videoContentType:
- description: |
- Video Content Type specifies the classification of the video content.
- type: string
- nullable: true
- example: null
- videoDuration:
- description: |
- Video Duration represents the length of the video, provided in milliseconds, typically supplied to FastPix through custom metadata.
- type: integer
- format: long
- nullable: true
- example: 588
- videoEncodingVariant: #NANA
- description: |
- Indicates the specific encoding variant or rendition of the video being played, such as resolution, bitrate, or codec type. This helps identify which encoded version of the video was selected for playback.
- type: string
- nullable: true
- example: 1080p_h264
- videoId:
- description: |
- Video ID refers to an internal identifier assigned by the user or system to uniquely identify a particular video.
- type: string
- nullable: true
- format: uuid
- example: 65b65e7e20ce0aaf6d7d5596
- videoLanguage:
- description: |
- Video Language denotes the primary audio language of the video content, assuming it remains unchanged after playback initiation.
- type: string
- nullable: true
- example: null
- videoProducer:
- description: |
- Specifies the creator or source responsible for producing the video content.
- type: string
- nullable: true
- example: null
- videoResolution:
- description: |
- Video Resolution refers to the resolution of the video being played.
- type: string
- nullable: true
- example: 1080X1920
- videoSeries:
- description: |
- Video Series denotes the name of a series to which the video content belongs.
- type: string
- nullable: true
- example: Propel 23
- videoSourceDomain:
- description: |
- Video Source Domain identifies the domain from which the video source originates.
- type: string
- nullable: true
- example: ibee.ai
- videoSourceDuration:
- description: |
- Video Source Duration represents the duration of the video source content, measured in milliseconds.
- type: integer
- format: long
- nullable: true
- example: 771090
-
- videoSourceHostname:
- description: |
- Video Source Hostname represents the hostname of the video.
- type: string
- nullable: true
- example: ott-sandbox-cdn.ibee.ai
- videoSourceStreamType:
- description: |
- Video Source Stream Type denotes the type of stream used by the player, although it is currently unused.
- type: string
- nullable: true
- example: on-demand
- videoSourceType:
- description: |
- Video Source Type denotes the format of the video source as determined by the player.
- type: string
- nullable: true
- example: application/dash+xml
- videoSourceUrl:
- description: |
- Video Source URL refers to the URL of the video source accessed by the player.
- type: string
- nullable: true
- example: https://ott-sandbox-cdn.ibee.ai/videos/650801bd148907a509076b99/650801bd148907a509076b99_h264.mpd
- videoStartupFailed:
- description: |
- Video Startup Failure is a boolean metric indicating whether a viewer encountered an error before the first frame of the video commenced playback.
- type: boolean
- example: false
- videoStartupTime:
- description: |
- Video Startup Time measures the duration, in milliseconds, from the initialization of the player within the webpage to its readiness to receive further instructions.
- type: integer
- format: long
- nullable: true
- example: 209
- videoTitle:
- description: |
- Video Title refers to the title of the video content being viewed.
- type: string
- nullable: true
- example: Cycle
- videoVariantId: #NANA
- description: |
- Represents the unique identifier for the specific video variant or rendition being played. Each variant corresponds to a particular encoding configuration, such as resolution or bitrate, used for adaptive streaming and performance tracking.
- type: string
- nullable: true
- example: null
- videoVariantName: #NANA
- description: |
- Specifies the human-readable name of the video variant or rendition being played (for example, “1080p H.264” or “720p AV1”). This helps identify the playback quality or encoding configuration selected during streaming.
- type: string
- nullable: true
- example: null
- viewEnd:
- description: |
- View End refers to the date and time, in Coordinated Universal Time (UTC), when the video viewing session concluded.
- type: string
- nullable: true
- example: 1710591342067
- viewHasAd:
- description: |
- View Has Ad is a boolean metric indicating whether an advertisement played or attempted to play during the video view.
- type: boolean
- example: false
- viewHasError: #NANA
- description: |
- Indicates whether any playback error occurred during the video view. This boolean flag helps identify failed or interrupted playback sessions caused by player, network, or media-related issues.
- type: boolean
- example: false
- viewId:
- description: |
- View ID is a unique identifier assigned to each individual video viewing session.
- type: string
- format: uuid
- example: 36935287-5d08-47a0-9365-5eaa150fc4fa
-
- viewMaxPlayheadPosition:
- description: |
- View Max Playhead Position represents the furthest point reached by the playhead during the video view, measured in milliseconds.
- type: integer
- format: long
- nullable: true
- example: 2524
- viewPageUrl:
- description: |
- View Page URL denotes the URL address of the web page where the video content is being accessed.
- type: string
- nullable: true
- example: https://chanajor.com/player/659d7de2500fe544eb2706da_1_1?time=66
- viewPlayingTime:
- description: |
- Playing Time denotes the total duration of time the video content was actively playing during the view, excluding time spent buffering, seeking, or joining.
- type: integer
- format: long
- nullable: true
- example: 523657
- viewSeekedCount:
- description: |
- View Seeked Count signifies the number of times the viewer attempted to seek to a new location within the video.
- type: integer
- nullable: true
- example: 1
- viewSeekedDuration:
- description: |
- View Seeked Duration indicates the total duration of time spent waiting for playback to resume after the viewer seeks to a new location. Seek Latency metric in the Dashboard is derived by dividing this value by the view_seek_count.
- type: integer
- format: long
- nullable: true
- example: 809
- viewSessionId: #NANA
- description: |
- Represents the unique identifier assigned to a single playback session within FastPix. This ID is used to correlate all playback events, errors, and metrics that occur during the same viewing session.
- type: string
- format: uuid
- nullable: true
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- viewStart:
- description: |
- View Start refers to the date and time, in Coordinated Universal Time (UTC), when the video viewing session commenced.
- type: string
- nullable: true
- example: 1710591342067
- viewTotalContentPlaybackTime:
- description: |
- View Total Content Playback Time represents the cumulative duration of video content watched by the viewer, measured in milliseconds. This metric is internally utilized to calculate upscale and downscale percentages.
- type: integer
- nullable: true
- format: long
- example: 22358
- viewerId:
- description: |
- Viewer ID refers to a customer-defined identifier representing the viewer who is watching the video stream. It must be anonymized and not contain any personally identifiable information.
- type: string
- nullable: true
- format: uuid
- example: 649c5098ba7cb499f5e1041f
- watchTime:
- description: |
- Total Watch Time denotes the total duration of video content watched by the viewer, encompassing startup time, playing time, and potential rebuffering time, measured in milliseconds.
- type: integer
- nullable: true
- format: long
- example: 4307
- workspaceId:
- description: |
- It is a unique identifier associated with a specific workspace within the FastPix platform.
- type: string
- format: uuid
- example: c08f55f8-92e1-4e17-9475-bc9024a07f78
- events:
- description: |
- Events specifies the order of events journey of the video playback
- type: array
- items:
- type: object
- properties:
- pt:
- description: |
- The player_playhead_time represents the current position of the playhead (the point in the video that is being watched) on the video seekbar, measured in milliseconds. This value indicates how far into the video playback has progressed at any given moment.
- type: integer
- format: long
- nullable: true
- e:
- description: |
- Name of the event.
- type: string
- nullable: true
- d:
- type: object
- additionalProperties: true
-
- vt:
- description: |
- The unix epoch timestamp which represents the actual time the event has occurred.
- oneOf:
- - type: string
- - type: integer
- format: long
- nullable: true
-# event_time:
-# description: |
-# The unix epoch timestamp when the event was captured.
-# oneOf:
-# - type: string
-# - type: integer
-# format: long
-# nullable: true
- example:
- availableValue:
- - e: playing
- vt: 1710591347846
- pt: 8990
- - e: variantChanged
- vt: 1710592342067
- pt: 8990
- d:
- br: 7837883
- cd: avc1.4d4028
- h: 1920
- w: 1080
- ViewsByTopContentDetails:
- description: Retrieves a list of the top video views
- type: object
- properties:
- videoTitle:
- description: Title of the video
- type: string
- example: example video title
- views:
- description: Total count of view sessions for a particular video content.
- type: integer
- example: 44
- uniqueViews:
- description: Total count of unique video viewers for particular video content.
- type: integer
- example: 40
- TopErrorDetails:
- description: Retrieves a list of errors that have occurred most frequently in the system, ranked by their count of occurrences.
- type: array
- items:
- type: object
- properties:
- percentage:
- description: views affected by the specific errors.
- oneOf:
- - type: integer
- format: integer
- - type: number
- format: double
- nullable: true
- example: 0.0222222222222222
- uniqueViewersEffectedPercentage:
- description: percentage of unique viewers affected by the specific error.
- oneOf:
- - type: integer
- format: integer
- - type: number
- format: double
- nullable: true
- example: 0.0122222222222222
- notes:
- description: Information about the specific error.
- type: string
- nullable: true
- example: An informative note
- message:
- description: error message or description.
- type: string
- nullable: true
- example: "com.fastpix.stats.sdk.h71.a - android.media.mediadrm$mediadrmstateexception: failed to handle key response: drm vendor-defined error: -2998"
- lastSeen:
- description: The timestamp of when the error was last observed.
- type: string
- nullable: true
- format: string
- example: "2023-12-01T11:31:07.000Z"
- count:
- description: Number of occurrences of the specific error.
- type: integer
- nullable: true
- example: 4
- code:
- description: Error code associated with the specific error.
- type: string
- nullable: true
- example: 1003
- ErrorDetails:
- description: The endpoint retrieves a comprehensive list of errors that have occurred by providing detailed information about each error instance.
- type: array
- items:
- type: object
- properties:
- percentage:
- description: views affected by the specific errors.
- oneOf:
- - type: integer
- format: integer
- - type: number
- format: double
- nullable: true
- example: 0.0222222222222222
- notes:
- description: Information about the specific error.
- type: string
- nullable: true
- example: An informative note
- message:
- description: error message or description.
- type: string
- nullable: true
- example: "com.fastpix.stats.sdk.h71.a - android.media.mediadrm$mediadrmstateexception: failed to handle key response: drm vendor-defined error: -2998"
- lastSeen:
- description: The timestamp of when the error was last observed.
- type: string
- nullable: true
- format: string
- example: "2023-12-01T11:31:07.000Z"
- id:
- description: Unique identifier for the error instance.
- type: string
- nullable: true
- example: "5f8d0d55b54764421b7156c5"
- description:
- description: A brief description of the error.
- type: string
- nullable: true
- example: "ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT"
- count:
- description: Number of occurrences of the specific error.
- type: integer
- nullable: true
- example: 4
- code:
- description: Error code associated with the specific error.
- type: string
- nullable: true
- example: 1003
- MetricsComparisonDetails:
- description: Compare multiple metrics across specified dimensions.
- type: object
- properties:
- value:
- description: The specific metric value calculated based on the applied filters.
- type: number
- format: double
- example: 23
- type:
- type: string
- example: score
- description: value can be score that ranges from 0 to 100
- name:
- type: string
- example: Startup Score
- description: value can be score that ranges from 0 to 100
- metric:
- description: |
- The metric field represents the name of the Key Performance Indicator (KPI) being tracked or analyzed. It identifies a specific measurable aspect of the video playback experience, such as buffering time, video start failure rate, or playback quality.
- type: string
- example: startup_score
- measurement:
- type: string
- nullable: true
- example: count
- description: value can be avg, sum, count or 95th
- items:
- type: array
- nullable: true
- description: Nested comparison items
- items:
- $ref: "#/components/schemas/MetricsComparisonDetails"
- MetricsTimeseriesmetadataDetails:
- description: Retrieves breakdown values for a specified metric and timespan
- type: object
- properties:
- granularity:
- description: the unit for aggregating the timeseries data.
- type: string
- example: day
- aggregation:
- description: defines the field or dimension on which the aggregation is to be applied.
- type: string
- example: viewEnd
- MetricsmetadataDetails:
- description: Retrieves breakdown values for a specified metric and timespan
- type: object
- properties:
- aggregation:
- description: defines the field or dimension on which the aggregation is to be applied.
- type: string
- example: viewEnd
- MetricsTimeseriesDataDetails:
- description: The metrics value at specific time intervals.
- type: object
- properties:
- intervalTime:
- description: The timestamp for the data point indicating when the metric value was recorded.
- type: string
- format: date-time
- example: "2023-12-04T14:00:00.000Z"
- metricValue:
- type: number
- format: double
- nullable: true
- description: The value of the specified metric at the given interval.
- example: 0.793110142151515
- numberOfViews:
- description: The total number of views recorded during that interval.
- type: integer
- nullable: true
- format: long
- example: 143244
- MetricsOverallDataDetails:
- description: Retrieves overall values for a specified metric
- type: object
- properties:
- value:
- type: number
- format: double
- nullable: true
- description: metric value calculated based on the applied filters.
- example: 0.740365072855583
- totalWatchTime:
- description: Total time watched across all views, represented in milliseconds.
- type: integer
- nullable: true
- format: long
- example: 59534302
- uniqueViews:
- description: The count of unique viewers who interacted with the content.
- type: integer
- nullable: true
- format: long
- example: 44
- totalViews:
- description: The total number of views recorded.
- type: integer
- nullable: true
- format: long
- example: 195
- totalPlayTime:
- description: Total time spent playing the video, represented in milliseconds.
- type: integer
- nullable: true
- format: long
- example: 24729470
- globalValue:
- type: number
- format: double
- nullable: true
- description: A global metric value that reflects the overall performance of the specified metric across the entire dataset for the given timespan.
- example: 0.740365072855583
- MetricsOverallmetadataDetails:
- description: metadata that has to be paased for metric calculations.
- type: object
- properties:
- aggregation:
- description: defines the field or dimension on which the aggregation is to be applied.
- type: string
- example: viewEnd
- MetricsBreakdownDetails:
- description: Retrieves breakdown values for a specified metric and timespan
- type: array
- items:
- type: object
- properties:
- views:
- description: Total count of view sessions for a paricular video content.
- type: integer
- nullable: true
- format: long
- example: 17
- value:
- type: number
- format: double
- nullable: true
- description: The specific metric value calculated based on the applied filters.
- example: 0.868748761512138
- totalWatchTime:
- description: Total time watched across all views, represented in milliseconds.
- type: integer
- nullable: true
- format: long
- example: 218599
- totalPlayingTime:
- description: Total time spent playing the video, represented in milliseconds.
- type: integer
- nullable: true
- format: long
- example: 218599
- field:
- description: the value of dimension or filter value on which the aggregation is to be applied.
- type: string
- nullable: true
- example: Chrome
- Dimensiondetails:
- type: array
- description: filter values associated with a specific dimension
- items:
- $ref: "#/components/schemas/BrowserNameDimensiondetails"
- BrowserNameDimensiondetails:
- type: object
- properties:
- value:
- description: The specific metric value calculated based on the applied filters.
- type: string
- example: Chrome
- uniqueCount:
- description: The count of unique viewers who interacted with the content.
- type: integer
- example: 20
- count:
- description: The count of viewers.
- type: integer
- example: 44
- Dimensions:
- type: array
- description: The endpoint retrieves a comprehensive list of dimensions
- items:
- type: string
- example:
- - browser_name
- - browser_version
- - os_name
- - os_version
- - device_name
- - device_model
- - device_type
- - device_manufacturer
- - player_remote_played
- - player_name
- - player_version
- - player_software_name
- - player_software_version
- - player_resolution
- - fp_sdk
- - fp_sdk_version
- - player_autoplay_on
- - player_preload_on
- - video_title
- - video_id
- - video_series
- - fp_playback_id
- - fp_live_stream_id
- - media_id
- - video_source_stream_type
- - video_source_type
- - video_encoding_variant
- - experiment_name
- - sub_property_id
- - drm_type
- - asn_name
- - cdn
- - video_source_hostname
- - connection_type
- - view_session_id
- - continent
- - country
- - region
- - viewer_id
- - error_code
- - exit_before_video_start
- - view_has_ad
- - video_startup_failed
- - video_content_type
- - page_context
- - playback_failed
- - custom_1
- - custom_2
- - custom_3
- - custom_4
- - custom_5
- - custom_6
- - custom_7
- - custom_8
- - custom_9
- - custom_10
-
- DataPagination:
- description: Pagination organizes content into pages for better readability and navigation.
- type: object
- properties:
- totalRecords:
- type: integer
- description: |
- The total number of records retrieved within the timespan.
- example: 2
- currentOffset:
- type: integer
- description: |
- The current offset value.
-
- Default: 1
- example: 1
- offsetCount:
- type: integer
- description: |
- The total number of offsets based on limit.
- example: 1
diff --git a/fastpix_python/in_video_ai_features.py b/fastpix_python/in_video_ai_features.py
index e2de7a4..77bfef2 100644
--- a/fastpix_python/in_video_ai_features.py
+++ b/fastpix_python/in_video_ai_features.py
@@ -59,7 +59,7 @@ def update_media_summary(
3. Include the `summaryLength` parameter, specify the desired length of the summary in words (e.g., 120 words), this determines how concise or detailed the summary will be. If no specific summary length is provided, the default length will be 100 words.
4. The response will include the updated media data and confirmation of the changes applied.
- You can use the video.mediaAI.summary.ready webhook event to track and notify about the summary generation.
+ You can use the video.mediaAI.summary.ready webhook event to track and notify about the summary generation.
@@ -67,7 +67,7 @@ def update_media_summary(
**Use case**: This is particularly useful when a user uploads a video and later chooses to generate a summary without needing to re-upload the video.
- Related guide: Video summary
+ Related guide: Video summary
:param media_id: The unique identifier assigned to the media when created. The value should be a valid UUID.
@@ -179,7 +179,7 @@ async def update_media_summary_async(
3. Include the `summaryLength` parameter, specify the desired length of the summary in words (e.g., 120 words), this determines how concise or detailed the summary will be. If no specific summary length is provided, the default length will be 100 words.
4. The response will include the updated media data and confirmation of the changes applied.
- You can use the video.mediaAI.summary.ready webhook event to track and notify about the summary generation.
+ You can use the video.mediaAI.summary.ready webhook event to track and notify about the summary generation.
@@ -187,7 +187,7 @@ async def update_media_summary_async(
**Use case**: This is particularly useful when a user uploads a video and later chooses to generate a summary without needing to re-upload the video.
- Related guide: Video summary
+ Related guide: Video summary
:param media_id: The unique identifier assigned to the media when created. The value should be a valid UUID.
@@ -297,11 +297,11 @@ def update_media_chapters(
2. Include the `chapters` parameter in the request body to enable.
3. The response will contain the updated media data, confirming the changes made.
- You can use the video.mediaAI.chapters.ready webhook event to track and notify about the chapters generation.
+ You can use the video.mediaAI.chapters.ready webhook event to track and notify about the chapters generation.
**Use case:** This is particularly useful when a user uploads a video and later decides to enable chapters without re-uploading the entire video.
- Related guide: Video chapters
+ Related guide: Video chapters
:param media_id: The unique identifier assigned to the media when created. The value should be a valid UUID.
@@ -409,11 +409,11 @@ async def update_media_chapters_async(
2. Include the `chapters` parameter in the request body to enable.
3. The response will contain the updated media data, confirming the changes made.
- You can use the video.mediaAI.chapters.ready webhook event to track and notify about the chapters generation.
+ You can use the video.mediaAI.chapters.ready webhook event to track and notify about the chapters generation.
**Use case:** This is particularly useful when a user uploads a video and later decides to enable chapters without re-uploading the entire video.
- Related guide: Video chapters
+ Related guide: Video chapters
:param media_id: The unique identifier assigned to the media when created. The value should be a valid UUID.
@@ -526,11 +526,11 @@ def update_media_named_entities(
2. Include the `namedEntities` parameter in the request body to enable.
3. Receive a response containing the updated media data, confirming the changes made.
- You can use the video.mediaAI.named-entities.ready webhook event to track and notify about the named entities extraction.
+ You can use the video.mediaAI.named-entities.ready webhook event to track and notify about the named entities extraction.
**Use case:** If a user uploads a video and later decides to enable named entity extraction without re-uploading the entire video.
- Related guide: Named entities
+ Related guide: Named entities
:param media_id: The unique identifier assigned to the media when created. The value should be a valid UUID.
@@ -645,11 +645,11 @@ async def update_media_named_entities_async(
2. Include the `namedEntities` parameter in the request body to enable.
3. Receive a response containing the updated media data, confirming the changes made.
- You can use the video.mediaAI.named-entities.ready webhook event to track and notify about the named entities extraction.
+ You can use the video.mediaAI.named-entities.ready webhook event to track and notify about the named entities extraction.
**Use case:** If a user uploads a video and later decides to enable named entity extraction without re-uploading the entire video.
- Related guide: Named entities
+ Related guide: Named entities
:param media_id: The unique identifier assigned to the media when created. The value should be a valid UUID.
@@ -764,11 +764,11 @@ def update_media_moderation(
2. Include the `moderation` object and provide the requried `type` parameter in the request body to specify the media type (e.g., video/audio/av).
4. The response will contain the updated media data, confirming the changes made.
- You can use the video.mediaAI.moderation.ready webhook event to track and notify about the detected moderation results.
+ You can use the video.mediaAI.moderation.ready webhook event to track and notify about the detected moderation results.
**Use case:** This is particularly useful when a user uploads a video and later decides to enable moderation detection without the need to re-upload it.
- Related guide: Moderate NSFW & Profanity
+ Related guide: Moderate NSFW & Profanity
:param media_id: The unique identifier assigned to the media when created. The value should be a valid UUID.
@@ -885,11 +885,11 @@ async def update_media_moderation_async(
2. Include the `moderation` object and provide the requried `type` parameter in the request body to specify the media type (e.g., video/audio/av).
4. The response will contain the updated media data, confirming the changes made.
- You can use the video.mediaAI.moderation.ready webhook event to track and notify about the detected moderation results.
+ You can use the video.mediaAI.moderation.ready webhook event to track and notify about the detected moderation results.
**Use case:** This is particularly useful when a user uploads a video and later decides to enable moderation detection without the need to re-upload it.
- Related guide: Moderate NSFW & Profanity
+ Related guide: Moderate NSFW & Profanity
:param media_id: The unique identifier assigned to the media when created. The value should be a valid UUID.
diff --git a/fastpix_python/input_video.py b/fastpix_python/input_video.py
index a907e54..7b94559 100644
--- a/fastpix_python/input_video.py
+++ b/fastpix_python/input_video.py
@@ -105,10 +105,10 @@ def create_media(
4. Use the id in subsequent API calls, such as checking the status of the media with the Get Media by ID endpoint to determine when the media is ready for playback.
- FastPix uses webhooks to tell your application about things that happen in the background, outside of the API regular request flow. For instance, once the media file is created (but not yet processed or encoded), we'll shoot a `POST` message to the address you give us with the webhook event video.media.created.
+ FastPix uses webhooks to tell your application about things that happen in the background, outside of the API regular request flow. For instance, once the media file is created (but not yet processed or encoded), we'll shoot a `POST` message to the address you give us with the webhook event video.media.created.
- Once processing is done you can look for the events video.media.ready and video.media.failed to see the status of your new media file.
+ Once processing is done you can look for the events video.media.ready and video.media.failed to see the status of your new media file.
Related guide: Upload videos from URL
@@ -295,10 +295,10 @@ async def create_media_async(
4. Use the id in subsequent API calls, such as checking the status of the media with the Get Media by ID endpoint to determine when the media is ready for playback.
- FastPix uses webhooks to tell your application about things that happen in the background, outside of the API regular request flow. For instance, once the media file is created (but not yet processed or encoded), we'll shoot a `POST` message to the address you give us with the webhook event video.media.created.
+ FastPix uses webhooks to tell your application about things that happen in the background, outside of the API regular request flow. For instance, once the media file is created (but not yet processed or encoded), we'll shoot a `POST` message to the address you give us with the webhook event video.media.created.
- Once processing is done you can look for the events video.media.ready and video.media.failed to see the status of your new media file.
+ Once processing is done you can look for the events video.media.ready and video.media.failed to see the status of your new media file.
Related guide: Upload videos from URL
diff --git a/fastpix_python/manage_videos.py b/fastpix_python/manage_videos.py
index 38cc9bd..bcb7205 100644
--- a/fastpix_python/manage_videos.py
+++ b/fastpix_python/manage_videos.py
@@ -266,7 +266,7 @@ def list_live_clips(
#### How it works
To use this endpoint, provide the `livestreamId` as a parameter. The API then returns a paginated list of clipped media items created from that livestream. Pagination ensures optimal performance and usability when dealing with a large number of media files, making it easier to organize and manage content in bulk.
- Related guide: Instant live clipping
+ Related guide: Instant live clipping
:param livestream_id: The stream Id is unique identifier assigned to the live stream.
@@ -367,7 +367,7 @@ async def list_live_clips_async(
#### How it works
To use this endpoint, provide the `livestreamId` as a parameter. The API then returns a paginated list of clipped media items created from that livestream. Pagination ensures optimal performance and usability when dealing with a large number of media files, making it easier to organize and manage content in bulk.
- Related guide: Instant live clipping
+ Related guide: Instant live clipping
:param livestream_id: The stream Id is unique identifier assigned to the live stream.
@@ -691,7 +691,7 @@ def updated_media(
3. Receive a response containing the updated media data, confirming the changes made.
- Once you have made the update request, you can also look for the webhook event video.media.updated to notify your system about update status.
+ Once you have made the update request, you can also look for the webhook event video.media.updated to notify your system about update status.
#### Example
Imagine a scenario where a user uploads a video and later realizes they need to change the title, add a new description or tags. You can use this endpoint to update the media metadata without having to re-upload the entire video.
@@ -806,7 +806,7 @@ async def updated_media_async(
3. Receive a response containing the updated media data, confirming the changes made.
- Once you have made the update request, you can also look for the webhook event video.media.updated to notify your system about update status.
+ Once you have made the update request, you can also look for the webhook event video.media.updated to notify your system about update status.
#### Example
Imagine a scenario where a user uploads a video and later realizes they need to change the title, add a new description or tags. You can use this endpoint to update the media metadata without having to re-upload the entire video.
@@ -919,7 +919,7 @@ def delete_media(
2. Since this action is irreversible, ensure that you no longer need the media before proceeding. Once deleted, the media cannot be retrieved or played back.
- 3. Webhook event to look for: video.media.deleted
+ 3. Webhook event to look for: video.media.deleted
#### Example
A user on a video-sharing platform decides to remove an old video from their profile, or suppose you're running a content moderation system, and one of the videos uploaded by a user violates your platform's policies. Using this endpoint, the media is permanently deleted from your library, ensuring it's no longer accessible or viewable by other users.
@@ -1021,7 +1021,7 @@ async def delete_media_async(
2. Since this action is irreversible, ensure that you no longer need the media before proceeding. Once deleted, the media cannot be retrieved or played back.
- 3. Webhook event to look for: video.media.deleted
+ 3. Webhook event to look for: video.media.deleted
#### Example
A user on a video-sharing platform decides to remove an old video from their profile, or suppose you're running a content moderation system, and one of the videos uploaded by a user violates your platform's policies. Using this endpoint, the media is permanently deleted from your library, ensuring it's no longer accessible or viewable by other users.
@@ -1116,7 +1116,7 @@ def add_media_track(
) -> models.AddTrackResponse:
r"""Add audio / subtitle track
- This endpoint allows you to add an audio or subtitle track to an existing media file using its `mediaId`. You need to provide the track `url` along with its `type` (audio or subtitle), `languageName` and `languageCode` in the request payload.
+ This endpoint allows you to add an audio or subtitle track to an existing media file using its `mediaId`. You need to provide the track `url` along with its `type` (audio or subtitle), `languageName` and `languageCode` in the request payload. You can optionally provide a `title` for the track.
#### How it works
@@ -1130,17 +1130,17 @@ def add_media_track(
#### Webhook events
- 1. After successfully adding a track, your system will receive the webhook event video.media.track.created.
+ 1. After successfully adding a track, your system will receive the webhook event video.media.track.created.
- 2. Once the track is processed and ready, you will receive the webhook event video.media.track.ready.
+ 2. Once the track is processed and ready, you will receive the webhook event video.media.track.ready.
- 3. Finally, an update event video.media.updated will notify your system about the media's updated status.
+ 3. Finally, an update event video.media.updated will notify your system about the media's updated status.
#### Example
Suppose you have a video uploaded to the FastPix platform, and you want to add an Italian audio track to it. By calling this API, you can attach an external audio file (https://static.fastpix.com/music-1.mp3) to the media file. Similarly, if you need to add subtitles in different languages, you can specify type: `subtitle` with the corresponding subtitle `url`, `languageCode` and `languageName`.
- Related guides: Add own subtitle tracks, Add own audio tracks
+ Related guides: Add own subtitle tracks, Add own audio tracks
:param media_id: When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
@@ -1246,7 +1246,7 @@ async def add_media_track_async(
) -> models.AddTrackResponse:
r"""Add audio / subtitle track
- This endpoint allows you to add an audio or subtitle track to an existing media file using its `mediaId`. You need to provide the track `url` along with its `type` (audio or subtitle), `languageName` and `languageCode` in the request payload.
+ This endpoint allows you to add an audio or subtitle track to an existing media file using its `mediaId`. You need to provide the track `url` along with its `type` (audio or subtitle), `languageName` and `languageCode` in the request payload. You can optionally provide a `title` for the track.
#### How it works
@@ -1260,17 +1260,17 @@ async def add_media_track_async(
#### Webhook events
- 1. After successfully adding a track, your system will receive the webhook event video.media.track.created.
+ 1. After successfully adding a track, your system will receive the webhook event video.media.track.created.
- 2. Once the track is processed and ready, you will receive the webhook event video.media.track.ready.
+ 2. Once the track is processed and ready, you will receive the webhook event video.media.track.ready.
- 3. Finally, an update event video.media.updated will notify your system about the media's updated status.
+ 3. Finally, an update event video.media.updated will notify your system about the media's updated status.
#### Example
Suppose you have a video uploaded to the FastPix platform, and you want to add an Italian audio track to it. By calling this API, you can attach an external audio file (https://static.fastpix.com/music-1.mp3) to the media file. Similarly, if you need to add subtitles in different languages, you can specify type: `subtitle` with the corresponding subtitle `url`, `languageCode` and `languageName`.
- Related guides: Add own subtitle tracks, Add own audio tracks
+ Related guides: Add own subtitle tracks, Add own audio tracks
:param media_id: When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
@@ -1382,7 +1382,7 @@ def cancel_upload(
#### Webhook Events
- Once the upload is cancelled, you will receive the webhook event video.media.upload.cancelled.
+ Once the upload is cancelled, you will receive the webhook event video.media.upload.cancelled.
#### Example
@@ -1485,7 +1485,7 @@ async def cancel_upload_async(
#### Webhook Events
- Once the upload is cancelled, you will receive the webhook event video.media.upload.cancelled.
+ Once the upload is cancelled, you will receive the webhook event video.media.upload.cancelled.
#### Example
@@ -1573,9 +1573,9 @@ def update_media_track(
*,
track_id: str,
media_id: str,
- url: Optional[str] = None,
language_code: Optional[str] = None,
language_name: Optional[str] = None,
+ title: Optional[str] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -1583,7 +1583,7 @@ def update_media_track(
) -> models.UpdateTrackResponse:
r"""Update audio / subtitle track
- This endpoint allows you to update an existing audio or subtitle track associated with a media file. When updating a track, you must provide the new track `url`, `languageName`, and `languageCode`, ensuring all three parameters are included in the request.
+ This endpoint allows you to update an existing audio or subtitle track associated with a media file. When updating a track, you must provide the new `languageName` and `languageCode`, ensuring both parameters are included in the request. You can optionally provide a `title` for the track.
#### How it works
@@ -1598,11 +1598,11 @@ def update_media_track(
After updating a track, your system will receive webhook notifications:
- 1. After successfully updating a track, your system will receive the webhook event video.media.track.updated.
+ 1. After successfully updating a track, your system will receive the webhook event video.media.track.updated.
- 2. Once the new track is processed and ready, you will receive the webhook event video.media.track.ready.
+ 2. Once the new track is processed and ready, you will receive the webhook event video.media.track.ready.
- 3. Once the media file is updated with the new track details, a video.media.updated event will be triggered.
+ 3. Once the media file is updated with the new track details, a video.media.updated event will be triggered.
#### Example
@@ -1611,14 +1611,14 @@ def update_media_track(
- The original track file has errors and needs correction.
- You want to improve subtitle translations or replace an audio track with a better-quality version.
- Related guides: Add own subtitle tracks, Add own audio tracks
+ Related guides: Add own subtitle tracks, Add own audio tracks
:param track_id: When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
:param media_id: When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
- :param url: The direct URL of the track file. It should point to a valid audio or subtitle file.
:param language_code: The BCP 47 language code representing the track's language.
:param language_name: The full name of the language corresponding to the `languageCode`.
+ :param title: Title of the track.
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -1638,9 +1638,9 @@ def update_media_track(
track_id=track_id,
media_id=media_id,
update_track_request=models.UpdateTrackRequest(
- url=url,
language_code=language_code,
language_name=language_name,
+ title=title,
),
)
@@ -1712,9 +1712,9 @@ async def update_media_track_async(
*,
track_id: str,
media_id: str,
- url: Optional[str] = None,
language_code: Optional[str] = None,
language_name: Optional[str] = None,
+ title: Optional[str] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -1722,7 +1722,7 @@ async def update_media_track_async(
) -> models.UpdateTrackResponse:
r"""Update audio / subtitle track
- This endpoint allows you to update an existing audio or subtitle track associated with a media file. When updating a track, you must provide the new track `url`, `languageName`, and `languageCode`, ensuring all three parameters are included in the request.
+ This endpoint allows you to update an existing audio or subtitle track associated with a media file. When updating a track, you must provide the new `languageName` and `languageCode`, ensuring both parameters are included in the request. You can optionally provide a `title` for the track.
#### How it works
@@ -1737,11 +1737,11 @@ async def update_media_track_async(
After updating a track, your system will receive webhook notifications:
- 1. After successfully updating a track, your system will receive the webhook event video.media.track.updated.
+ 1. After successfully updating a track, your system will receive the webhook event video.media.track.updated.
- 2. Once the new track is processed and ready, you will receive the webhook event video.media.track.ready.
+ 2. Once the new track is processed and ready, you will receive the webhook event video.media.track.ready.
- 3. Once the media file is updated with the new track details, a video.media.updated event will be triggered.
+ 3. Once the media file is updated with the new track details, a video.media.updated event will be triggered.
#### Example
@@ -1750,14 +1750,14 @@ async def update_media_track_async(
- The original track file has errors and needs correction.
- You want to improve subtitle translations or replace an audio track with a better-quality version.
- Related guides: Add own subtitle tracks, Add own audio tracks
+ Related guides: Add own subtitle tracks, Add own audio tracks
:param track_id: When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
:param media_id: When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
- :param url: The direct URL of the track file. It should point to a valid audio or subtitle file.
:param language_code: The BCP 47 language code representing the track's language.
:param language_name: The full name of the language corresponding to the `languageCode`.
+ :param title: Title of the track.
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -1777,9 +1777,9 @@ async def update_media_track_async(
track_id=track_id,
media_id=media_id,
update_track_request=models.UpdateTrackRequest(
- url=url,
language_code=language_code,
language_name=language_name,
+ title=title,
),
)
@@ -1872,7 +1872,7 @@ def delete_media_track(
1. After successfully deleting a track, your system will receive the webhook event **video.media.track.deleted**.
- 2. Once the media file is updated to reflect the track removal, a video.media.updated event will be triggered.
+ 2. Once the media file is updated to reflect the track removal, a video.media.updated event will be triggered.
#### Example
@@ -1882,7 +1882,7 @@ def delete_media_track(
- The content owner requests the removal of a specific subtitle or audio track.
- A new version of the track will be uploaded to replace the existing one.
- Related guides: Add own subtitle tracks, Add own audio tracks
+ Related guides: Add own subtitle tracks, Add own audio tracks
:param media_id: When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
@@ -1988,7 +1988,7 @@ async def delete_media_track_async(
1. After successfully deleting a track, your system will receive the webhook event **video.media.track.deleted**.
- 2. Once the media file is updated to reflect the track removal, a video.media.updated event will be triggered.
+ 2. Once the media file is updated to reflect the track removal, a video.media.updated event will be triggered.
#### Example
@@ -1998,7 +1998,7 @@ async def delete_media_track_async(
- The content owner requests the removal of a specific subtitle or audio track.
- A new version of the track will be uploaded to replace the existing one.
- Related guides: Add own subtitle tracks, Add own audio tracks
+ Related guides: Add own subtitle tracks, Add own audio tracks
:param media_id: When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
@@ -2086,6 +2086,7 @@ def generate_subtitle_track(
language_name: str,
language_code: models.LanguageCode,
metadata: Optional[Dict[str, str]] = None,
+ title: Optional[str] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -2105,11 +2106,11 @@ def generate_subtitle_track(
#### Webhook Events
- 1. Once the subtitle track is generated and ready, you will receive the webhook event video.media.subtitle.generated.ready.
+ 1. Once the subtitle track is generated and ready, you will receive the webhook event video.media.subtitle.generated.
- 2. Finally, an update event video.media.updated will notify your system about the media's updated status.
+ 2. Finally, an update event video.media.updated will notify your system about the media's updated status.
- Related guide: Add auto-generated subtitles
+ Related guide: Add auto-generated subtitles
:param media_id: A universally unique identifier (UUID) assigned to the media by FastPix.
@@ -2117,6 +2118,7 @@ def generate_subtitle_track(
:param language_name: The full name of the language in which subtitles will be generated.
:param language_code: Language code for content localization
:param metadata: You can search for videos with specific key value pairs using metadata, when you tag a video in \"key\" : \"value\" pairs. Dynamic Metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
+ :param title: Title of the track.
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -2139,6 +2141,7 @@ def generate_subtitle_track(
language_name=language_name,
metadata=metadata,
language_code=language_code,
+ title=title,
),
)
@@ -2215,6 +2218,7 @@ async def generate_subtitle_track_async(
language_name: str,
language_code: models.LanguageCode,
metadata: Optional[Dict[str, str]] = None,
+ title: Optional[str] = None,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -2234,11 +2238,11 @@ async def generate_subtitle_track_async(
#### Webhook Events
- 1. Once the subtitle track is generated and ready, you will receive the webhook event video.media.subtitle.generated.ready.
+ 1. Once the subtitle track is generated and ready, you will receive the webhook event video.media.subtitle.generated.
- 2. Finally, an update event video.media.updated will notify your system about the media's updated status.
+ 2. Finally, an update event video.media.updated will notify your system about the media's updated status.
- Related guide: Add auto-generated subtitles
+ Related guide: Add auto-generated subtitles
:param media_id: A universally unique identifier (UUID) assigned to the media by FastPix.
@@ -2246,6 +2250,7 @@ async def generate_subtitle_track_async(
:param language_name: The full name of the language in which subtitles will be generated.
:param language_code: Language code for content localization
:param metadata: You can search for videos with specific key value pairs using metadata, when you tag a video in \"key\" : \"value\" pairs. Dynamic Metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
+ :param title: Title of the track.
:param retries: Override the default retry configuration for this method
:param server_url: Override the default server URL for this method
:param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -2268,6 +2273,7 @@ async def generate_subtitle_track_async(
language_name=language_name,
metadata=metadata,
language_code=language_code,
+ title=title,
),
)
@@ -2357,7 +2363,7 @@ def updated_source_access(
2. Include the updated `sourceAccess` parameter in the request body.
3. Receive a response confirming the update to the media's source access status.
- 4. Webhook events: video.media.source.ready, video.media.source.deleted
+ 4. Webhook events: video.media.source.ready, video.media.source.deleted
:param media_id: When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
@@ -2467,7 +2473,7 @@ async def updated_source_access_async(
2. Include the updated `sourceAccess` parameter in the request body.
3. Receive a response confirming the update to the media's source access status.
- 4. Webhook events: video.media.source.ready, video.media.source.deleted
+ 4. Webhook events: video.media.source.ready, video.media.source.deleted
:param media_id: When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
@@ -2560,7 +2566,7 @@ def updated_mp4_support(
self,
*,
media_id: str,
- mp4_support: Optional[models.UpdatedMp4SupportMp4Support] = None,
+ mp4_support: models.UpdatedMp4SupportMp4Support,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -2590,7 +2596,7 @@ def updated_mp4_support(
#### Webhook events
- - video.media.mp4Support.ready – Triggered when the MP4 support setting is successfully updated.
+ - video.media.mp4Support.ready – Triggered when the MP4 support setting is successfully updated.
#### Example
Suppose you have a video uploaded to the FastPix platform, and you want to allow users to download the video in MP4 format. By setting \"mp4Support\": \"capped_4k\", the system will generate an MP4 rendition of the video up to 4K resolution, making it available for download via the stream URL(`https://stream.fastpix.com/{playbackId}/{capped-4k.mp4 | audio.m4a}`).
@@ -2692,7 +2698,7 @@ async def updated_mp4_support_async(
self,
*,
media_id: str,
- mp4_support: Optional[models.UpdatedMp4SupportMp4Support] = None,
+ mp4_support: models.UpdatedMp4SupportMp4Support,
retries: OptionalNullable[utils.RetryConfig] = UNSET,
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
@@ -2722,7 +2728,7 @@ async def updated_mp4_support_async(
#### Webhook events
- - video.media.mp4Support.ready – Triggered when the MP4 support setting is successfully updated.
+ - video.media.mp4Support.ready – Triggered when the MP4 support setting is successfully updated.
#### Example
Suppose you have a video uploaded to the FastPix platform, and you want to allow users to download the video in MP4 format. By setting \"mp4Support\": \"capped_4k\", the system will generate an MP4 rendition of the video up to 4K resolution, making it available for download via the stream URL(`https://stream.fastpix.com/{playbackId}/{capped-4k.mp4 | audio.m4a}`).
@@ -3028,6 +3034,196 @@ async def retrieve_media_input_info_async(
],
)
+ def get_summary(
+ self,
+ *,
+ media_id: str,
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
+ server_url: Optional[str] = None,
+ timeout_ms: Optional[int] = None,
+ http_headers: Optional[Mapping[str, str]] = None,
+ ) -> models.GetMediaSummaryResponse:
+ r"""Get the summary of a video
+
+ This endpoint returns the generated summary of a video.
+
+ The summary is created using the **InVideo Summary** feature, which processes the video content and produces a textual summary.
+
+ To use this endpoint, you must first generate the video summary using the Generate Video Summary endpoint. This endpoint can return the summary only after that process is complete.
+
+ If the summary has not been generated or the feature is disabled for the requested media, the endpoint returns an error indicating that the summary is unavailable.
+
+
+ :param media_id: The unique identifier assigned to the media when created. The value must be a valid UUID.
+ :param retries: Override the default retry configuration for this method
+ :param server_url: Override the default server URL for this method
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
+ :param http_headers: Additional headers to set or replace on requests.
+ """
+ base_url = None
+ url_variables = None
+ if timeout_ms is None:
+ timeout_ms = self.sdk_configuration.timeout_ms
+
+ if server_url is not None:
+ base_url = server_url
+ else:
+ base_url = self._get_url(base_url, url_variables)
+
+ request = models.GetMediaSummaryRequest(
+ media_id=media_id,
+ )
+
+ req = self._build_request(BuildRequestData(
+ method="GET",
+ path="/on-demand/{mediaId}/summary",
+ base_url=base_url,
+ url_variables=url_variables,
+ request=request,
+ request_body_required=False,
+ request_has_path_params=True,
+ request_has_query_params=False,
+ user_agent_header="user-agent",
+ accept_header_value=CONTENT_TYPE_JSON,
+ http_headers=http_headers,
+ security=self.sdk_configuration.security,
+ timeout_ms=timeout_ms,
+ ))
+
+ if retries == UNSET:
+ if self.sdk_configuration.retry_config is not UNSET:
+ retries = self.sdk_configuration.retry_config
+ else:
+ retries = utils.RetryConfig(
+ "backoff", utils.BackoffStrategy(1000, 10000, 1.5, 3600000), True
+ )
+
+ retry_config = None
+ if isinstance(retries, utils.RetryConfig):
+ retry_config = (retries, ["408", "429", "500", "502", "503", "504"])
+
+ http_res = self.do_request(
+ hook_ctx=HookContext(
+ config=self.sdk_configuration,
+ base_url=base_url or "",
+ operation_id="get-media-summary",
+ oauth2_scopes=None,
+ security_source=get_security_from_env(
+ self.sdk_configuration.security, models.Security
+ ),
+ ),
+ request=req,
+ error_status_codes=["401", "403", "404", "422", "4XX", "5XX"],
+ retry_config=retry_config,
+ )
+
+ if utils.match_response(http_res, "200", CONTENT_TYPE_JSON):
+ return unmarshal_json_response(models.GetMediaSummaryResponse, http_res)
+ self._raise_for_status(
+ http_res,
+ [
+ ("401", errors.InvalidPermissionErrorData, errors.InvalidPermissionError),
+ ("403", errors.ForbiddenErrorData, errors.ForbiddenError),
+ ("404", errors.MediaNotFoundErrorData, errors.MediaNotFoundError),
+ ("422", errors.ValidationErrorResponseData, errors.ValidationErrorResponse),
+ ],
+ )
+
+ async def get_summary_async(
+ self,
+ *,
+ media_id: str,
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
+ server_url: Optional[str] = None,
+ timeout_ms: Optional[int] = None,
+ http_headers: Optional[Mapping[str, str]] = None,
+ ) -> models.GetMediaSummaryResponse:
+ r"""Get the summary of a video
+
+ This endpoint returns the generated summary of a video.
+
+ The summary is created using the **InVideo Summary** feature, which processes the video content and produces a textual summary.
+
+ To use this endpoint, you must first generate the video summary using the Generate Video Summary endpoint. This endpoint can return the summary only after that process is complete.
+
+ If the summary has not been generated or the feature is disabled for the requested media, the endpoint returns an error indicating that the summary is unavailable.
+
+
+ :param media_id: The unique identifier assigned to the media when created. The value must be a valid UUID.
+ :param retries: Override the default retry configuration for this method
+ :param server_url: Override the default server URL for this method
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
+ :param http_headers: Additional headers to set or replace on requests.
+ """
+ base_url = None
+ url_variables = None
+ if timeout_ms is None:
+ timeout_ms = self.sdk_configuration.timeout_ms
+
+ if server_url is not None:
+ base_url = server_url
+ else:
+ base_url = self._get_url(base_url, url_variables)
+
+ request = models.GetMediaSummaryRequest(
+ media_id=media_id,
+ )
+
+ req = self._build_request_async(BuildRequestData(
+ method="GET",
+ path="/on-demand/{mediaId}/summary",
+ base_url=base_url,
+ url_variables=url_variables,
+ request=request,
+ request_body_required=False,
+ request_has_path_params=True,
+ request_has_query_params=False,
+ user_agent_header="user-agent",
+ accept_header_value=CONTENT_TYPE_JSON,
+ http_headers=http_headers,
+ security=self.sdk_configuration.security,
+ timeout_ms=timeout_ms,
+ ))
+
+ if retries == UNSET:
+ if self.sdk_configuration.retry_config is not UNSET:
+ retries = self.sdk_configuration.retry_config
+ else:
+ retries = utils.RetryConfig(
+ "backoff", utils.BackoffStrategy(1000, 10000, 1.5, 3600000), True
+ )
+
+ retry_config = None
+ if isinstance(retries, utils.RetryConfig):
+ retry_config = (retries, ["408", "429", "500", "502", "503", "504"])
+
+ http_res = await self.do_request_async(
+ hook_ctx=HookContext(
+ config=self.sdk_configuration,
+ base_url=base_url or "",
+ operation_id="get-media-summary",
+ oauth2_scopes=None,
+ security_source=get_security_from_env(
+ self.sdk_configuration.security, models.Security
+ ),
+ ),
+ request=req,
+ error_status_codes=["401", "403", "404", "422", "4XX", "5XX"],
+ retry_config=retry_config,
+ )
+
+ if utils.match_response(http_res, "200", CONTENT_TYPE_JSON):
+ return unmarshal_json_response(models.GetMediaSummaryResponse, http_res)
+ self._raise_for_status_async(
+ http_res,
+ [
+ ("401", errors.InvalidPermissionErrorData, errors.InvalidPermissionError),
+ ("403", errors.ForbiddenErrorData, errors.ForbiddenError),
+ ("404", errors.MediaNotFoundErrorData, errors.MediaNotFoundError),
+ ("422", errors.ValidationErrorResponseData, errors.ValidationErrorResponse),
+ ],
+ )
+
def list_uploads(
self,
*,
diff --git a/fastpix_python/models/__init__.py b/fastpix_python/models/__init__.py
index b43de8e..946e6fc 100644
--- a/fastpix_python/models/__init__.py
+++ b/fastpix_python/models/__init__.py
@@ -281,6 +281,12 @@
GetLiveStreamViewerCountByIDRequestTypedDict,
)
from .get_media_clipsop import GetMediaClipsRequest, GetMediaClipsRequestTypedDict
+ from .get_media_summaryop import (
+ GetMediaSummaryRequest,
+ GetMediaSummaryRequestTypedDict,
+ GetMediaSummaryResponse,
+ GetMediaSummaryResponseTypedDict,
+ )
from .get_mediaop import (
GetMediaRequest,
GetMediaRequestTypedDict,
@@ -493,7 +499,11 @@
from .media import (
Media,
MediaMaxResolution,
- MediaMp4Support,
+ MediaMp4SupportEntry,
+ MediaMp4SupportEntryExt,
+ MediaMp4SupportEntryStatus,
+ MediaMp4SupportEntryType,
+ MediaMp4SupportEntryTypedDict,
MediaSourceResolution,
MediaTypedDict,
)
@@ -813,10 +823,6 @@
UserAgentRestrictions,
UserAgentRestrictionsTypedDict,
)
- from .validationerrorresponse import (
- ValidationErrorResponseError,
- ValidationErrorResponseErrorTypedDict,
- )
from .videoinput import (
Segment1,
Segment1TypedDict,
@@ -1093,6 +1099,10 @@
"GetMediaRequestTypedDict",
"GetMediaResponse",
"GetMediaResponseTypedDict",
+ "GetMediaSummaryRequest",
+ "GetMediaSummaryRequestTypedDict",
+ "GetMediaSummaryResponse",
+ "GetMediaSummaryResponseTypedDict",
"GetPlaybackIDData",
"GetPlaybackIDDataTypedDict",
"GetPlaybackIDRequest",
@@ -1232,7 +1242,11 @@
"MediaIdsRequest",
"MediaIdsRequestTypedDict",
"MediaMaxResolution",
- "MediaMp4Support",
+ "MediaMp4SupportEntry",
+ "MediaMp4SupportEntryExt",
+ "MediaMp4SupportEntryStatus",
+ "MediaMp4SupportEntryType",
+ "MediaMp4SupportEntryTypedDict",
"MediaNotFoundError",
"MediaNotFoundErrorTypedDict",
"MediaOrPlaybackNotFoundError",
@@ -1465,8 +1479,6 @@
"UpdatedSourceAccessResponseTypedDict",
"UserAgentRestrictions",
"UserAgentRestrictionsTypedDict",
- "ValidationErrorResponseError",
- "ValidationErrorResponseErrorTypedDict",
"VideoInput",
"VideoInputTypedDict",
"ViewNotFoundError",
@@ -1517,6 +1529,12 @@
"UpdateUserAgentRestrictionsDataTypedDict",
"UpdateUserAgentRestrictionsResponseBodyTypedDict",
],
+ ".default_error": [
+ "Error",
+ "ErrorTypedDict",
+ "DefaultError",
+ "DefaultErrorTypedDict",
+ ],
".add_media_to_playlistop": [
"AddMediaToPlaylistRequest",
"AddMediaToPlaylistRequestTypedDict",
@@ -1826,6 +1844,12 @@
"GetMediaClipsRequest",
"GetMediaClipsRequestTypedDict",
],
+ ".get_media_summaryop": [
+ "GetMediaSummaryRequest",
+ "GetMediaSummaryRequestTypedDict",
+ "GetMediaSummaryResponse",
+ "GetMediaSummaryResponseTypedDict",
+ ],
".get_mediaop": [
"GetMediaRequest",
"GetMediaRequestTypedDict",
@@ -2043,7 +2067,11 @@
".media": [
"Media",
"MediaMaxResolution",
- "MediaMp4Support",
+ "MediaMp4SupportEntry",
+ "MediaMp4SupportEntryExt",
+ "MediaMp4SupportEntryStatus",
+ "MediaMp4SupportEntryType",
+ "MediaMp4SupportEntryTypedDict",
"MediaSourceResolution",
"MediaTypedDict",
],
@@ -2432,10 +2460,6 @@
"UserAgentRestrictions",
"UserAgentRestrictionsTypedDict",
],
- ".validationerrorresponse": [
- "ValidationErrorResponseError",
- "ValidationErrorResponseErrorTypedDict",
- ],
".videoinput": [
"Segment1",
"Segment1TypedDict",
diff --git a/fastpix_python/models/addtrackrequest.py b/fastpix_python/models/addtrackrequest.py
index 1449585..38c72e3 100644
--- a/fastpix_python/models/addtrackrequest.py
+++ b/fastpix_python/models/addtrackrequest.py
@@ -25,6 +25,8 @@ class AddTrackRequestTypedDict(TypedDict):
r"""The BCP 47 language code representing the track's language."""
language_name: NotRequired[str]
r"""The full name of the language corresponding to the `languageCode`."""
+ title: NotRequired[str]
+ r"""Title of the track."""
class AddTrackRequest(BaseModel):
@@ -41,3 +43,6 @@ class AddTrackRequest(BaseModel):
language_name: Annotated[Optional[str], pydantic.Field(alias="languageName")] = None
r"""The full name of the language corresponding to the `languageCode`."""
+
+ title: Optional[str] = None
+ r"""Title of the track."""
diff --git a/fastpix_python/models/addtrackresponse.py b/fastpix_python/models/addtrackresponse.py
index 7738bd9..30a6487 100644
--- a/fastpix_python/models/addtrackresponse.py
+++ b/fastpix_python/models/addtrackresponse.py
@@ -27,6 +27,8 @@ class AddTrackResponseTypedDict(TypedDict):
r"""The BCP 47 language code representing the track's language."""
language_name: NotRequired[str]
r"""The full name of the language corresponding to the `languageCode`."""
+ title: NotRequired[str]
+ r"""Title of the track."""
class AddTrackResponse(BaseModel):
@@ -46,3 +48,6 @@ class AddTrackResponse(BaseModel):
language_name: Annotated[Optional[str], pydantic.Field(alias="languageName")] = None
r"""The full name of the language corresponding to the `languageCode`."""
+
+ title: Optional[str] = None
+ r"""Title of the track."""
diff --git a/fastpix_python/models/generatetrackresponse.py b/fastpix_python/models/generatetrackresponse.py
index 4277939..8eb65aa 100644
--- a/fastpix_python/models/generatetrackresponse.py
+++ b/fastpix_python/models/generatetrackresponse.py
@@ -90,6 +90,8 @@ class GenerateTrackResponseTypedDict(TypedDict):
r"""The full name of the language for the generated track."""
metadata: NotRequired[Dict[str, str]]
r"""You can search for videos with specific key value pairs using metadata, when you tag a video in \"key\" : \"value\" pairs. Dynamic Metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed."""
+ title: NotRequired[str]
+ r"""Title of the track."""
class GenerateTrackResponse(BaseModel):
@@ -114,3 +116,6 @@ class GenerateTrackResponse(BaseModel):
metadata: Optional[Dict[str, str]] = None
r"""You can search for videos with specific key value pairs using metadata, when you tag a video in \"key\" : \"value\" pairs. Dynamic Metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed."""
+
+ title: Optional[str] = None
+ r"""Title of the track."""
diff --git a/fastpix_python/models/get_media_summaryop.py b/fastpix_python/models/get_media_summaryop.py
new file mode 100644
index 0000000..f767b17
--- /dev/null
+++ b/fastpix_python/models/get_media_summaryop.py
@@ -0,0 +1,41 @@
+"""Code generated by fastpix (https://fastpix.com). DO NOT EDIT."""
+
+from __future__ import annotations
+from ..types import BaseModel
+from ..utils import FieldMetadata, PathParamMetadata
+import pydantic
+from typing import Optional
+from typing_extensions import Annotated, NotRequired, TypedDict
+
+
+class GetMediaSummaryRequestTypedDict(TypedDict):
+ media_id: str
+ r"""The unique identifier assigned to the media when created. The value must be a valid UUID."""
+
+
+class GetMediaSummaryRequest(BaseModel):
+ media_id: Annotated[
+ str,
+ pydantic.Field(alias="mediaId"),
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
+ ]
+ r"""The unique identifier assigned to the media when created. The value must be a valid UUID."""
+
+
+class GetMediaSummaryResponseTypedDict(TypedDict):
+ r"""Get media summary"""
+
+ success: NotRequired[bool]
+ r"""Shows the request status. Returns true for success and false for failure."""
+ data: NotRequired[str]
+ r"""The summary of the particular video."""
+
+
+class GetMediaSummaryResponse(BaseModel):
+ r"""Get media summary"""
+
+ success: Optional[bool] = None
+ r"""Shows the request status. Returns true for success and false for failure."""
+
+ data: Optional[str] = None
+ r"""The summary of the particular video."""
diff --git a/fastpix_python/models/media.py b/fastpix_python/models/media.py
index 3cfe0e6..666ba90 100644
--- a/fastpix_python/models/media.py
+++ b/fastpix_python/models/media.py
@@ -16,29 +16,85 @@
"1080p",
"720p",
"480p",
- "360p",
], str]
r"""The maximum resolution specified by the user for the media. The API may also return ``\"NA\"`` for unprocessed media or bare numeric strings (e.g. ``\"480\"``); these pass through as plain strings."""
MediaSourceResolution = Union[Literal[
"2160p",
+ "2160",
"1440p",
+ "1440",
"1080p",
+ "1080",
"720p",
+ "720",
"480p",
+ "480",
"360p",
+ "360",
], str]
r"""The actual resolution of the uploaded media. The API may also return bare numeric strings (e.g. ``\"480\"``, ``\"0\"``) for re-encoded source; these pass through as plain strings."""
-MediaMp4Support = Literal[
- "none",
+MediaMp4SupportEntryType = Union[Literal[
"capped_4k",
"audioOnly",
- "audioOnly,capped_4k",
-]
-r"""Determines the type of MP4 support for the media. - **none**: Disables MP4 support. - **capped_4k**: Enables MP4 downloads with resolutions up to 4K. - **audioOnly**: Provides an MP4 stream containing only the audio. - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream."""
+], str]
+r"""The MP4 rendition type. ``capped_4k`` is a downloadable MP4 video capped at 4K resolution, ``audioOnly`` is a downloadable m4a audio-only file."""
+
+
+MediaMp4SupportEntryStatus = Union[Literal[
+ "preparing",
+ "ready",
+ "failed",
+], str]
+r"""Generation status of this MP4 rendition."""
+
+
+MediaMp4SupportEntryExt = Union[Literal[
+ "mp4",
+ "m4a",
+], str]
+r"""File extension of the downloadable rendition."""
+
+
+class MediaMp4SupportEntryTypedDict(TypedDict):
+ r"""A single MP4 rendition generated for the media."""
+
+ type: NotRequired[MediaMp4SupportEntryType]
+ r"""The MP4 rendition type. ``capped_4k`` is a downloadable MP4 video capped at 4K resolution, ``audioOnly`` is a downloadable m4a audio-only file."""
+ status: NotRequired[MediaMp4SupportEntryStatus]
+ r"""Generation status of this MP4 rendition."""
+ height: NotRequired[int]
+ r"""Pixel height of the rendition. Omitted for the ``audioOnly`` type."""
+ width: NotRequired[int]
+ r"""Pixel width of the rendition. Omitted for the ``audioOnly`` type."""
+ ext: NotRequired[MediaMp4SupportEntryExt]
+ r"""File extension of the downloadable rendition."""
+
+
+class MediaMp4SupportEntry(BaseModel):
+ r"""A single MP4 rendition generated for the media.
+
+ Every field is optional: the ``audioOnly`` rendition carries no
+ ``height``/``width``.
+ """
+
+ type: Optional[MediaMp4SupportEntryType] = None
+ r"""The MP4 rendition type. ``capped_4k`` is a downloadable MP4 video capped at 4K resolution, ``audioOnly`` is a downloadable m4a audio-only file."""
+
+ status: Optional[MediaMp4SupportEntryStatus] = None
+ r"""Generation status of this MP4 rendition."""
+
+ height: Optional[int] = None
+ r"""Pixel height of the rendition. Omitted for the ``audioOnly`` type."""
+
+ width: Optional[int] = None
+ r"""Pixel width of the rendition. Omitted for the ``audioOnly`` type."""
+
+ ext: Optional[MediaMp4SupportEntryExt] = None
+ r"""File extension of the downloadable rendition."""
class MediaTypedDict(TypedDict):
@@ -46,8 +102,12 @@ class MediaTypedDict(TypedDict):
r"""A video thumbnail is a still image that acts as the preview image for your video."""
id: NotRequired[str]
r"""When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters."""
+ source_media_id: NotRequired[str]
+ r"""The source media ID if this media was created from another media (for example, as a clip)."""
workspace_id: NotRequired[str]
r"""A unique identifier is generated by FastPix for the workspace."""
+ stream_id: NotRequired[str]
+ r"""The ID of the livestream this media was recorded or clipped from. Present on live-to-VOD recordings and live clips."""
metadata: NotRequired[Dict[str, str]]
r"""You can search for videos with specific key value pairs using metadata, when you tag a video in \"key\" : \"value\" pairs. Dynamic Metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed."""
max_resolution: NotRequired[MediaMaxResolution]
@@ -56,8 +116,8 @@ class MediaTypedDict(TypedDict):
r"""The actual resolution of the uploaded media. This represents the native quality of the source media."""
status: NotRequired[str]
r"""Determines the media's status, which can be one of the possible values."""
- mp4_support: NotRequired[MediaMp4Support]
- r"""Determines the type of MP4 support for the media. - **none**: Disables MP4 support. - **capped_4k**: Enables MP4 downloads with resolutions up to 4K. - **audioOnly**: Provides an MP4 stream containing only the audio. - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream."""
+ mp4_support: NotRequired[List[MediaMp4SupportEntryTypedDict]]
+ r"""A list of MP4 renditions generated for the media when MP4 support is requested. Each entry represents one downloadable rendition (for example, a capped-4K video file or an audio-only m4a file) along with its generation status. Omitted when no MP4 support has been requested."""
source_access: NotRequired[bool]
r"""The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it"""
playback_ids: NotRequired[List[PlaybackIDTypedDict]]
@@ -78,10 +138,14 @@ class MediaTypedDict(TypedDict):
r"""The title of the media (often the original filename)."""
media_quality: NotRequired[str]
r"""The media quality tier (e.g. ``\"pro\"``)."""
+ creator_id: NotRequired[str]
+ r"""The unique identifier of the user who created this media."""
is_audio_only: NotRequired[bool]
r"""True if the media has no video tracks."""
subtitle_available: NotRequired[bool]
r"""True if at least one subtitle track is attached to the media."""
+ optimize_audio: NotRequired[bool]
+ r"""Enhance the quality and volume of the audio track. This is available for pre-recorded content only."""
generated_subtitles: NotRequired[list]
r"""Auto-generated subtitle tracks, if any."""
@@ -93,9 +157,17 @@ class Media(BaseModel):
id: Optional[str] = None
r"""When creating the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters."""
+ source_media_id: Annotated[
+ Optional[str], pydantic.Field(alias="sourceMediaId")
+ ] = None
+ r"""The source media ID if this media was created from another media (for example, as a clip)."""
+
workspace_id: Annotated[Optional[str], pydantic.Field(alias="workspaceId")] = None
r"""A unique identifier is generated by FastPix for the workspace."""
+ stream_id: Annotated[Optional[str], pydantic.Field(alias="streamId")] = None
+ r"""The ID of the livestream this media was recorded or clipped from. Present on live-to-VOD recordings and live clips."""
+
metadata: Optional[Dict[str, str]] = None
r"""You can search for videos with specific key value pairs using metadata, when you tag a video in \"key\" : \"value\" pairs. Dynamic Metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed."""
@@ -113,9 +185,10 @@ class Media(BaseModel):
r"""Determines the media's status, which can be one of the possible values."""
mp4_support: Annotated[
- Optional[MediaMp4Support], pydantic.Field(alias="mp4Support")
+ Optional[List[MediaMp4SupportEntry]],
+ pydantic.Field(alias="mp4Support"),
] = None
- r"""Determines the type of MP4 support for the media. - **none**: Disables MP4 support. - **capped_4k**: Enables MP4 downloads with resolutions up to 4K. - **audioOnly**: Provides an MP4 stream containing only the audio. - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream."""
+ r"""A list of MP4 renditions generated for the media when MP4 support is requested. Each entry represents one downloadable rendition (for example, a capped-4K video file or an audio-only m4a file) along with its generation status. Omitted when no MP4 support has been requested."""
source_access: Annotated[Optional[bool], pydantic.Field(alias="sourceAccess")] = (
None
@@ -148,6 +221,9 @@ class Media(BaseModel):
media_quality: Annotated[Optional[str], pydantic.Field(alias="mediaQuality")] = None
r"""The media quality tier (e.g. ``"pro"``)."""
+ creator_id: Annotated[Optional[str], pydantic.Field(alias="creatorId")] = None
+ r"""The unique identifier of the user who created this media."""
+
is_audio_only: Annotated[Optional[bool], pydantic.Field(alias="isAudioOnly")] = None
r"""True if the media has no video tracks."""
@@ -156,6 +232,11 @@ class Media(BaseModel):
] = None
r"""True if at least one subtitle track is attached to the media."""
+ optimize_audio: Annotated[
+ Optional[bool], pydantic.Field(alias="optimizeAudio")
+ ] = None
+ r"""Enhance the quality and volume of the audio track. This is available for pre-recorded content only."""
+
generated_subtitles: Annotated[
Optional[list], pydantic.Field(alias="generatedSubtitles")
] = None
diff --git a/fastpix_python/models/mediaclipresponse.py b/fastpix_python/models/mediaclipresponse.py
index b89c511..a7b4c3d 100644
--- a/fastpix_python/models/mediaclipresponse.py
+++ b/fastpix_python/models/mediaclipresponse.py
@@ -21,11 +21,17 @@
MediaClipResponseSourceResolution = Literal[
"2160p",
+ "2160",
"1440p",
+ "1440",
"1080p",
+ "1080",
"720p",
+ "720",
"480p",
+ "480",
"360p",
+ "360",
]
r"""The actual resolution of the uploaded media."""
@@ -132,6 +138,8 @@ class MediaClipResponseTrackTypedDict(TypedDict):
r"""The language code of the audio or subtitle track."""
language_name: NotRequired[str]
r"""The language name of the audio or subtitle track."""
+ title: NotRequired[str]
+ r"""Title of the track."""
class MediaClipResponseTrack(BaseModel):
@@ -156,6 +164,9 @@ class MediaClipResponseTrack(BaseModel):
language_name: Annotated[Optional[str], pydantic.Field(alias="languageName")] = None
r"""The language name of the audio or subtitle track."""
+ title: Optional[str] = None
+ r"""Title of the track."""
+
class GeneratedSubtitleTypedDict(TypedDict):
pass
@@ -192,6 +203,8 @@ class MediaClipResponseDataTypedDict(TypedDict):
r"""Indicates whether the media contains only audio."""
subtitle_available: NotRequired[bool]
r"""Indicates whether subtitles are available for the media."""
+ optimize_audio: NotRequired[bool]
+ r"""Whether the audio track of the media has been volume-normalized."""
duration: NotRequired[str]
r"""The total duration of the media."""
aspect_ratio: NotRequired[str]
@@ -258,6 +271,11 @@ class MediaClipResponseData(BaseModel):
] = None
r"""Indicates whether subtitles are available for the media."""
+ optimize_audio: Annotated[
+ Optional[bool], pydantic.Field(alias="optimizeAudio")
+ ] = None
+ r"""Whether the audio track of the media has been volume-normalized."""
+
duration: Optional[str] = None
r"""The total duration of the media."""
diff --git a/fastpix_python/models/retrievemediainputinfoop.py b/fastpix_python/models/retrievemediainputinfoop.py
index c459114..94ec2de 100644
--- a/fastpix_python/models/retrievemediainputinfoop.py
+++ b/fastpix_python/models/retrievemediainputinfoop.py
@@ -41,6 +41,7 @@ class RetrieveMediaInputInfoFileTrackTypedDict(TypedDict, total=False):
width: int
height: int
frame_rate: str
+ title: str
class RetrieveMediaInputInfoFileTrack(BaseModel):
@@ -52,6 +53,7 @@ class RetrieveMediaInputInfoFileTrack(BaseModel):
width: Optional[int] = None
height: Optional[int] = None
frame_rate: Annotated[Optional[str], pydantic.Field(alias="frameRate")] = None
+ title: Optional[str] = None
class RetrieveMediaInputInfoFileTypedDict(TypedDict, total=False):
diff --git a/fastpix_python/models/track.py b/fastpix_python/models/track.py
index 3a697ed..001a3a5 100644
--- a/fastpix_python/models/track.py
+++ b/fastpix_python/models/track.py
@@ -28,6 +28,8 @@ class TrackTypedDict(TypedDict):
r"""BCP-47 language code for audio/subtitle tracks (e.g. ``"en"``, ``"und"``)."""
language_name: NotRequired[str]
r"""Human-readable language name (e.g. ``"English"``, ``"default"``)."""
+ title: NotRequired[str]
+ r"""Title of the track."""
class Track(BaseModel):
@@ -61,3 +63,6 @@ class Track(BaseModel):
language_name: Annotated[Optional[str], pydantic.Field(alias="languageName")] = None
r"""Human-readable language name (e.g. ``"English"``, ``"default"``)."""
+
+ title: Optional[str] = None
+ r"""Title of the track."""
diff --git a/fastpix_python/models/tracksubtitlesgeneraterequest.py b/fastpix_python/models/tracksubtitlesgeneraterequest.py
index 5e4b539..2c156ae 100644
--- a/fastpix_python/models/tracksubtitlesgeneraterequest.py
+++ b/fastpix_python/models/tracksubtitlesgeneraterequest.py
@@ -17,6 +17,8 @@ class TrackSubtitlesGenerateRequestTypedDict(TypedDict):
r"""Language code for content localization"""
metadata: NotRequired[Dict[str, str]]
r"""You can search for videos with specific key value pairs using metadata, when you tag a video in \"key\" : \"value\" pairs. Dynamic Metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed."""
+ title: NotRequired[str]
+ r"""Title of the track."""
class TrackSubtitlesGenerateRequest(BaseModel):
@@ -30,3 +32,6 @@ class TrackSubtitlesGenerateRequest(BaseModel):
metadata: Optional[Dict[str, str]] = None
r"""You can search for videos with specific key value pairs using metadata, when you tag a video in \"key\" : \"value\" pairs. Dynamic Metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed."""
+
+ title: Optional[str] = None
+ r"""Title of the track."""
diff --git a/fastpix_python/models/updated_mp4supportop.py b/fastpix_python/models/updated_mp4supportop.py
index 050e351..36de7e3 100644
--- a/fastpix_python/models/updated_mp4supportop.py
+++ b/fastpix_python/models/updated_mp4supportop.py
@@ -19,14 +19,14 @@
class UpdatedMp4SupportRequestBodyTypedDict(TypedDict):
- mp4_support: NotRequired[UpdatedMp4SupportMp4Support]
+ mp4_support: UpdatedMp4SupportMp4Support
r"""Determines the type of MP4 support for the media. - **none**: Disables MP4 support. - **capped_4k**: Enables MP4 downloads with resolutions up to 4K. - **audioOnly**: Provides an MP4 stream containing only the audio. - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream."""
class UpdatedMp4SupportRequestBody(BaseModel):
mp4_support: Annotated[
- Optional[UpdatedMp4SupportMp4Support], pydantic.Field(alias="mp4Support")
- ] = None
+ UpdatedMp4SupportMp4Support, pydantic.Field(alias="mp4Support")
+ ]
r"""Determines the type of MP4 support for the media. - **none**: Disables MP4 support. - **capped_4k**: Enables MP4 downloads with resolutions up to 4K. - **audioOnly**: Provides an MP4 stream containing only the audio. - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream."""
diff --git a/fastpix_python/models/updatetrackrequest.py b/fastpix_python/models/updatetrackrequest.py
index f074ee4..b134996 100644
--- a/fastpix_python/models/updatetrackrequest.py
+++ b/fastpix_python/models/updatetrackrequest.py
@@ -10,22 +10,22 @@
class UpdateTrackRequestTypedDict(TypedDict):
r"""Contains details about the track being added to the media file."""
- url: NotRequired[str]
- r"""The direct URL of the track file. It should point to a valid audio or subtitle file."""
language_code: NotRequired[str]
r"""The BCP 47 language code representing the track's language."""
language_name: NotRequired[str]
r"""The full name of the language corresponding to the `languageCode`."""
+ title: NotRequired[str]
+ r"""Title of the track."""
class UpdateTrackRequest(BaseModel):
r"""Contains details about the track being added to the media file."""
- url: Optional[str] = None
- r"""The direct URL of the track file. It should point to a valid audio or subtitle file."""
-
language_code: Annotated[Optional[str], pydantic.Field(alias="languageCode")] = None
r"""The BCP 47 language code representing the track's language."""
language_name: Annotated[Optional[str], pydantic.Field(alias="languageName")] = None
r"""The full name of the language corresponding to the `languageCode`."""
+
+ title: Optional[str] = None
+ r"""Title of the track."""
diff --git a/fastpix_python/models/updatetrackresponse.py b/fastpix_python/models/updatetrackresponse.py
index 16da9c4..b3f6b54 100644
--- a/fastpix_python/models/updatetrackresponse.py
+++ b/fastpix_python/models/updatetrackresponse.py
@@ -27,6 +27,8 @@ class UpdateTrackResponseTypedDict(TypedDict):
r"""The BCP 47 language code representing the track's language."""
language_name: NotRequired[str]
r"""The full name of the language corresponding to the `languageCode`."""
+ title: NotRequired[str]
+ r"""Title of the track."""
class UpdateTrackResponse(BaseModel):
@@ -46,3 +48,6 @@ class UpdateTrackResponse(BaseModel):
language_name: Annotated[Optional[str], pydantic.Field(alias="languageName")] = None
r"""The full name of the language corresponding to the `languageCode`."""
+
+ title: Optional[str] = None
+ r"""Title of the track."""
diff --git a/fastpix_python/playback.py b/fastpix_python/playback.py
index 809d49b..4a2387b 100644
--- a/fastpix_python/playback.py
+++ b/fastpix_python/playback.py
@@ -6,7 +6,7 @@
from .types import OptionalNullable, UNSET
from .utils import get_security_from_env
from .utils.unmarshal_json_response import unmarshal_json_response
-from typing import Mapping, NoReturn, Optional, Union
+from typing import List, Mapping, NoReturn, Optional, Union
CONTENT_TYPE_JSON = "application/json"
API_ERROR_MESSAGE = "API error occurred"
@@ -926,7 +926,7 @@ def update_domain_restrictions(
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None,
- ) -> models.UpdateDomainRestrictionsResponse:
+ ) -> models.UpdateDomainRestrictionsResponseBody:
r"""Update domain restrictions for a playback ID
This endpoint updates domain-level restrictions for a specific playback ID associated with a media asset.
@@ -1050,7 +1050,7 @@ def update_user_agent_restrictions(
server_url: Optional[str] = None,
timeout_ms: Optional[int] = None,
http_headers: Optional[Mapping[str, str]] = None,
- ) -> models.UpdateUserAgentRestrictionsResponse:
+ ) -> models.UpdateUserAgentRestrictionsResponseBody:
r"""Update user-agent restrictions for a playback ID
This endpoint allows updating user-agent restrictions for a specific playback ID associated with a media asset.
diff --git a/fastpix_python/sdk.py b/fastpix_python/sdk.py
index 807394e..a984896 100644
--- a/fastpix_python/sdk.py
+++ b/fastpix_python/sdk.py
@@ -17,7 +17,7 @@
if TYPE_CHECKING:
from .dimensions import Dimensions
from .drm_configurations import DRMConfigurations
- from .errors import Errors
+ from .errors_sdk import Errors
from .in_video_ai_features import InVideoAIFeatures
from .input_video import InputVideo
from .live_playback import LivePlayback
@@ -100,7 +100,7 @@ class Fastpix(BaseSDK):
"views": ("fastpix_python.views_sdk", "ViewsSDK"),
"dimensions": ("fastpix_python.dimensions", "Dimensions"),
"metrics": ("fastpix_python.metrics", "Metrics"),
- "errors": ("fastpix_python.errors", "Errors"),
+ "errors": ("fastpix_python.errors_sdk", "Errors"),
}
def __init__(
diff --git a/fastpix_python/simulcast_stream.py b/fastpix_python/simulcast_stream.py
index 38db4a2..185c7ec 100644
--- a/fastpix_python/simulcast_stream.py
+++ b/fastpix_python/simulcast_stream.py
@@ -63,7 +63,7 @@ def create_simulcast_of_stream(
#### Example
An event manager sets up a live stream for a virtual conference and wants to simulcast the stream on YouTube and Facebook Live. They first create the primary live stream in FastPix, ensuring it's in the idle state. Then, they use the API to create a simulcast target for YouTube.
- Related guide: Simulcast to 3rd party platforms
+ Related guide: Simulcast to 3rd party platforms
:param stream_id: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
:param url: The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
@@ -176,7 +176,7 @@ async def create_simulcast_of_stream_async(
#### Example
An event manager sets up a live stream for a virtual conference and wants to simulcast the stream on YouTube and Facebook Live. They first create the primary live stream in FastPix, ensuring it's in the idle state. Then, they use the API to create a simulcast target for YouTube.
- Related guide: Simulcast to 3rd party platforms
+ Related guide: Simulcast to 3rd party platforms
:param stream_id: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
:param url: The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
diff --git a/fastpix_python/utils/requestbodies.py b/fastpix_python/utils/requestbodies.py
index ce7a524..e7e4580 100644
--- a/fastpix_python/utils/requestbodies.py
+++ b/fastpix_python/utils/requestbodies.py
@@ -44,7 +44,7 @@ def serialize_request_body(
serialized_request_body = SerializedRequestBody(media_type)
- if re.match(r"(application|text)\/.*?\+*json.*", media_type) is not None:
+ if media_type.startswith(("application/", "text/")) and "json" in media_type:
serialized_request_body.content = marshal_json(request_body, request_body_type)
elif re.match(r"multipart\/.*", media_type) is not None:
(
diff --git a/fixed.yaml b/fixed.yaml
deleted file mode 100644
index 3274548..0000000
--- a/fixed.yaml
+++ /dev/null
@@ -1,11526 +0,0 @@
-openapi: 3.0.0
-servers:
- - description: FastPix Video APIs
- url: https://api.fastpix.com/v1/
-x-fastpix-retries:
- strategy: backoff
- backoff:
- strategy: exponential
- initialInterval: 1000
- maxInterval: 10000
- multiplier: 2
- maxAttempts: 3
- retryConnectionErrors: true
- statusCodes:
- - 408
- - 429
- - 500
- - 502
- - 503
- - 504
-info:
- description: >-
- FastPix provides a comprehensive set of APIs that enable developers to manage both
- **on-demand media (video/audio)** and **live streaming experiences**, with built-in
- security features through **cryptographic signing keys**. These APIs cover the full
- lifecycle of content creation, management, distribution, playback, and secure access,
- making them ideal for building scalable video-first applications.
-
- ### Media APIs (Video & Audio on Demand)
-
- The **Media APIs** allow developers to create, retrieve, update, and delete media
- files, as well as manage metadata, playback settings, and additional tracks such as
- audio or subtitles. With these endpoints, developers can:
-
- - Upload videos directly or create media from URLs.
- - Manage playback permissions and configure playback IDs.
- - Add multilingual audio or subtitle tracks for global audiences.
- - Build robust video-on-demand (VOD) and audio-on-demand (AOD) libraries.
-
- **Use case scenarios**
- - **Video-on-Demand Platforms:** Manage large content libraries for streaming services.
- - **E-Learning Solutions:** Upload and organize lecture videos, metadata, and playback settings.
- - **Multilingual Content Delivery:** Add multiple language tracks or subtitles to serve global users.
-
- ### Live Stream APIs
-
- The **Live Stream APIs** simplify the process of creating, managing, and distributing
- live content. Developers can initiate broadcasts, configure stream settings, and extend
- streams to external platforms through simulcasting. These endpoints also support
- real-time interaction and customization of live events.
-
- - Start and manage live broadcasts programmatically.
- - Control stream metadata, privacy, and playback options.
- - Simulcast to platforms like YouTube, Facebook, or Twitch.
- - Update stream details and manage live playback IDs in real time.
-
- **Use case scenarios**
- - **Event Broadcasting:** Enable organizers to set up live streams for conferences, concerts, or webinars.
- - **Creator Platforms:** Provide streamers with tools for broadcasting gameplay, tutorials, or vlogs with simulcasting support.
- - **Corporate Streaming:** Deliver secure internal town halls or meetings with privacy and playback controls.
-
- ### Video Data APIs
-
- The **Video Data APIs** Provide insights into viewer interactions, performance metrics, and playback errors to optimize content delivery and user experience.
-
- - Track video views, unique viewers, and engagement metrics
- - Identify top-performing content and usage patterns
- - Break down data by browser, device, or geography
- - Detect playback errors and performance issues
- - Enable data-driven content strategy decisions
-
- **Use case scenarios**
- - Analytics Dashboards: Monitor performance across content libraries
- - Quality Monitoring: Diagnose and resolve playback issues
- - Content Strategy Optimization: Identify high-value content
- - User Behavior Insights: Understand audience interactions
-
- ### Signing Keys
-
- FastPix also provides endpoints for managing **cryptographic signing keys**, which are
- essential for securely signing and verifying tokens, such as JSON Web Tokens (JWTs).
- These keys are critical for authenticating and authorizing API requests, as well as for
- protecting access to media assets.
-
- - **Private key:** Used to create digital signatures (kept secret).
- - **Public key:** Used to verify digital signatures (shared for verification).
-
- By rotating and managing signing keys regularly, developers can maintain strong
- security practices and prevent unauthorized access.
-
- **Use case scenarios**
- - **Token-based authentication:** Validate user access to premium or subscription-based content.
- - **Key rotation:** Regularly rotate keys to reduce risk of compromise.
- - **Protect intellectual property:** Prevent unauthorized distribution of valuable media assets.
- - **Control usage:** Restrict access to specific users, groups, or contexts.
- - **Prevent tampering:** Ensure requested assets have not been modified.
- - **Time-bound access:** Enable signed URLs with expiration for controlled viewing windows.
- version: 1.0.0
- title: FASTPIX API'S
- contact:
- email: support@fastpix.com
-tags:
- - name: on-demand
- description: On-demand APIs
- - name: livestream
- description: Livestream APIs
- - name: Signing keys
- description: Operations involving signing keys
- - name: Views
- description: Operations involving views
- - name: Dimensions
- description: Operations involving dimensions
- - name: Metrics
- description: Operations involving metrics
- - name: Errors
- x-fastpix-name-override: error_operations
- description: Operations involving errors
- - name: Live playback
- description: Operations for live stream playback management
- - name: Simulcast stream
- description: Operations for simulcast stream management
- - name: Input video
- description: Operations for inputting and creating video media
- - name: Manage videos
- description: Operations for managing video media
- - name: In-video AI features
- description: Operations for AI-powered video features
- - name: Playback
- description: Operations for video playback management
- - name: Playlist
- description: Operations for playlist management
- - name: DRM configurations
- description: Operations for DRM configuration management
- - name: Start live stream
- description: Operations for starting live streams
- - name: Manage live stream
- description: Operations for managing live streams
-paths:
- /on-demand:
- post:
- security:
- - BasicAuth: []
- tags:
- - Input video
- summary: Create media from URL
- description: |
- This endpoint allows developers or users to create a new video or audio media in FastPix using a publicly accessible URL. FastPix fetches the media from the provided URL, processes it, and stores it on the platform for use.
-
-
-
- #### Public URL requirement:
-
-
- The provided URL must be publicly accessible and must point to a video stored in one of the following supported formats: .m4v, .ogv, .mpeg, .mov, .3gp, .f4v, .rm, .ts, .wtv, .avi, .mp4, .wmv, .webm, .mts, .vob, .mxf, asf, m2ts
-
-
-
- #### Supported storage types:
-
- The URL can originate from various cloud storage services or content delivery networks (CDNs) such as:
-
-
- * **Amazon S3:** URLs from Amazon's Simple Storage Service.
-
- * **Google Cloud Storage:** URLs from Google Cloud's storage solution.
-
- * **Azure Blob Storage:** URLs from Microsoft's Azure storage.
-
- * **Public CDNs:** URLs from public content delivery networks that host video files.
-
- Upon successful creation, the API returns an `id` that must be retained for future operations related to this media.
-
- #### How it works
-
-
- 1. Send a POST request to this endpoint with the media URL (typically a video or audio file) and optional media settings.
-
- 2. FastPix uploads the video from the provided URL to its storage.
-
- 3. Receive a response containing the unique id for the newly created media item.
-
- 4. Use the id in subsequent API calls, such as checking the status of the media with the Get Media by ID endpoint to determine when the media is ready for playback.
-
- FastPix uses webhooks to tell your application about things that happen in the background, outside of the API regular request flow. For instance, after the media file is created (but not yet processed or encoded), FastPix sends a `POST` request to your specified webhook URL with the event video.media.created.
-
-
- After processing completes, monitor the events video.media.ready and video.media.failed to track the status of the media file.
-
- Related guide: Upload videos from URL
- operationId: create-media
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CreateMediaRequest"
- example:
- inputs:
- - type: video
- url: https://static.fastpix.com/fp-sample-video.mp4
- metadata:
- key1: value1
- accessPolicy: public
- maxResolution: 1080p
- mediaQuality: standard
- description: Request body for uploading a video media from URL
- responses:
- "201":
- description: Media is created successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CreateMediaSuccessResponse"
- example:
- success: true
- data:
- id: 22ab3a33-bf96-4070-ae1f-60b3d0900fa5
- trial: false
- status: Created
- createdAt: "2025-11-03T10:03:48.595604Z"
- updatedAt: "2025-11-03T10:03:48.595624Z"
- playbackIds:
- - id: 5c9de6f2-3e90-40a5-b529-35ada8f7914f
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- metadata:
- key1: value1
- mediaQuality: standard
- sourceAccess: false
- maxResolution: 1080p
- inputs:
- - type: video
- url: https://static.fastpix.com/fp-sample-video.mp4
- optimizeAudio: false
-
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
-
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get list of all media
- description: |
- This endpoint returns a list of all media files uploaded to FastPix within a specific workspace. Each media entry contains data such as the media `id`, `createdAt`, `status`, `type` and more. It allows you to retrieve an overview of your media assets, making it easier to manage and review them.
-
-
- #### How it works
-
- Use the access token and secret key related to the workspace in the request header. When called, the API provides a paginated response containing all the media items in that specific workspace. This is helpful for retrieving a large volume of media and managing content in bulk.
-
-
-
- #### Example
- If you manage a video platform and need to review all uploaded media in your library to ensure that outdated or low-quality content isn’t being served, you can use this endpoint to retrieve a complete list of media. You can then filter, sort, or update items as needed.
- operationId: list-media
- parameters:
- - in: query
- name: limit
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 20
- description: Limit specifies the maximum number of items to display per page.
- - in: query
- name: offset
- schema:
- type: integer
- default: 1
- example: 1
- description: Offset determines the starting point for data retrieval within a paginated list.
- - in: query
- name: orderBy
- schema:
- type: string
- example: desc
- default: desc
- $ref: "#/components/schemas/SortOrder"
- responses:
- "200":
- description: List of video media
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- description: Displays the result of the request.
- type: array
- items:
- $ref: "#/components/schemas/GetAllMediaResponse"
- pagination:
- $ref: "#/components/schemas/Pagination"
- example:
- success: true
- data:
- - thumbnail: https://images.fastpix.com/837f028b-dcaf-4c23-b368-3748641f74ac/thumbnail.png
- id: cfeec1a3-6cbd-40df-a425-2ed7f8f72ced
- workspaceId: 6dc2b4e0-0615-42fd-a580-1f4aad932dfe
- metadata:
- key1: value1
- mediaQuality: standard
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- sourceAccess: false
- playbackIds:
- - id: 837f028b-dcaf-4c23-b368-3748641f74ac
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: f301a2a1-b40d-40fa-b419-4d0cd92a62f8
- type: video
- width: 1920
- height: 1080
- status: available
- generatedSubtitles: []
- isAudioOnly: false
- subtitleAvailable: true
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2025-01-09T06:44:44.617138Z"
- updatedAt: "2025-01-09T06:44:53.742648Z"
- pagination:
- totalRecords: 100
- currentOffset: 1
- offsetCount: 10
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{livestreamId}/live-clips:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get all clips of a live stream
- description: |
- Retrieves a list of all media clips generated from a specific livestream. Each media entry includes metadata such as the clip media IDs, and other relevant details. A media clip is a segmented portion of an original media file (source live stream). Clips are often created for various purposes such as previews, highlights, or customized edits.
- #### How it works
- 1. Provide the livestreamId as a parameter when calling this endpoint.
-
- 2. The API returns a paginated list of media clips created from the specified livestream.
-
- 3. Pagination helps maintain performance and usability when handling large sets of media files, making it easier to organize and manage content in bulk.
-
- #### Use case
- Suppose you’re hosting a live gaming event and want to showcase key moments from the stream — such as top plays or final match highlights. You can use this endpoint to fetch all clips generated from that livestream, display them in your dashboard, or use them for post-event editing and sharing.
-
-
- Related guide: Instant live clipping
- operationId: list-live-clips
- parameters:
- - in: path
- name: livestreamId
- required: true
- schema:
- type: string
- format: uuid
- example: b6f71268143f70c798a7851a0a92dcbf
- description: The stream Id is unique identifier assigned to the live stream.
- - in: query
- name: limit
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 20
- description: Limit specifies the maximum number of items to display per page.
- - in: query
- name: offset
- schema:
- type: integer
- default: 1
- example: 1
- description: Offset determines the starting point for data retrieval within a paginated list.
- - in: query
- name: orderBy
- schema:
- type: string
- example: desc
- default: desc
- $ref: "#/components/schemas/SortOrder"
- responses:
- "200":
- description: List of video media
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- description: Displays the result of the request.
- type: array
- items:
- $ref: "#/components/schemas/Live-Media-Clips"
- pagination:
- $ref: "#/components/schemas/Pagination"
- example:
- success: true
- data:
- - thumbnail: https://images.fastpix.com/837f028b-dcaf-4c23-b368-3748641f74ac/thumbnail.png
- id: cfeec1a3-6cbd-40df-a425-2ed7f8f72ced
- workspaceId: 6dc2b4e0-0615-42fd-a580-1f4aad932dfe
- streamId: 98f28be5ac9bd7a4205634691a1a096b
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- sourceAccess: false
- playbackIds:
- - id: 837f028b-dcaf-4c23-b368-3748641f74ac
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: f301a2a1-b40d-40fa-b419-4d0cd92a62f8
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- isAudioOnly: false
- subtitleAvailable: true
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2025-01-09T06:44:44.617138Z"
- updatedAt: "2025-01-09T06:44:53.742648Z"
- pagination:
- totalRecords: 100
- currentOffset: 1
- offsetCount: 10
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get a media by ID
- description: |
- By calling this endpoint, you can retrieve detailed information about a specific media item, including its current `status` and a `playbackId`. This is particularly useful for retrieving specific media details when managing large content libraries.
-
-
-
- #### How it works
-
- 1. Send a GET request to this endpoint. Use the `` you received after uploading the media file.
-
- 2. The response includes details about the media:
- - **status** – Indicates whether the media is still *Processing* or has transitioned to *Ready*.
- - **playbackId** – A unique identifier that allows you to stream the media once it is *Ready*.
- You can construct the stream URL as follows:
- `https://stream.fastpix.com/.m3u8`
-
- #### Example
-
- If your platform provides users with a dashboard to manage uploaded content, a user might want to check whether a video has finished processing and is ready for playback. You can use the media ID to retrieve the information from FastPix and display it in the user’s dashboard.
- operationId: get-media
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- responses:
- "200":
- description: Get a video media by id
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/GetMediaResponse"
- example:
- success: true
- data:
- thumbnail: https://images.fastpix.com/837f028b-dcaf-4c23-b368-3748641f74ac/thumbnail.png
- id: cfeec1a3-6cbd-40df-a425-2ed7f8f72ced
- workspaceId: 6dc2b4e0-0615-42fd-a580-1f4aad932dfe
- metadata:
- key1: value1
- mediaQuality: standard
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- mp4Support: capped_4k
- sourceAccess: false
- playbackIds:
- - id: 837f028b-dcaf-4c23-b368-3748641f74ac
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: f301a2a1-b40d-40fa-b419-4d0cd92a62f8
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- isAudioOnly: false
- subtitleAvailable: true
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2025-01-09T06:44:44.617138Z"
- updatedAt: "2025-01-09T06:44:53.742648Z"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- patch:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Update a media by ID
- description: |
- This endpoint allows you to update specific parameters of an existing media file. You can modify the key-value pairs of the metadata that were provided in the payload during the creation of media from a URL or when uploading the media directly from device.
-
-
- #### How it works
-
- 1. Make a PATCH request to this endpoint. Replace `` with the unique ID (`uploadId` or `id`) of the media you received after uploading to FastPix
-
- 2. Include the updated parameters in the request body.
-
- 3. The response returns the updated media data, confirming the changes.
-
- 4. Monitor the video.media.updated webhook event to track the update status in your system.
-
- #### Example
- If a user uploads a video and later needs to change the title, add a new description, or update tags, you can use this endpoint to update the media metadata without re-uploading the entire video.
- operationId: updated-media
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- example:
- metadata:
- user: fastpix_admin
- title: test title
- creatorId: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- schema:
- type: object
- properties:
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- user: fastpix_admin
- default:
- user: fastpix_admin
- title:
- type: string
- maxLength: 255
- example: My Video Title
- default: My Video Title
- description: Title of the media file.
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- default: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- responses:
- "200":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/Update-Media"
- example:
- success: true
- data:
- thumbnail: https://images.fastpix.com/837f028b-dcaf-4c23-b368-3748641f74ac/thumbnail.png
- id: cfeec1a3-6cbd-40df-a425-2ed7f8f72ced
- workspaceId: 6dc2b4e0-0615-42fd-a580-1f4aad932dfe
- metadata:
- user: fastpix_admin
- mediaQuality: standard
- creatorId: fastpix-123
- title: Test-Video-Title
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- sourceAccess: false
- playbackIds:
- - id: 837f028b-dcaf-4c23-b368-3748641f74ac
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: f301a2a1-b40d-40fa-b419-4d0cd92a62f8
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- generatedSubtitles: []
- isAudioOnly: false
- subtitleAvailable: true
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2025-01-09T06:44:44.617138Z"
- updatedAt: "2025-01-09T06:44:53.742648Z"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Delete a media by ID
- operationId: delete-media
- description: |
- This endpoint allows you to permanently delete a a specific video or audio media file along with all associated data. If you wish to remove a media from FastPix storage, use this endpoint with the `mediaId` (either `uploadId` or `id`) received during the media's creation or upload.
-
-
- #### How it works
-
-
- 1. Send a DELETE request to this endpoint. Replace `` with the `uploadId` or the `id` of the media you want to delete.
-
- 2. This action is irreversible. Make sure you no longer need the media before proceeding. Once deleted, the media can’t be retrieved or played back.
-
- 3. Monitor the following webhook event: video.media.deleted
-
- #### Example
- A user on a video-sharing platform decides to remove an old video from their profile, or suppose you're running a content moderation system, and one of the videos uploaded by a user violates your platform's policies. Using this endpoint, the media is permanently deleted from your library, ensuring it's no longer accessible or viewable by other users.
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- responses:
- "200":
- description: Delete a video media
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- example:
- success: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/tracks:
- post:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Add audio / subtitle track
- description: |
- This endpoint allows you to add an audio or subtitle track to an existing media file using its `mediaId`. You need to provide the track `url` along with its `type` (audio or subtitle), `languageName` and `languageCode` in the request payload.
-
-
- #### How it works
-
- 1. Send a POST request to this endpoint, replacing `{mediaId}` with the media ID (`uploadId` or `id`).
-
- 2. Provide the necessary details in the request body.
-
- 3. Receive a response containing a unique track ID and the details of the newly added track.
-
-
- #### Webhook events
-
- 1. After successfully adding a track, your system must receive the webhook event video.media.track.created.
-
- 2. Once the track is processed and ready, you must receive the webhook event video.media.track.ready.
-
- 3. Finally, an update event video.media.updated must notify your system about the media's updated status.
-
-
- #### Example
- Suppose you have a video uploaded to the FastPix platform, and you want to add an Italian audio track to it. By calling this API, you can attach an external audio file (https://static.fastpix.com/music-1.mp3) to the media file. Similarly, if you need to add subtitles in different languages, you can specify type: `subtitle` with the corresponding subtitle `url`, `languageCode` and `languageName`.
-
- Related guides: Add own subtitle tracks, Add own audio tracks
- operationId: Add-media-track
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - tracks
- properties:
- tracks:
- $ref: "#/components/schemas/AddTrackRequest"
- example:
- tracks:
- url: https://static.fastpix.com/music-1.mp3
- type: audio
- languageCode: it
- languageName: Italian
- responses:
- "201":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/AddTrackResponse"
- example:
- success: true
- data:
- id: ace60fc7-e876-4fc6-b9d9-c33fa242f84b
- type: audio
- url: https://static.fastpix.com/music-1.mp3
- languageCode: it
- languageName: Italian
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/upload/{uploadId}/cancel:
- put:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Cancel ongoing upload
- operationId: cancel-upload
- description: |
- This endpoint allows you to cancel ongoing upload by its `uploadId`. Once cancelled, the upload is marked as cancelled. Use this if a user aborts an upload or if you want to programmatically stop an in-progress upload.
-
- #### How it works
-
- 1. Make a PUT request to this endpoint, replacing `{uploadId}` with the unique upload ID received after starting the upload.
- 2. The response confirms the cancellation and provide the status of the upload.
-
- #### Webhook Events
-
- Once the upload is cancelled, you must receive the webhook event video.media.upload.cancelled.
-
- #### Example
-
- Suppose a user starts uploading a large video file but decides to cancel before completion. By calling this API, you can immediately stop the upload and free up resources.
- parameters:
- - in: path
- name: uploadId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: When uploading the media, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
- responses:
- "200":
- description: Upload cancelled successfully
- content:
- application/json:
- schema:
- type: object
- required:
- - success
- - data
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/MediaCancelResponse"
- example:
- success: true
- data:
- uploadId: beff5537-de85-42e1-a673-2a405cd94177
- trial: false
- status: cancelled
- url: https://storage.googleapis.com/uploads-fp-asia/338acdeb-29d4-438b-a40c-1d4105134462/26b1a17d-4b0b-44f8-96b8-cc33cabc962e?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=fp-prod@fastpix-vms.iam.gserviceaccount.com/20250716/auto/storage/goog4_request&X-Goog-Date=20250716T132746Z&X-Goog-Expires=14400&X-Goog-SignedHeaders=host;x-goog-resumable&X-Goog-Signature=4eb42c38711d915f2b6792edacc48ed79bde9f02f829a084dfe09830e6d0e5ec50f2f3157964ed7e32d44b02e3967bf2e0ffeb7ca9335d65ae15b3ac33c7cb40ec710939c4a12202b749bdb4e3f7af8aba2746b41a642130280a372e4615e9773cea98f231388c9fde385f96142ffa901a900949e305c7d5b4c82590c3493aaf60ac5424d4f112fbf4120b7891adf9a7e17968328cd1128fe7b6f55447d15b562624a8e7539824d10e808a729906ac6fe8b2f561424f3e0db14eecad6e21f4f18513519a975c2c50e8304a5a723723e32aa9ac659d9b9875a85f29f007d57bb69c49b5ff9099e5a9834db7199e73ca01cf0dd85cae599203d3180fa27cfdd08d&upload_id=ABgVH88kcXwWvPOlER2G4UvAnrdQw80h_nfjMqwL-jFe6wpLvfBifpBtlnvPtN2BQQTOWggTpKAQ6uGHIJLDp1LHo2g1eePyfjqNi3oRiwxOBU8
- timeout: 14400
- corsOrigin: "*"
- maxResolution: 1080p
- accessPolicy: public
- metadata:
- key1: value1
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/tracks/{trackId}:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Update audio / subtitle track
- description: |
- This endpoint allows you to update an existing audio or subtitle track associated with a media file. When updating a track, you must provide the new track `url`, `languageName`, and `languageCode`, ensuring all three parameters are included in the request.
-
-
- #### How it works
-
- 1. Send a PATCH request to this endpoint, replacing `{mediaId}` with the media ID, and `{trackId}` with the ID of the track you want to update.
-
- 2. Provide the necessary details in the request body.
-
- 3. Receive a response confirming the track update.
-
- #### Webhook Events
-
- After updating a track, your system must receive webhook notifications:
-
- 1. After successfully updating a track, your system must receive the webhook event video.media.track.updated.
-
- 2. Once the new track is processed and ready, you must receive the webhook event video.media.track.ready.
-
- 3. Once the media file is updated with the new track details, a video.media.updated event must be triggered.
-
-
- #### Example
- Suppose you previously added a French subtitle track to a video but now need to update it with a different file. By calling this API, you can replace the existing subtitle file (.vtt) with a new one while keeping the same track ID. This is useful when:
-
- - The original track file has errors and needs correction.
- - You want to improve subtitle translations or replace an audio track with a better-quality version.
-
- Related guides: Add own subtitle tracks, Add own audio tracks
- operationId: update-media-track
- parameters:
- - in: path
- name: trackId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/UpdateTrackRequest"
- example:
- url: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- languageCode: fr
- languageName: french
- responses:
- "200":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/UpdateTrackResponse"
- example:
- success: true
- data:
- id: 2452ca23-b7ed-4daf-babf-841996b0100e
- type: subtitle
- url: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- languageCode: fr
- languageName: french
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Delete audio / subtitle track
- operationId: delete-media-track
- description: |
- This endpoint allows you to delete an existing audio or subtitle track from a media file. Once deleted, the track must no longer be available for playback.
-
-
- #### How it works
-
-
- 1. Send a DELETE request to this endpoint, replacing `{mediaId}` with the media ID, and `{trackId}` with the ID of the track you want to remove.
-
- 2. The track gets deleted from the media file, and you must receive a confirmation response.
-
- #### Webhook events
-
- 1. After successfully deleting a track, your system must receive the webhook event **video.media.track.deleted**.
-
- 2. Once the media file is updated to reflect the track removal, a video.media.updated event must be triggered.
-
-
- #### Example
- Suppose you uploaded an audio track in Italian for a video but later realize it's incorrect or no longer needed. By calling this API, you can remove the specific track while keeping the rest of the media file unchanged. This is useful when:
-
- - A track was mistakenly added and needs to be removed.
- - The content owner requests the removal of a specific subtitle or audio track.
- - A new version of the track gets uploaded to replace the existing one.
-
- Related guides: Add own subtitle tracks, Add own audio tracks
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: trackId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- responses:
- "200":
- description: Delete a video media
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- example:
- success: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/tracks/{trackId}/generate-subtitles:
- post:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Generate track subtitle
- description: |
- This endpoint allows you to generate subtitles for an existing audio track in a media file. By calling this API, you can generate subtitles automatically using speech recognition
-
- #### How it works
-
- 1. Send a `POST` request to this endpoint, replacing `{mediaId}` with the media ID and `{trackId}` with the track ID.
-
- 2. Provide the necessary details in the request body, including the languageName and languageCode.
-
- 3. You receive a response containing a unique subtitle track ID and its details.
-
- #### Webhook Events
-
- 1. After the subtitle track is generated and ready, you receive the webhook event video.media.subtitle.generated.ready.
-
- 2. Finally the video.media.updated event notifies your system about the media’s updated status.
-
- Related guide: Add auto-generated subtitles
- operationId: Generate-subtitle-track
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: trackId
- required: true
- schema:
- type: string
- format: uuid
- example: d46f5df9-1a8f-4f0a-b56e-9f5b5d5b9e21
- description: A universally unique identifier (UUID) assigned to the specific track for which subtitles must be generated.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/TrackSubtitlesGenerateRequest"
- example:
- languageCode: it
- languageName: Italian
- responses:
- "200":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Demonstrates whether the request is successful or not.
- data:
- $ref: "#/components/schemas/GenerateTrackResponse"
- example:
- success: true
- data:
- id: ace60fc7-e876-4fc6-b9d9-c33fa242f84b
- type: subtitle
- languageCode: it
- languageName: Italian
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/summary:
- patch:
- security:
- - BasicAuth: []
- tags:
- - In-video AI features
- summary: Generate video summary
- description: |
- This endpoint allows you to generate the summary for an existing media.
-
- #### How it works
- 1. Send a `PATCH` request to this endpoint, replacing `` with the ID of the media you want to summarize.
- 2. Include the `generate` parameter in the request body.
- 3. Include the `summaryLength` parameter, specify the desired length of the summary in words (for example, 120 words), this determines how concise or detailed the summary will be. If no specific summary length is provided, the default length will be 100 words.
- 4. The response includes the updated media data and confirmation of the changes applied.
-
- You can use the video.mediaAI.summary.ready webhook event to track and notify about the summary generation.
-
-
-
-
-
- **Use case**: This is particularly useful when a user uploads a video and later chooses to generate a summary without needing to re-upload the video.
-
- Related guide: Video summary
- operationId: update-media-summary
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- generate:
- type: boolean
- example: true
- description: |
- Enable or disable the summary feature for the media. Set to true to enable summary or false to disable.
- summaryLength:
- type: integer
- example: 100
- default: 100
- maximum: 250
- minimum: 30
- description: |
- Specifies the desired word count for the generated summary.
- - The value must be between **30** and **250** words.
- required:
- - generate
- example:
- generate: true
- summaryLength: 100
- responses:
- "200":
- description: Media details updated successfully with the generated summary
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/SummaryResponse"
- example:
- success: true
- data:
- mediaId: c695988b-ff84-42ae-bb21-10f284fedb0e
- isSummaryEnabled: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get the summary of a video
- description: |
- This endpoint returns the generated summary of a video.
-
- The summary is created using the **InVideo Summary** feature, which processes the video content and produces a textual summary.
-
- To use this endpoint, you must first generate the video summary using the Generate Video Summary endpoint. This endpoint can return the summary only after that process is complete.
-
- Typical use cases include:
- - Providing viewers with a quick preview of the video's main content.
- - Enabling search or recommendation systems to surface summarized insights.
- - Supporting accessibility and content discovery without requiring users to watch the full video.
-
- If the summary has not been generated or the feature is disabled for the requested media, the endpoint returns an error indicating that the summary is unavailable.
-
- operationId: get-media-summary
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: fc733e3f-2fba-4c3d-9388-2511dc50d15f
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
-
- responses:
- "200":
- description: Get media summary
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: string
- example: "Grandmaster Igor Spirinov introduces the Kutch Gambit, an effective chess opening for players rated below 1500. He emphasizes quick development and pressure on the opponent, particularly targeting the f7 pawn. The gambit forces opponents to play precisely, as common moves can lead to quick defeats. Spirinov outlines various responses from Black, highlighting tactical opportunities for White, including sacrifices and double checks that can lead to checkmate. He also discusses strategies for handling more experienced opponents and emphasizes the importance of maintaining a strong position and advancing pawns in the middle game. A special training bundle is offered for players seeking improvement."
- description: The summary of the particular video.
-
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/chapters:
- patch:
- security:
- - BasicAuth: []
- tags:
- - In-video AI features
- summary: Generate video chapters
- description: |
- This endpoint enables you to generate chapters for an existing media file.
-
- #### How it works
- 1. Make a `PATCH` request to this endpoint, replacing `` with the ID of the media for which you want to generate chapters.
- 2. Include the `chapters` parameter in the request body to enable.
- 3. The response contains the updated media data, confirming the changes made.
-
- You can use the video.mediaAI.chapters.ready webhook event to track and notify about the chapters generation.
-
- **Use case:** This is particularly useful when a user uploads a video and later decides to enable chapters without re-uploading the entire video.
-
- Related guide: Video chapters
- operationId: update-media-chapters
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- chapters:
- type: boolean
- example: true
- default: true
- description: |
- Enable or disable the chapters feature for the media. Set to `true` to enable chapters or `false` to disable.
- required:
- - chapters
- example:
- chapters: true
- responses:
- "200":
- description: Media details updated successfully with the chapters feature enabled or disabled
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/ChaptersResponse"
- example:
- success: true
- data:
- mediaId: c695988b-ff84-42ae-bb21-10f284fedb0e
- isChaptersEnabled: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/named-entities:
- patch:
- security:
- - BasicAuth: []
- tags:
- - In-video AI features
- summary: Generate named entities
- description: |
- This endpoint allows you to extract named entities from an existing media.
- Named Entity Recognition (NER) is a fundamental natural language processing (NLP) technique that identifies and classifies key information (entities) in text into predefined categories. For instance:
-
- - Organizations (for example, "Microsoft", "United Nations")
- - Locations (for example, "Paris", "Mount Everest")
- - Product names (for example, "iPhone", "Coca-Cola")
-
- #### How it works
- 1. Make a PATCH request to this endpoint, replacing `` with the ID of the media you want to extract named-entities.
- 2. Include the `namedEntities` parameter in the request body to enable.
- 3. Receive a response containing the updated media data, confirming the changes made.
-
- You can use the video.mediaAI.named-entities.ready webhook event to track and notify about the named entities extraction.
-
- **Use case:** If a user uploads a video and later decides to enable named entity extraction without re-uploading the entire video.
-
- Related guide: Named entities
- operationId: update-media-named-entities
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 0cec3c88-c69d-4232-9b96-f0976327fa2d
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- namedEntities:
- type: boolean
- example: true
- description: |
- Enable or disable named entity extraction. Set to `true` to enable or `false` to disable.
- required:
- - namedEntities
- example:
- namedEntities: true
- responses:
- "200":
- description: Media details updated successfully with the named entity extraction feature enabled or disabled
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Indicates if the request was successful or not.
- data:
- $ref: "#/components/schemas/NamedEntitiesResponse"
- example:
- success: true
- data:
- mediaId: c695988b-ff84-42ae-bb21-10f284fedb0e
- isNamedEntitiesEnabled: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/moderation:
- patch:
- security:
- - BasicAuth: []
- tags:
- - In-video AI features
- summary: Enable video moderation
- description: |
- This endpoint enables moderation features, such as NSFW and profanity filtering, to detect inappropriate content in existing media.
-
- #### How it works
- 1. Make a `PATCH` request to this endpoint, replacing `` with the ID of the media you want to update.
- 2. Include the `moderation` object and provide the requried `type` parameter in the request body to specify the media type (for example, video/audio/av).
- 4. The response contains the updated media data, confirming the changes made.
-
- You can use the video.mediaAI.moderation.ready webhook event to track and notify about the detected moderation results.
-
- **Use case:** This is particularly useful when a user uploads a video and later decides to enable moderation detection without the need to re-upload it.
-
- Related guide: Moderate NSFW & Profanity
- operationId: update-media-moderation
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 0cec3c88-c69d-4232-9b96-f0976327fa2d
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- moderation:
- type: object
- properties:
- type:
- $ref: "#/components/schemas/MediaType"
- description: |
- Defines the type of input. Possible values include video, audio, av.
- example:
- moderation:
- type: video
-
- responses:
- "200":
- description: Media details updated successfully with the named entity extraction feature enabled or disabled
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/ModerationResponse"
- example:
- success: true
- data:
- mediaId: c695988b-ff84-42ae-bb21-10f284fedb0e
- isModerationEnabled: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/source-access:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Update the source access of a media by ID
- description: |
- This endpoint allows you to update the `sourceAccess` setting of an existing media file. The `sourceAccess` parameter determines whether the original media file is accessible or restricted. Setting this to `true` enables access to the media source, while setting it to `false` restricts access.
-
- #### How it works
-
- 1. Make a `PATCH` request to this endpoint, replacing `{mediaId}` with the ID of the media you want to update.
-
- 2. Include the updated `sourceAccess` parameter in the request body.
-
- 3. You receive a response confirming the update to the media’s source access status.
- 4. Webhook events: video.media.source.ready, video.media.source.deleted
- operationId: updated-source-access
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- sourceAccess:
- type: boolean
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- required:
- - sourceAccess
- example:
- sourceAccess: true
- responses:
- "200":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/sourceAccessMedia"
- example:
- success: true
- data:
- thumbnail: https://venus-images.fastpix.dev/cf41c9f7-ece3-4efe-8d31-c6e000dc422b/thumbnail.png
- id: eb56a668-0354-40c2-9233-f3197e1baabd
- workspaceId: c788be40-91a5-4d2d-abf7-47398a6276a1
- metadata:
- key1: value1
- mediaQuality: standard
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- sourceAccess: true
- playbackIds:
- - id: cf41c9f7-ece3-4efe-8d31-c6e000dc422b
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: 344fd5bc-82af-4d11-bc1c-785d9e6f9aef
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- generatedSubtitles: []
- isAudioOnly: false
- subtitleAvailable: false
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2024-12-06T03:47:26.489888Z"
- updatedAt: "2024-12-06T03:47:47.593400Z"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/update-mp4Support:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Update the mp4Support of a media by ID
- description: |
- This endpoint allows you to update the `mp4Support` setting of an existing media file using its media ID. You can specify the MP4 support level, such as `none`, `capped_4k`, `audioOnly`, or a combination of `audioOnly`, `capped_4k`, in the request payload.
-
- #### How it works
-
- 1. Send a PATCH request to this endpoint, replacing `{mediaId}` with the media ID.
-
- 2. Provide the desired `mp4Support` value in the request body.
-
- 3. You receive a response confirming the update, including the media’s updated MP4 support status.
-
- #### MP4 Support Options
-
- - `none` – MP4 support is disabled for this media.
-
- - `capped_4k` – Generates MP4 renditions up to 4K resolution.
-
- - `audioOnly` – Generates an M4A file that contains only the audio track.
-
- - `audioOnly,capped_4k` – Generates both an audio-only M4A file and MP4 renditions up to 4K resolution.
-
- #### Webhook events
-
- - video.media.mp4Support.ready – Triggered when the MP4 support setting is successfully updated.
-
- #### Example
- Suppose you have a video uploaded to the FastPix platform, and you want to allow users to download the video in MP4 format. By setting "mp4Support": "capped_4k", the system generates an MP4 rendition of the video up to 4K resolution, making it available for download through the stream URL(`https://stream.fastpix.com/{playbackId}/{capped-4k.mp4 | audio.m4a}`). If you want users to stream only the audio from the media file, you can set "mp4Support": "audioOnly". This provides an audio-only stream URL that allows users to listen to the media without video. By setting "mp4Support": "audioOnly,capped_4k", both options are enabled. Users can download the MP4 video and also stream just the audio version of the media.
-
-
- Related guide: Use MP4 support for offline viewing
- operationId: updated-mp4Support
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: |
- The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - mp4Support
- properties:
- mp4Support:
- type: string
- example: capped_4k
- default: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: >
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- example:
- mp4Support: capped_4k
-
- responses:
- "200":
- description: Media details updated successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/Media"
- example:
- success: true
- data:
- thumbnail: https://venus-images.fastpix.dev/cf41c9f7-ece3-4efe-8d31-c6e000dc422b/thumbnail.png
- id: eb56a668-0354-40c2-9233-f3197e1baabd
- workspaceId: c788be40-91a5-4d2d-abf7-47398a6276a1
- metadata:
- key1: value1
- mediaQuality: standard
- maxResolution: 1080p
- sourceResolution: 1080p
- status: Ready
- mp4Support: capped_4k
- sourceAccess: true
- playbackIds:
- - id: cf41c9f7-ece3-4efe-8d31-c6e000dc422b
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- tracks:
- - id: 344fd5bc-82af-4d11-bc1c-785d9e6f9aef
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- generatedSubtitles: []
- isAudioOnly: false
- subtitleAvailable: false
- duration: "00:00:10"
- aspectRatio: "16:9"
- createdAt: "2024-12-06T03:47:26.489888Z"
- updatedAt: "2024-12-06T03:47:47.593400Z"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/input-info:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get info of media inputs
- operationId: retrieveMediaInputInfo
- description: |
- This endpoint lets you retrieve detailed information about the media inputs associated with a specific media item. You can use it to verify the media file’s input URL, track its creation status, and check its container format. You must provide the mediaId (either the uploadId or the id) to fetch this information.
-
-
- #### How it works
-
- Upon making a `GET` request with the mediaId, FastPix returns a response with:
-
- * The public storage input `url` of the uploaded media file.
-
- * Information about the media’s video and audio tracks, including whether they were successfully created.
-
- * The container format of the uploaded media file (for example, MP4, MKV).
-
- This endpoint is particularly useful for ensuring that all necessary tracks (video and audio) have been correctly associated with the media during the upload or media creation process.
- parameters:
- - in: path
- name: mediaId
- description: Pass the list of the input objects used to create the media, along with applied settings.
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- responses:
- "200":
- description: Get video media input information
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- description: Displays the result of the request.
- properties:
- configuration:
- type: object
- description: Represents configuration details for the media.
- properties:
- url:
- type: string
- example: https://static.fastpix.com/fp-sample-video.mp4
- description: >
- The URL hosting the media file to be downloaded and processed by FastPix.
- Supports formats like MP4, MOV, MKV, TS, MP3, and text tracks (SRT/VTT).
- Using standard formats ensures optimal processing speed.
- file:
- type: object
- description: Contains metadata and structural details about the media file.
- properties:
- containerFormat:
- type: string
- example: mp4
- description: Specifies the container format that encapsulates audio, video, subtitles, and metadata.
- tracks:
- type: array
- description: A list of all media tracks including video, audio, and subtitles.
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- example:
- success: true
- data:
- configuration:
- url: https://static.fastpix.com/fp-sample-video.mp4
- file:
- containerFormat: mp4
- tracks:
- - id: 6eb56a83-9a8b-47a5-94b2-cadb4458cf4d
- type: video
- width: 1280
- height: 720
- frameRate: "30/1"
- status: available
-
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/playback-ids:
- post:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Create a playback ID
- description: |
- You can create a new playback ID for a specific media asset. If you have already retrieved an existing `playbackId` using the Get Media by ID endpoint for a media asset, you can use this endpoint to generate a new playback ID with a specified access policy.
-
-
-
- If you want to create a private playback ID for a media asset that already has a public playback ID, this endpoint also allows you to do so by specifying the desired access policy.
-
- #### How it works
-
- 1. Make a `POST` request to this endpoint, replacing `` with the `uploadId` or `id` of the media asset.
-
- 2. Include the `accessPolicy` in the request body with `private` or `public` as the value.
-
- 3. You receive a response containing the newly created playback ID with the specified access level.
-
-
- #### Example
- A video streaming service generates playback IDs for each media file when users request to view specific content. The video player then uses the playback ID to stream the video.
- operationId: create-media-playback-id
- parameters:
- - in: path
- name: mediaId
- required: true
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- schema:
- type: string
- format: uuid
- example: dbb8a39a-e4a5-4120-9f22-22f603f1446e
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- requestBody:
- required: true
- description: Request body for creating playback id for an media
- content:
- application/json:
- schema:
- type: object
- required:
- - accessPolicy
- properties:
- accessPolicy:
- $ref: "#/components/schemas/AccessPolicy"
- accessRestrictions:
- type: object
- properties:
- domains:
- $ref: "#/components/schemas/DomainRestrictions"
- userAgents:
- $ref: "#/components/schemas/UserAgentRestrictions"
- drmConfigurationId:
- type: string
- format: uuid
- description: DRM configuration ID (required if accessPolicy is "drm")
- example: 123e4567-e89b-12d3-a456-426614174000
- resolution:
- type: string
- enum:
- - 480p
- - 720p
- - 1080p
- - 1440p
- - 2160p
- description: The maximum resolution for the playback ID.
- example: 1080p
- responses:
- "201":
- description: Playback ID for a media content.
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/CreatePlaybackId"
- example:
- success: true
- data:
- id: b331e0d8-bef4-4ad2-8760-757fdb2818b7
- accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- resolution: 1080p
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
-
- get:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Get all playback IDs details for a media
- description: |
- Retrieves all playback IDs associated with a given media asset, including each playback ID’s access policy and detailed access restrictions such as allowed or denied domains and user agents.
-
- **How it works:**
- 1. Send a `GET` request to this endpoint with the target `mediaId`.
- 2. The response includes an array of playback ID records with their respective access controls.
-
- **Use case:**
- Useful for validating and managing playback permissions programmatically, reviewing restriction settings, or powering an access control dashboard.
-
- operationId: list-playback-ids
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 5455b8db-79c7-438e-83b9-c440980214c3
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- responses:
- "200":
- description: Successfully retrieved playback IDs and their restrictions
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 54fd5e7e-3aa5-4817-b56d-44932f67f6c3
- description: Unique identifier of the playback ID.
- accessPolicy:
- type: string
- enum:
- - public
- - private
- - drm
- example: drm
- description: The access policy set for the playback ID.
- accessRestrictions:
- type: object
- description: Restrictions applied to this playback ID.
- properties:
- domains:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: allow
- allow:
- type: array
- items:
- type: string
- example: ["example.com", "trustedsite.org"]
- deny:
- type: array
- items:
- type: string
- example: ["malicioussite.com", "abc.net"]
- userAgents:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: deny
- allow:
- type: array
- items:
- type: string
- example:
- - Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36
- deny:
- type: array
- items:
- type: string
- example:
- - PostmanRuntime/7.29.0
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
-
- delete:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Delete a playback ID
- description: |
- This endpoint deletes a specific playback ID associated with a media asset. Deleting a `playback ID` revokes access to the media content linked to that ID.
-
-
- #### How it works
-
- 1. Make a `DELETE` request to this endpoint, replacing `` with the unique ID of the media asset from which you want to delete the playback ID.
-
- 2. Include the `playbackId` you want to delete in the request body.
-
- #### Example
-
- Your platform offers limited-time access to premium content. When the subscription expires, you can revoke access to the content by deleting the associated playback ID, preventing users from streaming the video further.
- operationId: delete-media-playback-id
- parameters:
- - in: path
- name: mediaId
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- required: true
- schema:
- type: string
- format: uuid
- example: dbb8a39a-e4a5-4120-9f22-22f603f1446e
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: query
- name: playbackId
- description: "Return the universal unique identifier for playbacks which can contain a maximum of 255 characters. "
- required: true
- schema:
- type: string
- example: dbb8a39a-e4a5-4120-9f22-22f603f1446e
- format: uuid
- description: when creating the plyabackIds, FastPix assigns a universal unique identifier with a maximum of 255 characters.
- responses:
- "200":
- description: Deleted a Playback Id successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- example:
- success: true
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/upload:
- post:
- security:
- - BasicAuth: []
- tags:
- - Input video
- summary: Upload media from device
- operationId: direct-upload-video-media
- description: |
- This endpoint enables accelerated uploads of large media files directly from your local device to FastPix for processing and storage.
-
- > **NOTE**
- >
- > This version now supports uploads with no file size limitations and offers faster uploads. The previous endpoint (which had a 500MB size limit) is now deprecated. You can find details in the [changelog](https://fastpix.com/docs/changelog/api-update-direct-upload-media-from-device).
-
- #### How it works
-
- 1. Send a POST request to this endpoint with optional media settings.
-
- 2. The response includes an `uploadId` and a signed `url` for direct video file upload.
-
- 3. Upload your video file to the provided url by making a PUT request. The API accepts the media file from your device and uploads it to the FastPix platform. (Refer to Step 3: Initiate the upload for complete instructions.)
-
-
- 4. Once uploaded, the media undergoes processing and is assigned a unique ID for tracking. Retain this `uploadId` for any future operations related to this upload.
-
-
-
- After uploading, you can use the Get Media by ID endpoint to check the status of the uploaded media asset and see if it has transitioned to a `Ready` status for playback.
-
- To notify your application about the status of this API request check for the webhooks for media related events.
-
-
- #### Example
-
- A social media platform allows users to upload video content directly from their phones or computers. This endpoint facilitates the upload process. For example, if you are developing a video-sharing app where users can upload short clips from their mobile devices, this endpoint enables them to select a video, upload it to the platform.
-
- Related guide: Upload videos directly
- requestBody:
- required: true
- description: Request body for direct upload
- content:
- application/json:
- schema:
- type: object
- required:
- - corsOrigin
- properties:
- corsOrigin:
- type: string
- example: "*"
- default: "*"
- description: Upload media directly from a device using the URL name or enter "*" to allow all.
- pushMediaSettings:
- title: Push Media Settings
- type: object
- required:
- - accessPolicy
- description: |
- Configuration settings for uploading and processing media on the FastPix platform.
- These settings define how the uploaded video is handled, including access control, resolution, DRM, and optional metadata.
- For a complete explanation of how media uploads and processing work, refer to the
- FastPix Video on Demand Overview.
- properties:
- accessPolicy:
- type: string
- example: public
- default: public
- enum:
- - public
- - private
- - drm
- description: Determines if access to the streamed content is kept private, drm or available to all.
- startTime:
- type: number
- example: "0"
- description: Start time indicates where encoding must begin within the video file, in seconds.
- endTime:
- type: number
- example: "60"
- description: End time indicates where encoding must end within the video file, in seconds.
- inputs:
- type: array
- description: >
- Add one input object at a time. For example, first add a **WatermarkInput** object.
- If you also need a audio, click **Add item** again and select **AudioInput**.
- Repeat this process for **SubtitleInput** as needed.
- items:
- anyOf:
- - $ref: "#/components/schemas/VideoInput"
- - $ref: "#/components/schemas/WatermarkInput"
- - $ref: "#/components/schemas/AudioInput"
- - $ref: "#/components/schemas/SubtitleInput"
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- default:
- key1: value1
- description: |
- "Tag a video in "key" : "value" pairs for searchable metadata. Maximum 10 entries, 255 characters each."
- drmConfigurationId:
- type: string
- format: uuid
- description: UUID of the DRM configuration to be used.
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- title:
- type: string
- maxLength: 255
- example: My Video Title
- description: Title of the media file.
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- subtitles:
- type: object
- description: |
- Generates subtitle files for audio/video files.
- properties:
- languageName:
- type: string
- example: english
- description: Name of the language for the subtitles.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- "Tag a video in "key" : "value" pairs for searchable metadata. Maximum 10 entries, 255 characters each."
- languageCode:
- type: string
- example: en
- enum:
- - en
- - it
- - pl
- - es
- - fr
- - ru
- - nl
- description: |
- Language codes (BCP 47 compliant) used for text files.
- optimizeAudio:
- type: boolean
- example: true
- description: |
- Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: |
- Determines the highest quality resolution available.
- mediaQuality:
- type: string
- example: standard
- default: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- sourceAccess:
- type: boolean
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Generates MP4 video up to 4K ("capped_4k"), m4a audio only ("audioOnly"), or both for offline viewing.
- summary:
- type: object
- properties:
- generate:
- type: boolean
- example: true
- description: |
- Enable or disable the summary feature for the media. Set to true to enable summary or false to disable.
- summaryLength:
- type: integer
- example: 100
- maximum: 250
- minimum: 30
- description: |
- Specifies the desired word count for the generated summary.
- - The value must be between **30** and **250** words.
- chapters:
- type: boolean
- example: true
- description: |
- Enable or disable the chapters feature for the media. Set to `true` to enable chapters or `false` to disable.
- namedEntities:
- type: boolean
- example: true
- description: |
- Enable or disable named entity extraction. Set to `true` to enable or `false` to disable.
- moderation:
- type: object
- properties:
- type:
- type: string
- example: video
- enum:
- - video
- - audio
- - av
- description: |
- Defines the type of input. Possible values include video, audio, av.
- accessRestrictions:
- type: object
- properties:
- domains:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- description: |
- Specifies the default access policy for domains.
- If set to `allow`, all domains are allowed access unless otherwise specified in the `deny` list.
- If set to `deny`, all domains are denied access unless otherwise specified in the `allow` list.
- allow:
- type: array
- items:
- type: string
- example:
- - example.com
- - trustedsite.org
- description: |
- A list of domain names or patterns that are explicitly allowed access.
- This list is only effective when the `defaultPolicy` is set to `deny`.
- deny:
- type: array
- items:
- type: string
- example:
- - malicioussite.com
- - spamdomain.net
- description: |
- A list of domain names or patterns that are explicitly denied access.
- This list is only effective when the `defaultPolicy` is set to `allow`.
- userAgents:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- description: |
- Specifies the default access policy for user agents (browsers, bots, etc.).
- If set to `allow`, all user agents are allowed access unless otherwise specified in the `deny` list.
- If set to `deny`, all user agents are denied access unless otherwise specified in the `allow` list.
- allow:
- type: array
- items:
- type: string
- example:
- - Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36
- - curl/7.68.0
- description: |
- A list of user agents (identified by string names or patterns) that are explicitly allowed access.
- This list is only effective when the `defaultPolicy` is set to `deny`.
- deny:
- type: array
- items:
- type: string
- example:
- - Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
- - PostmanRuntime/7.29.0
- description: |
- A list of user agents (identified by string names or patterns) that are explicitly denied access.
- This list is only effective when the `defaultPolicy` is set to `allow`.
- example:
- corsOrigin: "*"
- pushMediaSettings:
- metadata:
- key1: value1
- accessPolicy: public
- maxResolution: 1080p
- mediaQuality: standard
- responses:
- "201":
- description: Direct upload created successfully
- content:
- application/json:
- schema:
- type: object
- required:
- - success
- - data
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/DirectUpload"
- example:
- success: true
- data:
- uploadId: beff5537-de85-42e1-a673-2a405cd94177
- trial: false
- status: waiting
- url: https://storage.googleapis.com/fastpix-uploads-us/8a5ab157-c586-458a-bb2e-caa8a8b76a19/4190bbde-4c34-41e4-b70e-90ba2aa0b79e?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=dev-staging-pub-sub%40fastpix-vms.iam.gserviceaccount.com%2F20250708%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250708T071545Z&X-Goog-Expires=14400&X-Goog-SignedHeaders=host%3Bx-goog-resumable&X-Goog-Signature=7be4a17c181b222f5f70e5156843585dc2a9769d61126d77c7b83413a97256cbb8214aa09a8977ce09c1023148ef0f1f42265ddc436df29e66e00e76fbbed13b01e01bc95d15aa65aef695ef7556a306fad5cdc8bf81049ac17e8e95dd95dc80bac3ca684c584dc7a23494f3b29c2dfe9c039a5152d66dddb603c20409d0fda685981b3dfe0f8e0f34fc983d444fce9bbe0dda750a3eb756d1e2887ffa1aef242f208b157988c5fc5f68aa574dd1ef401162f150bc8d5218156d9655c368b359ad5b12c96d2e69654d4da87f34c4df9f22613cdd88357c448aa1f340e11e482e53156bc18a256e4dcf2b37a0ee875c9c941f978ab660637acfc3ccddb37628e8
- timeout: 14400
- corsOrigin: "*"
- pushMediaSettings:
- playbackIds:
- - accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- metadata:
- key1: value1
- mediaQuality: standard
- sourceAccess: false
- optimizeAudio: false
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/uploads:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get all unused upload URLs
- description: |
- This endpoint retrieves a paginated list of all unused upload signed URLs within your organization. It provides comprehensive metadata including upload IDs, creation dates, status, and URLs, helping you manage your media resources efficiently.
-
- An unused upload URL is a signed URL that gets generated when an user initiates upload but never completed the upload process. This can happen due to reasons like network issues, manual cancellation of upload, browser/app crashes or session timeouts.These URLs remain in the system as "unused" since they were created but never resulted in a successful media file upload.
-
- #### How it works
-
- - The endpoint returns metadata for all unused upload URLs in your organization's library.
- - Results are paginated to manage large datasets effectively.
- - Signed URLs expire after 24 hours from creation.
- - Each entry includes full metadata about the unused upload.
-
-
-
- #### Example
-
- A video management team at a media organization regularly uploads content but often forgets to delete or use unused uploads. These unused uploads have signed URLs that expire after 24 hours and need to be managed efficiently. By using this API, the team can retrieve metadata for all unused uploads, identify expired signed URLs, and decide whether to regenerate URLs, reuse the uploads, or delete them.
- operationId: list-uploads
- parameters:
- - in: query
- name: limit
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 20
- description: Limit specifies the maximum number of items to display per page.
- - in: query
- name: offset
- schema:
- type: integer
- default: 1
- example: 1
- description: Offset determines the starting point for data retrieval within a paginated list.
- - in: query
- name: orderBy
- schema:
- type: string
- example: desc
- default: desc
- $ref: "#/components/schemas/SortOrder"
- responses:
- "200":
- description: List of video media
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- description: Displays the result of the request.
- type: array
- items:
- $ref: "#/components/schemas/UnusedDirectUpload"
- pagination:
- $ref: "#/components/schemas/Pagination"
- example:
- success: true
- data:
- - uploadId: 9149264c-6cb9-40d3-9313-95a85c56135e
- trial: true
- status: waiting
- url: https://storage.fastpix.net/uploads/7619ee69-d758-4589-80ee-965f6bfc922c/9149264c-6cb9-40d3-9313-95a85c56135e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=assets-svc%2F20250109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250109T084749Z&X-Amz-Expires=14400&X-Amz-SignedHeaders=host&X-Amz-Signature=f0a1e3798792543bff7fed64314cc386f56adc1bc1a65f6d4d9c137c6998b6ce
- timeout: 14400
- corsOrigin: "*"
- pushMediaSettings:
- playbackIds:
- - accessPolicy: public
- accessRestrictions:
- domains:
- defaultPolicy: allow
- allow: []
- deny: []
- userAgents:
- defaultPolicy: allow
- allow: []
- deny: []
- metadata:
- key1: value1
- mediaQuality: standard
- pagination:
- totalRecords: 100
- currentOffset: 1
- offsetCount: 10
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/media-clips:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage videos
- summary: Get all clips of a media
- description: |
- This endpoint retrieves a list of all media clips associated with a given source media ID. It helps you organize and manage media efficiently by providing metadata such as clip media IDs and other relevant details.
-
- A media clip is a segmented portion of an original media file (source media). Clips are often created for various purposes such as previews, highlights, or customized edits. This API allows you to fetch all such clips linked to a specific source media, making it easier to track and manage clips.
-
-
- #### How it works
-
- - The endpoint returns metadata for all media clips associated with the given `mediaId`.
- - Results are paginated to efficiently handle large datasets.
- - Each entry includes detailed metadata such as media `id`, `duration`, and `status`.
- - Helps in organizing clips effectively by providing structured information.
-
-
- #### Example
-
- Imagine you’re managing a video editing platform where users upload full-length videos and create short clips for social media sharing. To keep track of all clips linked to a particular video, you call this API with the sourceMediaId. The response provides a list of all associated clips, allowing you to manage, edit, or repurpose them as needed.
-
- Related guide: Create clips from existing media
- operationId: get-media-clips
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: fc733e3f-2fba-4c3d-9388-2511dc50d15f
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: query
- name: offset
- schema:
- type: integer
- default: 1
- minimum: 1
- example: 5
- description: Offset determines the starting point for data retrieval within a paginated list.
- - in: query
- name: limit
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 20
- description: The number of media clips to retrieve per request.
- - in: query
- name: orderBy
- schema:
- $ref: "#/components/schemas/SortOrder"
- description: The values in the list can be arranged in two ways DESC (Descending) or ASC (Ascending).
- responses:
- "200":
- description: Get media clips
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MediaClipResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/playlists:
- post:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Create a new playlist
- description: |-
- This endpoint creates a new playlist within a specified workspace. A playlist acts as a container for organizing media items either manually or based on filters and metadata.
- ### Playlists can be created in two modes
- - **Manual:** Creates an empty playlist without any initial media items. Use this mode for manual curation, where you add items later in a user-defined sequence.
- - **Smart:** Auto-populates the playlist at creation time based on the filter criteria (for example, a video creation date range) that you provide in the request.
-
- For more details, see Create and manage playlist.
-
- #### How it works
-
- - When you send a `POST` request to this endpoint, FastPix creates a playlist and returns a playlist ID, using which items can be added later in a user-defined sequence.
- - You can create a smart playlist that is auto-populated based on the metadata in the request body.
-
-
- #### Example
- An e-learning platform creates a new playlist titled Beginner Python Series through the API. The response returns a unique playlist ID. The platform uses this ID to add a series of video tutorials to the playlist in a defined order. The playlist appears on the frontend as a structured learning path for learners.
- operationId: create-a-playlist
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CreatePlaylistRequest"
- responses:
- "201":
- description: Playlist created successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/playlistCreatedResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Get all playlists
- description: |-
- This endpoint retrieves all playlists in a specified workspace. It allows you to view the collection of manual and smart playlists along with their associated metadata.
- #### How it works
-
- - When a user sends a GET request to this endpoint, FastPix returns a list of all playlists in the workspace, including details such as playlist IDs, titles, creation mode (manual or smart), and other relevant metadata.
-
- #### Example
-
- An e-learning platform requests all playlists within a workspace to display an overview of available learning paths. The response includes multiple playlists like "Beginner Python Series" and "Advanced Java Tutorials," enabling the platform to show users a catalog of curated content collections.
- operationId: get-all-playlists
- parameters:
- - name: limit
- in: query
- required: false
- description: The number of playlists to return (default is 10, max is 50).
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 1
- - name: offset
- in: query
- required: false
- description: The page number to retrieve, starting from 1. Use this parameter to paginate the playlist results.
- schema:
- type: integer
- default: 1
- minimum: 1
- example: 1
- responses:
- "200":
- description: Successfully retrieved all playlists
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/GetAllPlaylistsResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/playlists/{playlistId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Get a playlist by ID
- description: |-
- This endpoint retrieves detailed information about a specific playlist using its unique `playlistId`. It provides comprehensive metadata about the playlist, including its title, creation mode (manual or smart), media items along with the metadata of each media in the playlist.
-
-
- #### Example
- An e-learning platform requests details for the playlist "Beginner Python Series" by providing its unique `playlistId`. The response includes the playlist"s title, creation mode, and the ordered list of video tutorials contained within, enabling the platform to present the full learning path to users.
- operationId: get-playlist-by-id
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to retrieve.
- schema:
- type: string
- responses:
- "200":
- description: Successfully retrieved all playlists
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaylistByIdResponse"
- examples:
- manual:
- summary: Manual playlist (no playOrder)
- value:
- success: true
- data:
- id: 46d5fce1-683a-457f-86d7-c048bb429505
- name: My Manual Playlist
- referenceId: 122q
- type: manual
- description: This is a manual playlist.
- mediaList: []
- workspaceId: d760b903-86ef-44d6-9b73-334130e0cf2d
- createdAt: "2025-06-05T09:10:30.655275Z"
- updatedAt: "2025-06-05T12:23:47.096690Z"
- mediaCount: 0
- smart:
- summary: Smart playlist (playOrder required)
- value:
- success: true
- data:
- id: 46d5fce1-683a-457f-86d7-c048bb429505
- name: My Smart Playlist
- referenceId: 122q
- type: smart
- description: This Playlist contains videos from December 2024.
- playOrder: createdDate ASC
- metadata:
- createdDate:
- startDate: "2024-12-11"
- endDate: "2024-12-12"
- updatedDate:
- startDate: "2024-12-11"
- endDate: "2024-12-12"
- mediaList: []
- workspaceId: d760b903-86ef-44d6-9b73-334130e0cf2d
- createdAt: "2025-06-05T09:10:30.655275Z"
- updatedAt: "2025-06-05T12:23:47.096690Z"
- mediaCount: 0
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- put:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Update a playlist by ID
- description: |-
- This endpoint allows you to update the name and description of an existing playlist. It enables modifications to the playlist's metadata without altering the media items or playlist structure.
- #### How it works
-
- - When a user sends a PUT request to this endpoint with the `playlistId` and updated name and description in the request body, FastPix updates the playlist metadata accordingly and returns the updated playlist details.
-
- #### Example
- An e-learning platform updates the playlist titled "Beginner Python Series" to rename it as "Python Basics" and add a more detailed description. The updated metadata is reflected when retrieving the playlist, helping users better understand the playlist content.
- operationId: update-a-playlist
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to retrieve.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/UpdatePlaylistRequest"
- responses:
- "200":
- description: Playlist updated successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/playlistCreatedResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Delete a playlist by ID
- description: |-
- This endpoint allows you to delete an existing playlist from the workspace. After deleted, the playlist and its metadata are permanently removed and cannot be recovered.
- #### How it works
- - When a user sends a DELETE request to this endpoint with the `playlistId`, FastPix removes the specified playlist from the workspace and returns a confirmation of successful deletion.
-
- #### Example
- An e-learning platform deletes an outdated playlist titled "Old Python Tutorials" by providing its unique playlist ID. The platform receives confirmation that the playlist has been removed, ensuring learners no longer see the obsolete content.
- operationId: delete-a-playlist
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to delete.
- schema:
- type: string
- responses:
- "200":
- description: Playlist deleted successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaylistDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/playlists/{playlistId}/media:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Add media to a playlist by ID
- description: |-
- This endpoint allows you to add one or more media items to an existing playlist. By passing the media ID(s) in the request, the specified media items are appended to the playlist in the order provided.
- #### How it works
-
- - When a user sends a PATCH request to this endpoint with the `playlistId` as path parameter and a list of media ID(s) in the request body, FastPix adds the specified media items to the playlist and returns the updated playlist details.
-
- #### Example
- An e-learning platform adds new video tutorials to the "Beginner Python Series" playlist by sending their media IDs in the request. The playlist is updated with the new content, ensuring learners have access to the latest tutorials in sequence.
- operationId: add-media-to-playlist
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to perform the operation on.
- schema:
- type: string
- format: uuid
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MediaIdsRequest"
- responses:
- "200":
- description: Added media to playlist successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaylistByIdResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- put:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Change media order in a playlist by ID
- description: |-
- This endpoint allows you to change the order of media items within a playlist. By passing the complete list of media IDs in the desired sequence, the playlist's play order is updated accordingly.
- #### How it works
-
- - When a user sends a PUT request to this endpoint with the `playlistId` as path parameter and the reordered list of all media IDs in the request body, FastPix updates the playlist to reflect the new media sequence and returns the updated playlist details.
-
- #### Example
- An e-learning platform rearranges the "Beginner Python Series" playlist by submitting a reordered list of media IDs. The playlist now follows the new sequence, providing learners with a better structured learning path.
- operationId: change-media-order-in-playlist
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to perform the operation on.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MediaIdsRequest"
- responses:
- "200":
- description: Added media to playlist successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaylistByIdResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Playlist
- summary: Delete media in a playlist by ID
- description: |-
- This endpoint allows you to delete one or more media items from an existing playlist. By passing the media ID(s) in the request, the specified media items are removed from the playlist.
- #### How it works
-
- - When a user sends a DELETE request to this endpoint with the playlist ID as the path parameter and the media ID(s) to be removed in the request body, FastPix deletes the specified media items from the playlist and returns the updated playlist details.
-
- #### Example
- An e-learning platform removes outdated video tutorials from the "Beginner Python Series" playlist by specifying their media IDs in the request. The playlist is updated to exclude these items, ensuring learners only access relevant content.
- operationId: delete-media-from-playlist
- parameters:
- - name: playlistId
- in: path
- required: true
- description: The unique id of the playlist you want to perform the operation on.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/MediaIdsRequest"
- responses:
- "200":
- description: Deleted media from playlist successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaylistByIdResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/playback-ids/{playbackId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Get a playback ID
- description: |
- This endpoint retrieves details about a specific playback ID associated with a media asset. Use it to check the access policy for that specific playback ID, such as whether it is public or private.
-
- **How it works:**
- 1. Make a GET request to the endpoint, replacing `{mediaId}` with the media ID and `{playbackId}` with the playback ID.
- 2. This request is useful for auditing or validation before granting playback access in your application.
-
- **Example:**
- A media platform might use this endpoint to verify if a playback ID is public or private before embedding the video in a frontend player or allowing access to a restricted group.
- operationId: get-playback-id
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: playbackId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the playback when created. The value must be a valid UUID.
- responses:
- "200":
- description: Successfully retrieved playback ID details
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 54fd5e7e-3aa5-4817-b56d-44932f67f6c3
- description: Unique identifier of the playback ID.
- accessPolicy:
- type: string
- enum:
- - public
- - private
- - drm
- example: public
- description: The access policy set for the playback ID.
- accessRestrictions:
- type: object
- description: Restrictions applied to this playback ID.
- properties:
- domains:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: allow
- allow:
- type: array
- items:
- type: string
- example: ["example.com", "trustedsite.org"]
- deny:
- type: array
- items:
- type: string
- example: ["malicioussite.com", "abc.net"]
- userAgents:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: deny
- allow:
- type: array
- items:
- type: string
- example:
- - Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36
- deny:
- type: array
- items:
- type: string
- example:
- - PostmanRuntime/7.29.0
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/{mediaId}/playback-ids/{playbackId}/domains:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Update domain restrictions for a playback ID
- description: |
- This endpoint updates domain-level restrictions for a specific playback ID associated with a media asset.
- It allows you to restrict playback to specific domains or block known unauthorized domains.
-
- **How it works:**
- 1. Make a `PATCH` request to this endpoint with your desired domain access configuration.
- 2. Set a default policy (`allow` or `deny`) and specify domain names in the `allow` or `deny` lists.
- 3. This is commonly used to restrict video playback to your website or approved client domains.
-
- **Example:**
- A streaming service can allow playback only from `example.com` and deny all others by setting: `"defaultPolicy": "deny"` and `"allow": ["example.com"]`.
-
- operationId: update-domain-restrictions
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 5ebfa8f7-3ff1-4a35-8b1a-d3a16e22184c
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: playbackId
- required: true
- schema:
- type: string
- format: uuid
- example: 0199deff-9aef-457e-9461-7a28afdf8773
- description: The unique identifier assigned to the playback when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: allow
- default: allow
- description: Specify the fallback behavior for domains that are not listed in the `allow` or `deny` lists.
- allow:
- type: array
- items:
- type: string
- example: ["yourdomain.com", "sampledomain.com"]
- default: ["yourdomain.com"]
- description: List of domains explicitly allowed to play the media.
- deny:
- type: array
- items:
- type: string
- example: ["yourworkdomain.com"]
- default: []
- description: List of domains explicitly denied from accessing the media.
-
- responses:
- "200":
- description: Successfully updated domain restrictions
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- properties:
- defaultPolicy:
- type: string
- example: allow
- description: Specify the fallback behavior for domains that are not listed in the allow or deny lists.
- allow:
- type: array
- items:
- type: string
- description: List of domains explicitly allowed to play the media.
- example: ["yourdomain.com", "yourworkdomain.com"]
- deny:
- type: array
- items:
- type: string
- description: List of domains explicitly denied from accessing the media.
- example: ["sampledomain.com"]
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
-
- /on-demand/{mediaId}/playback-ids/{playbackId}/user-agents:
- patch:
- security:
- - BasicAuth: []
- tags:
- - Playback
- summary: Update user-agent restrictions for a playback ID
- description: |
- This endpoint allows updating user-agent restrictions for a specific playback ID associated with a media asset.
- It can be used to allow or deny specific user-agents during playback request evaluation.
-
- **How it works:**
- 1. Make a `PATCH` request to this endpoint with your desired user-agent access configuration.
- 2. Specify a default policy (`allow` or `deny`) and provide specific `allow` or `deny` lists.
- 3. Use this to restrict access to specific browsers, devices, or bots.
-
- **Example:**
- A developer may configure a playback ID to deny access from known scraping user-agents while allowing all others by default.
-
- operationId: update-user-agent-restrictions
- parameters:
- - in: path
- name: mediaId
- required: true
- schema:
- type: string
- format: uuid
- example: 5ebfa8f7-3ff1-4a35-8b1a-d3a16e22184c
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- - in: path
- name: playbackId
- required: true
- schema:
- type: string
- format: uuid
- example: 0199deff-9aef-457e-9461-7a28afdf8773
- description: The unique identifier assigned to the playback when created. The value must be a valid UUID.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- example: allow
- default: allow
- description: The default behavior when a user-agent is not listed in `allow` or `deny`.
- allow:
- type: array
- items:
- type: string
- example:
- - "Mozilla/55.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
- default:
- - "Mozilla/55.0 (Macintosh; Intel Mac OS X 10_15_7)"
- description: List of user-agent substrings explicitly allowed.
- deny:
- type: array
- items:
- type: string
- example:
- - "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/53745.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36"
- default: []
- description: List of user-agent substrings explicitly denied.
-
- responses:
- "200":
- description: Successfully updated user-agent restrictions
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- properties:
- defaultPolicy:
- type: string
- example: allow
- description: Specifies the default behavior for user agents not listed in the allow or deny lists.
- allow:
- type: array
- items:
- type: string
- example: ["Mozilla/55.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"]
- description: List of user-agent substrings explicitly allowed.
- deny:
- type: array
- items:
- type: string
- example: ["Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/53745.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36"]
- description: List of user-agent substrings explicitly denied.
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/drm-configurations:
- get:
- tags:
- - DRM configurations
- security:
- - BasicAuth: []
- summary: Get list of DRM configuration IDs
- description: |
-
- This endpoint retrieves the DRM configuration (DRM ID) associated with a workspace. It returns a list of DRM configurations, identified by a unique DRM ID, which is used for creating DRM encrypted asset.
-
- **How it works:**
- 1. Make a GET request to this endpoint.
- 2. Optionally use the `offset` and `limit` query parameters to paginate through the list of DRM configurations.
- 3. The response includes a list of DRM IDs and pagination metadata.
-
- **Example:**
- A media service provider may retrieve DRM configuration for a workspace to create DRM content.
-
- Related guide: Manage DRM configuration
- operationId: getDrmConfiguration
- parameters:
- - in: query
- name: offset
- schema:
- type: integer
- default: 1
- minimum: 1
- example: 1
- description: Offset determines the starting point for data retrieval within a paginated list.
- - in: query
- name: limit
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 10
- description: Limit specifies the maximum number of items to display per page.
- responses:
- "200":
- description: DRM configuration(s) retrieved successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- items:
- $ref: "#/components/schemas/DrmIdResponse"
- pagination:
- $ref: "#/components/schemas/Pagination"
- example:
- success: true
- data:
- - id: e3dfdf15-16bb-4835-98b9-484c1e4320cc
- pagination:
- totalRecords: 1
- currentOffset: 1
- offsetCount: 1
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /on-demand/drm-configurations/{drmConfigurationId}:
- get:
- tags:
- - DRM configurations
- security:
- - BasicAuth: []
- summary: Get DRM configuration by ID
- description: |
-
- This endpoint retrieves a DRM configuration ID. It is used to fetch the DRM-related ID for a workspace, typically required when validating or applying DRM policies to video assets.
-
- **How it works:**
- 1. Make a GET request to this endpoint, replacing `{drmConfigurationId}` with the UUID of the DRM configuration.
- 2. The response contains the associated DRM configuration ID.
-
- Related guide: Manage DRM configuration
- operationId: getDrmConfigurationById
- parameters:
- - in: path
- name: drmConfigurationId
- required: true
- schema:
- type: string
- format: uuid
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the DRM configuration.
- responses:
- "200":
- description: DRM configuration retrieved successfully
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/DrmIdResponse"
- example:
- success: true
- data:
- id: e3dfdf15-16bb-4835-98b9-484c1e4320cc
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams:
- post:
- security:
- - BasicAuth: []
- tags:
- - Start live stream
- summary: Create a new stream
- description: |-
- Creates a new RTMPS or SRT live stream in FastPix. When you create a stream, FastPix generates a unique `streamKey` and `srtSecret` that you can use with broadcasting software such as OBS to connect to FastPix RTMPS or SRT servers. Use SRT for live streaming in unstable network conditions, as it provides error correction and encryption for a more reliable and secure broadcast.
-
- Leverage SRT for live streaming in environments with unstable networks, taking advantage of its error correction and encryption features for a resilient and secure broadcast.
-
- How it works
-
- 1. Send a `POST` request to this endpoint. You can configure the stream settings, including `metadata` (such as stream name and description), `reconnectWindow` (in case of disconnection), and privacy options (`public` or `private`).
-
- 2. FastPix returns the stream details for both RTMPS and SRT configurations. These keys and IDs from the stream details are essential for connecting the broadcasting software to FastPix’s servers and transmitting the live stream to viewers.
-
- 3. After the live stream is created, FastPix sends a `POST` request to your specified webhook endpoint with the event video.live_stream.created.
-
-
- **Example:**
-
-
- Imagine a gaming platform that allows users to live stream gameplay directly from their dashboard. The API creates a new stream, provides the necessary stream key, and sets it to "private" so that only specific viewers can access it.
-
-
- Related guide: How to live stream
- operationId: create-new-stream
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CreateLiveStreamRequest"
- responses:
- "201":
- description: Stream created successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/liveStreamResponseDTO"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Get all live streams
- description: |-
- Retrieves a list of all live streams associated with the current workspace. It provides an overview of both current and past live streams, including details like `streamId`, `metadata`, `status`, `createdAt` and more.
-
-
- #### How it works
-
- Use the access token and secret key related to the workspace in the request header. When called, the API provides a paginated response containing all the live streams in that specific workspace. This is helpful for retrieving a large volume of streams and managing content in bulk.
- operationId: get-all-streams
- parameters:
- - name: limit
- in: query
- description: Limit specifies the maximum number of items to display per page.
- schema:
- type: integer
- default: 10
- minimum: 1
- maximum: 50
- example: 20
- - name: offset
- in: query
- description: Offset determines the starting point for data retrieval within a paginated list.
- schema:
- type: integer
- default: 1
- example: 1
- - name: orderBy
- in: query
- description: The list of value can be order in two ways DESC (Descending) or ASC (Ascending). In case not specified, by default it will be DESC.
- schema:
- type: string
- example: desc
- default: desc
- enum:
- - asc
- - desc
- responses:
- "200":
- description: All streams retrieved sucessfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/getStreamsResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/viewer-count:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Get stream views by ID
- description: |-
- This endpoint retrieves the current number of viewers watching a specific live stream, identified by its unique `streamId`.
-
- The viewer count is an **approximate value**, optimized for performance. It provides a near-real-time estimate of how many clients are actively watching the stream. This approach ensures high efficiency, especially when the stream is being watched at large scale across multiple devices or platforms.
-
- #### Example
-
- Suppose a content creator is hosting a live concert and wants to display the number of live viewers on their dashboard. This endpoint can be queried to show up-to-date viewer statistics.
-
- Related guide: Manage streams
-
- operationId: get-live-stream-viewer-count-by-id
- parameters:
- - name: streamId
- in: path
- required: true
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream viewer count retrieved successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/ViewsCountResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Get stream by ID
- description: |-
- This endpoint retrieves details about a specific live stream by its unique `streamId`. It includes data such as the stream’s `status` (idle, preparing, active, disabled), `metadata` (title, description), and more.
- #### Example
-
- Suppose a news agency is broadcasting a live event and wants to track the configurations set for the live stream while also checking the stream's status.
-
-
- Related guide: Manage streams
- operationId: get-live-stream-by-id
- parameters:
- - name: streamId
- in: path
- required: true
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream details retrieved successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/livestreamgetResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Delete a stream
- description: |-
- Permanently deletes a specified live stream from the workspace. If the stream is active, the encoder is disconnected and ingestion stops immediately. This action is irreversible, and any future playback attempts fail as a result.
-
- Provide the `streamId` in the request to terminate active connections and remove the stream from the workspace. You can further look for video.live_stream.deleted webhook to notify your system about the status.
-
- #### Example
-
- For an online concert platform, a trial stream was mistakenly made public. The event manager deletes the stream before the concert begins to avoid confusion among viewers.
-
-
- Related guide: Manage streams
- operationId: delete-live-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream deleted successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LiveStreamDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- patch:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Update a stream
- description: |-
- This endpoint allows you to modify the parameters of an existing live stream, such as its `metadata` (title, description) or the `reconnectWindow`. It’s useful for making changes to a stream that has already been created but not yet ended. After the live stream is disabled, you cannot update a stream.
-
-
- The updated stream parameters and the `streamId` needs to be shared in the request, and FastPix returns the updated stream details. After the update, video.live_stream.updated webhook event notifies your system.
-
- #### Example
-
- A host realizes they need to extend the reconnect window for their live stream in case they lose connection temporarily during the event. Or suppose during a multi-day online conference, the event organizers need to update the stream title to reflect the next day"s session while keeping the same stream ID for continuity.
-
-
-
- Related guide: Manage streams
- operationId: update-live-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 91a264dcc447b63da6fb79ef925cd76d
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/patchLiveStreamRequest"
- responses:
- "200":
- description: Stream details updated successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/patchResponseDTO"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/live-enable:
- put:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Enable a stream
- description: |-
- This endpoint allows you to enable a livestream by transitioning its status from `disabled` to `idle`. After it is enabled, the stream becomes available and ready to accept an incoming broadcast from a streaming tool.
-
- Streams on the trial plan cannot be re-enabled if they are in the `disabled` state.
-
- The `livestreamId` must be provided in the path, and the stream must not already be in an enabled state (`idle`, `preparing`, or `active`).
-
- #### Example
-
- A creator disables a livestream to pause it temporarily. Later, they decide to continue the session. By calling this endpoint with the stream's ID, they can re-enable and restart the same livestream.
-
- Related guide Manage streams
- operationId: enable-live-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 91a264dcc447b63da6fb79ef925cd76d
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream details updated successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LiveStreamDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/live-disable:
- put:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Disable a stream
- description: |-
- This endpoint disables a livestream by setting its status to `disabled`. Use this to stop a livestream when it's no longer needed or must be taken offline intentionally.
-
- A disabled stream can later be re-enabled using the enable endpoint — however, if you're on a trial plan, re-enabling is not allowed once the stream is disabled.
-
- #### Example
-
- A speaker finishes their live session and wants to prevent the stream from being mistakenly started again. By calling this endpoint, the stream is transitioned to a `disabled` state, ensuring it's permanently stopped (unless re-enabled on a paid plan).
-
- Related guide Manage streams
- operationId: disable-live-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 91a264dcc447b63da6fb79ef925cd76d
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream details updated successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LiveStreamDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/finish:
- put:
- security:
- - BasicAuth: []
- tags:
- - Manage live stream
- summary: Complete a stream
- description: |-
- This endpoint marks a livestream as completed by stopping the active stream and transitioning its status to `idle`. It is typically used after a livestream session has ended.
-
- This operation only works when the stream is in the `active` state.
-
- Completing a stream can help finalize the session and trigger post-processing events like VOD generation.
-
- #### Example
-
- A virtual event ends, and the system or host needs to close the livestream to prevent further streaming. This endpoint ensures the livestream status is changed from `active` to `idle`, indicating it's officially completed.
-
- Related guide Manage streams
- operationId: complete-live-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 91a264dcc447b63da6fb79ef925cd76d
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- responses:
- "200":
- description: Stream details updated successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LiveStreamDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/playback-ids:
- post:
- security:
- - BasicAuth: []
- tags:
- - Live playback
- summary: Create a playbackId
- description: |-
- Generates a new playback ID for the live stream, allowing viewers to access the stream through this ID. The playback ID can be shared with viewers for direct access to the live broadcast.
-
- By calling this endpoint with the `streamId`, FastPix returns a unique `playbackId`, which can be used to stream the live content.
-
- #### Example
-
- A media platform needs to distribute a unique playback ID to users for an exclusive live concert. The platform can also embed the stream on various partner websites.
- operationId: create-playbackId-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/playbackIdRequest"
- responses:
- "201":
- description: New PlaybackId created successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaybackIdSuccessResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- delete:
- security:
- - BasicAuth: []
- tags:
- - Live playback
- summary: Delete a playbackId
- description: |-
- Deletes a previously created playback ID for a live stream.This prevents new viewers from accessing the stream using the playback ID, while current viewers can continue watching for a short period before the connection ends. FastPix deletes the ID and ensures the new playback request fails.
-
- #### Example
- A streaming service wants to prevent new users from joining a live stream that is nearing its end. The host can delete the playback ID to ensure no one can join the stream or replay it once it ends.
- operationId: delete-playbackId-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- - name: playbackId
- in: query
- required: true
- example: 88b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd
- description: Unique identifier for the playbackId
- schema:
- type: string
- responses:
- "200":
- description: Stream's playbackId deleted successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/LiveStreamDeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/playback-ids/{playbackId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Live playback
- summary: Get playbackId details
- description: |-
- Retrieves details for an existing playback ID. When you provide the playbackId returned from a previous stream or playback creation request, FastPix returns the associated playback information, including the access policy.
-
- #### Example
- A developer needs to confirm the access policy of the playback ID to ensure whether the stream is public or private for viewers.
- operationId: get-live-stream-playback-id
- parameters:
- - name: streamId
- in: path
- required: true
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- - name: playbackId
- in: path
- required: true
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: After creating a new playbackId, FastPix assigns a unique identifier to the playback.
- schema:
- type: string
- responses:
- "200":
- description: Stream details retrieved successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/PlaybackIdSuccessResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/simulcast:
- post:
- security:
- - BasicAuth: []
- tags:
- - Simulcast stream
- summary: Create a simulcast
- description: |-
- Creates a simulcast for a parent live stream. Simulcasting allows you to broadcast a live stream to multiple social platforms simultaneously (for example, YouTube, Facebook, or Twitch). This helps expand your audience reach across platforms. A simulcast can only be created when the parent live stream is in the idle state (not currently live or disabled). Only one simulcast target can be created per API call.
- #### How it works
-
- 1. Change to: When you call this endpoint, provide the parent `streamId` along with the simulcast target details (such as platform and credentials). The API returns a unique `simulcastId`, which you can use to manage the simulcast later.
-
- 2. To notify your application about the status of simulcast related events check for the webhooks for simulcast target events.
-
- #### Example
- An event manager sets up a live stream for a virtual conference and wants to simulcast the stream on YouTube and Facebook Live. They first create the primary live stream in FastPix, ensuring it's in the idle state. Then, they use the API to create a simulcast target for YouTube.
-
- Related guide: Simulcast to 3rd party platforms
- operationId: create-simulcast-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastRequest"
- responses:
- "201":
- description: New Simulcast created successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /live/streams/{streamId}/simulcast/{simulcastId}:
- delete:
- security:
- - BasicAuth: []
- tags:
- - Simulcast stream
- summary: Delete a simulcast
- description: |-
- Deletes a simulcast using its unique simulcastId, which you received during the simulcast creation process. Deleting a simulcast stops the broadcast to the associated platform, while the parent stream continues if it’s live. This action can’t be undone, and you must create a new simulcast to resume streaming to the same platform.
-
- Webhook event: video.live_stream.simulcast_target.deleted
-
-
- #### Example
- A broadcaster may need to stop simulcasting to one platform while keeping the stream active on others. For example, a tech company is simulcasting a product launch across multiple platforms. Midway through the event, they decide to stop the simulcast on Facebook due to performance issues but continue streaming on YouTube. They use this API to delete the Facebook simulcast target.
-
- operationId: delete-simulcast-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- - name: simulcastId
- in: path
- required: true
- example: 9217422d89288ad5958d4a86e9afe2a1
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- schema:
- type: string
- responses:
- "200":
- description: Stream's simulcast deleted successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastdeleteResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- security:
- - BasicAuth: []
- tags:
- - Simulcast stream
- summary: Get a specific simulcast
- description: |-
- Retrieves the details of a specific simulcast associated with a parent live stream. By providing both the `streamId` of the parent stream and the `simulcastId`, FastPix returns detailed information about the simulcast, such as the stream URL, the status of the simulcast, and metadata.
-
- #### Example
- This endpoint can be used to verify the status of the simulcast on external platforms before the live stream begins. For example, before starting a live gaming event, the organizer wants to ensure that the simulcast to Twitch is set up correctly. They retrieve the simulcast information to confirm that everything is properly configured.
- operationId: get-specific-simulcast-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: After creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- - name: simulcastId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- schema:
- type: string
- responses:
- "200":
- description: Stream's simulcast details fetched successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- put:
- security:
- - BasicAuth: []
- tags:
- - Simulcast stream
- summary: Update a simulcast
- description: |-
- Updates the status of a specific simulcast linked to a parent live stream. You can enable or disable the simulcast at any time while the parent stream is active or idle. After the live stream is disabled, the simulcast can no longer be modified.
-
- Webhook event: video.live_stream.simulcast_target.updated
-
- #### Example
- When a `PATCH` request is made to this endpoint, the API updates the status of the simulcast. This can be useful for pausing or resuming a simulcast on a particular platform without stopping the parent live stream.
- operationId: update-specific-simulcast-of-stream
- parameters:
- - name: streamId
- in: path
- required: true
- example: 9714422d89287ad5758d4a86e9afe1a2
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- schema:
- type: string
- - name: simulcastId
- in: path
- required: true
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastUpdateRequest"
- responses:
- "200":
- description: Stream's simulcast details fetched successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/simulcastUpdateResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /iam/signing-keys:
- post:
- tags:
- - Signing keys
- summary: Create a signing key
- operationId: create_signing_key
- description: |-
- This endpoint allows you to create a new signing key pair for FastPix. When you call this endpoint, the API generates a 2048-bit RSA key pair. The privateKey is returned in the response, encoded in Base64 format. You also receive a unique key ID to reference the key in future operations. FastPix securely stores the public key to validate signed tokens.
-
-
- Instructions
-
-
- **Private key handling:** The privateKey you receive is encoded in Base64. To use it, decode the value using Base64 decoding. Make sure to store this private key securely, as it is required for signing tokens.
-
-
- **Key-ID:** The ID is used to reference this specific key pair in future API requests or configurations.
-
-
- After the key pair is generated, the developer must securely store the private key because FastPix does not save it. The public key is used by FastPix to verify signed tokens and ensure that the client interacting with the system is legitimate.
-
-
-
-
-
- Use case scenario
-
-
-
- **Use case:** A developer building a video subscription service wants to ensure that only authorized users can access premium content. By generating a signing key, the developer can issue signed JSON Web Tokens (JWTs) to authenticate and authorize users. These tokens can be validated by FastPix using the stored public key.
-
-
- **Detailed example:** You are building a video-on-demand platform that restricts access based on user subscriptions. To ensure only subscribed users can stream content, you generate a signing key using this API. Each time a user logs in, you create a JWT signed with the private key. When the user attempts to play a video, FastPix uses the public key to verify the token and confirms that the user is authorized.
- Related guide: Create and use signing keys
- security:
- - BasicAuth: []
- responses:
- "201":
- description: created a signing key successfully
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/CreateResponse"
- example:
- success: true
- data:
- id: fc9d9368-6ee5-4b16-ae50-880a2374bdc4
- privateKey: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRREtaN1JKT1IrbXZGeVQxSWFIL0hVUkYwQnRncDJzK0srdUd4TUZ4N1JiaGNudVBMYU14WjM1b0lNWndhdHJrdDFDM3JxVFZsQzBsSnExeENFTyt3Zi9JNHQ0bktmUFB2WG83NGFCQi82YmR0MXpaSHp0OGFIenBnL3YrdEtCWVc5SEdWQ0tYc2JpNjczbHgwcFhHdXVnem8wdnZMR2lKWDBiL0Z4WEI5U1R3RkV5Q1dQOFJhczZ3VWVuSUdVM2UwMmJiV3Z4UnNoMWNER2xSRk03RWw2RVQ2MUQrS0tLTndnUGNYR1pvY0YwZTFxRU5iVGdPZUdBMFNDU0xIT3NtQ0NBQTNtSndJS1VaY0Z2MmpGRUx4Uk5MTnhoMjM5UEdUT3BuWmdvTFp5Skt4b2REN1FpV1N1eDVZY1Z0MFgrSk9rZXNBOEpjM1ZtM0tGc0IwL3RYck9QQWdNQkFBRUNnZ0VBUHhNWUxLVmZocTgyVGw4eFdWbEVCZ0p2OG5COHdIVnpFZGVnRXZJTDgyVjY2d0lDaFZYa0IvR01TVStBSXZMT2Z0TTM0MGhIdUM2REU5ZTkwWlJMQnFoR0ExMFdNbEJWZzdSNC91YkY0aDZsbmhzWGozTDRYQnhJNVNrTnhvSGRrcE9COU16YVA4YmxFNkVLT3FES0F2KzdJY0EwdnVuZDFnWExwTmRzMkduTW5nZW1qOUhJZWh1eTNLY0taNHlheFo1YkRKVEpLZlFrTlFDQzhOR0hIdWovQmRWUnU1RHRrZVdNMFFpN2FKeW5lSXRxOGhtbXdxcVNMTnpTOTZtcHpBdzF3RzFXTHVML1A3TGxJekVWa2ZJUFc0SW1zRXhsSG5FUG0ySld1RUNMQ1pRL25NODdhQXVXekROektCYW51LzZhdXhnSDB2Wnc5YWowTmxNNFFRS0JnUURPM3Y0YlN4bWluZGJpVEdSaXdFVXVyODh4TVA3M2U5RSt2SHlzb3JZMWZycFpkdXJHOVlFb09MUFN1YnQ5WkhZNFhGOFhxRWZ4bE94d294eDVzcU9PcGNMTnFnOWhTSWxPaXEyYmVnN2V2RGpOMml6b3JKRFl3VEhGQ0Era25FbmFpL0J2TU16N3AyVVkrUEEzUnJ4Z25BK3RkQlErZWlSZ1c0WmhnMkhWcndLQmdRRDZlVEpwRTRxZVFYdmpnMy9FS081UkllRklZOHphTGMvMVVHODBqNmVvbStNK3UyTmdUVDJqVmNyMkdQbjZTbHRNRlJNem5qOVJHYmQ1MCt5a2k0Y1NYU1JPdE44alV2M0FseHJtZzEwVTVtSWIrUXFIZ3g2QldyeXkvakxHYXVvMUJnVFg1dDZ0VXVEUUZuVDJSM2xoNGRNZ044T3V4VlR3OCtadGloSllJUUtCZ1FERE00ZHpHWnBHNThrc0lBbFpaVFBpcWVKSCtJT2Q0eWUrbXZ6SnFYOWxXdjljQytuZGN5czhXTVRWd293MzllUFhxdEhQOE9weCtxUmdaSWtxREhabzArRE5UL3JUUVM3Ty9leHpHT21QSXV3MjBmZ3VWU2NZWUxRbHgwVjdmajN5Q3JvRk1YYzZ2dW1XZHMrMFdQckg3bnFjb1R1NCtHZjZ4R0k1QVUvLzRRS0JnUUR6TFcvdjdIVU1xTzhyT0tSM1FuWCtkekpPSWZibGJNMFdrdjBrdnNROFF2MGlEclN3N3MwRkkycGwvR0hXeXhKUWo3V1F5L2NWT2k2VUxWajNlQyt2ZUphamc1K1FvQ2FWTVIrQTVkRWRWWCt6UU5za0xmMFVBWkJyQjdrc1F1a1lpYnR5RWtmblp5dTFXOWc2czdINWdsS0VXUiszTXdjQTJRdkRGZVl4Z1FLQmdDWVdlKzQ4bVVaUEl5ZnR4NVFaQllnYTE2blpndzYxZmxtdEdpQlVGWGVMR3BTaU1XNXc5R3RYVDZPbFh1Zy91TkNKbHR4TDE4c0NEeDNVaU9DNWFTMEN4OTc5TlFrSm1YRWw1UDNtMFNGaVU4VlZ0SFp1dHd3SWFKTFZockZ1T3NJV1BtRFN4aHhMaFpPNmJ5aWRwbHlXLzl1eGpwMlZrQ0Y3OGd5QXRRSWsKLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
- createdAt: "2024-01-11T10:00:06.618993Z"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- tags:
- - Signing keys
- summary: Get list of signing key
- operationId: list_signing_keys
- description: |-
- This endpoint returns a list of all the signing keys associated with an organization in FastPix. Each key entry in the response includes metadata such as the key id, creation date, and workspace details. This helps you manage multiple keys, track their usage, and identify which keys are valid for signing API requests.
-
-
-
-
- How it works
-
-
- The API returns the list in a paginated format, allowing you to audit and track all keys used for your application. Regularly reviewing this list is essential for ensuring that old or compromised keys are promptly revoked and that new keys are properly integrated into workflows.
-
-
-
-
- Use case scenario
-
-
-
- **Use case:** A security-conscious development team wants to ensure they follow a key rotation policy, rotating signing keys every few months. By retrieving the list of signing keys, they can identify which keys are still in use and which ones need to be rotated.
-
-
- **Detailed example:** You manage a multi-region video platform where teams in different regions use their own signing keys. To comply with your organization’s security policies, you regularly review the list of signing keys to verify which ones are still active. You notice that some keys haven’t been used for several months. Based on their creation dates, you decide to rotate those keys.
- security:
- - BasicAuth: []
- parameters:
- - in: query
- name: limit
- schema:
- type: integer
- minimum: 1
- maximum: 50
- default: 10
- example: 25
- description: Limit specifies the maximum number of items to display per page.
- - in: query
- name: offset
- schema:
- type: integer
- minimum: 1
- default: 1
- example: 1
- description: "It is used for pagination, indicating the starting point for fetching data. "
- responses:
- "200":
- description: successfully fetched all signing keys
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/GetAllSigningKeysResponse"
-
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /iam/signing-keys/{signingKeyId}:
- delete:
- tags:
- - Signing keys
- summary: Delete a signing key
- operationId: delete_signing_key
- description: |-
- This endpoint allows you to delete an existing signing key, and the action is permanent. After a key is deleted, any signatures or tokens generated with that key become invalid immediately. This means you can no longer use the key to sign JSON Web Tokens (JWTs) or authenticate API requests.
- Usage
- To delete a signing key, provide the unique key ID that you obtained when creating the key. This key id serves as the identifier for the specific signing key you want to remove from your account.
-
-
-
- How it works
-
- When you specify the keyId, the API removes the signing key from the system. After the key is deleted, any API requests or tokens that rely on it fail. This action is useful when a key is compromised or when rotating keys as part of security policies.
-
-
-
- Use case scenario
-
-
- **Use case:** A key used by an outdated application version has been compromised, or a developer accidentally leaked it. To prevent unauthorized access, the developer deletes the signing key, revoking its ability to sign requests immediately.
-
-
- **Detailed example:** Suppose you have a signing key used for a specific version of your mobile app, and you discover that the key has been compromised due to a security breach. To mitigate the issue, you delete the key to invalidate any tokens generated using it. As soon as the key is deleted, users on the compromised version of the app can no longer make valid requests, thus preventing further exploitation.
- security:
- - BasicAuth: []
- parameters:
- - name: signingKeyId
- in: path
- required: true
- schema:
- type: string
- format: uuid
- example: 3ta85f64-5717-4562-b3fc-2c963f66afa6
- description: When creating the signing key, FastPix assigns a universally unique identifier with a maximum length of 255 characters.
- responses:
- "200":
- description: successfully fetched all signing keys
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/DeleteSigningKeyResponse"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- get:
- tags:
- - Signing keys
- summary: Get signing key by ID
- operationId: get-signing_key_by_id
- description: |-
- This endpoint allows you to retrieve detailed information about a specific signing key using its unique key id. While the private key is not returned for security reasons, You can view the key’s creation date, status, and other associated metadata. This endpoint also returns the workspaceId and publicKey in the response.
-
-
- Usage: Generating a JWT token
-
- In the response, the API returns the workspaceId and publicKey associated with the signing key. With the publicKey and the privateKey obtained from the "Create a Signing Key" endpoint, you can generate a JSON Web Token (JWT) using the RS256 algorithm. This token can be utilized for accessing private media assets, GIFs, thumbnails, and spritesheets.
-
-
-
- Payload:
-
-
- ```
- {
- "kid": "359302ee-2446-4afe-9348-8b4656b9ddb1",
- "aud": "media:6cee6f85-9334-4a51-9ce3-e0241d94ceef",
- "iss": "fastpix.com",
- "sub": "",
- "iat": 1706703204,
- "exp": 1735626783
-
- }
- ```
-
-
-
- * **kid:** The key ID of the signing key.
- * **aud:** The audience for which the token is intended, enter the playbackId here.
- * **iss:** The issuer of the token (for example, "fastpix.com ").
- * **sub:** The subject of the token, typically representing the user or entity the token is issued for. In this case, use the workspaceId fetched from the "Get Signing Key by ID" endpoint.
- * **groups:** An array of groups the subject belongs to (for example, ["user"]).
- * **iat:** The issued-at timestamp, indicating when the token was created.
- * **exp:** The expiration timestamp, indicating when the token will no longer be valid.
-
-
-
-
-
- Use case scenario
-
-
-
- **Use case:** A developer is unsure about the status of a signing key they created months ago and wants to verify whether it's still in use or has expired.
-
-
-
- **Detailed example:** You’re working on a streaming platform and realize you haven’t checked the status of a signing key that was used for playback access several months ago. By fetching the key details using its ID, you can confirm whether it’s still active, when it was created, and if it’s nearing expiration. This allows you to plan a rotation or deactivation if needed.
- security:
- - BasicAuth: []
- parameters:
- - name: signingKeyId
- in: path
- required: true
- schema:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: "When creating the signing key, FastPix assigns a universally unique identifier with a maximum length of 255 characters. "
- responses:
- "200":
- description: successfully fetched signing key
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/getPublicPemUsingSigningKeyIdResponseDTO"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/viewlist:
- get:
- security:
- - BasicAuth: []
- tags:
- - Views
- summary: List video views
- operationId: list_video_views
- description: |-
- Retrieves a list of video views that fall within the specified filters and have been completed within a defined timespan. It lets you to analyse viewer interactions with your video content effectively.
-
-
- #### How it works
-
- 1. Send a `GET` request to this endpoint with the desired query parameters.
-
- 2. Specify the timespan for which you want to retrieve the video views using the `timespan[]` parameter.
-
- 3. Filter the views based on dimensions such as browser, device, video title, viewer ID, etc., using the `filterby[]` parameter. Get the dimensions by calling list the dimensions endpoint.
-
- 4. Paginate the results using the `limit` and `offset` parameters.
-
- 5. You can also filter by `viewerId`, `errorCode`, `orderBy` a specific field, and `sortOrder` in ascending or descending order.
-
- 6. You receive a response containing the list of video views matching the specified criteria.
-
- Each view in the response includes a unique `viewId`. You can use this `viewId` with the Get Video View Details endpoint to retrieve more detailed information about that specific view.
-
-
- #### Example
-
- If you manage a video streaming service and want to analyze content performance across devices and browsers. By calling the List Video Views endpoint with filters such as `browser_name` and `device_type`, you can identify which platforms are most popular with your audience. This information helps optimize content for widely used platforms and troubleshoot playback issues on less common devices.
-
-
- Related guide: Audience metrics, Views dashboard
- parameters:
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
-
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- - in: query
- name: limit
- description: |
- Pass the limit to display only the rows specified by the value.
- schema:
- type: integer
- example: 10
- default: 10
- - in: query
- name: offset
- description: |
- Pass the offset value to indicate the page number.
- schema:
- type: integer
- example: 1
- default: 1
- - in: query
- name: viewerId
- description: |
- Pass the viewer_id to filter the list of views. This value can be manually set during integration or generated by FastPix. When set manually it can be a string of aplha numeric values of any length.
- schema:
- type: string
- example: 09a78f7d-02ee-44f5-aa39-1b268ed2c270
- - in: query
- name: errorCode
- description: |
- Pass the error code to filter the list of views. The possible values of error code can be fetched from list of errors end point.
- schema:
- type: string
- nullable: true
- example: 1002
- - in: query
- name: orderBy
- description: |
- Pass this value to sort the view list by.
- schema:
- type: string
- example: view_end
- default: view_end
- - in: query
- name: sortOrder
- description: |
- The order direction to sort the view list by.
- schema:
- type: string
- example: asc
- default: asc
- responses:
- "200":
- description: Get the list of Views
- content:
- application/json:
- schema:
- example:
- success: true
- data:
- - viewId: 92752c49-1bce-4cf8-bea4-5c2c2ac7575d
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-15T04:43:44"
- viewEndTime: "2024-04-15T04:44:05"
- videoTitle: "Champion Engagement Model: Best practices for identifying and engaging your champion"
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 10016
- QoeScore: 0.955924359113425
- - viewId: aa3f20e4-6065-4c7c-aed5-c7f8d127bcba
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-15T11:31:48"
- viewEndTime: "2024-04-15T11:32:30"
- videoTitle: How to reduce time-to-value for your customers
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 31926
- QoeScore: 0.958520302068513
- - viewId: d7e6929a-9b7f-4f88-a8eb-033fb9e6dc6d
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-15T20:34:42"
- viewEndTime: "2024-04-15T20:35:00"
- videoTitle: Implementing projects the ISRO way
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 17562
- QoeScore: 0.958648125844009
- - viewId: eca6400a-73e9-4250-8d0a-cb1cda15fed4
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-15T20:38:48"
- viewEndTime: "2024-04-15T20:39:23"
- videoTitle: Designing your onboarding and adoption journey
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 34823
- QoeScore: 0.956301364903515
- - viewId: 687b3a54-6646-4343-bfbe-459742042f54
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-16T09:20:34"
- viewEndTime: "2024-04-16T09:21:24"
- videoTitle: How to Approach an Irate Customer With Mimecast"s Alice Jeffery
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 13493
- QoeScore: 0.472563044953793
- - viewId: c1464fdb-f3f8-4ccd-8914-94e1851e8459
- operatingSystem: MacOS
- application: Chrome
- viewStartTime: "2024-04-16T09:22:42"
- viewEndTime: "2024-04-16T09:22:45"
- videoTitle: How to Approach an Irate Customer With Mimecast"s Alice Jeffery
- errorCode: null
- errorMessage: null
- errorId: null
- country: IN
- viewWatchTime: 1
- QoeScore: 0.5
- pagination:
- totalRecords: 27
- currentOffset: 1
- offsetCount: 3
- timespan:
- - 1712910924
- - 1713515724
- type: object
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- description: Displays the result of the request.
- items:
- $ref: "#/components/schemas/ViewsList"
- pagination:
- $ref: "#/components/schemas/DataPagination"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/viewlist/{viewId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Views
- summary: Get details of video view
- operationId: get_video_view_details
- description: |-
- Retrieves detailed information about a specific video view using its unique `viewId`. This provides insights into individual viewer interactions with your video content, helping you enhance user experience and improve engagement with your videos.
-
- To use this endpoint, send `GET` request with the `viewId`. The response includes detailed metrics and attributes related to the specified video view.
-
-
- #### Example
-
- If a developer receives a report of a poor viewing experience for a specific user. By using this endpoint with the users `viewId`, the developer can retrieve metrics like buffering duration, playback errors, and session length. This data allows the developer to pinpoint issues (such as poor connectivity or a browser-specific problem) and take steps to improve the user experience.
-
-
- Related guide: What Video Data do we capture?
- parameters:
- - in: path
- name: viewId
- description: Pass View Id
- required: true
- schema:
- type: string
- responses:
- "200":
- description: Get a video view by id
- content:
- application/json:
- schema:
- example:
- success: true
- data:
- asnId: 55836
- asnName: AS55836 Reliance Jio Infocomm Limited
- averageBitrate: 1512855.0
- avgDownscaling: 0.0
- avgRequestLatency: 0.0
- avgRequestThroughput: 1.2588331E7
- avgUpscaling: 0.0
- beaconDomain: metrix.ws
- browserEngine: null
- browserName: Chrome
- browserVersion: Chrome 5.8.3
- bufferCount: 0
- bufferFill: 0
- bufferFrequency: 0.0
- bufferRatio: 0.0
- cdn: null
- city: Gaddi Annaram
- connectionType: cellular
- continent: AS
- country: India
- countryCode: IN
- custom:
- Custom:
- - dimensionName: custom_1
- displayName: displayName-1
- value: ShortVideo
- deviceManufacturer: vivo
- deviceModel: V2130
- deviceName: V2130
- deviceType: Mobile
- drmType: null
- droppedFrameCount: 0
- errorCode: null
- errorContext: null
- errorId: null
- errorMessage: null
- exitBeforeVideoStart: false
- experimentName: null
- fpApiVersion: 1.0
- fpEmbed: false
- fpEmbedVersion: 1.0.0
- fpLiveStreamId: null
- fpPlaybackId: null
- fpSdk: media3_fastpix
- fpSdkVersion: 1.0.0
- fpViewerId: 36c707a3-7f9a-48ab-9ba4-416617d20889
- insertTimestamp: 2025-09-24T07:33:53.39Z
- ipAddress: 192.168.136.251
- jumpLatency: 72.0
- latitude: 17.366900
- liveStreamLatency: null
- longitude: 78.524200
- maxDownscaling: 0.0
- maxRequestLatency: 0.0
- maxUpscaling: 0.0
- mediaId: null
- osName: Android
- osVersion: Android 14
- pageContext: null
- pageLoadTime: 0
- playbackScore: 1.0
- playerAutoplayOn: false
- playerHeight: 383
- playerInitializationTime: 0
- playerInstanceId: 859e3520-acb7-44fc-b856-69aa364de566
- playerLanguage: null
- playerName: null
- playerPoster: null
- playerPreloadOn: false
- playerRemotePlayed: false
- playerResolution: 393x383
- playerSoftwareName: media3-generic
- playerSoftwareVersion: 1.6.1
- playerSourceDomain: null
- playerSourceHeight: 720
- playerSourceWidth: 1280
- playerVersion: null
- playerViewCount: 0
- playerWidth: 393
- propertyId: null
- qualityOfExperienceScore: 0.9697980416156672
- region: Telangana
- renderQualityScore: 1.0
- sessionId: 8c7859bf-6d0c-4de8-a1d7-a3d8bdecc977
- sign: 1
- stabilityScore: 1.0
- startupScore: 0.8901746967842439
- subPropertyId: null
- totalStartupTime: 987
- updatedTimestamp: 2025-09-24T07:33:55.074Z
- usedFullScreen: false
- userAgent: Dalvik/2.1.0 (Linux; U; Android 14; V2130 Build/UP1A.231005.007)
- videoContentType: null
- videoDuration: null
- videoEncodingVariant: null
- videoId: 68d3780f38aec4265abe453a
- videoLanguage: null
- videoProducer: null
- videoResolution: 720X1280
- videoSeries: null
- videoSourceDomain: null
- videoSourceDuration: 30120
- videoSourceHostname: unknown
- videoSourceStreamType: null
- videoSourceType: null
- videoSourceUrl: null
- videoStartupFailed: false
- videoStartupTime: 987
- videoTitle: Best practices for identifying and engaging your champion
- videoVariantId: null
- videoVariantName: null
- viewEnd: 2025-09-24T07:33:55.074Z
- viewHasAd: false
- viewHasError: false
- viewId: 202b8e4f-c078-4b98-88c8-6f7c23ba7272
- viewMaxPlayheadPosition: 0
- viewPageUrl: null
- viewPlayingTime: 0
- viewSeekedCount: 1
- viewSeekedDuration: 72
- viewSessionId: 059c5bc2-12fc-45f1-b893-db9f1d0bf7d1
- viewStart: 2025-09-24T07:33:53.39Z
- viewTotalContentPlaybackTime: 0
- viewerId: null
- watchTime: 987
- workspaceId: fdae281f-b582-4ea0-8694-15fccd1cbd98
- events:
- - pt: 0
- e: playerReady
- vt: 1713156224677
- - pt: 0
- e: viewBegin
- vt: 1713156224677
- - pt: 0
- e: play
- vt: 1713156224677
- - pt: 0
- e: waiting
- vt: 1713156224677
- - pt: 0
- e: loadstart
- vt: 1713156224677
- - pt: 0
- e: playing
- vt: 1713156224677
- - pt: 0
- e: variantChanged
- vt: 1713156224677
- - pt: 0
- e: seeking
- vt: 1713156224677
- - pt: 0
- e: pause
- vt: 1713156224677
- - pt: 0
- e: ended
- vt: 1713156224677
- - pt: 0
- e: viewCompleted
- vt: 1713156224677
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- data:
- $ref: "#/components/schemas/Views"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/viewlist/top-content:
- get:
- security:
- - BasicAuth: []
- tags:
- - Views
- summary: List by top content
- operationId: list_by_top_content
- description: |
- Retrieves a list of the top video views that fall within the specified filters and have been completed within a defined timespan. It lets you to identify the most popular content based on viewer interactions.
-
- #### How it works
-
- 1. Send a `GET` request to this endpoint with the desired query parameters.
-
- 2. Specify the timespan for which you want to retrieve the top content using the `timespan[]` parameter.
-
- 3. Filter the views based on dimensions such as browser, device, video title, etc., using the `filterby[]` parameter.
-
- 4. You can use `Limit` to control number of top views returned.
-
- 5. You receive a response containing the list of top video views matching the specified criteria.
-
-
- Related guide: Get top-performing content
- parameters:
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- - in: query
- name: limit
- description: |
- Pass the limit to display only the rows specified by the value.
- schema:
- type: integer
- example: 10
- default: 10
- responses:
- "200":
- description: Get the list of Views
- content:
- application/json:
- schema:
- example:
- success: true
- data:
- - videoTitle: Cycle
- views: 44
- uniqueViews: 40
- timespan:
- - 1712910924
- - 1713515724
- type: object
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- description: Displays the result of the request.
- items:
- $ref: "#/components/schemas/ViewsByTopContentDetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/dimensions:
- get:
- security:
- - BasicAuth: []
- tags:
- - Dimensions
- summary: List the dimensions
- description: |
- Retrieves a list of dimensions that can be used as query parameters across various data endpoints. Each dimension has a unique id that can be used to filter data effectively.
-
- The dimensions retrieved from this endpoint can be used in conjunction with the list video views and list by top content endpoints to filter results based on specific criteria. For example, you can filter views by `browser_name`, `os_name`, `device_type`, and more.
-
- Related guides: What Video Data do we capture? , Use passable dimensions
- operationId: list_dimensions
- responses:
- "200":
- description: Get the list of Views
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- example: true
- data:
- $ref: "#/components/schemas/Dimensions"
- description: Displays the result of the request.
- example:
- - browser_name
- - browser_version
- - os_name
- - os_version
- - device_name
- - device_model
- - device_type
- - device_manufacturer
- - player_remote_played
- - player_name
- - player_version
- - player_software_name
- - player_software_version
- - player_resolution
- - fp_sdk
- - fp_sdk_version
- - player_autoplay_on
- - player_preload_on
- - video_title
- - video_id
- - video_series
- - fp_playback_id
- - fp_live_stream_id
- - media_id
- - video_source_stream_type
- - video_source_type
- - video_encoding_variant
- - experiment_name
- - sub_property_id
- - drm_type
- - asn_name
- - cdn
- - video_source_hostname
- - connection_type
- - view_session_id
- - continent
- - country
- - region
- - viewer_id
- - error_code
- - exit_before_video_start
- - view_has_ad
- - video_startup_failed
- - video_content_type
- - page_context
- - playback_failed
- - custom_1
- - custom_2
- - custom_3
- - custom_4
- - custom_5
- - custom_6
- - custom_7
- - custom_8
- - custom_9
- - custom_10
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/dimensions/{dimensionsId}:
- get:
- security:
- - BasicAuth: []
- tags:
- - Dimensions
- summary: List the filter values for a dimension
- description: |
- This endpoint returns the filter values associated with a specific dimension, along with the total number of video views for each value. For example, it can list all `browser_name` (dimension) and show how many views occurred for all available browsers like Chrome, Safari (filter values).
-
-
- In order to use the Custom Dimensions, you must enable them in the dashboard under settings option based on the plan you have opted for.
-
- #### Example
-
- A developer wants to know how their video content performs across different browsers. By calling this endpoint for the `device_type` dimension, they can retrieve a breakdown of video views by each device (for example, Desktop, Mobile, Tablet). This data helps the developer understand where optimizations or troubleshooting is necessary.
-
-
- Related guide: Filters and timespan
- operationId: list_filter_values_for_dimension
- parameters:
- - in: path
- name: dimensionsId
- description: |
- Pass Dimensions Id
- required: true
- schema:
- type: string
- example: browser_name
- enum:
- - browser_name
- - browser_version
- - os_name
- - os_version
- - device_name
- - device_model
- - device_type
- - device_manufacturer
- - player_remote_played
- - player_name
- - player_version
- - player_software_name
- - player_software_version
- - player_resolution
- - fp_sdk
- - fp_sdk_version
- - player_autoplay_on
- - player_preload_on
- - video_title
- - video_id
- - video_series
- - fp_playback_id
- - fp_live_stream_id
- - media_id
- - video_source_stream_type
- - video_source_type
- - video_encoding_variant
- - experiment_name
- - sub_property_id
- - drm_type
- - asn_name
- - cdn
- - video_source_hostname
- - connection_type
- - view_session_id
- - continent
- - country
- - region
- - viewer_id
- - error_code
- - exit_before_video_start
- - view_has_ad
- - video_startup_failed
- - video_content_type
- - page_context
- - playback_failed
- - custom_1
- - custom_2
- - custom_3
- - custom_4
- - custom_5
- - custom_6
- - custom_7
- - custom_8
- - custom_9
- - custom_10
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- responses:
- "200":
- description: Get filter / dimension value details by dimension name.
- content:
- application/json:
- schema:
- example:
- success: true
- data:
- - value: Chrome
- uniqueCount: 20
- count: 44
- timespan:
- - 1610025789
- - 1610025947
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- data:
- $ref: "#/components/schemas/Dimensiondetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/metrics/{metricId}/breakdown:
- get:
- security:
- - BasicAuth: []
- tags:
- - Metrics
- summary: List breakdown values
- operationId: list_breakdown_values
- description: |
- Retrieves breakdown values for a specified metric and timespan, allowing you to analyze the performance of your content based on various dimensions. It provides insights into how different factors contribute to the overall metrics.
-
- #### How it works
-
- 1. Before using this endpoint, you can call the List Dimensions endpoint to retrieve all available dimensions that can be used in your query.
-
- 2. Send a `GET` request to this endpoint with the required `metricId` and other query parameters.
-
- 3. You receive a response containing the breakdown values for the specified metric, grouped and filtered according to your parameters.
-
- 4. Upon successful retrieval, the response includes the breakdown values based on the specified parameters. Note that the time values ( `totalWatchTime` and `totalPlayingTime` ) are in milliseconds
-
-
- #### Example
-
-
- A developer wants to analyze how watch time varies across different device types. By calling this endpoint for the `playing_time` metric and filtering by `device_type`, they can understand how engagement differs between mobile, desktop, and tablet users. This data guides optimization efforts for different platforms.
-
- #### Key fields in response
-
-
- * **views:** The count of views based based on the applied filters.
-
- * **value:** The specific metric value calculated based on the applied filters.
- * **totalWatchTime:** Total time watched across all views, represented in milliseconds.
-
- * **totalPlayTime:** Total time spent playing the video, represented in milliseconds.
- * **field:** The grouping field value based on the groupBy parameter.
-
-
- Related guide: Understand data definitions
- parameters:
- - in: path
- name: metricId
- required: true
- description: |
- Pass metric Id
- schema:
- type: string
- example: quality_of_experience_score
- enum:
- - views
- - unique_viewers
- - playing_time
- - quality_of_experience_score
- - playback_score
- - playback_failure_percentage
- - exit_before_video_start
- - video_startup_failure_percentage
- - startup_score
- - video_startup_time
- - player_startup_time
- - page_load_time
- - total_startup_time
- - live_stream_latency
- - average_bitrate
- - buffer_count
- - render_quality_score
- - avg_upscaling
- - avg_downscaling
- - max_upscaling
- - max_downscaling
- - jump_latency
- - stability_score
- - buffer_ratio
- - buffer_frequency
- - buffer_fill
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- - in: query
- name: limit
- description: |
- Pass the limit to display only the rows specified by the value.
- schema:
- type: integer
- example: 10
- default: 10
- - in: query
- name: offset
- description: |
- Pass the offset value to indicate the page number.
- schema:
- type: integer
- example: 1
- default: 1
- - in: query
- name: groupBy
- description: |
- Pass this value to group the metrics list by.
- Possible Values : ["browser_name", "browser_version", "os_name","os_version" , "device_name", "device_model", "device_type", "device_manufacturer", "player_remote_played",player_name", "player_version", "player_software_name", "player_software_version", "player_resolution", "fp_sdk","fp_sdk_version", "player_autoplay_on", "player_preload_on","video_title", "video_id", "video_series" , "fp_playback_id","fp_live_stream_id", "media_id","video_source_stream_type", "video_source_type", "video_encoding_variant", "experiment_name", "sub_property_id", "drm_type","asn_name", "cdn", "video_source_hostname", "connection_type", "view_session_id","continent","country", "region","viewer_id", "error_code", "exit_before_video_start", "view_has_ad", "video_startup_failed" , "page_context", "playback_failed".]
- schema:
- type: string
- example: browser_name
- - in: query
- name: orderBy
- description: |
- Pass this value to order the metrics list by.
- schema:
- type: string
- example: views
- default: views
- - in: query
- name: sortOrder
- description: |
- The order direction to sort the metrics list by.
- schema:
- type: string
- example: asc
- default: asc
- enum:
- - asc
- - desc
- - in: query
- name: measurement
- description: |
- The measurement for the given metrics.
- Possible Values : [95th, median, avg, count or sum]
- schema:
- type: string
- example: avg
- default: avg
- responses:
- "200":
- description: Get filter/ dimension value details by dimension name.
- content:
- application/json:
- schema:
- example:
- success: true
- metadata:
- aggregation: view_end
- data:
- - views: 3
- value: 30
- totalWatchTime: 83208
- totalPlayingTime: 57165
- field: PostmanRuntime
- - views: 24
- value: 28
- totalWatchTime: 913048
- totalPlayingTime: 2624467
- field: Chrome
- pagination:
- totalRecords: 2
- currentOffset: 1
- offsetCount: 1
- timespan:
- - 1712915263
- - 1713520063
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- metadata:
- $ref: "#/components/schemas/MetricsmetadataDetails"
- data:
- $ref: "#/components/schemas/MetricsBreakdownDetails"
- pagination:
- $ref: "#/components/schemas/DataPagination"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/metrics/{metricId}/overall:
- get:
- security:
- - BasicAuth: []
- tags:
- - Metrics
- summary: List overall values
- operationId: list_overall_values
- description: |
- Retrieves overall values for a specified metric, providing summary statistics that help you understand the performance of your content. The response includes key metrics such as `totalWatchTime`, `uniqueViews`, `totalPlayTime` and `totalViews`.
-
- #### How it works
-
- 1. Before using this endpoint, you can call the list dimensions endpoint to retrieve all available dimensions that can be used in your query.
-
- 2. Send a `GET` request to this endpoint with the required `metricId` and other query parameters.
-
- 3. You receive a response containing the overall values for the specified metric, which may vary based on the applied filters.
-
-
-
-
-
-
- #### Key fields in response
-
-
- * **value:** The specific metric value calculated based on the applied filters.
- * **totalWatchTime:** Total time watched across all views, represented in milliseconds.
- * **uniqueViews:** The count of unique viewers who interacted with the content.
- * **totalViews:** The total number of views recorded.
- * **totalPlayTime:** Total time spent playing the video, represented in milliseconds.
- * **globalValue:** A global metric value that reflects the overall performance of the specified metric across the entire dataset for the given timespan. This value is not affected by specific filters.
-
-
- Related guide: Understand data definitions
- parameters:
- - in: path
- name: metricId
- required: true
- description: |
- Pass metric Id
- schema:
- type: string
- example: quality_of_experience_score
- enum:
- - views
- - unique_viewers
- - playing_time
- - quality_of_experience_score
- - playback_score
- - playback_failure_percentage
- - exit_before_video_start
- - video_startup_failure_percentage
- - startup_score
- - video_startup_time
- - player_startup_time
- - page_load_time
- - total_startup_time
- - live_stream_latency
- - average_bitrate
- - buffer_count
- - render_quality_score
- - avg_upscaling
- - avg_downscaling
- - max_upscaling
- - max_downscaling
- - jump_latency
- - stability_score
- - buffer_ratio
- - buffer_frequency
- - buffer_fill
- - in: query
- name: measurement
- description: |
- The measurement for the given metrics.
- Possible Values : [95th, median, avg, count or sum]
- schema:
- type: string
- example: avg
- default: avg
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- responses:
- "200":
- description: Get filter/ dimension value details by dimension name.
- content:
- application/json:
- schema:
- example:
- success: true
- metadata:
- aggregation: view_end
- data:
- value: 0.740365072855583
- totalWatchTime: 59534302
- uniqueViews: 44
- totalViews: 195
- totalPlayTime: 24729470
- globalValue: 0.740365072855583
- timespan:
- - 1610025789
- - 1610025947
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- metadata:
- $ref: "#/components/schemas/MetricsOverallmetadataDetails"
- data:
- $ref: "#/components/schemas/MetricsOverallDataDetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/metrics/{metricId}/timeseries:
- get:
- security:
- - BasicAuth: []
- tags:
- - Metrics
- summary: Get timeseries data
- operationId: get_timeseries_data
- description: |
- This endpoint retrieves timeseries data for a specified metric, providing insights into how the metric values change over time. The response includes an array of data points, each representing the metrics value at specific intervals.
-
- #### Key fields in response
-
- * **intervalTime:** The timestamp for the data point indicating when the metric value was recorded.
- * **metricValue:** The value of the specified metric at the given interval, reflecting the performance or engagement level during that time.
- * **numberOfViews:** The total number of views recorded during that interval, providing context for the metric value.
- parameters:
- - in: path
- name: metricId
- required: true
- description: |
- Pass metric Id
- schema:
- type: string
- example: quality_of_experience_score
- enum:
- - views
- - unique_viewers
- - playing_time
- - quality_of_experience_score
- - playback_score
- - playback_failure_percentage
- - exit_before_video_start
- - video_startup_failure_percentage
- - startup_score
- - video_startup_time
- - player_startup_time
- - page_load_time
- - total_startup_time
- - live_stream_latency
- - average_bitrate
- - buffer_count
- - render_quality_score
- - avg_upscaling
- - avg_downscaling
- - max_upscaling
- - max_downscaling
- - jump_latency
- - stability_score
- - buffer_ratio
- - buffer_frequency
- - buffer_fill
- - in: query
- name: groupBy
- description: |
- Pass this value to group the metrics list by.
- schema:
- type: string
- example: minute
- default: minute
- enum:
- - minute
- - ten_minutes
- - hour
- - day
- - in: query
- name: sortOrder
- description: |
- The order direction to sort the metrics list by.
- schema:
- type: string
- example: asc
- default: asc
- enum:
- - asc
- - desc
- - in: query
- name: measurement
- description: |
- The measurement for the given metrics.
- Possible Values : [95th, median, avg, count or sum]
- schema:
- type: string
- example: avg
- default: avg
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- responses:
- "200":
- description: Get filter/ dimension value details by dimension name.
- content:
- application/json:
- schema:
- example:
- success: true
- metadata:
- granularity: day
- aggregation: view_end
- data:
- - intervalTime: "2023-12-04T14:00:00Z"
- metricValue: 0.793110142151515
- numberOfViews: 143244
- timespan:
- - 1610025789
- - 1610025947
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- metadata:
- $ref: "#/components/schemas/MetricsTimeseriesmetadataDetails"
- data:
- description: Displays the result of the request.
- type: array
- items:
- $ref: "#/components/schemas/MetricsTimeseriesDataDetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/metrics/comparison:
- get:
- security:
- - BasicAuth: [ ]
- tags:
- - Metrics
- summary: List comparison values
- operationId: list_comparison_values
- description: |
- This endpoint lets you to compare multiple metrics across specified dimensions. You can specify the metrics you want to compare in the query parameters, and the response includes the relevant metrics for the specified dimensions.
-
- #### Key fields in response
-
- * **value:** The specific metric value calculated based on the applied filters.
- * **type:** The data unit or format type (for example, "number", "milliseconds", "percentage").
- * **name:** The display name of the metric (for example, "Views", "Overall Score").
- * **metric:** The metric field represents the name of the Key Performance Indicator (KPI) being tracked or analyzed. It identifies a specific measurable aspect of the video playback experience, such as buffering time, video start failure rate, or playback quality.
- * **items:** Nested breakdown of related metrics for more detailed analysis.
- * **measurement:** Defines the aggregation type (for example, "avg", "sum", "median", "95th").
-
- #### How it works
-
- 1. Before making a request to this endpoint, call the list dimensions endpoint to obtain all available dimensions that can be used for comparison.
-
- 2. Send a `GET` request to this endpoint with the desired metrics specified in the query parameters.
-
- 3. You Receive a response containing the comparison values for the specified metrics across the selected dimensions.
-
-
- Related guide: Compare metrics in dashboard
- parameters:
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- - in: query
- name: dimension
- description: |
- The dimension id in which the views are watched.
- schema:
- type: string
- example: browser_name
- enum:
- - browser_name
- - browser_version
- - os_name
- - os_version
- - device_name
- - device_model
- - device_type
- - device_manufacturer
- - player_remote_played
- - player_name
- - player_version
- - player_software_name
- - player_software_version
- - player_resolution
- - fp_sdk
- - fp_sdk_version
- - player_autoplay_on
- - player_preload_on
- - video_title
- - video_id
- - video_series
- - fp_playback_id
- - fp_live_stream_id
- - media_id
- - video_source_stream_type
- - video_source_type
- - video_encoding_variant
- - experiment_name
- - sub_property_id
- - drm_type
- - asn_name
- - cdn
- - video_source_hostname
- - connection_type
- - view_session_id
- - continent
- - country
- - region
- - viewer_id
- - error_code
- - exit_before_video_start
- - view_has_ad
- - video_startup_failed
- - page_context
- - video_content_type
- - playback_failed
- - custom_1
- - custom_2
- - custom_3
- - custom_4
- - custom_5
- - custom_6
- - custom_7
- - custom_8
- - custom_9
- - custom_10
- - in: query
- name: value
- description: |
- The value for the selected dimension.
- For example:
- If `dimension` is `browser_name`, the value could be `Chrome` `,` `Firefox` `etc` .
- If `dimension` is `os_name`, the value could be `macOS` `,` `Windows` `etc` .
- schema:
- type: string
- example: Chrome
- responses:
- "200":
- description: Get filter/ dimension value details by dimension name.
- content:
- application/json:
- schema:
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- data:
- type: array
- description: |
- Displays the result of the request.
- items:
- $ref: "#/components/schemas/MetricsComparisonDetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- example:
- success: true
- data:
- - value: 6
- type: number
- name: Views
- metric: views
- measurement: count
- items:
- - value: 6
- type: number
- name: Unique Viewers
- metric: uniqueViewers
- measurement: count
- items: null
- - value: 503934
- type: milliseconds
- name: Playing Time
- metric: playingTime
- measurement: sum
- items: null
-
- timespan:
- - 1610025789
- - 1610025947
-
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
- /data/errors:
- get:
- security:
- - BasicAuth: []
- tags:
- - Errors
- summary: List errors
- operationId: list_errors
- description: |
- This endpoint returns the total number of playback errors that occurred, along with the total number of views captured, based on the specified timespan and filters. It provides insights into the overall playback quality and helps identify potential issues that may impact viewer experience.
-
-
- #### Key fields in response
-
- * **percentage:** The percentage of views affected by the specific error.
- * **uniqueViewersEffectedPercentage:** The percentage of unique viewers affected by the specific error (available only in the topErrors section).
- * **notes:** Additional notes or information about the specific error.
- * **message:** The error message or description.
- * **lastSeen:** The timestamp of when the error was last observed.
- * **id:** The unique identifier for the specific error.
- * **description:** A description of the specific error.
- * **count:** The number of occurrences of the specific error.
- * **code:** The error code associated with the specific error.
-
-
- Related guide: Troubleshoot errors
- parameters:
- - in: query
- name: timespan[]
- description: |
- This parameter specifies the time span between which the video views list must be retrieved by. You can provide either from and to unix epoch timestamps or time duration. The scope of duration is between 60 minutes to 30 days.
-
- **Accepted formats are:**
-
- array of epoch timestamps for example
- `timespan[]=1498867200×pan[]=1498953600`
-
- duration string for example
- `timespan[]=24:hours` or `timespan[]=7:days`
- style: form
- explode: true
- schema:
- type: string
- example: 24:hours
- enum:
- - 60:minutes
- - 6:hours
- - 24:hours
- - 3:days
- - 7:days
- - 30:days
- - in: query
- name: filterby[]
- description: |
- Pass the dimensions and their corresponding values you want to filter the views by. For excluding the values in the filter we can pass "!" before the filter value. The list of filters can be obtained from list of dimensions endpoint.
- Example Values : [ browser_name:Chrome , os_name:macOS , !device_name:Galaxy ]
- style: form
- explode: true
- schema:
- type: string
- example: browser_name:Chrome
- - in: query
- name: limit
- description: |
- Pass the limit to display only the rows specified by the value for top errors.
- schema:
- type: integer
- example: 1
- default: 1
- responses:
- "200":
- description: Get filter/ dimension value details by dimension name.
- content:
- application/json:
- schema:
- example:
- success: true
- data:
- errors:
- - percentage: 0.0222222222222222
- notes: An informative note on specific error
- message: "com.fastpix.stats.sdk.h71.a - android.media.mediadrm$mediadrmstateexception: failed to handle key response: drm vendor-defined error: -2998"
- lastSeen: "2023-12-01T11:31:07Z"
- id: 9pa85f64-5717-4562-b3fc-2c963f66afa6
- description: a description for the specific error
- count: 4
- code: 1003
- topErrors:
- - percentage: 0.0222222222222222
- uniqueViewersEffectedPercentage: 0.0122222222222222
- notes: An informative note for a specific error
- message: "com.fastpix.stats.sdk.h71.a - android.media.mediadrm$mediadrmstateexception: failed to handle key response: drm vendor-defined error: -2998"
- lastSeen: "2023-12-01T11:31:07Z"
- count: 4
- code: 1003
- timespan:
- - 1610025789
- - 1610025947
- type: object
- properties:
- success:
- description: Shows the request status. Returns true for success and false for failure.
- type: boolean
- data:
- description: Displays the result of the request.
- type: object
- properties:
- errors:
- $ref: "#/components/schemas/ErrorDetails"
- topErrors:
- $ref: "#/components/schemas/TopErrorDetails"
- timespan:
- $ref: "#/components/schemas/TimeSpan"
- "default":
- description: See the range of possible error responses and their status codes.
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/Default-Error"
-components:
- securitySchemes:
- BasicAuth:
- type: http
- scheme: basic
- description: |
- FastPix APIs are secured with Basic Authentication.
- Use your Access Token ID as the username and Secret Key as the password in the Authorization header of each API request.
- - Username: Access Token ID
- - Password: Secret Key
-
- Activate your FastPix account to generate your API credentials. See the guide here
-
- schemas:
- # Common enums
- SortOrder:
- type: string
- enum:
- - asc
- - desc
- default: desc
- example: desc
- description: "The values in the list can be arranged in two ways: DESC (Descending) or ASC (Ascending)."
-
- PlaylistOrder:
- type: string
- enum:
- - createdDate ASC
- - createdDate DESC
- description: Determines the insertion order of media into playlist.
-
- DateRange:
- type: object
- properties:
- startDate:
- type: string
- example: "2024-11-11"
- endDate:
- type: string
- example: "2024-11-11"
- description: Date range with start and end dates.
-
- MediaType:
- type: string
- default: audio
- enum:
- - video
- - audio
- - av
- description: Type of media content
-
- AccessPolicy:
- type: string
- enum:
- - public
- - private
- - drm
- description: Access policy for media content
-
- BasicAccessPolicy:
- type: string
- enum:
- - public
- - private
- default: public
- description: Basic access policy for media content
-
- PolicyAction:
- type: string
- enum:
- - allow
- - deny
- description: Policy action type
-
- # Reusable access restriction schemas
- DomainRestrictions:
- type: object
- description: Restrictions based on the originating domain of a request
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of domain names or patterns that are explicitly allowed access
- deny:
- type: array
- items:
- type: string
- description: A list of domain names or patterns that are explicitly denied access
-
- UserAgentRestrictions:
- type: object
- description: Restrictions based on the user agent
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of user agents that are explicitly allowed access
- deny:
- type: array
- items:
- type: string
- description: A list of user agents that are explicitly denied access
-
- SrtPlaybackResponse:
- type: object
- description: This object contains the livestream playback response details for SRT Protocol
- properties:
- srtPlaybackStreamId:
- type: string
- description: A unique identifier for the SRT playback stream. This ID is used to distinguish between different playback streams
- srtPlaybackSecret:
- type: string
- description: A playback secret used for securing the SRT playback stream. This ensures that only authorized users can access the playback
-
- LanguageCode:
- type: string
- example: en-US
- default: en-US
- enum:
- - ar-SA
- - bn-BD
- - bn-IN
- - ca-ES
- - cs-CZ
- - da-DK
- - de-AT
- - de-CH
- - de-DE
- - el-GR
- - en-AU
- - en-CA
- - en-GB
- - en-IE
- - en-IN
- - en-NZ
- - en-US
- - en-ZA
- - es-AR
- - es-CL
- - es-CO
- - es-ES
- - es-MX
- - es-US
- - fi-FI
- - fr-BE
- - fr-CA
- - fr-CH
- - fr-FR
- - he-IL
- - hi-IN
- - hr-HR
- - hu-HU
- - id-ID
- - it-CH
- - it-IT
- - ja-JP
- - ko-KR
- - ms-MY
- - nb-NO
- - nl-BE
- - nl-NL
- - no-NO
- - pl-PL
- - pt-BR
- - pt-PT
- - ro-RO
- - ru-RU
- - sk-SK
- - sv-SE
- - ta-IN
- - ta-LK
- - te-IN
- - th-TH
- - tr-TR
- - uk-UA
- - vi-VN
- - bg-BG
- - zh-CN
- - zh-HK
- - zh-TW
- description: Language code for content localization
-
- # Response schemas
- CreateMediaSuccessResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/CreateMediaResponse"
- MediaClipResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: b62427ec-07fd-4a89-b3c0-94909aaaa1da
- description: The unique identifier assigned to the media by FastPix.
- duration:
- type: string
- example: "00:00:13"
- description: Duration of the media in HH:MM:SS format.
- status:
- type: string
- example: Ready
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: The current processing status of the media.
- thumbnail:
- type: string
- format: uri
- example: https://images.fastpix.app/66dc7b0b-9dfb-4721-a738-837f89ccbd0a/thumbnail.png
- description: A video thumbnail that acts as a preview image for the video.
- createdAt:
- type: string
- format: date-time
- example: "2025-03-12T06:17:26.403017Z"
- description: Timestamp of when the media was created.
- playbackIds:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 66dc7b0b-9dfb-4721-a738-837f89ccbd0a
- description: The unique identifier for playback.
- accessPolicy:
- type: string
- example: public
- description: The access policy of the playback.
- pagination:
- type: object
- properties:
- totalRecords:
- type: integer
- example: 4
- description: Total number of records available.
- currentOffset:
- type: integer
- example: 1
- description: The starting offset of the current result set.
- offsetCount:
- type: integer
- example: 4
- description: The number of items returned in the current response.
- GetAllMediaResponse:
- type: object
- properties:
- thumbnail:
- type: string
- nullable: true
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- sourceMediaId:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The source media ID if this media was created from another media (for example, as a clip).
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- streamId:
- type: string
- example: 98f28be5ac9bd7a4205634691a1a096b
- description: The ID of the livestream for which the clips were created.
- metadata:
- type: object
- nullable: true
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- nullable: true
- example: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: Processing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- sourceAccess:
- type: boolean
- nullable: true
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrackForGetAll"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- summary:
- $ref: "#/components/schemas/AiSummaryRecord"
- description: AI-generated summary of the media content, if available.
- chapters:
- $ref: "#/components/schemas/AiResponseRecord"
- description: AI-generated chapters for the media, if available.
- namedEntities:
- $ref: "#/components/schemas/AiResponseRecord"
- description: AI-extracted named entities from the media, if available.
- moderation:
- $ref: "#/components/schemas/AiResponseRecord"
- description: Moderation results for the media, if available.
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- nullable: true
- example: true
- description: Indicates whether subtitles are available for the media.
- duration:
- type: string
- example: "00:00:10"
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- frameRate:
- type: string
- example: "30/1"
- description: Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. The indeterminable frame rate of the input file is indicated by a value of -1.
- aspectRatio:
- type: string
- nullable: true
- example: "16:9"
- description: The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
- GetMediaResponse:
- type: object
- properties:
- thumbnail:
- type: string
- nullable: true
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- sourceMediaId:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The source media ID if this media was created from another media (for example, as a clip).
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- streamId:
- type: string
- example: 98f28be5ac9bd7a4205634691a1a096b
- description: The ID of the livestream for which the clips were created.
- metadata:
- type: object
- nullable: true
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- nullable: true
- example: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: Processing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- sourceAccess:
- type: boolean
- nullable: true
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- summary:
- $ref: "#/components/schemas/AiSummaryRecord"
- description: AI-generated summary of the media content, if available.
- chapters:
- $ref: "#/components/schemas/AiResponseRecord"
- description: AI-generated chapters for the media, if available.
- namedEntities:
- $ref: "#/components/schemas/AiResponseRecord"
- description: AI-extracted named entities from the media, if available.
- moderation:
- $ref: "#/components/schemas/AiResponseRecord"
- description: Moderation results for the media, if available.
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- nullable: true
- example: true
- description: Indicates whether subtitles are available for the media.
- duration:
- type: string
- example: "00:00:10"
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- frameRate:
- type: string
- example: "30/1"
- description: Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. The indeterminable frame rate of the input file is indicated by a value of -1.
- aspectRatio:
- type: string
- nullable: true
- example: "16:9"
- description: The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
-
- Live-Media-Clips:
- type: object
- properties:
- thumbnail:
- type: string
- nullable: true
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- streamId:
- type: string
- example: 98f28be5ac9bd7a4205634691a1a096b
- description: The ID of the livestream for which the clips were created.
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- nullable: true
- example: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: Processing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- sourceAccess:
- type: boolean
- example: false
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- nullable: true
- example: true
- description: Indicates whether subtitles are available for the media.
- duration:
- type: string
- example: "00:00:10"
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- aspectRatio:
- type: string
- nullable: true
- example: "16:9"
- description: The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
-
- Media:
- type: object
- properties:
- thumbnail:
- type: string
- nullable: true
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- metadata:
- type: object
- nullable: true
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- nullable: true
- example: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: Processing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media’s status, which can be one of the possible values.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- sourceAccess:
- type: boolean
- nullable: true
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- summary:
- $ref: "#/components/schemas/AiSummaryRecord"
- nullable: true
- description: AI-generated summary of the media content, if available.
- chapters:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-generated chapters for the media, if available.
- namedEntities:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-extracted named entities from the media, if available.
- moderation:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: Moderation results for the media, if available.
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- nullable: true
- example: true
- description: Indicates whether subtitles are available for the media.
- duration:
- type: string
- example: "00:00:10"
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- aspectRatio:
- type: string
- nullable: true
- example: "16:9"
- description: The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
- sourceAccessMedia:
- type: object
- properties:
- thumbnail:
- type: string
- nullable: true
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- metadata:
- type: object
- nullable: true
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- nullable: true
- example: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: Processing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- sourceAccess:
- type: boolean
- nullable: true
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- summary:
- $ref: "#/components/schemas/AiSummaryRecord"
- nullable: true
- description: AI-generated summary of the media content, if available.
- chapters:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-generated chapters for the media, if available.
- namedEntities:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-extracted named entities from the media, if available.
- moderation:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: Moderation results for the media, if available.
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- nullable: true
- example: true
- description: Indicates whether subtitles are available for the media.
- duration:
- type: string
- example: "00:00:10"
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- aspectRatio:
- type: string
- nullable: true
- example: "16:9"
- description: The aspect ratio of a video describes its shape based on the relationship between its width and height.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
- Update-Media:
- type: object
- properties:
- thumbnail:
- type: string
- example: https://images.fastpix.com/6b13fdaf-f9ac-4970-a13b-01ea417e8783/thumbnail.png
- description: A video thumbnail is a still image that acts as the preview image for your video.
- id:
- type: string
- format: uuid
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- workspaceId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the workspace.
- metadata:
- type: object
- nullable: true
- additionalProperties:
- type: string
- example:
- key1: value1
- description: 'You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.'
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- default: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- title:
- type: string
- maxLength: 255
- example: My Video Title
- default: My Video Title
- description: Title of the media file.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- - 360p
- description: The maximum resolution specified by the user for the media.
- sourceResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - "2160"
- - 1440p
- - "1440"
- - 1080p
- - "1080"
- - 720p
- - "720"
- - 480p
- - "480"
- - 360p
- - "360"
- description: The actual resolution of the uploaded media. This represents the native quality of the source media.
- status:
- type: string
- example: preparing
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - none
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- Determines the type of MP4 support for the media.
- - **none**: Disables MP4 support.
- - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
- - **audioOnly**: Provides an MP4 stream containing only the audio.
- - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
- sourceAccess:
- type: boolean
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it
- playbackIds:
- type: array
- items:
- $ref: '#/components/schemas/PlaybackId'
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- tracks:
- type: array
- items:
- oneOf:
- - $ref: "#/components/schemas/VideoTrack"
- - $ref: "#/components/schemas/AudioTrack"
- - $ref: "#/components/schemas/SubtitleTrack"
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- generatedSubtitles:
- type: array
- nullable: true
- description: List of generated subtitle tracks associated with the media.
- items:
- $ref: "#/components/schemas/TracksSubtitles"
- summary:
- $ref: "#/components/schemas/AiSummaryRecord"
- nullable: true
- description: AI-generated summary of the media content, if available.
- chapters:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-generated chapters for the media, if available.
- namedEntities:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: AI-extracted named entities from the media, if available.
- moderation:
- $ref: "#/components/schemas/AiResponseRecord"
- nullable: true
- description: Moderation results for the media, if available.
- isAudioOnly:
- type: boolean
- nullable: true
- example: false
- description: Indicates whether the media contains only audio (no video track).
- subtitleAvailable:
- type: boolean
- description: Specifies whether subtitle tracks are available for the media.
- example: false
- duration:
- type: string
- example: '00:00:10'
- description: The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
- aspectRatio:
- type: string
- example: '16:9'
- description: The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
- createdAt:
- type: string
- format: date-time
- example: '2023-10-20T10:50:34.594302Z'
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: '2023-10-20T10:50:34.594302Z'
- description: Time the media was updated, defined as a localDateTime (UTC Time).
- TracksSubtitles:
- type: object
- properties:
- status:
- type: string
- example: preparing
- description: Current status of the generated subtitle track.
- url:
- type: string
- nullable: true
- format: uri
- example: https://stream.fastpix.com/subtitles/abc123.vtt
- description: URL of the generated subtitle file (VTT). Null while preparing.
- AiResponseRecord:
- type: object
- properties:
- status:
- type: string
- nullable: true
- example: ready
- description: The status of the AI processing (for example, "available", "preparing", "failed").
- data:
- type: object
- nullable: true
- description: The AI-generated content data. Can be a Map, List, or other structured data depending on the AI feature type.
- additionalProperties: true
- description: Represents an AI response record containing status and data for AI-generated features like summary, chapters, named entities, or moderation.
- AiSummaryRecord:
- type: object
- properties:
- status:
- type: string
- nullable: true
- example: ready
- description: The status of the AI processing (for example, "available", "preparing", "failed").
- data:
- type: string
- nullable: true
- description: The AI-generated summary of the media content. This field contains the processed textual output produced by the AI once summarization is complete.
- additionalProperties: true
- description: Represents an AI response record containing status and data for AI-generated features like summary, chapters, named entities, or moderation.
- VideoTrack:
- type: object
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- properties:
- id:
- type: string
- format: uuid
- example: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- description: FastPix generates a unique identifier for each track.
- type:
- type: string
- enum:
- - video
- example: video
- description: Defines the type of input. This option is mandatory.
- width:
- type: number
- example: 1920
- description: Track width denotes the range of widths applicable to a specific track. Currently, this setting can be modified only for video tracks
- height:
- type: number
- example: 1080
- description: Track height denotes the range of height applicable to a specific track. Currently, this setting can be modified only for video tracks.
- frameRate:
- type: string
- example: 30/1
- description: Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. The indeterminable frame rate of the input file is indicated by a value of -1.
- status:
- type: string
- example: available
- description: Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
- example:
- tracks:
- - id: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- VideoTrackForGetAll:
- type: object
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- properties:
- id:
- type: string
- format: uuid
- example: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- description: FastPix generates a unique identifier for each track.
- type:
- type: string
- enum:
- - video
- example: video
- description: Defines the type of input. This option is mandatory.
- width:
- type: number
- example: 1920
- description: Track width denotes the range of widths applicable to a specific track. Currently, this setting can be modified only for video tracks
- height:
- type: number
- example: 1080
- description: Track height denotes the range of height applicable to a specific track. Currently, this setting can be modified only for video tracks.
- frameRate:
- type: string
- example: 30/1
- description: Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. The indeterminable frame rate of the input file is indicated by a value of -1.
- status:
- type: string
- example: available
- description: Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
- example:
- tracks:
- - id: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- type: video
- width: 1920
- height: 1080
- frameRate: 30/1
- status: available
- SubtitleTrack:
- type: object
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- properties:
- id:
- type: string
- format: uuid
- example: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- description: FastPix generates a unique identifier for each track.
- type:
- type: string
- enum: [subtitle]
- example: subtitle
- description: Defines the type of input track.
- status:
- type: string
- example: available
- description: Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
- languageName:
- type: string
- example: english
- description: |
- Name of the language in which the subtitles will be generated.
- languageCode:
- type: string
- example: en
- description: |
- Language codes are concise, standardized symbols that denote languages, utilizing either two or three characters for identification. The language code must be compliant with the BCP 47 standard to ensure compatibility. (for text only).
- AudioTrack:
- type: object
- description: A media consists of different media tracks, like video, audio, and subtitle, all combined.
- properties:
- id:
- type: string
- format: uuid
- example: 9oa85f64-5717-4562-b3fc-2c963f66afa6
- description: FastPix generates a unique identifier for each track.
- type:
- type: string
- enum: [audio]
- example: audio
- description: Defines the type of input track.
- status:
- type: string
- example: available
- description: Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
- languageName:
- type: string
- example: english
- description: |
- Name of the language in which the subtitles will be generated.
- languageCode:
- type: string
- example: en
- description: |
- Language codes are concise, standardized symbols that denote languages, utilizing either two or three characters for identification. The language code must be compliant with the BCP 47 standard to ensure compatibility. (for text only).
- PlaybackId:
- type: object
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- properties:
- id:
- type: string
- format: uuid
- nullable: true
- example: 6ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the playbacks.
- accessPolicy:
- $ref: "#/components/schemas/AccessPolicy"
- accessRestrictions:
- type: object
- description: Controls access based on domains and user agents. Defines a default policy (either "allow" or "deny") and provides lists for explicitly allowed or denied domains and user agents.
- properties:
- domains:
- type: object
- description: Restrictions based on the originating domain of a request (for example, whether requests from certain websites must be allowed or blocked).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly allowed access.
- deny:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly blocked from accessing the resource.
- userAgents:
- type: object
- description: Restrictions based on the user agent (which is typically a string sent by browsers or bots identifying themselves).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of specific user agents that are allowed to access the resource.
- deny:
- type: array
- items:
- type: string
- description: A list of specific user agents that are blocked.
- CreatePlaybackId:
- type: object
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- properties:
- id:
- type: string
- format: uuid
- example: 6ta85f64-5717-4562-b3fc-2c963f66afa6
- description: A unique identifier is generated by FastPix for the playbacks.
- accessPolicy:
- $ref: "#/components/schemas/AccessPolicy"
- accessRestrictions:
- type: object
- description: Controls access based on domains and user agents. Defines a default policy (either "allow" or "deny") and provides lists for explicitly allowed or denied domains and user agents.
- properties:
- domains:
- type: object
- description: Restrictions based on the originating domain of a request (for example, whether requests from certain websites should be allowed or blocked).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly allowed access.
- deny:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly blocked from accessing the resource.
- userAgents:
- type: object
- description: Restrictions based on the user agent (which is typically a string sent by browsers or bots identifying themselves).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of specific user agents that are allowed to access the resource.
- deny:
- type: array
- items:
- type: string
- description: A list of specific user agents that are blocked.
- resolution:
- type: string
- nullable: true
- enum:
- - 480p
- - 720p
- - 1080p
- - 1440p
- - 2160p
- - null
- description: The maximum resolution for the playback ID.
- example: 1080p
-
- Unused-uploads-playbackId:
- type: object
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- properties:
- accessPolicy:
- $ref: "#/components/schemas/AccessPolicy"
- accessRestrictions:
- type: object
- description: Controls access based on domains and user agents. Defines a default policy (either "allow" or "deny") and provides lists for explicitly allowed or denied domains and user agents.
- properties:
- domains:
- type: object
- description: Restrictions based on the originating domain of a request (for example, whether requests from certain websites must be allowed or blocked).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly allowed access.
- deny:
- type: array
- items:
- type: string
- description: A list of domains that are explicitly blocked from accessing the resource.
- userAgents:
- type: object
- description: Restrictions based on the user agent (which is typically a string sent by browsers or bots identifying themselves).
- properties:
- defaultPolicy:
- $ref: "#/components/schemas/PolicyAction"
- allow:
- type: array
- items:
- type: string
- description: A list of specific user agents that are allowed to access the resource.
- deny:
- type: array
- items:
- type: string
- description: A list of specific user agents that are blocked.
-
- SummaryResponse:
- properties:
- mediaId:
- type: string
- format: uuid
- example: c695988b-ff84-42ae-bb21-10f284fedb0e
- isSummaryEnabled:
- type: boolean
- example: true
- ChaptersResponse:
- properties:
- mediaId:
- type: string
- format: uuid
- example: c695988b-ff84-42ae-bb21-10f284fedb0e
- isChaptersEnabled:
- type: boolean
- example: true
- NamedEntitiesResponse:
- properties:
- mediaId:
- type: string
- format: uuid
- example: c695988b-ff84-42ae-bb21-10f284fedb0e
- isNamedEntitiesEnabled:
- type: boolean
- example: true
- ModerationResponse:
- properties:
- mediaId:
- type: string
- format: uuid
- example: c695988b-ff84-42ae-bb21-10f284fedb0e
- isModerationEnabled:
- type: boolean
- example: true
- CreateMediaRequest:
- required:
- - accessPolicy
- - inputs
- properties:
- inputs:
- type: array
- description: >
- Add one input object at a time. For example, first add a **VideoInput** object.
- If you also need a watermark, click **Add item** again and select **WatermarkInput**.
- Repeat this process for **AudioInput** or **SubtitleInput** as needed.
- For a complete explanation of how media uploads from URL and processing work, refer to the
- FastPix Video on Demand Overview.
- items:
- anyOf:
- - $ref: "#/components/schemas/PullVideoInput"
- - $ref: "#/components/schemas/WatermarkInput"
- - $ref: "#/components/schemas/AudioInput"
- - $ref: "#/components/schemas/SubtitleInput"
- default:
- - type: video
- url: https://static.fastpix.com/fp-sample-video.mp4
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- default:
- key1: value1
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- drmConfigurationId:
- type: string
- format: uuid
- description: UUID of the DRM configuration to be used
- example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
- title:
- type: string
- maxLength: 255
- example: My Video Title
- description: Title of the media file.
- creatorId:
- type: string
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- subtitles:
- type: object
- description: |
- Generates subtitle files for audio/video files.
- properties:
- languageName:
- type: string
- example: english
- description: |
- Name of the language in which the subtitles will be generated.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- languageCode:
- type: string
- example: en
- enum:
- - en
- - it
- - pl
- - es
- - fr
- - ru
- - nl
- description: |
- Language codes are concise, standardized symbols that denote languages, utilizing either two or three characters for identification. The language code must be compliant with the BCP 47 standard to ensure compatibility. (for text only).
- accessPolicy:
- type: string
- example: public
- default: public
- enum:
- - public
- - private
- - drm
- description: |
- Determines whether access to the streamed content is kept private or available to all.
- mp4Support:
- type: string
- example: capped_4k
- enum:
- - capped_4k
- - audioOnly
- - audioOnly,capped_4k
- description: |
- "capped_4k": Generates an mp4 video file up to 4k resolution "audioOnly": Generates an m4a audio file of the media file "audioOnly,capped_4k": Generates both video and audio media files for offline viewing
- sourceAccess:
- type: boolean
- example: true
- description: The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it
- optimizeAudio:
- type: boolean
- example: true
- description: |
- normalize volume of the audio track. This is available for pre-recorded content only.
- maxResolution:
- type: string
- example: 1080p
- default: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: |
- The maximum resolution tier defines the highest quality at which your media is available.
- mediaQuality:
- type: string
- example: standard
- default: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- summary:
- type: object
- properties:
- generate:
- type: boolean
- description: |
- Enable or disable the summary feature for the media.
- Set to true to enable summary or false to disable.
- summaryLength:
- type: integer
- maximum: 250
- minimum: 30
- description: |
- Specifies the desired word count for the generated summary.
- - The value must be between **30** and **250** words.
- chapters:
- type: boolean
- example: true
- description: |
- Enable or disable the chapters feature for the media. Set to `true` to enable chapters or `false` to disable.
- namedEntities:
- type: boolean
- example: true
- description: |
- Enable or disable named entity extraction. Set to `true` to enable or `false` to disable.
- moderation:
- type: object
- properties:
- type:
- type: string
- enum: [video, audio, av]
- description: |
- Defines the type of input. Possible values include video, audio, or av.
- accessRestrictions:
- type: object
- properties:
- domains:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- description: |
- Specifies the default access policy for domains.
- If set to `allow`, all domains are allowed access unless otherwise specified in the `deny` lists.
- If set to `deny`, all domains are denied access unless otherwise specified in the `allow` lists.
- allow:
- type: array
- items:
- type: string
- description: |
- A list of domain names or patterns that are explicitly allowed access.
- This list is only effective when the `defaultPolicy` is set to `deny`.
- deny:
- type: array
- items:
- type: string
- description: |
- A list of domain names or patterns that are explicitly denied access.
- This list is only effective when the `defaultPolicy` is set to `allow`.
- userAgents:
- type: object
- properties:
- defaultPolicy:
- type: string
- enum:
- - allow
- - deny
- description: |
- Specifies the default access policy for user agents (browsers, bots, etc.).
- If set to `allow`, all user agents are allowed access unless otherwise specified in the `deny` lists.
- If set to `deny`, all user agents are denied access unless otherwise specified in the `allow` lists.
- allow:
- type: array
- items:
- type: string
- description: |
- A list of user agents (identified by string names or patterns) that are explicitly allowed access.
- This list is only effective when the `defaultPolicy` is set to `deny`.
- deny:
- type: array
- items:
- type: string
- description: |
- A list of user agents (identified by string names or patterns) that are explicitly denied access.
- This list is only effective when the `defaultPolicy` is set to `allow`.
- example:
- inputs:
- - type: video
- url: https://static.fastpix.com/gtv-videos-bucket/sample/ForBiggerJoyrides.mp4
- metadata:
- key1: value1
- accessPolicy: public
- maxResolution: 1080p
- mediaQuality: standard
- VideoInput:
- required:
- - type
- properties:
- type:
- type: string
- example: video
- description: |
- Defines the type of input.
- introUrl:
- type: string
- example: https://static.fastpix.com/sample.mp4
- description: |
- The url of the intro video which is to be added at the start of the video.
- outroUrl:
- type: string
- example: https://static.fastpix.com/sample.mp4
- description: |
- The url of the outro video which is to be added at the end of the video.
- expungeSegments:
- type: array
- description: |
- The list of the startTime-endTime of the segments to be removed from the actual video.
- items:
- type: string
- example: 4-6
- example:
- - 4-6
- - 15-19
- segments:
- type: array
- description: A list of media segments to be added or processed. Each segment includes details such as the URL of the media file and instructions on where it should be inserted in the final media composition. A segment can either specify an exact timestamp (`insertAt`) or indicate that it should be added at the end (`insertAtEnd`).
- items:
- type: object
- oneOf:
- - type: object
- required:
- - url
- - insertAt
- properties:
- url:
- type: string
- format: uri
- description: URL of the segment to be added.
- example: https://storage.googleapis.com/gtv-videos-mp4
- insertAt:
- type: integer
- description: The timestamp at which the segment should be inserted.
- example: 2
- - type: object
- required:
- - url
- - insertAtEnd
- properties:
- url:
- type: string
- format: uri
- description: URL of the segment to be added.
- example: https://storage.googleapis.com/gtv-videos-mp4
- insertAtEnd:
- type: boolean
- description: Flag indicating the segment should be inserted at the end.
- example: true
- PullVideoInput:
- required:
- - url
- - type
- properties:
- type:
- type: string
- example: video
- default: video
- description: |
- Defines the type of input.
- url:
- type: string
- example: https://static.fastpix.com/fp-sample-video.mp4
- default: https://static.fastpix.com/fp-sample-video.mp4
- description: |
- The URL hosts the media file for FastPix, which needs to be downloaded to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles or closed captions (SRT/VTT files). The URL must be valid, publicly accessible, and downloadable to ensure FastPix can fetch the file successfully.
-
- While FastPix can handle various audio and video formats and codecs, using standard and widely supported formats helps achieve optimal processing speed.
- startTime:
- type: integer
- example: "0"
- description: |
- Start time indicates where encoding must begin within the video file. For example, if you want to encode a segment from 3 minutes (180 seconds) to 6 minutes (360 seconds) in a 10-minute (600 seconds) video, the start time is 3 minutes (180 seconds). Note: Start time is always mentioned in seconds.
- endTime:
- type: integer
- example: "60"
- description: |
- End time indicates where encoding must end within the video file. For example, if you want to encode a segment from 3 minutes (180 seconds) to 6 minutes (360 seconds) in a 10-minute (600 seconds) video, the end time is 6 minutes (360 seconds). Note: End time is always mentioned in seconds.
- introUrl:
- type: string
- example: https://static.fastpix.com/fp-sample-video.mp4
- description: |
- The URL of the **intro video** to be added at the beginning of the media file.
- The URL must be **valid, publicly accessible, and downloadable** so that FastPix can fetch the file successfully.
- Supported video formats include **MP4, MOV, MKV, and TS** for optimal processing performance.
-
- outroUrl:
- type: string
- example: https://static.fastpix.com/fp-sample-video.mp4
- description: |
- The URL of the **outro video** to be added at the end of the media file.
- The URL must be **valid, publicly accessible, and downloadable** so that FastPix can retrieve the file successfully.
- Supported video formats include **MP4, MOV, MKV, and TS** for best compatibility and processing speed.
-
- expungeSegments:
- type: array
- description: |
- The list of start and end times (in seconds) of the segments to be removed from the actual video.
- items:
- type: string
- example: 4-6
- example:
- - 4-6
- - 15-19
- segments:
- type: array
- description: A list of media segments to be added or processed. Each segment includes details such as the URL of the media file and instructions on where it should be inserted in the final media composition. A segment can either specify an exact timestamp (`insertAt`) or indicate that it must be added at the end (`insertAtEnd`).
- items:
- type: object
- oneOf:
- - type: object
- required:
- - url
- - insertAt
- properties:
- url:
- type: string
- format: uri
- example: https://storage.googleapis.com/gtv-videos-mp4/sample-segment.mp4
- description: |
- The URL of the **video segment** to be added.
- The URL must be **valid, publicly accessible, and downloadable** so that FastPix can retrieve and process the segment successfully.
- Supported video formats include **MP4, MOV, MKV, and TS** for best compatibility and performance.
-
- insertAt:
- type: integer
- description: The timestamp(in seconds) at which the segment must be inserted.
- example: 2
- - type: object
- required:
- - url
- - insertAtEnd
- properties:
- url:
- type: string
- format: uri
- description: |
- The URL of the **video segment** to be added.
- The URL must be **valid, publicly accessible, and downloadable** so that FastPix can retrieve and process the segment successfully.
- Supported video formats include **MP4, MOV, MKV, and TS** for best compatibility and performance.
- example: https://storage.googleapis.com/gtv-videos-mp4
- insertAtEnd:
- type: boolean
- description: Flag indicating the segment should be inserted at the end.
- example: true
- WatermarkInput:
- description: |
- Contains configuration details for applying a watermark overlay to a video.
- The watermark is placed over the media content during processing.
- For detailed setup steps and customization options, refer to the
- FastPix Watermark Guide.
- required:
- - url
- - type
- type: object
- properties:
- type:
- type: string
- enum:
- - watermark
- description: Type of overlay (currently only supports "watermark").
- example: watermark
- url:
- type: string
- format: uri
- description: URL of the watermark image.
- example: https://static.fastpix.com/watermark-4k.png
- placement:
- type: object
- properties:
- xAlign:
- type: string
- enum:
- - left
- - center
- - right
- description: Horizontal alignment of the watermark.
- example: left
- xMargin:
- type: string
- description: Horizontal margin from the edge of the video.
- example: 10%
- yAlign:
- type: string
- enum:
- - top
- - middle
- - bottom
- description: Vertical alignment of the watermark.
- example: top
- yMargin:
- type: string
- description: Vertical margin from the edge of the video.
- example: 10%
- width:
- type: string
- description: Width of the watermark in percentage or pixels.
- example: 25%
- height:
- type: string
- description: Height of the watermark in percentage or pixels.
- example: 25%
- opacity:
- type: string
- description: Opacity of the watermark in percentage.
- example: 80%
- AudioInput:
- required:
- - swapTrackUrl
- - type
- type: object
- properties:
- type:
- type: string
- enum:
- - audio
- description: Type of overlay (currently only supports "audio").
- example: audio
- swapTrackUrl:
- type: string
- format: uri
- description: URL of the audio track to replace the existing audio in the video.
- example: https://file-examples.com/storage/fe0e9b723466913cf9611b7/2017/11/file_example_MP3_700KB.mp3
- imposeTracks:
- required:
- - url
- type: array
- description: List of additional audio tracks to overlay on the video.
- items:
- type: object
- properties:
- url:
- type: string
- format: uri
- description: URL of the audio track to impose on the video.
- example: http://commondatastorage.googleapis.com/codeskulptor-demos/riceracer_assets/fx/engine-2.ogg
- startTime:
- type: integer
- description: Start time (in seconds) of the imposed audio in the video.
- example: 0
- endTime:
- type: integer
- description: End time (in seconds) of the imposed audio in the video.
- example: 5
- fadeInLevel:
- type: integer
- description: Level of fade-in effect (in seconds) at the start of the imposed audio.
- example: 1
- fadeOutLevel:
- type: integer
- description: Level of fade-out effect (in seconds) at the end of the imposed audio.
- example: 4
- CreateMediaResponse:
- properties:
- id:
- type: string
- example: a1d1acdd-8f4e-4add-b498-6b398cf349d9
- description: The Media is assigned a universal unique identifier, which can contain a maximum of 255 characters.
- trial:
- type: boolean
- default: true
- example: true
- description: |
- FastPix allows for a free trial. Create as many media files as you like during the trial period. Remember, each clip can only be 10 seconds long and will be deleted after 24 hours. Also, all trial content will have the FastPix logo watermark.
- status:
- type: string
- example: Created
- enum:
- - Created
- - Downloading
- - Downloaded
- - Validating
- - In Queue
- - Processing
- - Ready
- - Failed
- description: Determines the media's status, which can be one of the possible values.
- createdAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was created, defined as a localDateTime (UTC Time).
- updatedAt:
- type: string
- format: date-time
- example: "2023-10-20T10:50:34.594302Z"
- description: Time the media was updated, defined as a localDateTime (UTC Time).
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- description: A collection of Playback ID objects utilized for crafting HLS playback URLs.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- sourceAccess:
- type: boolean
- example: false
- description: |
- The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- maxResolution:
- type: string
- example: 1080p
- enum:
- - 2160p
- - 1440p
- - 1080p
- - 720p
- - 480p
- description: The maximum resolution tier defines the highest quality at which your media is available.
- inputs:
- type: array
- description: A list of media input sources to be processed.
- items:
- type: object
- properties:
- type:
- type: string
- description: The type of input media. Commonly set to `video`.
- example: video
- url:
- type: string
- format: uri
- description: The publicly accessible URL of the input video file.
- example: https://static.fastpix.com/fp-sample-video.mp4
- optimizeAudio:
- type: boolean
- example: false
- description: |
- Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
- TrackSubtitlesGenerateRequest:
- required:
- - languageName
- - languageCode
- type: object
- description: Contains details for generating subtitle tracks for a media file.
- properties:
- languageName:
- type: string
- description: The full name of the language used to generate the subtitles.
- example: English
- default: English
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- default:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- languageCode:
- $ref: "#/components/schemas/LanguageCode"
- GenerateTrackResponse:
- type: object
- description: Represents the response for a successfully generated subtitle track.
- properties:
- id:
- type: string
- format: uuid
- description: A unique identifier for the generated track.
- example: ace60fc7-e876-4fc6-b9d9-c33fa242f84b
- type:
- type: string
- description: The type of track generated ("subtitle").
- enum:
- - subtitle
- example: subtitle
- languageCode:
- type: string
- description: |
- The BCP 47 language code representing the language of the generated track.
- example: en-US
- enum:
- - ar-SA
- - bn-BD
- - bn-IN
- - ca-ES
- - cs-CZ
- - da-DK
- - de-AT
- - de-CH
- - de-DE
- - el-GR
- - en-AU
- - en-CA
- - en-GB
- - en-IE
- - en-IN
- - en-NZ
- - en-US
- - en-ZA
- - es-AR
- - es-CL
- - es-CO
- - es-ES
- - es-MX
- - es-US
- - fi-FI
- - fr-BE
- - fr-CA
- - fr-CH
- - fr-FR
- - he-IL
- - hi-IN
- - hr-HR
- - hu-HU
- - id-ID
- - it-CH
- - it-IT
- - ja-JP
- - ko-KR
- - nl-BE
- - nl-NL
- - no-NO
- - pl-PL
- - pt-BR
- - pt-PT
- - ro-RO
- - ru-RU
- - sk-SK
- - sv-SE
- - ta-IN
- - ta-LK
- - th-TH
- - tr-TR
- - uk-UA
- - bg-BG
- - zh-CN
- - zh-HK
- - zh-TW
- languageName:
- type: string
- description: The full name of the language for the generated track.
- example: English
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- SubtitleInput:
- required:
- - type
- - url
- - languageName
- - languageCode
- type: object
- description: Generates subtitle files for audio/video files.
- properties:
- type:
- type: string
- example: subtitle
- description: |
- Defines the type of input.
- url:
- type: string
- format: uri
- description: The direct URL of the subtitle file.
- example: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- languageName:
- type: string
- example: english
- description: Name of the language in which the subtitles will be generated.
- languageCode:
- $ref: "#/components/schemas/LanguageCode"
- AddTrackRequest:
- type: object
- description: Contains details about the track being added to the media file.
- required:
- - url
- - type
- - languageCode
- - languageName
- properties:
- url:
- type: string
- format: uri
- description: The direct URL of the track file. It must point to a valid audio or subtitle file.
- example: https://static.fastpix.com/music-1.mp3
- default: https://static.fastpix.com/music-1.mp3
- type:
- type: string
- enum:
- - audio
- - subtitle
- description: Specifies the type of track being added. It can be either `audio` or `subtitle`.
- example: audio
- default: audio
- languageCode:
- type: string
- description: The BCP 47 language code representing the track’s language.
- example: it
- default: it
- languageName:
- type: string
- description: The full name of the language corresponding to the `languageCode`.
- example: Italian
- default: Italian
-
- AddTrackResponse:
- type: object
- description: Contains details about the track that was added or updated.
- properties:
- id:
- type: string
- format: uuid
- description: The unique identifier of the track.
- example: ace60fc7-e876-4fc6-b9d9-c33fa242f84b
- type:
- type: string
- enum:
- - audio
- - subtitle
- description: Specifies the type of track (audio or subtitle).
- example: audio
- url:
- type: string
- format: uri
- description: The direct URL of the track file.
- example: https://static.fastpix.com/music-1.mp3
- languageCode:
- type: string
- description: The BCP 47 language code representing the track's language.
- example: it
- languageName:
- type: string
- description: The full name of the language corresponding to the `languageCode`.
- example: Italian
- UpdateTrackResponse:
- type: object
- description: Contains details about the track that was added or updated.
- properties:
- id:
- type: string
- format: uuid
- description: The unique identifier of the track.
- example: a5833611-e92c-4ba9-89f0-a42f8e9aef5e
- type:
- type: string
- enum:
- - audio
- - subtitle
- description: Specifies the type of track (audio or subtitle).
- example: subtitle
- url:
- type: string
- format: uri
- description: The direct URL of the track file.
- example: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- languageCode:
- type: string
- description: The BCP 47 language code representing the track's language.
- example: fr
- languageName:
- type: string
- description: The full name of the language corresponding to the `languageCode`.
- example: french
- UpdateTrackRequest:
- type: object
- description: Contains details about the track being added to the media file.
- required:
- - url
- - languageCode
- - languageName
- properties:
- url:
- type: string
- format: uri
- description: The direct URL of the track file. It must point to a valid audio or subtitle file.
- example: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- default: https://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/thrust.vtt
- languageCode:
- type: string
- description: The BCP 47 language code representing the track’s language.
- example: fr
- default: fr
- languageName:
- type: string
- description: The full name of the language corresponding to the `languageCode`.
- example: French
- default: French
-
- DirectUpload:
- type: object
- description: Displays the result of the request.
- properties:
- uploadId:
- type: string
- example: 7ya85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- trial:
- type: boolean
- example: false
- description: Indicates if the upload was a trial.
- status:
- type: string
- example: waiting
- enum:
- - waiting
- description: Determines the media's status, which can be one of the possible values.
- url:
- type: string
- example:
- url: https://storage.fastpix.net/uploads/08256f2c-efca-4c4f-8f21-75e40d49f225/80911756-1ce3-485a-a3b4-6653ff0937a1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=media-svc%2F20240111%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240111T123116Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=419ab443cdc1d4a22cf1b0f8875855590b346058e6d3859f7c1c9da3bb061f91
- description: The url hosts the media file for FastPix, which needs to be download to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles/CC (SRT file/VTT file). While FastPix can handle various audio and video formats and codecs, using standard inputs can help with optimal processing speed.
- timeout:
- type: number
- example: 14400
- default: 14400
- description: |
- The duration set for the validity of the upload URL. If the upload isn't completed within this timespan, it's marked as timed out.
- corsOrigin:
- type: string
- example: "*"
- description: Upload media directly from a device using the url name or enter "*" to allow all.
- pushMediaSettings:
- $ref: "#/components/schemas/DirectUploadResponse"
- DirectUploadResponse:
- properties:
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackId"
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- sourceAccess:
- type: boolean
- example: false
- description: |
- The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- optimizeAudio:
- type: boolean
- example: false
- description: |
- Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
-
- UnusedDirectUpload:
- type: object
- description: Displays the result of the request.
- properties:
- uploadId:
- type: string
- example: 7ya85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier assigned to the media when created. The value must be a valid UUID.
- trial:
- type: boolean
- example: false
- description: Indicates if the upload was a trial.
- status:
- type: string
- example: waiting
- enum:
- - waiting
- description: Determines the media's status, which can be one of the possible values.
- url:
- type: string
- example:
- url: https://storage.fastpix.net/uploads/08256f2c-efca-4c4f-8f21-75e40d49f225/80911756-1ce3-485a-a3b4-6653ff0937a1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=media-svc%2F20240111%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240111T123116Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=419ab443cdc1d4a22cf1b0f8875855590b346058e6d3859f7c1c9da3bb061f91
- description: The url hosts the media file for FastPix, which needs to be download to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles/CC (SRT file/VTT file). While FastPix can handle various audio and video formats and codecs, using standard inputs can help with optimal processing speed.
- timeout:
- type: number
- example: 14400
- default: 14400
- description: |
- The duration set for the validity of the upload URL. If the upload isn’t completed within this timespan, it is marked as timed out.
- corsOrigin:
- type: string
- example: "*"
- description: Upload media directly from a device using the url name or enter "*" to allow all.
- pushMediaSettings:
- $ref: "#/components/schemas/UnusedDirectUploadResponse"
- UnusedDirectUploadResponse:
- properties:
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/Unused-uploads-playbackId"
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- mediaQuality:
- type: string
- example: standard
- description: The quality tier applied to the media.
- enum:
- - standard
- - pro
- - premium
- sourceAccess:
- type: boolean
- example: false
- description: |
- The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it.
- optimizeAudio:
- type: boolean
- example: false
- description: |
- Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
-
- Default-Error:
- type: object
- properties:
- success:
- type: boolean
- example: false
- description: Shows if the request was completed successfully. Returns `true` for success and `false` for failure.
- error:
- type: object
- description: Contains details about the error if the request failed.
- properties:
- code:
- type: integer
- example: HTTP status code
- description: The HTTP status code that explains the type of error (for example, 400 for a bad request, 404 for not found).
- message:
- type: string
- example: Message describing the error
- description: A short message describing what went wrong.
- description:
- type: string
- example: Detailed explanation of why the request failed
- description: |
- A detailed explanation of the error and what caused it. May also include links to documentation or tips for fixing the issue.
-
- Pagination:
- type: object
- description: Pagination organizes content into pages for better readability and navigation.
- properties:
- totalRecords:
- type: integer
- example: 100
- description: It gives the total number of media assets that are accessible overall.
- currentOffset:
- type: integer
- example: 1
- description: "Offset determines the current point for data retrieval within a paginated list. "
- offsetCount:
- type: integer
- example: 10
- description: The offset count is expressed as total records by limit
- SigningKeysPagination:
- type: object
- description: Pagination organizes content into pages for better readability and navigation.
- properties:
- totalRecords:
- type: integer
- example: 1
- description: It gives the total number of Signing keys that are created by a user.
- currentOffset:
- type: integer
- example: 1
- description: Offset determines the current point for data retrieval within a paginated list.
- offsetCount:
- type: integer
- example: 10
- description: The offset count is expressed as total records by limit
- CreatePlaylistRequest:
- oneOf:
- - $ref: "#/components/schemas/CreatePlaylistRequestManual"
- - $ref: "#/components/schemas/CreatePlaylistRequestSmart"
- discriminator:
- propertyName: type
- mapping:
- manual: "#/components/schemas/CreatePlaylistRequestManual"
- smart: "#/components/schemas/CreatePlaylistRequestSmart"
-
- CreatePlaylistRequestManual:
- type: object
- additionalProperties: false
- required:
- - name
- - referenceId
- - type
- properties:
- name:
- type: string
- description: Name of the playlist.
- example: "Playlist name"
- referenceId:
- type: string
- description: Unique string value assigned by user to the playlist.
- example: "a1"
- type:
- type: string
- enum:
- - manual
- example: "manual"
- description: Manual playlist type (no `playOrder`).
- description:
- type: string
- example: "This is a playlist"
- description: Description for a playlist (Optional).
- limit:
- type: integer
- default: 1000
- description: Optional parameter to limit no. of media in a playlist.
-
- CreatePlaylistRequestSmart:
- type: object
- additionalProperties: false
- required:
- - name
- - referenceId
- - type
- - playOrder
- - metadata
- properties:
- name:
- type: string
- description: Name of the playlist.
- example: "Playlist name"
- referenceId:
- type: string
- description: Unique string value assigned by user to the playlist.
- example: "a1"
- type:
- type: string
- enum:
- - smart
- example: "smart"
- description: For a smart playlist metadata is required.
- description:
- type: string
- example: "This is a playlist"
- description: Description for a playlist (Optional).
- playOrder:
- $ref: "#/components/schemas/PlaylistOrder"
- limit:
- type: integer
- default: 1000
- description: Optional parameter to limit no. of media in a playlist.
- metadata:
- type: object
- properties:
- createdDate:
- $ref: "#/components/schemas/DateRange"
- updatedDate:
- $ref: "#/components/schemas/DateRange"
- description: Required when the playlist type is `smart`. Media created between `startDate` and `endDate` of `createdDate` is added. Optionally, you can include media based on `updatedDate`.
- example:
- name: playlist name
- referenceId: a1
- type: smart
- description: This is a playlist
- playOrder: createdDate ASC
- limit: 20
- metadata:
- createdDate:
- startDate: "2024-11-11"
- endDate: "2024-12-12"
- updatedDate:
- startDate: "2024-11-11"
- endDate: "2024-12-12"
- UpdatePlaylistRequest:
- type: object
- required:
- - name
- - description
- properties:
- name:
- type: string
- description: New name to the playlist.
- example: updated name
- description:
- type: string
- description: Updated description to the playlist.
- example: updated description
- example:
- name: updated name
- description: updated description
- playlistCreatedResponse:
- type: object
- description: Displays the result of the request.
- required:
- - success
- - data
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/playlistCreatedSchema"
- example:
- success: true
- data:
- id: e3dfdf15-16bb-4835-98b9-484c1e4320cc
- name: playist
- referenceId: a1
- type: smart
- description: This is a playlist
- playOrder: createdDate ASC
- metadata:
- createdDate:
- startDate: "2024-11-11"
- endDate: "2024-12-12"
- updatedDate:
- startDate: "2024-11-11"
- endDate: "2024-12-12"
- mediaList:
- - createdAt: "2024-11-12T05:58:38.000708Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: 942e0ced-146b-487e-988f-6de578de1000
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://venus-images.fastpix.dev/ff31b32e-4979-4d2b-ad2a-685af43c9902/thumbnail.png
- title: "Media 1"
- - createdAt: "2024-12-05T07:23:18.000108Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: 6d12262b-0686-4131-9de2-bb515f7c0f38
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://mercury-images.fastpix.dev/e49a0d7b-6f2c-4743-84d1-45522cc20ded/thumbnail.png
- title: "Media 2"
- - createdAt: "2024-12-05T07:21:15.000508Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: a1cd180e-f9b5-4e99-9d44-b9c9baabad89
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://mercury-images.fastpix.dev/e49a0d7b-6f2c-4743-84d1-45522cc20ded/thumbnail.png
- title: "Media 3"
- workspaceId: d760b903-86ef-44d6-9b73-334130e0cf2d
- createdAt: "2025-06-04T13:29:39.409886Z"
- updatedAt: "2025-06-04T13:29:39.409886Z"
- mediaCount: 3
- PlaylistItem:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: db6e860f-cb57-43dd-8acf-39c9effd5608
- description: The unique id of the playlist
- name:
- type: string
- example: playlist1
- description: The name of the playlist set by the user
- type:
- type: string
- enum:
- - manual
- - smart
- example: smart
- description: type of the playlist, when it was created
- referenceId:
- type: string
- example: a111dfdfdafsdfe
- description: Unique string value assigned by user to the playlist.
- createdAt:
- type: string
- format: date-time
- example: "2025-05-12T12:55:24.368182Z"
- description: Timestamp of playlist creation.
- mediaCount:
- type: integer
- example: 9
- description: No. of media present in the playlist
- GetAllPlaylistsResponse:
- type: object
- required:
- - success
- - data
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- items:
- $ref: "#/components/schemas/PlaylistItem"
- pagination:
- $ref: "#/components/schemas/Pagination"
- example:
- success: true
- data:
- - id: db6e860f-cb57-43dd-8acf-39c9effd5608
- name: playist1
- type: smart
- referenceId: playlists101
- createdAt: "2025-06-04T13:29:04.253244Z"
- mediaCount: 0
- - id: 5c18559f-c1b1-4697-9282-77211d4396bb
- name: playist2
- type: smart
- referenceId: playlists102
- createdAt: "2025-06-04T13:01:05.073809Z"
- mediaCount: 0
- - id: a4735902-b5e6-431f-8875-7a1a2cbc7a7b
- name: Onboarding
- type: manual
- referenceId: playlists103
- createdAt: "2025-06-04T12:17:38.917664Z"
- mediaCount: 0
- - id: 1ffce718-7072-4b61-9b27-e7d18198094d
- name: December playlist
- type: manual
- referenceId: playlists104
- createdAt: "2025-05-15T11:06:51.545280Z"
- mediaCount: 0
- - id: 2455174e-64d9-4324-86bd-80cb1af5b20a
- name: March Highlights
- type: smart
- referenceId: playlists105
- createdAt: "2025-05-12T12:55:24.368182Z"
- mediaCount: 9
- - id: d55c4e51-e426-498f-b760-6f9357e2349e
- name: playlist1
- type: smart
- referenceId: playlists106
- createdAt: "2025-05-07T10:49:29.226943Z"
- mediaCount: 9
- - id: 63d73b6e-50dd-4653-990b-8a8df85ad09f
- name: playlist1
- type: smart
- referenceId: playlists107
- createdAt: "2025-05-07T10:48:09.179324Z"
- mediaCount: 9
- - id: 5a93de86-0848-4ab4-befe-8dba4b8433e5
- name: playlist1
- type: smart
- referenceId: playlists108
- createdAt: "2025-05-07T10:47:06.339271Z"
- mediaCount: 9
- - id: d315b847-38c4-431f-b1b6-32dc5013700a
- name: playlist1
- type: smart
- referenceId: playlists109
- createdAt: "2025-05-07T10:03:21.487649Z"
- mediaCount: 9
- - id: 86348042-6367-4dfc-b018-b3ee9934f45b
- name: playlist1
- type: manual
- referenceId: playlists201
- createdAt: "2025-05-05T12:48:44.177451Z"
- mediaCount: 2
- pagination:
- totalRecords: 46
- currentOffset: 1
- offsetCount: 5
- PlaylistByIdResponse:
- type: object
- required:
- - success
- - data
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/PlaylistByIdResponseData"
- example:
- success: true
- data:
- id: 46d5fce1-683a-457f-86d7-c048bb429505
- name: My Playlist
- referenceId: 122q
- type: smart
- description: This Playlist contains videos from December 2024.
- playOrder: createdDate ASC
- metadata:
- createdDate:
- endDate: 2024-12-12
- startDate: 2024-12-11
- updatedDate:
- endDate: 2024-12-12
- startDate: 2024-12-11
- mediaList:
- - createdAt: "2025-05-27T09:37:52.445936Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: a1cd180e-f9b5-4e99-9d44-b9c9baabad89
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://venus-images.fastpix.dev/bed25609-1887-4c49-91a5-5c6b1edeb1a2/thumbnail.png
- title: "Media 1"
- - createdAt: "2025-04-04T13:26:23.507284Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: 245800c3-7b73-47d9-a201-e961260dcb30
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://mercury-images.fastpix.dev/3c6ceeea-d24b-487f-9dd0-5a16148b5d46/thumbnail.png
- title: "Media 2"
- - createdAt: "2025-04-04T13:26:12.552840Z"
- creatorId: "FastPix@14612"
- duration: "00:00:10"
- id: 41316aac-5396-4278-8f44-08d5f2495b12
- sourceResolution: 1080p
- status: Ready
- thumbnail: https://mercury-images.fastpix.dev/8989d0d3-5c5b-41b2-89d5-df6094e6093f/thumbnail.png
- title: "Media 3"
- workspaceId: d760b903-86ef-44d6-9b73-334130e0cf2d
- createdAt: "2025-06-05T09:10:30.655275Z"
- updatedAt: "2025-06-05T12:23:47.096690Z"
- mediaCount: 3
- PlaylistByIdResponseMediaListItem:
- type: object
- properties:
- createdAt:
- type: string
- format: date-time
- example: "2025-03-21T05:58:38.000708Z"
- description: Timestamp of media creation in the workspace.
- creatorId:
- type: string
- nullable: true
- example: FastPix@14612
- description: Creator ID of the media.
- duration:
- type: string
- example: "00:00:10"
- description: Duration of the media in hh:mm:ss format.
- id:
- type: string
- format: uuid
- example: 942e0ced-146b-487e-988f-6de578de1000
- description: unique id of the particular media.
- sourceResolution:
- type: string
- example: 1080p
- description: source resolution of the media.
- status:
- type: string
- example: Ready
- description: status of the media, only media with ready status is added to playlist.
- thumbnail:
- type: string
- format: uri
- example: https://venus-images.fastpix.dev/ff31b32e-4979-4d2b-ad2a-685af43c9902/thumbnail.png
- description: thumbnail for the particular media.
- title:
- type: string
- nullable: true
- example: Media 1
- description: Title of the media.
- PlaylistByIdResponseMetadata:
- type: object
- properties:
- createdDate:
- $ref: "#/components/schemas/DateRange"
- updatedDate:
- $ref: "#/components/schemas/DateRange"
- description: Required when the playlist type is `smart`. Media created between `startDate` and `endDate` of `createdDate` is added. Optionally, you can include media based on `updatedDate`.
- PlaylistByIdResponseDataManual:
- type: object
- additionalProperties: false
- required:
- - type
- properties:
- id:
- type: string
- format: uuid
- example: 2455174e-64d9-4324-86bd-80cb1af5b20a
- description: The unique id of the playlist
- name:
- type: string
- example: playlist1
- description: The name of the playlist set by the user
- referenceId:
- type: string
- example: playlists301
- description: Unique string value assigned by user to the playlist.
- type:
- type: string
- enum:
- - manual
- example: manual
- description: type of the playlist, when it was created
- description:
- type: string
- example: This is a manual playlist
- description: Description of the playlist set by the user.
- mediaList:
- type: array
- items:
- $ref: "#/components/schemas/PlaylistByIdResponseMediaListItem"
- workspaceId:
- type: string
- format: uuid
- example: d760b903-86ef-44d6-9b73-334130e0cf2d
- description: The unique id of the workspace in which the playlist is present.
- createdAt:
- type: string
- format: date-time
- example: "2025-05-12T12:55:24.368182Z"
- description: Timestamp of playlist creation.
- updatedAt:
- type: string
- format: date-time
- example: "2025-05-27T09:51:03.166094Z"
- description: Playlist's most recent update timestamp.
- mediaCount:
- type: integer
- example: 3
- description: No. of media present in the playlist
- PlaylistByIdResponseDataSmart:
- type: object
- additionalProperties: false
- required:
- - type
- - playOrder
- - metadata
- properties:
- id:
- type: string
- format: uuid
- example: 2455174e-64d9-4324-86bd-80cb1af5b20a
- description: The unique id of the playlist
- name:
- type: string
- example: playlist1
- description: The name of the playlist set by the user
- referenceId:
- type: string
- example: playlists301
- description: Unique string value assigned by user to the playlist.
- type:
- type: string
- enum:
- - smart
- example: smart
- description: type of the playlist, when it was created
- description:
- type: string
- example: This is a smart playlist
- description: Description of the playlist set by the user.
- playOrder:
- $ref: "#/components/schemas/PlaylistOrder"
- metadata:
- $ref: "#/components/schemas/PlaylistByIdResponseMetadata"
- mediaList:
- type: array
- items:
- $ref: "#/components/schemas/PlaylistByIdResponseMediaListItem"
- workspaceId:
- type: string
- format: uuid
- example: d760b903-86ef-44d6-9b73-334130e0cf2d
- description: The unique id of the workspace in which the playlist is present.
- createdAt:
- type: string
- format: date-time
- example: "2025-05-12T12:55:24.368182Z"
- description: Timestamp of playlist creation.
- updatedAt:
- type: string
- format: date-time
- example: "2025-05-27T09:51:03.166094Z"
- description: Playlist's most recent update timestamp.
- mediaCount:
- type: integer
- example: 3
- description: No. of media present in the playlist
- PlaylistByIdResponseData:
- oneOf:
- - $ref: "#/components/schemas/PlaylistByIdResponseDataManual"
- - $ref: "#/components/schemas/PlaylistByIdResponseDataSmart"
- discriminator:
- propertyName: type
- mapping:
- manual: "#/components/schemas/PlaylistByIdResponseDataManual"
- smart: "#/components/schemas/PlaylistByIdResponseDataSmart"
- PlaylistDeleteResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- MediaIdsRequest:
- type: object
- properties:
- mediaIds:
- type: array
- items:
- type: string
- format: uuid
- description: The unique identifier of the media.
- example:
- - a1cd180e-f9b5-4e99-9d44-b9c9baabad89
- - 245800c3-7b73-47d9-a201-e961260dcb30
- - 41316aac-5396-4278-8f44-08d5f2495b12
- default:
- - 41316aac-5396-4278-8f44-08d5f2495b12
- required:
- - mediaIds
- description: The list of mediaId(s) you want to perform the operation on.
-
- MediaCancelResponse:
- type: object
- description: Response returned when an upload is cancelled.
- properties:
- uploadId:
- type: string
- format: uuid
- example: beff5537-de85-42e1-a673-2a405cd94177
- description: The unique identifier of the cancelled upload.
- trial:
- type: boolean
- example: false
- description: Indicates if the upload was a trial.
- status:
- type: string
- example: cancelled
- description: The status of the upload after cancellation.
- url:
- type: string
- example: https://storage.googleapis.com/fastpix-uploads-us/8a5ab157-c586-458a-bb2e-caa8a8b76a19/4190bbde-4c34-41e4-b70e-90ba2aa0b79e
- description: The upload URL (if available) after cancellation.
- timeout:
- type: integer
- nullable: true
- example: 14400
- description: The timeout value for the upload.
- corsOrigin:
- type: string
- example: "*"
- description: CORS origin allowed for the upload.
- maxResolution:
- type: string
- example: 1080p
- description: The maximum resolution allowed for the upload.
- accessPolicy:
- type: string
- example: public
- description: The access policy for the upload.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- example:
- key1: value1
- description: |
- You can search for videos with specific key value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- title:
- type: string
- nullable: true
- maxLength: 255
- example: My Video Title
- description: Title of the media file.
- creatorId:
- type: string
- nullable: true
- maxLength: 255
- example: 8fa85f64-5717-4562-b3fc-2c963f66afa6
- description: The unique identifier of the user who created this media.
- DrmIdResponse:
- type: object
- properties:
- id:
- type: string
- format: uuid
- description: The unique identifier of the DRM configuration.
- example: e3dfdf15-16bb-4835-98b9-484c1e4320cc
- playlistCreatedSchema:
- oneOf:
- - $ref: "#/components/schemas/PlaylistByIdResponseDataManual"
- - $ref: "#/components/schemas/PlaylistByIdResponseDataSmart"
- discriminator:
- propertyName: type
- mapping:
- manual: "#/components/schemas/PlaylistByIdResponseDataManual"
- smart: "#/components/schemas/PlaylistByIdResponseDataSmart"
- patchLiveStreamRequest:
- type: object
- properties:
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- livestream_name: Gaming_stream
- reconnectWindow:
- type: integer
- example: 60
- maximum: 1800
- minimum: 60
- default: 60
- description: In case the software streaming the live, gets disrupted for any reason and gets disconnected from FastPix, the reconnect window defines the duration FastPix waits before automatically terminating the stream. Before starting the stream, you can set the reconnect window time which is up to 1800 seconds.
- example:
- metadata:
- livestream_name: Gaming_stream
- reconnectWindow: 100
- ViewsCountResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- description: Contains the view count details.
- properties:
- views:
- type: integer
- example: 20
- description: Number of views for the stream or resource.
- example:
- success: true
- data:
- views: 20
- CreateLiveStreamRequest:
- type: object
- required:
- - playbackSettings
- - inputMediaSettings
- properties:
- playbackSettings:
- $ref: "#/components/schemas/playbackSettings"
- inputMediaSettings:
- type: object
- description: Contains configuration details for input media settings.
- properties:
- maxResolution:
- type: string
- default: 1080p
- enum:
- - 1080p
- - 720p
- - 480p
- description: |
- Defines the maximum resolution for encoding, storage, and playback of the live stream.
- reconnectWindow:
- type: integer
- example: 60
- maximum: 1800
- minimum: 60
- default: 60
- description: |
- Time period (in seconds) FastPix waits to reconnect before ending the stream when disconnected.
- mediaPolicy:
- $ref: "#/components/schemas/BasicAccessPolicy"
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: |
- Custom key–value pairs for tagging livestreams.
- Allows up to 10 entries with a maximum of 255 characters each.
- example:
- livestream_name: fastpix_livestream
- enableDvrMode:
- type: boolean
- description: |
- Enables DVR (Digital Video Recorder) functionality, allowing viewers to pause, rewind, and resume live playback.
- default:
- playbackSettings:
- accessPolicy: public
- inputMediaSettings:
- maxResolution: 1080p
- reconnectWindow: 60
- mediaPolicy: public
- metadata:
- livestream_name: fastpix_livestream
-
- playbackSettings:
- type: object
- description: Displays the result of the playback settings.
- properties:
- accessPolicy:
- $ref: "#/components/schemas/BasicAccessPolicy"
- liveStreamResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/CreateLiveStreamResponseDTO"
- example:
- success: true
- data:
- streamId: fa7f8c0950ea48ebcc5ef9de8c23deaa
- streamKey: 3dc5d7641f918baa083a5c52a5bd9cbckfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtSecret: c51739512d0088d98a46925c9b74c73akfa7f8c0950ea48ebcc5ef9de8c23deaa
- trial: false
- status: idle
- maxResolution: 1080p
- maxDuration: 28800
- createdAt: "2024-10-15T08:48:31.551351Z"
- reconnectWindow: 60
- enableRecording: true
- enableDvrMode: true
- mediaPolicy: public
- metadata:
- livestream_name: fastpix_livestream
- lowLatency: true
- closedCaptions: false
- playbackIds:
- - id: 4e43ec52-4775-4f68-a3ff-a57d8a59bba8
- accessPolicy: public
- srtPlaybackResponse:
- srtPlaybackStreamId: playfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtPlaybackSecret: 490e707dd4d165c9e38d261b252f9457kfa7f8c0950ea48ebcc5ef9de8c23deaa
- livestreamgetResponse:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/getCreateLiveStreamResponseDTO"
- example:
- success: true
- data:
- streamId: fa7f8c0950ea48ebcc5ef9de8c23deaa
- streamKey: 3dc5d7641f918baa083a5c52a5bd9cbckfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtSecret: c51739512d0088d98a46925c9b74c73akfa7f8c0950ea48ebcc5ef9de8c23deaa
- trial: false
- status: idle
- maxResolution: 1080p
- maxDuration: 28800
- createdAt: "2024-10-15T08:48:31.551351Z"
- reconnectWindow: 60
- enableRecording: true
- enableDvrMode: false
- mediaPolicy: public
- metadata:
- livestream_name: fastpix_livestream
- lowLatency: true
- closedCaptions: false
- playbackIds:
- - id: 4e43ec52-4775-4f68-a3ff-a57d8a59bba8
- accessPolicy: public
- mediaIds:
- - 03cdf35d-8626-4b5f-bd14-d2212cd2a991
- srtPlaybackResponse:
- srtPlaybackStreamId: playfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtPlaybackSecret: 490e707dd4d165c9e38d261b252f9457kfa7f8c0950ea48ebcc5ef9de8c23deaa
- patchResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- $ref: "#/components/schemas/patchResponseData"
- example:
- success: true
- data:
- streamId: fa7f8c0950ea48ebcc5ef9de8c23deaa
- streamKey: 3dc5d7641f918baa083a5c52a5bd9cbckfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtSecret: c51739512d0088d98a46925c9b74c73akfa7f8c0950ea48ebcc5ef9de8c23deaa
- trial: false
- status: idle
- maxResolution: 1080p
- maxDuration: 28800
- createdAt: "2024-10-15T08:48:31.551351Z"
- reconnectWindow: 100
- enableRecording: true
- enableDvrMode: false
- mediaPolicy: public
- metadata:
- livestream_name: Gaming_stream
- lowLatency: true
- closedCaptions: false
- playbackIds:
- - id: 4e43ec52-4775-4f68-a3ff-a57d8a59bba8
- accessPolicy: public
- srtPlaybackResponse:
- srtPlaybackStreamId: playfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtPlaybackSecret: 490e707dd4d165c9e38d261b252f9457kfa7f8c0950ea48ebcc5ef9de8c23deaa
-
- LiveStreamDeleteResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- example:
- success: true
- PlaybackIdResponse:
- type: object
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- properties:
- id:
- type: string
- format: uuid
- example: 68b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd
- description: Unique identifier for the playbackId
- accessPolicy:
- type: string
- example: public
- description: Determines if access to the streamed content is kept private or available to all.
- LiveStreamPagination:
- type: object
- description: Pagination organizes content into pages for better readability and navigation.
- properties:
- totalRecords:
- type: integer
- example: 12
- description: It gives the total number of media assets that are accessible overall.
- currentOffset:
- type: integer
- example: 5
- description: Determines the current point for data retrieval within a paginated list.
- offsetCount:
- type: integer
- example: 2
- description: The offset count is expressed as total records by limit.
- getCreateLiveStreamResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- streamId:
- type: string
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- streamKey:
- type: string
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- srtSecret:
- type: string
- description: A secret used for securing the SRT stream. This ensures that only authorized users can access the stream.
- trial:
- type: boolean
- example: true
- description: FastPix allows for a to trial the live stream for free. The duration of trial streams is five minutes. After five minutes of activity, the trial stream is turned off, and the recorded asset is removed after a day.
- status:
- type: string
- example:
- possibleValue: idle, preparing, active, disabled
- example: idle
- description: The current live stream status can be one of four values:Idle, Preparing, Active or Disabled.The Idle status signifies that there isn"t a broadcast in progress.The preparing status indicates that the stream is getting prepared. while, the Active status indicates that a broadcast is currently in progress. The Disabled status means that no more RTMPS streams can be published.
- maxResolution:
- type: string
- example:
- possibleValue: 1080p, 720p, 480p
- example: 1080p
- default: 1080p
- description: Max resolution can be used to control the maximum resolution your media is encoded, stored, and streamed at.
- maxDuration:
- type: integer
- example: 28800
- maximum: 28800
- minimum: 0
- description: The maximum duration in seconds that a live stream can have before it ends the stream. `0` means no enforced maximum (unbounded).
- createdAt:
- type: string
- format: date-time
- description: It is the moment when the stream was created Time the media was generated, defined as a localDateTime (UTC Time).
- reconnectWindow:
- type: integer
- example: 60
- maximum: 1800
- minimum: 60
- default: 60
- description: In case the software streaming the live, gets disrupted for any reason and gets disconnected from FastPix, the reconnect window specifies the time span FastPix will wait before ending the stream. Before starting the stream, you can set the reconnect window time which is up to 1800 seconds.
- enableRecording:
- type: boolean
- example:
- example: true
- default: true
- description: When set to true, FastPix records and stores the livestream for on-demand viewing. When set to false, the livestream is not recorded.
- enableDvrMode:
- type: boolean
- example:
- example: true
- default: false
- description: Enables DVR (Digital Video Recorder) functionality for the live stream. When set to true, viewers can pause, rewind, and resume playback during the live broadcast. This allows time-shifted viewing of the stream while it is still ongoing.
- mediaPolicy:
- type: string
- example:
- possibleValue: public, private
- example: public
- default: public
- description: Determines whether the recorded stream must be publicly accessible or private in Live to VOD (Video on Demand).
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- livestream_name: fastpix_livestream
- lowLatency:
- type: boolean
- description: Enables low-latency streaming mode to reduce playback delay.
- example: true
- closedCaptions:
- type: boolean
- description: when provided true Enables closed captions for the livestream.
- example: false
- playbackIds:
- type: array
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- items:
- $ref: "#/components/schemas/PlaybackIdResponse"
- simulcastResponses:
- type: array
- description: A list of simulcast responses created for the livestream.
- items:
- $ref: '#/components/schemas/liveSimulcast'
- mediaIds:
- type: array
- description: A list of media IDs created when recording is enabled. Each media ID represents a recorded video (Live to VOD). If the stream is stopped and started again outside the reconnect window, a new media ID is generated for each session.
- items:
- type: string
- format: uuid
- srtPlaybackResponse:
- $ref: "#/components/schemas/SrtPlaybackResponse"
- CreateLiveStreamResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- streamId:
- type: string
- example: 61a264dcc447b63da6fb79ef925cd76d
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- streamKey:
- type: string
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- srtSecret:
- type: string
- description: A secret used for securing the SRT stream. This ensures that only authorized users can access the stream.
- trial:
- type: boolean
- example: true
- description: FastPix allows for a to trial the live stream for free. The duration of trial streams is five minutes. After five minutes of activity, the trial stream is turned off, and the recorded asset is removed after a day.
- status:
- type: string
- example:
- possibleValue: idle, preparing, active, disabled
- example: idle
- description: The current live stream status can be one of four values:Idle, Preparing, Active or Disabled.The Idle status signifies that there isn"t a broadcast in progress.The preparing status indicates that the stream is getting prepared. while, the Active status indicates that a broadcast is currently in progress. The Disabled status means that no more RTMPS streams can be published.
- maxResolution:
- type: string
- example:
- possibleValue: 1080p, 720p, 480p
- example: 1080p
- default: 1080p
- description: Max resolution can be used to control the maximum resolution your media is encoded, stored, and streamed at.
- maxDuration:
- type: integer
- example: 28800
- maximum: 28800
- minimum: 0
- description: The maximum duration in seconds that a live stream can have before it ends the stream. `0` means no enforced maximum (unbounded).
- createdAt:
- type: string
- format: date-time
- description: It is the moment when the stream was created Time the media was generated, defined as a localDateTime (UTC Time).
- reconnectWindow:
- type: integer
- example: 60
- maximum: 1800
- minimum: 60
- default: 60
- description: In case the software streaming the live, gets disrupted for any reason and gets disconnected from FastPix, the reconnect window specifies the time span FastPix will wait before ending the stream. Before starting the stream, you can set the reconnect window time which is up to 1800 seconds.
- enableRecording:
- type: boolean
- example:
- example: true
- default: true
- description: When set to true, the livestream will be recorded and stored for later viewing purposes. If set to false, the livestream will not be recorded.
- enableDvrMode:
- type: boolean
- example:
- example: true
- default: false
- description: Enables DVR (Digital Video Recorder) functionality for the live stream. When set to true, viewers can pause, rewind, and resume playback during the live broadcast. This allows time-shifted viewing of the stream while it is still ongoing.
- mediaPolicy:
- type: string
- example:
- possibleValue: public, private
- example: public
- default: public
- description: Determines whether the recorded stream should be publicly accessible or private in Live to VOD (Video on Demand).
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- livestream_name: fastpix_livestream
- lowLatency:
- type: boolean
- description: Enables low-latency streaming mode to reduce playback delay.
- example: true
- closedCaptions:
- type: boolean
- description: when provided true Enables closed captions for the livestream.
- example: false
- playbackIds:
- type: array
- description: A collection of Playback ID objects utilized for crafting HLS playback urls.
- items:
- $ref: "#/components/schemas/PlaybackIdResponse"
- srtPlaybackResponse:
- $ref: "#/components/schemas/SrtPlaybackResponse"
- patchResponseData:
- type: object
- description: Displays the result of the request.
- properties:
- streamId:
- type: string
- description: Upon creating a new live stream, FastPix assigns a unique identifier to the stream.
- streamKey:
- type: string
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- srtSecret:
- type: string
- description: A secret used for securing the SRT stream. This ensures that only authorized users can access the stream.
- trial:
- type: boolean
- example: false
- description: FastPix allows for a to trial the live stream for free. The duration of trial streams is five minutes. After five minutes of activity, the trial stream is turned off, and the recorded asset is removed after a day.
- status:
- type: string
- example:
- possibleValue: idle, preparing, active, disabled
- example: idle
- description: The current live stream status can be one of four values:Idle, Preparing, Active or Disabled.The Idle status signifies that there isn"t a broadcast in progress.The preparing status indicates that the stream is getting prepared. while, the Active status indicates that a broadcast is currently in progress. The Disabled status means that no more RTMPS streams can be published.
- maxResolution:
- type: string
- example:
- possibleValue: 1080p, 720p, 480p
- example: 1080p
- default: 1080p
- description: Max resolution can be used to control the maximum resolution your media is encoded, stored, and streamed at.
- maxDuration:
- type: integer
- example: 28800
- maximum: 28800
- minimum: 0
- description: The maximum duration in seconds that a live stream can have before it ends the stream. `0` means no enforced maximum (unbounded).
- createdAt:
- type: string
- format: date-time
- description: It is the moment when the stream was created Time the media was generated, defined as a localDateTime (UTC Time).
- reconnectWindow:
- type: integer
- example:
- example: 60
- maximum: 1800
- minimum: 60
- default: 60
- description: In case the software streaming the live, gets disrupted for any reason and gets disconnected from FastPix, the reconnect window specifies the time span FastPix will wait before ending the stream. Before starting the stream, you can set the reconnect window time which is up to 1800 seconds.
- enableRecording:
- type: boolean
- example:
- example: true
- default: true
- description: When set to true, the livestream will be recorded and stored for later viewing purposes. If set to false, the livestream will not be recorded.
- enableDvrMode:
- type: boolean
- example:
- example: true
- default: false
- description: Enables DVR (Digital Video Recorder) functionality for the live stream. When set to true, viewers can pause, rewind, and resume playback during the live broadcast. This allows time-shifted viewing of the stream while it is still ongoing.
- mediaPolicy:
- type: string
- example:
- possibleValue: public, private
- example: public
- default: public
- description: Determines whether the recorded stream must be publicly accessible or private in Live to VOD (Video on Demand).
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- livestream_name: fastpix_livestream
- lowLatency:
- type: boolean
- description: Enables low-latency streaming mode to reduce playback delay.
- example: true
- closedCaptions:
- type: boolean
- description: when provided true Enables closed captions for the livestream.
- example: false
- playbackIds:
- type: array
- items:
- $ref: "#/components/schemas/PlaybackIdResponse"
- srtPlaybackResponse:
- $ref: "#/components/schemas/SrtPlaybackResponse"
- getStreamsResponse:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: array
- description: Displays the result of the request.
- items:
- $ref: "#/components/schemas/getCreateLiveStreamResponseDTO"
- pagination:
- $ref: "#/components/schemas/LiveStreamPagination"
- example:
- success: true
- data:
- - streamId: fa7f8c0950ea48ebcc5ef9de8c23deaa
- streamKey: 3dc5d7641f918baa083a5c52a5bd9cbckfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtSecret: c51739512d0088d98a46925c9b74c73akfa7f8c0950ea48ebcc5ef9de8c23deaa
- trial: false
- status: idle
- maxResolution: 1080p
- maxDuration: 28800
- createdAt: "2024-10-15T08:48:31.551351Z"
- reconnectWindow: 100
- enableRecording: true
- enableDvrMode: true
- mediaPolicy: public
- metadata:
- livestream_name: Gaming_stream
- lowLatency: false
- closedCaptions: false
- playbackIds:
- - id: 4e43ec52-4775-4f68-a3ff-a57d8a59bba8
- accessPolicy: public
- mediaIds:
- - 03cdf35d-8626-4b5f-bd14-d2212cd2a991
- srtPlaybackResponse:
- srtPlaybackStreamId: playfa7f8c0950ea48ebcc5ef9de8c23deaa
- srtPlaybackSecret: 490e707dd4d165c9e38d261b252f9457kfa7f8c0950ea48ebcc5ef9de8c23deaa
- pagination:
- totalRecords: 4
- currentOffset: 1
- offsetCount: 4
- playbackIdRequest:
- type: object
- properties:
- accessPolicy:
- $ref: "#/components/schemas/BasicAccessPolicy"
- example:
- accessPolicy: public
- PlaybackIdSuccessResponse:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 68b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd
- description: Unique identifier for the playbackId
- accessPolicy:
- type: string
- example: public
- description: Determines if access to the streamed content is kept private or available to all.
- example:
- success: true
- data:
- id: 88b7ac0f-2504-4dd5-b7b4-d84ab4fee1bd
- accessPolicy: public
- simulcastRequest:
- type: object
- required:
- - url
- - streamKey
- properties:
- url:
- type: string
- example: rtmp://hyd01.contribute.live-video.net/app/
- default: rtmp://example.com/
- description: The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
- streamKey:
- type: string
- example: live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk
- default: d851d91d5b768b36k61a264dcc447b
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs.
- example:
- livestream_name: Tech-Connect Summit
- example:
- url: rtmp://hyd01.contribute.live-video.net/app/
- streamKey: live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk
- metadata:
- livestream_name: Tech-Connect Summit
-
- simulcastUpdateRequest:
- type: object
- properties:
- isEnabled:
- type: boolean
- example: true
- default: true
- description: When set to false, the simulcast is disabled for the specified stream.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key-value pairs using metadata, when you tag a video in "key":"value" pairs.
- example:
- livestream_name: Tech today
- example:
- isEnabled: true
- metadata:
- simulcast_name: Tech today
- liveSimulcast:
- type: object
- properties:
- simulcastId:
- type: string
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- url:
- type: string
- example: rtmp://hyd01.contribute.live-video.net/app/
- description: The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
- streamKey:
- type: string
- example: 9310547d1df9c219d851d91d5b768b36k61a264dcc447b63da6fb79ef925cd76d
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- isEnabled:
- type: boolean
- example: true
- description: When the value is true, the simulcast must be enabled for the given stream
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- simulcastResponse:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- description: Displays the result of the request.
- properties:
- simulcastId:
- type: string
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- url:
- type: string
- example: rtmp://hyd01.contribute.live-video.net/app/
- description: The RTMPS hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
- streamKey:
- type: string
- example: 9310547d1df9c219d851d91d5b768b36k61a264dcc447b63da6fb79ef925cd76d
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- isEnabled:
- type: boolean
- example: true
- description: When the value is true, the simulcast must be enabled for the given stream
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- success: true
- data:
- simulcastId: 8717422d89288ad5958d4a86e9afe2a2
- url: rtmp://hyd01.contribute.live-video.net/app/
- streamKey: live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk
- isEnabled: true
- metadata:
- livestream_name: Tech-Connect Summit
- simulcastUpdateResponse:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- data:
- type: object
- description: Displays the result of the request.
- properties:
- simulcastId:
- type: string
- example: 8717422d89288ad5958d4a86e9afe2a2
- description: When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
- url:
- type: string
- example: rtmp://hyd01.contribute.live-video.net/app/
- description: The RTMP hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
- streamKey:
- type: string
- example: 9310547d1df9c219d851d91d5b768b36k61a264dcc447b63da6fb79ef925cd76d
- description: A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
- isEnabled:
- type: boolean
- example: false
- description: When set to false, the simulcast is disabled for the specified stream.
- metadata:
- type: object
- additionalProperties:
- type: string
- maxLength: 255
- maxProperties: 10
- description: You can search for videos with specific key value pairs using metadata, when you tag a video in "key":"value"s pairs. Dynamic metadata allows you to define a key that allows any value pair. You can have maximum of 255 characters and upto 10 entries are allowed.
- example:
- simulcast_name: Tech today
- example:
- success: true
- data:
- simulcastId: 8717422d89288ad5958d4a86e9afe2a2
- url: rtmp://hyd01.contribute.live-video.net/app/
- streamKey: live_1012464221_DuM8W004MoZYNxQEZ0czODgfHCFBhk
- isEnabled: false
- metadata:
- simulcast_name: Tech today
- simulcastdeleteResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- example:
- success: true
- CreateResponse:
- type: object
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- example: true
- data:
- $ref: "#/components/schemas/CreateSigningKeyResponseDTO"
- example:
- success: true
- data:
- id: fc9d9368-6ee5-4b16-ae50-880a2374bdc4
- privateKey: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRREtaN1JKT1IrbXZGeVQxSWFIL0hVUkYwQnRncDJzK0srdUd4TUZ4N1JiaGNudVBMYU14WjM1b0lNWndhdHJrdDFDM3JxVFZsQzBsSnExeENFTyt3Zi9JNHQ0bktmUFB2WG83NGFCQi82YmR0MXpaSHp0OGFIenBnL3YrdEtCWVc5SEdWQ0tYc2JpNjczbHgwcFhHdXVnem8wdnZMR2lKWDBiL0Z4WEI5U1R3RkV5Q1dQOFJhczZ3VWVuSUdVM2UwMmJiV3Z4UnNoMWNER2xSRk03RWw2RVQ2MUQrS0tLTndnUGNYR1pvY0YwZTFxRU5iVGdPZUdBMFNDU0xIT3NtQ0NBQTNtSndJS1VaY0Z2MmpGRUx4Uk5MTnhoMjM5UEdUT3BuWmdvTFp5Skt4b2REN1FpV1N1eDVZY1Z0MFgrSk9rZXNBOEpjM1ZtM0tGc0IwL3RYck9QQWdNQkFBRUNnZ0VBUHhNWUxLVmZocTgyVGw4eFdWbEVCZ0p2OG5COHdIVnpFZGVnRXZJTDgyVjY2d0lDaFZYa0IvR01TVStBSXZMT2Z0TTM0MGhIdUM2REU5ZTkwWlJMQnFoR0ExMFdNbEJWZzdSNC91YkY0aDZsbmhzWGozTDRYQnhJNVNrTnhvSGRrcE9COU16YVA4YmxFNkVLT3FES0F2KzdJY0EwdnVuZDFnWExwTmRzMkduTW5nZW1qOUhJZWh1eTNLY0taNHlheFo1YkRKVEpLZlFrTlFDQzhOR0hIdWovQmRWUnU1RHRrZVdNMFFpN2FKeW5lSXRxOGhtbXdxcVNMTnpTOTZtcHpBdzF3RzFXTHVML1A3TGxJekVWa2ZJUFc0SW1zRXhsSG5FUG0ySld1RUNMQ1pRL25NODdhQXVXekROektCYW51LzZhdXhnSDB2Wnc5YWowTmxNNFFRS0JnUURPM3Y0YlN4bWluZGJpVEdSaXdFVXVyODh4TVA3M2U5RSt2SHlzb3JZMWZycFpkdXJHOVlFb09MUFN1YnQ5WkhZNFhGOFhxRWZ4bE94d294eDVzcU9PcGNMTnFnOWhTSWxPaXEyYmVnN2V2RGpOMml6b3JKRFl3VEhGQ0Era25FbmFpL0J2TU16N3AyVVkrUEEzUnJ4Z25BK3RkQlErZWlSZ1c0WmhnMkhWcndLQmdRRDZlVEpwRTRxZVFYdmpnMy9FS081UkllRklZOHphTGMvMVVHODBqNmVvbStNK3UyTmdUVDJqVmNyMkdQbjZTbHRNRlJNem5qOVJHYmQ1MCt5a2k0Y1NYU1JPdE44alV2M0FseHJtZzEwVTVtSWIrUXFIZ3g2QldyeXkvakxHYXVvMUJnVFg1dDZ0VXVEUUZuVDJSM2xoNGRNZ044T3V4VlR3OCtadGloSllJUUtCZ1FERE00ZHpHWnBHNThrc0lBbFpaVFBpcWVKSCtJT2Q0eWUrbXZ6SnFYOWxXdjljQytuZGN5czhXTVRWd293MzllUFhxdEhQOE9weCtxUmdaSWtxREhabzArRE5UL3JUUVM3Ty9leHpHT21QSXV3MjBmZ3VWU2NZWUxRbHgwVjdmajN5Q3JvRk1YYzZ2dW1XZHMrMFdQckg3bnFjb1R1NCtHZjZ4R0k1QVUvLzRRS0JnUUR6TFcvdjdIVU1xTzhyT0tSM1FuWCtkekpPSWZibGJNMFdrdjBrdnNROFF2MGlEclN3N3MwRkkycGwvR0hXeXhKUWo3V1F5L2NWT2k2VUxWajNlQyt2ZUphamc1K1FvQ2FWTVIrQTVkRWRWWCt6UU5za0xmMFVBWkJyQjdrc1F1a1lpYnR5RWtmblp5dTFXOWc2czdINWdsS0VXUiszTXdjQTJRdkRGZVl4Z1FLQmdDWVdlKzQ4bVVaUEl5ZnR4NVFaQllnYTE2blpndzYxZmxtdEdpQlVGWGVMR3BTaU1XNXc5R3RYVDZPbFh1Zy91TkNKbHR4TDE4c0NEeDNVaU9DNWFTMEN4OTc5TlFrSm1YRWw1UDNtMFNGaVU4VlZ0SFp1dHd3SWFKTFZockZ1T3NJV1BtRFN4aHhMaFpPNmJ5aWRwbHlXLzl1eGpwMlZrQ0Y3OGd5QXRRSWsKLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
- createdAt: "2024-01-11T10:00:06.618993Z"
- GetAllSigningKeysResponse:
- type: object
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- example: true
- data:
- type: array
- items:
- $ref: '#/components/schemas/GetAllSigningKeysResponseDto'
- pagination:
- $ref: '#/components/schemas/SigningKeysPagination'
- DeleteSigningKeyResponse:
- type: object
- properties:
- success:
- type: boolean
- example: true
- description: Shows the request status. Returns true for success and false for failure.
- example:
- success: true
- CreateSigningKeyResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- id:
- type: string
- format: uuid
- description: A unique identifier is generated by FastPix for the signing keys.
- example: fc9d9368-6ee5-4b16-ae50-880a2374bdc4
- privateKey:
- type: string
- description: A private key is a byte encoded secret key used to create a signed JSON Web Token (JWT) for authentication.
- example: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRREtaN1JKT1IrbXZGeVQxSWFIL0hVUkYwQnRncDJzK0srdUd4TUZ4N1JiaGNudVBMYU14WjM1b0lNWndhdHJrdDFDM3JxVFZsQzBsSnExeENFTyt3Zi9JNHQ0bktmUFB2WG83NGFCQi82YmR0MXpaSHp0OGFIenBnL3YrdEtCWVc5SEdWQ0tYc2JpNjczbHgwcFhHdXVnem8wdnZMR2lKWDBiL0Z4WEI5U1R3RkV5Q1dQOFJhczZ3VWVuSUdVM2UwMmJiV3Z4UnNoMWNER2xSRk03RWw2RVQ2MUQrS0tLTndnUGNYR1pvY0YwZTFxRU5iVGdPZUdBMFNDU0xIT3NtQ0NBQTNtSndJS1VaY0Z2MmpGRUx4Uk5MTnhoMjM5UEdUT3BuWmdvTFp5Skt4b2REN1FpV1N1eDVZY1Z0MFgrSk9rZXNBOEpjM1ZtM0tGc0IwL3RYck9QQWdNQkFBRUNnZ0VBUHhNWUxLVmZocTgyVGw4eFdWbEVCZ0p2OG5COHdIVnpFZGVnRXZJTDgyVjY2d0lDaFZYa0IvR01TVStBSXZMT2Z0TTM0MGhIdUM2REU5ZTkwWlJMQnFoR0ExMFdNbEJWZzdSNC91YkY0aDZsbmhzWGozTDRYQnhJNVNrTnhvSGRrcE9COU16YVA4YmxFNkVLT3FES0F2KzdJY0EwdnVuZDFnWExwTmRzMkduTW5nZW1qOUhJZWh1eTNLY0taNHlheFo1YkRKVEpLZlFrTlFDQzhOR0hIdWovQmRWUnU1RHRrZVdNMFFpN2FKeW5lSXRxOGhtbXdxcVNMTnpTOTZtcHpBdzF3RzFXTHVML1A3TGxJekVWa2ZJUFc0SW1zRXhsSG5FUG0ySld1RUNMQ1pRL25NODdhQXVXekROektCYW51LzZhdXhnSDB2Wnc5YWowTmxNNFFRS0JnUURPM3Y0YlN4bWluZGJpVEdSaXdFVXVyODh4TVA3M2U5RSt2SHlzb3JZMWZycFpkdXJHOVlFb09MUFN1YnQ5WkhZNFhGOFhxRWZ4bE94d294eDVzcU9PcGNMTnFnOWhTSWxPaXEyYmVnN2V2RGpOMml6b3JKRFl3VEhGQ0Era25FbmFpL0J2TU16N3AyVVkrUEEzUnJ4Z25BK3RkQlErZWlSZ1c0WmhnMkhWcndLQmdRRDZlVEpwRTRxZVFYdmpnMy9FS081UkllRklZOHphTGMvMVVHODBqNmVvbStNK3UyTmdUVDJqVmNyMkdQbjZTbHRNRlJNem5qOVJHYmQ1MCt5a2k0Y1NYU1JPdE44alV2M0FseHJtZzEwVTVtSWIrUXFIZ3g2QldyeXkvakxHYXVvMUJnVFg1dDZ0VXVEUUZuVDJSM2xoNGRNZ044T3V4VlR3OCtadGloSllJUUtCZ1FERE00ZHpHWnBHNThrc0lBbFpaVFBpcWVKSCtJT2Q0eWUrbXZ6SnFYOWxXdjljQytuZGN5czhXTVRWd293MzllUFhxdEhQOE9weCtxUmdaSWtxREhabzArRE5UL3JUUVM3Ty9leHpHT21QSXV3MjBmZ3VWU2NZWUxRbHgwVjdmajN5Q3JvRk1YYzZ2dW1XZHMrMFdQckg3bnFjb1R1NCtHZjZ4R0k1QVUvLzRRS0JnUUR6TFcvdjdIVU1xTzhyT0tSM1FuWCtkekpPSWZibGJNMFdrdjBrdnNROFF2MGlEclN3N3MwRkkycGwvR0hXeXhKUWo3V1F5L2NWT2k2VUxWajNlQyt2ZUphamc1K1FvQ2FWTVIrQTVkRWRWWCt6UU5za0xmMFVBWkJyQjdrc1F1a1lpYnR5RWtmblp5dTFXOWc2czdINWdsS0VXUiszTXdjQTJRdkRGZVl4Z1FLQmdDWVdlKzQ4bVVaUEl5ZnR4NVFaQllnYTE2blpndzYxZmxtdEdpQlVGWGVMR3BTaU1XNXc5R3RYVDZPbFh1Zy91TkNKbHR4TDE4c0NEeDNVaU9DNWFTMEN4OTc5TlFrSm1YRWw1UDNtMFNGaVU4VlZ0SFp1dHd3SWFKTFZockZ1T3NJV1BtRFN4aHhMaFpPNmJ5aWRwbHlXLzl1eGpwMlZrQ0Y3OGd5QXRRSWsKLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=
- createdAt:
- type: string
- format: date-time
- description: Time the Signing key was generated, defined as a localDateTime (UTC Time).
- example: "2024-01-11T10:00:06.618993Z"
- GetAllSigningKeysResponseDto:
- type: object
- description: Displays the result of the request.
- properties:
- id:
- type: string
- format: uuid
- description: A unique identifier is generated by FastPix for the signing keys.
- example: "84474705-92d5-4fa9-8cb8-e4a0ddb0598a"
- createdAt:
- type: string
- format: date-time
- description: Time the Signing key was generated, defined as a localDateTime (UTC Time).
- example: "2025-10-27T05:22:54.782954Z"
- getPublicPemUsingSigningKeyIdResponseDTO:
- type: object
- description: Displays the result of the request.
- properties:
- success:
- type: boolean
- description: Shows the request status. Returns true for success and false for failure.
- example: true
- data:
- type: object
- description: Displays the result of the request.
- properties:
- workspaceId:
- type: string
- format: uuid
- description: FastPix generates a unique identifier for each workspace.
- example: fc9d9368-6ee5-4b16-ae50-880ab374bdc6
- signingKeyId:
- type: string
- format: uuid
- example: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- publicKey:
- type: string
- description: A public key is a byte encoded key used to create a signed JSON Web Token (JWT) for authentication.
- example: |
- -----BEGIN PUBLIC KEY-----
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvfUkdkrPIZGOAwMwrkQ9Jr6uNEsVQCgax8xHMSf4Ib3IwlE90M/wLJZGmSWcaAWzH4nSE5qh/fF4E4xHY0hYMS78Ve9GSV8mtLfzjcZ0agfmFO0B0/YVaXNKDGc3CUWAOoONZEMCA3wqLNSZ3yQhr/IZ4xVqBR0GLSYtFt2VNNAmgfAQkVLcZy+3V1ZaC49EgK4AoR51iwwv9DzRjZ/3rM8MSS9lEy0WQGXP/x+0k8hQvq482r/G32TSG00ZSKQDpRFieaFh6YRxMd/R0bhVAvTTO8STQa/M4PZGoBFqkPTpCw5uShtpe+Hm85vlHk/2qYx5NqIe4l+c/yo4w/ny/QIDAQAB
- -----END PUBLIC KEY-----
- example:
- success: true
- data:
- workspaceId: fc9d9368-6ee5-4b16-ae50-880ab374bdc6
- signingKeyId: 5ta85f64-5717-4562-b3fc-2c963f66afa6
- publicKey: |
- -----BEGIN PUBLIC KEY-----
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvfUkdkrPIZGOAwMwrkQ9Jr6uNEsVQCgax8xHMSf4Ib3IwlE90M/wLJZGmSWcaAWzH4nSE5qh/fF4E4xHY0hYMS78Ve9GSV8mtLfzjcZ0agfmFO0B0/YVaXNKDGc3CUWAOoONZEMCA3wqLNSZ3yQhr/IZ4xVqBR0GLSYtFt2VNNAmgfAQkVLcZy+3V1ZaC49EgK4AoR51iwwv9DzRjZ/3rM8MSS9lEy0WQGXP/x+0k8hQvq482r/G32TSG00ZSKQDpRFieaFh6YRxMd/R0bhVAvTTO8STQa/M4PZGoBFqkPTpCw5uShtpe+Hm85vlHk/2qYx5NqIe4l+c/yo4w/ny/QIDAQAB
- -----END PUBLIC KEY-----
- TimeSpan:
- type: array
- description: |
- The timespan from and to details displayed in the form of unix epoch timestamps.
- items:
- type: integer
- example:
- availableValue:
- - 1610025789
- - 1610025947
- ViewsList:
- type: object
- properties:
- viewId:
- type: string
- description: |
- The unique identifier for the viewing session of the user.
- example: 550e8400-e29b-41d4-a716-446655440000
- operatingSystem:
- type: string
- nullable: true
- description: |
- Operating System signifies the software platform utilized by the viewer
- example: macOs
- application:
- type: string
- nullable: true
- description: |
- The browser name of the viewer.
- example: chrome
- viewStartTime:
- type: string
- nullable: true
- description: |
- The start timestamp of the video view.
- example: "2023-12-06T08:04:14Z"
- viewEndTime:
- type: string
- nullable: true
- description: |
- The end timestamp of the video view.
- example: "2023-12-06T08:11:55Z"
- videoTitle:
- type: string
- nullable: true
- description: |
- The title of the Video.
- example: Club 69
- errorCode:
- type: string
- nullable: true
- description: |
- The code which represents specific issues or failures that occur during playback. These can be implementation specific.
- example: 1001
- errorMessage:
- type: string
- nullable: true
- description: |
- The notifications or messages that inform users or developers about issues or failures that have occurred during the playback representing error codes.
- example: An unexpected error occurred. Please try again later or contact support for assistance.
- errorId:
- type: string
- nullable: true
- description: |
- The unique identifier for the error that occurred during playback.
- example: 9pa85f64-5717-4562-b3fc-2c963f66afa6
- country:
- type: string
- nullable: true
- description: |
- Country of the viewer.
- example: USA
- viewWatchTime:
- type: number
- nullable: true
- description: |
- The watch time represents the time spent watching the video including staruptime, playback time ,buffering time.
- example: 0.5
- QoeScore:
- type: number
- nullable: true
- description: |
- The viewer experience encapsulated in the form of score while watching the video.
- example: 0.55
- Views:
- description: Displays the result of the request.
- type: object
- properties:
- asnId:
- type: integer
- nullable: true
- description: |
- The unique identifier assigned to an Autonomous System (AS) on the Internet. The ASN is used to identify and exchange routing information between different networks.
- format: long
- example: 55836
- asnName:
- type: string
- nullable: true
- description: |
- The Name associated with the asnId.
- example: RELIANCEJIO-IN Reliance Jio Infocomm Limited
- averageBitrate:
- description: |
- Average Bitrate represents the average bitrate of the video content watched by the viewer, expressed in bits per second (bps). This metric provides insight into the quality of the video stream.
- type: number
- nullable: true
- format: double
- example: 1512855.0
- avgDownscaling:
- description: |
- Average Downscaling refers to the average reduction in video resolution or quality during the playback of video content.
- type: number
- nullable: true
- format: double
- example: 0.045843694
- avgRequestLatency:
- description: |
- Average Request Latency average time it takes for a request to be made and processed during video playback
- type: number
- nullable: true
- format: double
- example: 473
- avgRequestThroughput:
- description: |
- Average Request Throughput refers to the average throughput or data transfer rate of HTTP requests made during video playback
- type: number
- nullable: true
- format: double
- example: 3339357.5
- avgUpscaling:
- description: |
- Average Upscaling refers to the average resolution of the video source is lower than the resolution of the playback device or screen.
- type: number
- nullable: true
- format: double
- example: 0.087843694
- beaconDomain:
- description: |
- Beacon Domain specifies the domain endpoint used by the player or SDK to send analytics or tracking beacons for playback events.
- type: string
- format: string
- example: "metrix.ws"
- browserEngine:
- description: |
- Browser Engine denotes the rendering engine used by the browser (e.g., Blink, Gecko, WebKit).
- type: string
- nullable: true
- example: null
- browserName:
- description: |
- Browser Name denotes the software application utilized by the viewer to access and watch the video content
- type: string
- nullable: true
- example: Chrome
- browserVersion:
- description: |
- Browser Version signifies the specific version of the browser software employed by the viewer
- type: string
- nullable: true
- example: Chrome 5.8.3
- bufferCount:
- type: integer
- nullable: true
- description: |
- Buffer Count represents the number of rebuffering events occurring during the video view.
- example: 1
- bufferFill:
- type: integer
- nullable: true
- format: long
- description: |
- Buffer Fill indicates the total time, in milliseconds, that viewers wait for rebuffering per video view.
- example: 4567
- bufferFrequency:
- description: |
- Buffer Frequency measures the rate at which rebuffering events occur, expressed as events per millisecond.
- type: number
- nullable: true
- format: double
- example: 0.012878
- bufferRatio:
- description: |
- Buffer Ratio refers to the percentage of time during video playback where the viewer experiences buffering or rebuffering events.
- type: number
- nullable: true
- format: double
- example: 0.018711979
- cdn:
- description: |
- Content Delivery Network (CDN) refers to the network infrastructure responsible for delivering the video content to the viewer.
- type: string
- nullable: true
- example: cloudflare
- city:
- description: |
- City indicates the geographical location of the viewer accessing the video content.
- type: string
- nullable: true
- example: California
- connectionType:
- description: |
- Connection Type signifies the type of network connection utilized by the viewers device
- type: string
- nullable: true
- example: wifi
- continent:
- description: |
- Continent represents the continent name of the viewer accessing the video content.
- type: string
- nullable: true
- example: North America
- country:
- description: |
- Country represents the coded text that represents the country name of viewer accessing the video content.
- type: string
- nullable: true
- example: United States Of America
- countryCode:
- description: |
- Country Code denotes the two-letter ISO code representing the country of origin for the viewer accessing the video content.
- type: string
- nullable: true
- example: US
- # custom1-10:
- custom:
- type: object
- description: |
- User defined metadata. Only accessible once it is enabled in the organization settings.
- properties:
- Custom:
- type: array
- nullable: true
- description: A list of custom dimension objects.
- items:
- type: object
- properties:
- dimensionName:
- type: string
- description: |
- Unique identifier for a custom dimension used to categorize or segment analytics data (for example, custom_1).
- example: custom_1
- displayName:
- type: string
- description: |
- A user-friendly display label that represents the corresponding custom dimension in analytics dashboards and reports; users can assign a specific name based on their tracking needs.
- example: email
- value:
- type: string
- description: |
- Allows assigning user-friendly data values such as email addresses, identifiers, or other meaningful information.
- example: johndoe@gmail.com
- # type: array
- # items:
- # properties:
- # dimensionName:
- # description: |
- # Unique identifier for a custom dimension used to categorize or segment analytics data (for example, custom_1).
- # type: string
- # example: custom_1
- # displayName:
- # description: |
- # A user-friendly display label that represents the corresponding custom dimension in analytics dashboards and reports; users can assign a specific name based on their tracking needs.
- # type: string
- # example: email
- # value:
- # description: |
- # Allows assigning user-friendly data values such as email addresses, identifiers, or other meaningful information.
- # type: string
- # example: johndoe@gmail.com
-
- deviceManufacturer:
- description: |
- Device Manufacturer indicates the brand or manufacturer of the device used by the viewer.
- type: string
- nullable: true
- example: Apple
- deviceModel:
- description: |
- Device Model represents the specific model of the device used by the viewer.
- type: string
- nullable: true
- example: Macintosh
- deviceName:
- description: |
- Device Name refers to the name or label assigned to the device used by the viewer.
- type: string
- nullable: true
- example: Apple
- deviceType:
- description: |
- Device Type denotes the classification of the device used by the viewer
- type: string
- nullable: true
- example: Desktop
- drmType:
- description: |
- DRM Type indicates the type of Digital Rights Management (DRM) utilized during video playback
- type: string
- nullable: true
- example: wideivne
- droppedFrameCount:
- description: |
- Dropped Frame Count represents the number of frames dropped by the video player during playback.
- type: integer
- format: long
- nullable: true
- example: 7
- errorCode:
- description: |
- Error Code is an identifier representing a specific type of error that occurred during video playback, potentially leading to playback failure.
- type: string
- nullable: true
- example: 1002
- errorContext: #NANA
- description: |
- Specifies the component or stage where the playback error originated, such as streaming, cdn, decoder, or player. This context helps diagnose whether the failure was caused by delivery issues, playback logic, or media decoding problems within the FastPix streaming pipeline.
- type: string
- nullable: true
- example: player
- errorId:
- type: integer
- nullable: true
- format: long
- description: |
- The unique identifier which identifies each type of error that occurs.
- example: 3456
- errorMessage:
- description: |
- Error Message is a descriptive message generated by the video player when an error occurs during playback, associated with an error code.
- type: string
- nullable: true
- example: TIMEOUT
- exitBeforeVideoStart:
- description: |
- Exit Before Video Start indicates whether a viewer abandoned the video before it started playing, typically due to long loading times.
- type: boolean
- example: true
- experimentName:
- description: |
- Experiment Name is used in A/B testing scenarios to categorize video views into different experiments.
- type: string
- nullable: true
- example: null
- fpApiVersion: #NANA
- description: |
- Specifies the version of the FastPix API used during data collection or playback reporting. This helps ensure compatibility and traceability between client SDK versions and backend processing.
- nullable: true
- type: string
- example: v2.3
- fpEmbed: #NANA
- description: |
- Identifies the type or source of the FastPix player embed used for playback — for example, whether the video was played through a direct player integration, an iframe, or a third-party embedded context. This helps differentiate playback environments and measure performance across embed types.
- type: boolean
- nullable: true
- example: null
- fpEmbedVersion: #NANA
- description: |
- Specifies the version of the FastPix embed script or SDK used to initialize the player. This helps track playback behavior and debug issues across different embed versions or deployment environments.
- type: string
- nullable: true
- example: null
- fpLiveStreamId:
- description: |
- FastPix Live Stream ID is the unique identifier associated with a live stream video media within the FastPix Video Platform.
- type: string
- nullable: true
- format: uuid
- example: null
- fpPlaybackId:
- description: |
- FastPix Playback ID refers to the unique identifier associated with the playback instance of a video, particularly used in FastPix Video Platform.
- type: string
- nullable: true
- format: uuid
- example: null
- fpSdk:
- description: |
- FastPix SDK Name identifies the name of the FastPix Player SDK utilized within the player workspace.
- type: string
- nullable: true
- example: shakaplayer-fastpix
- fpSdkVersion:
- description: |
- FastPix SDK Version specifies the version of the FastPix Player SDK integrated into the player.
- type: string
- nullable: true
- example: 1.1.0
- fpViewerId: #NANA
- description: |
- Represents a unique, anonymized identifier assigned to each viewer by the FastPix SDK. This ID helps correlate multiple playback sessions or events to the same viewer across sessions or devices without exposing any personal information.
- type: string
- nullable: true
- example: cf4ab502-23ef-4927-ae55-89b2a319432f
- insertTimestamp: #WillRemove
- description: |
- Insert Timestamp refers to the time instance when the view is started.
- type: string
- example: 1710591342067
- ipAddress: #NANA
- description: |
- Represents the IP address of the user or device that initiated the playback session.
- type: string
- example: 124.123.136.94
- jumpLatency:
- description: |
- Jump Latency refers to the delay or latency experienced when there is a jump or seek action performed by the viewer while watching a video.
- type: number
- nullable: true
- format: double
- example: 2396
- latitude:
- description: |
- Latitude refers to the geographical coordinate representing the north-south position of the viewers location, truncated to one decimal place.
- type: string
- nullable: true
- example: 17.384
-
- liveStreamLatency:
- description: |
- Live Stream Latency measures the average time taken from the point of ingest to the point of display for live stream video views.
- type: integer
- format: long
- nullable: true
- example: null
- longitude:
- description: |
- Longitude denotes the geographical coordinate representing the east-west position of the viewers location, truncated to one decimal place.
- type: string
- nullable: true
- example: 78.4564
- maxDownscaling:
- description: |
- Maximum Downscale Percentage represents the highest percentage of downscaling applied to the video during the view.
- type: number
- nullable: true
- format: double
- example: 0.78541666
- maxRequestLatency:
- description: |
- Max Request Latency refers to the maximum rate of data transfer (throughput) during requests made by the playback.
- type: number
- nullable: true
- format: double
- example: null
- maxUpscaling:
- description: |
- Maximum Upscale Percentage represents the highest percentage of upscaling applied to the video during the view.
- type: number
- nullable: true
- format: double
- example: 0.08175
- mediaId:
- type: string
- nullable: true
- description: |
- The media Id value if the video asset is internal to FastPix.
- format: uuid
- example: rmp7fvw5lPD01l8PZ2aN74js84XrTWxHy
- osName:
- description: |
- Operating System signifies the name of software platform utilized by the viewer.
- type: string
- nullable: true
- example: MacOS
- osVersion:
- description: |
- Operating System Version specifies the specific version of the operating system being used by the viewer
- type: string
- example: MacOS 10.15.7
- pageContext:
- description: |
- Page Context provides contextual information about the type of page being accessed.
- type: string
- nullable: true
- example: iframe
- pageLoadTime:
- description: |
- Page Load Time measures the time from when the user initiates loading the page to when all resources are loaded on the page.
- type: integer
- format: long
- nullable: true
- example: 453
- playbackScore:
- description: |
- Playback Success Score represents a numerical value indicating the success or quality of the video playback experience.
- type: number
- nullable: true
- format: double
- example: 1
- playerAutoplayOn:
- description: |
- Player Autoplay On indicates whether the video player automatically initiated playback of the video content.
- type: boolean
- example: true
-
-
- playerHeight:
- description: |
- Player Height refers to the vertical dimension, measured in pixels, of the video player as it appears on the webpage.
- oneOf:
- - type: string
- - type: integer
- nullable: true
- example: 2856
- playerInitializationTime:
- description: |
- Player Initialization Time measures the duration, in milliseconds, from the initialization of the player within the webpage to its readiness to receive further instructions.
- type: integer
- format: long
- nullable: true
- example: 24
- playerInstanceId:
- description: |
- Player Instance ID is a unique identifier that distinguishes each instance of the Player class created when initializing a video.
- type: string
- nullable: true
- format: uuid
- example: f479de20-6a25-46a5-b394-9fbdb07ea6df
- playerLanguage:
- description: |
- Player Language indicates the language used for text elements within the video player interface.
- type: string
- nullable: true
- example: null
-
- playerName:
- description: |
- Player Name serves to differentiate various configurations or types of players used across the website or application.
- type: string
- nullable: true
- example: ChanaJor Player
- playerPoster:
- description: |
- Player Poster refers to the image displayed as a preview before the video playback begins.
- type: string
- nullable: true
- example: null
- playerPreloadOn:
- description: |
- Player Preload On indicates whether the player is configured to preload the video content upon page load.
- type: boolean
- example: true
- playerRemotePlayed:
- description: |
- Player Remote Played specifies if the video is being remotely played to devices such as AirPlay or Chromecast, obtained from the SDK.
- type: boolean
- example: false
- playerResolution:
- description: |
- Player Resolution refers to the resolution of the video player window or viewport where the video content is being displayed.
- type: string
- nullable: true
- example: 811X779
- playerSoftwareName: #NANA
- description: |
- Represents the name of the video player software or framework used for playback (for example, HTML5, HLS.js, Shaka Player).
- type: string
- nullable: true
- example: "HTML5"
- playerSoftwareVersion:
- description: |
- Player Software Version indicates the version number of the player software installed.
- type: string
- nullable: true
- example: v4.3.5
- playerSourceDomain: #NANA
- description: |
- Specifies the domain or source from which the player was loaded or embedded (for example, stream.fastpix.com or a customer’s custom domain). This helps identify the playback origin and differentiate between various deployment environments.
- type: string
- nullable: true
- example: stream.fastpix.com
- playerSourceHeight:
- description: |
- Player Source Height denotes the vertical dimension, measured in pixels, of the source video content being transmitted to the player.
- type: integer
- format: long
- nullable: true
- example: 1080
- playerSourceWidth:
- description: |
- Player Source Width represents the width of the source video as perceived by the player, typically measured in pixels.
- type: integer
- format: long
- nullable: true
- example: 1920
- playerVersion:
- description: |
- Player Version indicates the version of the player used to render the video content. It is often utilized for performance comparison between different player versions.
- type: string
- nullable: true
- example: null
- playerViewCount: #NANA
- description: |
- Represents the total number of times the video player has been initialized or viewed for a specific session or video. This metric helps track playback engagement and identify view patterns across different players or sessions.
- oneOf:
- - type: string
- - type: integer
- nullable: true
- example: 0
- playerWidth:
- description: |
- Player Width refers to the width of the player displayed within the webpage, measured in pixels.
- type: integer
- format: long
- nullable: true
- example: 801
- propertyId: #NANA ####
- description: |
- Represents the unique identifier assigned to a FastPix property, which is associated with a specific workspace or project. It helps link playback and analytics data to the correct property configuration.
- oneOf:
- - type: string
- - type: integer
- format: long
- nullable: true
- example: null
- qualityOfExperienceScore:
- description: |
- Quality Of Experience Score quantifies the overall viewer experience based on various metrics, providing a decimal score to assess the quality of the viewing experience.
- type: number
- nullable: true
- format: double
- example: 0.922192410885397
- region:
- description: |
- Region denotes the geographical region of the viewer accessing the video content.
- type: string
- nullable: true
- example: Telangana
- renderQualityScore:
- description: |
- Render Quality Score is a decimal value representing the score indicating the perceived quality of the video.
- type: number
- nullable: true
- format: double
- example: 1
- sessionId:
- description: |
- Session ID refers to the unique identifier tracking a viewers session within the FastPix platform.
- type: string
- nullable: true
- format: uuid
- example: 58a97574-da3f-473f-8904-08f9f01489c8
- sign: #NANA
- description: |
- Represents a cryptographic signature used to verify the authenticity and integrity of the playback or API request within the FastPix platform. It ensures that the data has not been tampered with and originates from a trusted source.
- type: string
- nullable: true
- format: string
- example: null
- stabilityScore:
- description: |
- Stability Score quantifies the smoothness of video playback, typically represented as a decimal value.
- type: number
- nullable: true
- format: double
- example: 0.8320748
- startupScore:
- description: |
- Startup Score evaluates the startup performance of the player, usually represented as a decimal value
- type: number
- nullable: true
- format: double
- example: 0.97811466
- subPropertyId:
- description: |
- Sub Property ID denotes the unique identifier assigned to FastPix properties, previously linked with a specific workspace.
- type: string
- nullable: true
- example: null
- totalStartupTime: #NANA
- description: |
- Represents the total time (in milliseconds) taken for the video player to start playback from the moment the user initiates the session. This includes loading, buffering, and initialization delays before the first frame is rendered.
- type: integer
- format: long
- nullable: true
- example: 5285
- updatedTimestamp:
- description: |
- Updated Timestamp refers to when the record is updated to a particular Video.
- type: string
- nullable: true
- format: datetime
- example: 1710591342067
- usedFullScreen:
- description: |
- Used Fullscreen denotes whether the viewer utilized the full-screen mode while watching the video.
- type: boolean
- example: true
- userAgent:
- description: |
- User Agent represents the user agent string transmitted by the viewers device to identify itself to the server, typically including information about the device and browser.
- type: string
- nullable: true
- example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
- videoContentType:
- description: |
- Video Content Type specifies the classification of the video content.
- type: string
- nullable: true
- example: null
- videoDuration:
- description: |
- Video Duration represents the length of the video, provided in milliseconds, typically supplied to FastPix through custom metadata.
- type: integer
- format: long
- nullable: true
- example: 588
- videoEncodingVariant: #NANA
- description: |
- Indicates the specific encoding variant or rendition of the video being played, such as resolution, bitrate, or codec type. This helps identify which encoded version of the video was selected for playback.
- type: string
- nullable: true
- example: 1080p_h264
- videoId:
- description: |
- Video ID refers to an internal identifier assigned by the user or system to uniquely identify a particular video.
- type: string
- nullable: true
- format: uuid
- example: 65b65e7e20ce0aaf6d7d5596
- videoLanguage:
- description: |
- Video Language denotes the primary audio language of the video content, assuming it remains unchanged after playback initiation.
- type: string
- nullable: true
- example: null
- videoProducer:
- description: |
- Specifies the creator or source responsible for producing the video content.
- type: string
- nullable: true
- example: null
- videoResolution:
- description: |
- Video Resolution refers to the resolution of the video being played.
- type: string
- nullable: true
- example: 1080X1920
- videoSeries:
- description: |
- Video Series denotes the name of a series to which the video content belongs.
- type: string
- nullable: true
- example: Propel 23
- videoSourceDomain:
- description: |
- Video Source Domain identifies the domain from which the video source originates.
- type: string
- nullable: true
- example: ibee.ai
- videoSourceDuration:
- description: |
- Video Source Duration represents the duration of the video source content, measured in milliseconds.
- type: integer
- format: long
- nullable: true
- example: 771090
-
- videoSourceHostname:
- description: |
- Video Source Hostname represents the hostname of the video.
- type: string
- nullable: true
- example: ott-sandbox-cdn.ibee.ai
- videoSourceStreamType:
- description: |
- Video Source Stream Type denotes the type of stream used by the player, although it is currently unused.
- type: string
- nullable: true
- example: on-demand
- videoSourceType:
- description: |
- Video Source Type denotes the format of the video source as determined by the player.
- type: string
- nullable: true
- example: application/dash+xml
- videoSourceUrl:
- description: |
- Video Source URL refers to the URL of the video source accessed by the player.
- type: string
- nullable: true
- example: https://ott-sandbox-cdn.ibee.ai/videos/650801bd148907a509076b99/650801bd148907a509076b99_h264.mpd
- videoStartupFailed:
- description: |
- Video Startup Failure is a boolean metric indicating whether a viewer encountered an error before the first frame of the video commenced playback.
- type: boolean
- example: false
- videoStartupTime:
- description: |
- Video Startup Time measures the duration, in milliseconds, from the initialization of the player within the webpage to its readiness to receive further instructions.
- type: integer
- format: long
- nullable: true
- example: 209
- videoTitle:
- description: |
- Video Title refers to the title of the video content being viewed.
- type: string
- nullable: true
- example: Cycle
- videoVariantId: #NANA
- description: |
- Represents the unique identifier for the specific video variant or rendition being played. Each variant corresponds to a particular encoding configuration, such as resolution or bitrate, used for adaptive streaming and performance tracking.
- type: string
- nullable: true
- example: null
- videoVariantName: #NANA
- description: |
- Specifies the human-readable name of the video variant or rendition being played (for example, “1080p H.264” or “720p AV1”). This helps identify the playback quality or encoding configuration selected during streaming.
- type: string
- nullable: true
- example: null
- viewEnd:
- description: |
- View End refers to the date and time, in Coordinated Universal Time (UTC), when the video viewing session concluded.
- type: string
- nullable: true
- example: 1710591342067
- viewHasAd:
- description: |
- View Has Ad is a boolean metric indicating whether an advertisement played or attempted to play during the video view.
- type: boolean
- example: false
- viewHasError: #NANA
- description: |
- Indicates whether any playback error occurred during the video view. This boolean flag helps identify failed or interrupted playback sessions caused by player, network, or media-related issues.
- type: boolean
- example: false
- viewId:
- description: |
- View ID is a unique identifier assigned to each individual video viewing session.
- type: string
- format: uuid
- example: 36935287-5d08-47a0-9365-5eaa150fc4fa
-
- viewMaxPlayheadPosition:
- description: |
- View Max Playhead Position represents the furthest point reached by the playhead during the video view, measured in milliseconds.
- type: integer
- format: long
- nullable: true
- example: 2524
- viewPageUrl:
- description: |
- View Page URL denotes the URL address of the web page where the video content is being accessed.
- type: string
- nullable: true
- example: https://chanajor.com/player/659d7de2500fe544eb2706da_1_1?time=66
- viewPlayingTime:
- description: |
- Playing Time denotes the total duration of time the video content was actively playing during the view, excluding time spent buffering, seeking, or joining.
- type: integer
- format: long
- nullable: true
- example: 523657
- viewSeekedCount:
- description: |
- View Seeked Count signifies the number of times the viewer attempted to seek to a new location within the video.
- type: integer
- nullable: true
- example: 1
- viewSeekedDuration:
- description: |
- View Seeked Duration indicates the total duration of time spent waiting for playback to resume after the viewer seeks to a new location. Seek Latency metric in the Dashboard is derived by dividing this value by the view_seek_count.
- type: integer
- format: long
- nullable: true
- example: 809
- viewSessionId: #NANA
- description: |
- Represents the unique identifier assigned to a single playback session within FastPix. This ID is used to correlate all playback events, errors, and metrics that occur during the same viewing session.
- type: string
- format: uuid
- nullable: true
- example: 4fa85f64-5717-4562-b3fc-2c963f66afa6
- viewStart:
- description: |
- View Start refers to the date and time, in Coordinated Universal Time (UTC), when the video viewing session commenced.
- type: string
- nullable: true
- example: 1710591342067
- viewTotalContentPlaybackTime:
- description: |
- View Total Content Playback Time represents the cumulative duration of video content watched by the viewer, measured in milliseconds. This metric is internally utilized to calculate upscale and downscale percentages.
- type: integer
- nullable: true
- format: long
- example: 22358
- viewerId:
- description: |
- Viewer ID refers to a customer-defined identifier representing the viewer who is watching the video stream. It must be anonymized and not contain any personally identifiable information.
- type: string
- nullable: true
- format: uuid
- example: 649c5098ba7cb499f5e1041f
- watchTime:
- description: |
- Total Watch Time denotes the total duration of video content watched by the viewer, encompassing startup time, playing time, and potential rebuffering time, measured in milliseconds.
- type: integer
- nullable: true
- format: long
- example: 4307
- workspaceId:
- description: |
- It is a unique identifier associated with a specific workspace within the FastPix platform.
- type: string
- format: uuid
- example: c08f55f8-92e1-4e17-9475-bc9024a07f78
- events:
- description: |
- Events specifies the order of events journey of the video playback
- type: array
- items:
- type: object
- properties:
- pt:
- description: |
- The player_playhead_time represents the current position of the playhead (the point in the video that is being watched) on the video seekbar, measured in milliseconds. This value indicates how far into the video playback has progressed at any given moment.
- type: integer
- format: long
- nullable: true
- e:
- description: |
- Name of the event.
- type: string
- nullable: true
- d:
- type: object
- additionalProperties: true
-
- vt:
- description: |
- The unix epoch timestamp which represents the actual time the event has occurred.
- oneOf:
- - type: string
- - type: integer
- format: long
- nullable: true
-# event_time:
-# description: |
-# The unix epoch timestamp when the event was captured.
-# oneOf:
-# - type: string
-# - type: integer
-# format: long
-# nullable: true
- example:
- availableValue:
- - e: playing
- vt: 1710591347846
- pt: 8990
- - e: variantChanged
- vt: 1710592342067
- pt: 8990
- d:
- br: 7837883
- cd: avc1.4d4028
- h: 1920
- w: 1080
- ViewsByTopContentDetails:
- description: Retrieves a list of the top video views
- type: object
- properties:
- videoTitle:
- description: Title of the video
- type: string
- example: example video title
- views:
- description: Total count of view sessions for a particular video content.
- type: integer
- example: 44
- uniqueViews:
- description: Total count of unique video viewers for particular video content.
- type: integer
- example: 40
- TopErrorDetails:
- description: Retrieves a list of errors that have occurred most frequently in the system, ranked by their count of occurrences.
- type: array
- items:
- type: object
- properties:
- percentage:
- description: views affected by the specific errors.
- oneOf:
- - type: integer
- format: integer
- - type: number
- format: double
- nullable: true
- example: 0.0222222222222222
- uniqueViewersEffectedPercentage:
- description: percentage of unique viewers affected by the specific error.
- oneOf:
- - type: integer
- format: integer
- - type: number
- format: double
- nullable: true
- example: 0.0122222222222222
- notes:
- description: Information about the specific error.
- type: string
- nullable: true
- example: An informative note
- message:
- description: error message or description.
- type: string
- nullable: true
- example: "com.fastpix.stats.sdk.h71.a - android.media.mediadrm$mediadrmstateexception: failed to handle key response: drm vendor-defined error: -2998"
- lastSeen:
- description: The timestamp of when the error was last observed.
- type: string
- nullable: true
- format: string
- example: "2023-12-01T11:31:07.000Z"
- count:
- description: Number of occurrences of the specific error.
- type: integer
- nullable: true
- example: 4
- code:
- description: Error code associated with the specific error.
- type: string
- nullable: true
- example: 1003
- ErrorDetails:
- description: The endpoint retrieves a comprehensive list of errors that have occurred by providing detailed information about each error instance.
- type: array
- items:
- type: object
- properties:
- percentage:
- description: views affected by the specific errors.
- oneOf:
- - type: integer
- format: integer
- - type: number
- format: double
- nullable: true
- example: 0.0222222222222222
- notes:
- description: Information about the specific error.
- type: string
- nullable: true
- example: An informative note
- message:
- description: error message or description.
- type: string
- nullable: true
- example: "com.fastpix.stats.sdk.h71.a - android.media.mediadrm$mediadrmstateexception: failed to handle key response: drm vendor-defined error: -2998"
- lastSeen:
- description: The timestamp of when the error was last observed.
- type: string
- nullable: true
- format: string
- example: "2023-12-01T11:31:07.000Z"
- id:
- description: Unique identifier for the error instance.
- type: string
- nullable: true
- example: "5f8d0d55b54764421b7156c5"
- description:
- description: A brief description of the error.
- type: string
- nullable: true
- example: "ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT"
- count:
- description: Number of occurrences of the specific error.
- type: integer
- nullable: true
- example: 4
- code:
- description: Error code associated with the specific error.
- type: string
- nullable: true
- example: 1003
- MetricsComparisonDetails:
- description: Compare multiple metrics across specified dimensions.
- type: object
- properties:
- value:
- description: The specific metric value calculated based on the applied filters.
- type: number
- format: double
- example: 23
- type:
- type: string
- example: score
- description: value can be score that ranges from 0 to 100
- name:
- type: string
- example: Startup Score
- description: value can be score that ranges from 0 to 100
- metric:
- description: |
- The metric field represents the name of the Key Performance Indicator (KPI) being tracked or analyzed. It identifies a specific measurable aspect of the video playback experience, such as buffering time, video start failure rate, or playback quality.
- type: string
- example: startup_score
- measurement:
- type: string
- nullable: true
- example: count
- description: value can be avg, sum, count or 95th
- items:
- type: array
- nullable: true
- description: Nested comparison items
- items:
- $ref: "#/components/schemas/MetricsComparisonDetails"
- MetricsTimeseriesmetadataDetails:
- description: Retrieves breakdown values for a specified metric and timespan
- type: object
- properties:
- granularity:
- description: the unit for aggregating the timeseries data.
- type: string
- example: day
- aggregation:
- description: defines the field or dimension on which the aggregation is to be applied.
- type: string
- example: viewEnd
- MetricsmetadataDetails:
- description: Retrieves breakdown values for a specified metric and timespan
- type: object
- properties:
- aggregation:
- description: defines the field or dimension on which the aggregation is to be applied.
- type: string
- example: viewEnd
- MetricsTimeseriesDataDetails:
- description: The metrics value at specific time intervals.
- type: object
- properties:
- intervalTime:
- description: The timestamp for the data point indicating when the metric value was recorded.
- type: string
- format: date-time
- example: "2023-12-04T14:00:00.000Z"
- metricValue:
- type: number
- format: double
- nullable: true
- description: The value of the specified metric at the given interval.
- example: 0.793110142151515
- numberOfViews:
- description: The total number of views recorded during that interval.
- type: integer
- nullable: true
- format: long
- example: 143244
- MetricsOverallDataDetails:
- description: Retrieves overall values for a specified metric
- type: object
- properties:
- value:
- type: number
- format: double
- nullable: true
- description: metric value calculated based on the applied filters.
- example: 0.740365072855583
- totalWatchTime:
- description: Total time watched across all views, represented in milliseconds.
- type: integer
- nullable: true
- format: long
- example: 59534302
- uniqueViews:
- description: The count of unique viewers who interacted with the content.
- type: integer
- nullable: true
- format: long
- example: 44
- totalViews:
- description: The total number of views recorded.
- type: integer
- nullable: true
- format: long
- example: 195
- totalPlayTime:
- description: Total time spent playing the video, represented in milliseconds.
- type: integer
- nullable: true
- format: long
- example: 24729470
- globalValue:
- type: number
- format: double
- nullable: true
- description: A global metric value that reflects the overall performance of the specified metric across the entire dataset for the given timespan.
- example: 0.740365072855583
- MetricsOverallmetadataDetails:
- description: metadata that has to be paased for metric calculations.
- type: object
- properties:
- aggregation:
- description: defines the field or dimension on which the aggregation is to be applied.
- type: string
- example: viewEnd
- MetricsBreakdownDetails:
- description: Retrieves breakdown values for a specified metric and timespan
- type: array
- items:
- type: object
- properties:
- views:
- description: Total count of view sessions for a paricular video content.
- type: integer
- nullable: true
- format: long
- example: 17
- value:
- type: number
- format: double
- nullable: true
- description: The specific metric value calculated based on the applied filters.
- example: 0.868748761512138
- totalWatchTime:
- description: Total time watched across all views, represented in milliseconds.
- type: integer
- nullable: true
- format: long
- example: 218599
- totalPlayingTime:
- description: Total time spent playing the video, represented in milliseconds.
- type: integer
- nullable: true
- format: long
- example: 218599
- field:
- description: the value of dimension or filter value on which the aggregation is to be applied.
- type: string
- nullable: true
- example: Chrome
- Dimensiondetails:
- type: array
- description: filter values associated with a specific dimension
- items:
- $ref: "#/components/schemas/BrowserNameDimensiondetails"
- BrowserNameDimensiondetails:
- type: object
- properties:
- value:
- description: The specific metric value calculated based on the applied filters.
- type: string
- example: Chrome
- uniqueCount:
- description: The count of unique viewers who interacted with the content.
- type: integer
- example: 20
- count:
- description: The count of viewers.
- type: integer
- example: 44
- Dimensions:
- type: array
- description: The endpoint retrieves a comprehensive list of dimensions
- items:
- type: string
- example:
- - browser_name
- - browser_version
- - os_name
- - os_version
- - device_name
- - device_model
- - device_type
- - device_manufacturer
- - player_remote_played
- - player_name
- - player_version
- - player_software_name
- - player_software_version
- - player_resolution
- - fp_sdk
- - fp_sdk_version
- - player_autoplay_on
- - player_preload_on
- - video_title
- - video_id
- - video_series
- - fp_playback_id
- - fp_live_stream_id
- - media_id
- - video_source_stream_type
- - video_source_type
- - video_encoding_variant
- - experiment_name
- - sub_property_id
- - drm_type
- - asn_name
- - cdn
- - video_source_hostname
- - connection_type
- - view_session_id
- - continent
- - country
- - region
- - viewer_id
- - error_code
- - exit_before_video_start
- - view_has_ad
- - video_startup_failed
- - video_content_type
- - page_context
- - playback_failed
- - custom_1
- - custom_2
- - custom_3
- - custom_4
- - custom_5
- - custom_6
- - custom_7
- - custom_8
- - custom_9
- - custom_10
-
- DataPagination:
- description: Pagination organizes content into pages for better readability and navigation.
- type: object
- properties:
- totalRecords:
- type: integer
- description: |
- The total number of records retrieved within the timespan.
- example: 2
- currentOffset:
- type: integer
- description: |
- The current offset value.
-
- Default: 1
- example: 1
- offsetCount:
- type: integer
- description: |
- The total number of offsets based on limit.
- example: 1
diff --git a/node_modules/.bin/esbuild b/node_modules/.bin/esbuild
deleted file mode 120000
index c83ac07..0000000
--- a/node_modules/.bin/esbuild
+++ /dev/null
@@ -1 +0,0 @@
-../esbuild/bin/esbuild
\ No newline at end of file
diff --git a/node_modules/.bin/js-yaml b/node_modules/.bin/js-yaml
deleted file mode 120000
index 9dbd010..0000000
--- a/node_modules/.bin/js-yaml
+++ /dev/null
@@ -1 +0,0 @@
-../js-yaml/bin/js-yaml.js
\ No newline at end of file
diff --git a/node_modules/.bin/tsc b/node_modules/.bin/tsc
deleted file mode 120000
index 0863208..0000000
--- a/node_modules/.bin/tsc
+++ /dev/null
@@ -1 +0,0 @@
-../typescript/bin/tsc
\ No newline at end of file
diff --git a/node_modules/.bin/tsserver b/node_modules/.bin/tsserver
deleted file mode 120000
index f8f8f1a..0000000
--- a/node_modules/.bin/tsserver
+++ /dev/null
@@ -1 +0,0 @@
-../typescript/bin/tsserver
\ No newline at end of file
diff --git a/node_modules/.bin/tsx b/node_modules/.bin/tsx
deleted file mode 120000
index f7282dd..0000000
--- a/node_modules/.bin/tsx
+++ /dev/null
@@ -1 +0,0 @@
-../tsx/dist/cli.mjs
\ No newline at end of file
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
deleted file mode 100644
index 71d2eab..0000000
--- a/node_modules/.package-lock.json
+++ /dev/null
@@ -1,234 +0,0 @@
-{
- "name": "fastpix-python-sdk-devtools",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz",
- "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@types/js-yaml": {
- "version": "4.0.9",
- "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz",
- "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/node": {
- "version": "25.9.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz",
- "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "undici-types": ">=7.24.0 <7.24.7"
- }
- },
- "node_modules/ajv": {
- "version": "8.20.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
- "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.3",
- "fast-uri": "^3.0.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true,
- "license": "Python-2.0"
- },
- "node_modules/esbuild": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz",
- "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.28.0",
- "@esbuild/android-arm": "0.28.0",
- "@esbuild/android-arm64": "0.28.0",
- "@esbuild/android-x64": "0.28.0",
- "@esbuild/darwin-arm64": "0.28.0",
- "@esbuild/darwin-x64": "0.28.0",
- "@esbuild/freebsd-arm64": "0.28.0",
- "@esbuild/freebsd-x64": "0.28.0",
- "@esbuild/linux-arm": "0.28.0",
- "@esbuild/linux-arm64": "0.28.0",
- "@esbuild/linux-ia32": "0.28.0",
- "@esbuild/linux-loong64": "0.28.0",
- "@esbuild/linux-mips64el": "0.28.0",
- "@esbuild/linux-ppc64": "0.28.0",
- "@esbuild/linux-riscv64": "0.28.0",
- "@esbuild/linux-s390x": "0.28.0",
- "@esbuild/linux-x64": "0.28.0",
- "@esbuild/netbsd-arm64": "0.28.0",
- "@esbuild/netbsd-x64": "0.28.0",
- "@esbuild/openbsd-arm64": "0.28.0",
- "@esbuild/openbsd-x64": "0.28.0",
- "@esbuild/openharmony-arm64": "0.28.0",
- "@esbuild/sunos-x64": "0.28.0",
- "@esbuild/win32-arm64": "0.28.0",
- "@esbuild/win32-ia32": "0.28.0",
- "@esbuild/win32-x64": "0.28.0"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz",
- "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fastify"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/fastify"
- }
- ],
- "license": "BSD-3-Clause"
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/openapi-response-validator": {
- "version": "12.1.3",
- "resolved": "https://registry.npmjs.org/openapi-response-validator/-/openapi-response-validator-12.1.3.tgz",
- "integrity": "sha512-beZNb6r1SXAg1835S30h9XwjE596BYzXQFAEZlYAoO2imfxAu5S7TvNFws5k/MMKMCOFTzBXSjapqEvAzlblrQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "^8.4.0",
- "openapi-types": "^12.1.3"
- }
- },
- "node_modules/openapi-types": {
- "version": "12.1.3",
- "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz",
- "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/tsx": {
- "version": "4.22.3",
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.22.3.tgz",
- "integrity": "sha512-mdoNxBC/cSQObGGVQ5Bpn5i+yv7j68gk3Nfm3wFjcJg3Z0Mix9jzAFfP12prmm5eVGmDKtp0yyArrs0Q+8gZHg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "esbuild": "~0.28.0"
- },
- "bin": {
- "tsx": "dist/cli.mjs"
- },
- "engines": {
- "node": ">=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- }
- },
- "node_modules/typescript": {
- "version": "5.8.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
- "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/undici-types": {
- "version": "7.24.6",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz",
- "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==",
- "dev": true,
- "license": "MIT"
- }
- }
-}
diff --git a/node_modules/@esbuild/darwin-arm64/README.md b/node_modules/@esbuild/darwin-arm64/README.md
deleted file mode 100644
index c2c0398..0000000
--- a/node_modules/@esbuild/darwin-arm64/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# esbuild
-
-This is the macOS ARM 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
diff --git a/node_modules/@esbuild/darwin-arm64/bin/esbuild b/node_modules/@esbuild/darwin-arm64/bin/esbuild
deleted file mode 100755
index a960137..0000000
Binary files a/node_modules/@esbuild/darwin-arm64/bin/esbuild and /dev/null differ
diff --git a/node_modules/@esbuild/darwin-arm64/package.json b/node_modules/@esbuild/darwin-arm64/package.json
deleted file mode 100644
index 8270621..0000000
--- a/node_modules/@esbuild/darwin-arm64/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "@esbuild/darwin-arm64",
- "version": "0.28.0",
- "description": "The macOS ARM 64-bit binary for esbuild, a JavaScript bundler.",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/evanw/esbuild.git"
- },
- "license": "MIT",
- "preferUnplugged": true,
- "engines": {
- "node": ">=18"
- },
- "os": [
- "darwin"
- ],
- "cpu": [
- "arm64"
- ]
-}
diff --git a/node_modules/@types/js-yaml/LICENSE b/node_modules/@types/js-yaml/LICENSE
deleted file mode 100644
index 9e841e7..0000000
--- a/node_modules/@types/js-yaml/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
- MIT License
-
- Copyright (c) Microsoft Corporation.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
diff --git a/node_modules/@types/js-yaml/README.md b/node_modules/@types/js-yaml/README.md
deleted file mode 100644
index 0259625..0000000
--- a/node_modules/@types/js-yaml/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Installation
-> `npm install --save @types/js-yaml`
-
-# Summary
-This package contains type definitions for js-yaml (https://github.com/nodeca/js-yaml).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/js-yaml.
-
-### Additional Details
- * Last updated: Tue, 07 Nov 2023 20:08:00 GMT
- * Dependencies: none
-
-# Credits
-These definitions were written by [Bart van der Schoor](https://github.com/Bartvds), [Sebastian Clausen](https://github.com/sclausen), [ExE Boss](https://github.com/ExE-Boss), [Armaan Tobaccowalla](https://github.com/ArmaanT), and [Linus Unnebäck](https://github.com/LinusU).
diff --git a/node_modules/@types/js-yaml/index.d.mts b/node_modules/@types/js-yaml/index.d.mts
deleted file mode 100644
index cf132a1..0000000
--- a/node_modules/@types/js-yaml/index.d.mts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from "./index.js";
-export { default } from "./index.js";
diff --git a/node_modules/@types/js-yaml/index.d.ts b/node_modules/@types/js-yaml/index.d.ts
deleted file mode 100644
index 66b9207..0000000
--- a/node_modules/@types/js-yaml/index.d.ts
+++ /dev/null
@@ -1,144 +0,0 @@
-export as namespace jsyaml;
-
-export function load(str: string, opts?: LoadOptions): unknown;
-
-export class Type {
- constructor(tag: string, opts?: TypeConstructorOptions);
- kind: "sequence" | "scalar" | "mapping" | null;
- resolve(data: any): boolean;
- construct(data: any, type?: string): any;
- instanceOf: object | null;
- predicate: ((data: object) => boolean) | null;
- represent: ((data: object) => any) | { [x: string]: (data: object) => any } | null;
- representName: ((data: object) => any) | null;
- defaultStyle: string | null;
- multi: boolean;
- styleAliases: { [x: string]: any };
-}
-
-export class Schema {
- constructor(definition: SchemaDefinition | Type[] | Type);
- extend(types: SchemaDefinition | Type[] | Type): Schema;
-}
-
-export function loadAll(str: string, iterator?: null, opts?: LoadOptions): unknown[];
-export function loadAll(str: string, iterator: (doc: unknown) => void, opts?: LoadOptions): void;
-
-export function dump(obj: any, opts?: DumpOptions): string;
-
-export interface LoadOptions {
- /** string to be used as a file path in error/warning messages. */
- filename?: string | undefined;
- /** function to call on warning messages. */
- onWarning?(this: null, e: YAMLException): void;
- /** specifies a schema to use. */
- schema?: Schema | undefined;
- /** compatibility with JSON.parse behaviour. */
- json?: boolean | undefined;
- /** listener for parse events */
- listener?(this: State, eventType: EventType, state: State): void;
-}
-
-export type EventType = "open" | "close";
-
-export interface State {
- input: string;
- filename: string | null;
- schema: Schema;
- onWarning: (this: null, e: YAMLException) => void;
- json: boolean;
- length: number;
- position: number;
- line: number;
- lineStart: number;
- lineIndent: number;
- version: null | number;
- checkLineBreaks: boolean;
- kind: string;
- result: any;
- implicitTypes: Type[];
-}
-
-export interface DumpOptions {
- /** indentation width to use (in spaces). */
- indent?: number | undefined;
- /** when true, will not add an indentation level to array elements */
- noArrayIndent?: boolean | undefined;
- /** do not throw on invalid types (like function in the safe schema) and skip pairs and single values with such types. */
- skipInvalid?: boolean | undefined;
- /** specifies level of nesting, when to switch from block to flow style for collections. -1 means block style everwhere */
- flowLevel?: number | undefined;
- /** Each tag may have own set of styles. - "tag" => "style" map. */
- styles?: { [x: string]: any } | undefined;
- /** specifies a schema to use. */
- schema?: Schema | undefined;
- /** if true, sort keys when dumping YAML. If a function, use the function to sort the keys. (default: false) */
- sortKeys?: boolean | ((a: any, b: any) => number) | undefined;
- /** set max line width. (default: 80) */
- lineWidth?: number | undefined;
- /** if true, don't convert duplicate objects into references (default: false) */
- noRefs?: boolean | undefined;
- /** if true don't try to be compatible with older yaml versions. Currently: don't quote "yes", "no" and so on, as required for YAML 1.1 (default: false) */
- noCompatMode?: boolean | undefined;
- /**
- * if true flow sequences will be condensed, omitting the space between `key: value` or `a, b`. Eg. `'[a,b]'` or `{a:{b:c}}`.
- * Can be useful when using yaml for pretty URL query params as spaces are %-encoded. (default: false).
- */
- condenseFlow?: boolean | undefined;
- /** strings will be quoted using this quoting style. If you specify single quotes, double quotes will still be used for non-printable characters. (default: `'`) */
- quotingType?: "'" | "\"" | undefined;
- /** if true, all non-key strings will be quoted even if they normally don't need to. (default: false) */
- forceQuotes?: boolean | undefined;
- /** callback `function (key, value)` called recursively on each key/value in source object (see `replacer` docs for `JSON.stringify`). */
- replacer?: ((key: string, value: any) => any) | undefined;
-}
-
-export interface TypeConstructorOptions {
- kind?: "sequence" | "scalar" | "mapping" | undefined;
- resolve?: ((data: any) => boolean) | undefined;
- construct?: ((data: any, type?: string) => any) | undefined;
- instanceOf?: object | undefined;
- predicate?: ((data: object) => boolean) | undefined;
- represent?: ((data: object) => any) | { [x: string]: (data: object) => any } | undefined;
- representName?: ((data: object) => any) | undefined;
- defaultStyle?: string | undefined;
- multi?: boolean | undefined;
- styleAliases?: { [x: string]: any } | undefined;
-}
-
-export interface SchemaDefinition {
- implicit?: Type[] | undefined;
- explicit?: Type[] | undefined;
-}
-
-/** only strings, arrays and plain objects: http://www.yaml.org/spec/1.2/spec.html#id2802346 */
-export let FAILSAFE_SCHEMA: Schema;
-/** only strings, arrays and plain objects: http://www.yaml.org/spec/1.2/spec.html#id2802346 */
-export let JSON_SCHEMA: Schema;
-/** same as JSON_SCHEMA: http://www.yaml.org/spec/1.2/spec.html#id2804923 */
-export let CORE_SCHEMA: Schema;
-/** all supported YAML types */
-export let DEFAULT_SCHEMA: Schema;
-
-export interface Mark {
- buffer: string;
- column: number;
- line: number;
- name: string;
- position: number;
- snippet: string;
-}
-
-export class YAMLException extends Error {
- constructor(reason?: string, mark?: Mark);
-
- toString(compact?: boolean): string;
-
- name: string;
-
- reason: string;
-
- message: string;
-
- mark: Mark;
-}
diff --git a/node_modules/@types/js-yaml/package.json b/node_modules/@types/js-yaml/package.json
deleted file mode 100644
index 0cdc963..0000000
--- a/node_modules/@types/js-yaml/package.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "name": "@types/js-yaml",
- "version": "4.0.9",
- "description": "TypeScript definitions for js-yaml",
- "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/js-yaml",
- "license": "MIT",
- "contributors": [
- {
- "name": "Bart van der Schoor",
- "githubUsername": "Bartvds",
- "url": "https://github.com/Bartvds"
- },
- {
- "name": "Sebastian Clausen",
- "githubUsername": "sclausen",
- "url": "https://github.com/sclausen"
- },
- {
- "name": "ExE Boss",
- "githubUsername": "ExE-Boss",
- "url": "https://github.com/ExE-Boss"
- },
- {
- "name": "Armaan Tobaccowalla",
- "githubUsername": "ArmaanT",
- "url": "https://github.com/ArmaanT"
- },
- {
- "name": "Linus Unnebäck",
- "githubUsername": "LinusU",
- "url": "https://github.com/LinusU"
- }
- ],
- "main": "",
- "types": "index.d.ts",
- "exports": {
- ".": {
- "types": {
- "import": "./index.d.mts",
- "default": "./index.d.ts"
- }
- },
- "./package.json": "./package.json"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
- "directory": "types/js-yaml"
- },
- "scripts": {},
- "dependencies": {},
- "typesPublisherContentHash": "d8ef94de3166b3cc8a3ce9c4fe2d001ec5dd7eaa19d30e651fbf4b505454972d",
- "typeScriptVersion": "4.5"
-}
\ No newline at end of file
diff --git a/node_modules/@types/node/LICENSE b/node_modules/@types/node/LICENSE
deleted file mode 100644
index 9e841e7..0000000
--- a/node_modules/@types/node/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
- MIT License
-
- Copyright (c) Microsoft Corporation.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
diff --git a/node_modules/@types/node/README.md b/node_modules/@types/node/README.md
deleted file mode 100644
index e75ad10..0000000
--- a/node_modules/@types/node/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Installation
-> `npm install --save @types/node`
-
-# Summary
-This package contains type definitions for node (https://nodejs.org/).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
-
-### Additional Details
- * Last updated: Tue, 19 May 2026 17:48:56 GMT
- * Dependencies: [undici-types](https://npmjs.com/package/undici-types)
-
-# Credits
-These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [Alberto Schiabel](https://github.com/jkomyno), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [David Junger](https://github.com/touffy), [Mohsen Azimi](https://github.com/mohsen1), [Nikita Galkin](https://github.com/galkin), [Sebastian Silbermann](https://github.com/eps1lon), [Wilco Bakker](https://github.com/WilcoBakker), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), [wafuwafu13](https://github.com/wafuwafu13), [Matteo Collina](https://github.com/mcollina), [Dmitry Semigradsky](https://github.com/Semigradsky), [René](https://github.com/Renegade334), and [Yagiz Nizipli](https://github.com/anonrig).
diff --git a/node_modules/@types/node/assert.d.ts b/node_modules/@types/node/assert.d.ts
deleted file mode 100644
index c4cc77e..0000000
--- a/node_modules/@types/node/assert.d.ts
+++ /dev/null
@@ -1,950 +0,0 @@
-declare module "node:assert" {
- import strict = require("node:assert/strict");
- /**
- * An alias of {@link assert.ok}.
- * @since v0.5.9
- * @param value The input that is checked for being truthy.
- */
- function assert(value: unknown, message?: string | Error): asserts value;
- const kOptions: unique symbol;
- namespace assert {
- type AssertMethodNames =
- | "deepEqual"
- | "deepStrictEqual"
- | "doesNotMatch"
- | "doesNotReject"
- | "doesNotThrow"
- | "equal"
- | "fail"
- | "ifError"
- | "match"
- | "notDeepEqual"
- | "notDeepStrictEqual"
- | "notEqual"
- | "notStrictEqual"
- | "ok"
- | "partialDeepStrictEqual"
- | "rejects"
- | "strictEqual"
- | "throws";
- interface AssertOptions {
- /**
- * If set to `'full'`, shows the full diff in assertion errors.
- * @default 'simple'
- */
- diff?: "simple" | "full" | undefined;
- /**
- * If set to `true`, non-strict methods behave like their
- * corresponding strict methods.
- * @default true
- */
- strict?: boolean | undefined;
- /**
- * If set to `true`, skips prototype and constructor
- * comparison in deep equality checks.
- * @since v24.9.0
- * @default false
- */
- skipPrototype?: boolean | undefined;
- }
- interface Assert extends Pick {
- readonly [kOptions]: AssertOptions & { strict: false };
- }
- interface AssertStrict extends Pick {
- readonly [kOptions]: AssertOptions & { strict: true };
- }
- /**
- * The `Assert` class allows creating independent assertion instances with custom options.
- * @since v24.6.0
- */
- var Assert: {
- /**
- * Creates a new assertion instance. The `diff` option controls the verbosity of diffs in assertion error messages.
- *
- * ```js
- * const { Assert } = require('node:assert');
- * const assertInstance = new Assert({ diff: 'full' });
- * assertInstance.deepStrictEqual({ a: 1 }, { a: 2 });
- * // Shows a full diff in the error message.
- * ```
- *
- * **Important**: When destructuring assertion methods from an `Assert` instance,
- * the methods lose their connection to the instance's configuration options (such
- * as `diff`, `strict`, and `skipPrototype` settings).
- * The destructured methods will fall back to default behavior instead.
- *
- * ```js
- * const myAssert = new Assert({ diff: 'full' });
- *
- * // This works as expected - uses 'full' diff
- * myAssert.strictEqual({ a: 1 }, { b: { c: 1 } });
- *
- * // This loses the 'full' diff setting - falls back to default 'simple' diff
- * const { strictEqual } = myAssert;
- * strictEqual({ a: 1 }, { b: { c: 1 } });
- * ```
- *
- * The `skipPrototype` option affects all deep equality methods:
- *
- * ```js
- * class Foo {
- * constructor(a) {
- * this.a = a;
- * }
- * }
- *
- * class Bar {
- * constructor(a) {
- * this.a = a;
- * }
- * }
- *
- * const foo = new Foo(1);
- * const bar = new Bar(1);
- *
- * // Default behavior - fails due to different constructors
- * const assert1 = new Assert();
- * assert1.deepStrictEqual(foo, bar); // AssertionError
- *
- * // Skip prototype comparison - passes if properties are equal
- * const assert2 = new Assert({ skipPrototype: true });
- * assert2.deepStrictEqual(foo, bar); // OK
- * ```
- *
- * When destructured, methods lose access to the instance's `this` context and revert to default assertion behavior
- * (diff: 'simple', non-strict mode).
- * To maintain custom options when using destructured methods, avoid
- * destructuring and call methods directly on the instance.
- * @since v24.6.0
- */
- new(
- options?: AssertOptions & { strict?: true | undefined },
- ): AssertStrict;
- new(
- options: AssertOptions,
- ): Assert;
- };
- interface AssertionErrorOptions {
- /**
- * If provided, the error message is set to this value.
- */
- message?: string | undefined;
- /**
- * The `actual` property on the error instance.
- */
- actual?: unknown;
- /**
- * The `expected` property on the error instance.
- */
- expected?: unknown;
- /**
- * The `operator` property on the error instance.
- */
- operator?: string | undefined;
- /**
- * If provided, the generated stack trace omits frames before this function.
- */
- stackStartFn?: Function | undefined;
- /**
- * If set to `'full'`, shows the full diff in assertion errors.
- * @default 'simple'
- */
- diff?: "simple" | "full" | undefined;
- }
- /**
- * Indicates the failure of an assertion. All errors thrown by the `node:assert` module will be instances of the `AssertionError` class.
- */
- class AssertionError extends Error {
- constructor(options: AssertionErrorOptions);
- /**
- * Set to the `actual` argument for methods such as {@link assert.strictEqual()}.
- */
- actual: unknown;
- /**
- * Set to the `expected` argument for methods such as {@link assert.strictEqual()}.
- */
- expected: unknown;
- /**
- * Indicates if the message was auto-generated (`true`) or not.
- */
- generatedMessage: boolean;
- /**
- * Value is always `ERR_ASSERTION` to show that the error is an assertion error.
- */
- code: "ERR_ASSERTION";
- /**
- * Set to the passed in operator value.
- */
- operator: string;
- }
- type AssertPredicate = RegExp | (new() => object) | ((thrown: unknown) => boolean) | object | Error;
- /**
- * Throws an `AssertionError` with the provided error message or a default
- * error message. If the `message` parameter is an instance of an `Error` then
- * it will be thrown instead of the `AssertionError`.
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.fail();
- * // AssertionError [ERR_ASSERTION]: Failed
- *
- * assert.fail('boom');
- * // AssertionError [ERR_ASSERTION]: boom
- *
- * assert.fail(new TypeError('need array'));
- * // TypeError: need array
- * ```
- * @since v0.1.21
- * @param [message='Failed']
- */
- function fail(message?: string | Error): never;
- /**
- * Tests if `value` is truthy. It is equivalent to `assert.equal(!!value, true, message)`.
- *
- * If `value` is not truthy, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is `undefined`, a default
- * error message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown instead of the `AssertionError`.
- * If no arguments are passed in at all `message` will be set to the string:`` 'No value argument passed to `assert.ok()`' ``.
- *
- * Be aware that in the `repl` the error message will be different to the one
- * thrown in a file! See below for further details.
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.ok(true);
- * // OK
- * assert.ok(1);
- * // OK
- *
- * assert.ok();
- * // AssertionError: No value argument passed to `assert.ok()`
- *
- * assert.ok(false, 'it\'s false');
- * // AssertionError: it's false
- *
- * // In the repl:
- * assert.ok(typeof 123 === 'string');
- * // AssertionError: false == true
- *
- * // In a file (e.g. test.js):
- * assert.ok(typeof 123 === 'string');
- * // AssertionError: The expression evaluated to a falsy value:
- * //
- * // assert.ok(typeof 123 === 'string')
- *
- * assert.ok(false);
- * // AssertionError: The expression evaluated to a falsy value:
- * //
- * // assert.ok(false)
- *
- * assert.ok(0);
- * // AssertionError: The expression evaluated to a falsy value:
- * //
- * // assert.ok(0)
- * ```
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * // Using `assert()` works the same:
- * assert(2 + 2 > 5);;
- * // AssertionError: The expression evaluated to a falsy value:
- * //
- * // assert(2 + 2 > 5)
- * ```
- * @since v0.1.21
- */
- function ok(value: unknown, message?: string | Error): asserts value;
- /**
- * **Strict assertion mode**
- *
- * An alias of {@link strictEqual}.
- *
- * **Legacy assertion mode**
- *
- * > Stability: 3 - Legacy: Use {@link strictEqual} instead.
- *
- * Tests shallow, coercive equality between the `actual` and `expected` parameters
- * using the [`==` operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality). `NaN` is specially handled
- * and treated as being identical if both sides are `NaN`.
- *
- * ```js
- * import assert from 'node:assert';
- *
- * assert.equal(1, 1);
- * // OK, 1 == 1
- * assert.equal(1, '1');
- * // OK, 1 == '1'
- * assert.equal(NaN, NaN);
- * // OK
- *
- * assert.equal(1, 2);
- * // AssertionError: 1 == 2
- * assert.equal({ a: { b: 1 } }, { a: { b: 1 } });
- * // AssertionError: { a: { b: 1 } } == { a: { b: 1 } }
- * ```
- *
- * If the values are not equal, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is undefined, a default
- * error message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown instead of the `AssertionError`.
- * @since v0.1.21
- */
- function equal(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * **Strict assertion mode**
- *
- * An alias of {@link notStrictEqual}.
- *
- * **Legacy assertion mode**
- *
- * > Stability: 3 - Legacy: Use {@link notStrictEqual} instead.
- *
- * Tests shallow, coercive inequality with the [`!=` operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Inequality). `NaN` is
- * specially handled and treated as being identical if both sides are `NaN`.
- *
- * ```js
- * import assert from 'node:assert';
- *
- * assert.notEqual(1, 2);
- * // OK
- *
- * assert.notEqual(1, 1);
- * // AssertionError: 1 != 1
- *
- * assert.notEqual(1, '1');
- * // AssertionError: 1 != '1'
- * ```
- *
- * If the values are equal, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is undefined, a default error
- * message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown instead of the `AssertionError`.
- * @since v0.1.21
- */
- function notEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * **Strict assertion mode**
- *
- * An alias of {@link deepStrictEqual}.
- *
- * **Legacy assertion mode**
- *
- * > Stability: 3 - Legacy: Use {@link deepStrictEqual} instead.
- *
- * Tests for deep equality between the `actual` and `expected` parameters. Consider
- * using {@link deepStrictEqual} instead. {@link deepEqual} can have
- * surprising results.
- *
- * _Deep equality_ means that the enumerable "own" properties of child objects
- * are also recursively evaluated by the following rules.
- * @since v0.1.21
- */
- function deepEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * **Strict assertion mode**
- *
- * An alias of {@link notDeepStrictEqual}.
- *
- * **Legacy assertion mode**
- *
- * > Stability: 3 - Legacy: Use {@link notDeepStrictEqual} instead.
- *
- * Tests for any deep inequality. Opposite of {@link deepEqual}.
- *
- * ```js
- * import assert from 'node:assert';
- *
- * const obj1 = {
- * a: {
- * b: 1,
- * },
- * };
- * const obj2 = {
- * a: {
- * b: 2,
- * },
- * };
- * const obj3 = {
- * a: {
- * b: 1,
- * },
- * };
- * const obj4 = { __proto__: obj1 };
- *
- * assert.notDeepEqual(obj1, obj1);
- * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }
- *
- * assert.notDeepEqual(obj1, obj2);
- * // OK
- *
- * assert.notDeepEqual(obj1, obj3);
- * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }
- *
- * assert.notDeepEqual(obj1, obj4);
- * // OK
- * ```
- *
- * If the values are deeply equal, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is undefined, a default
- * error message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown
- * instead of the `AssertionError`.
- * @since v0.1.21
- */
- function notDeepEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * Tests strict equality between the `actual` and `expected` parameters as
- * determined by [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.strictEqual(1, 2);
- * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:
- * //
- * // 1 !== 2
- *
- * assert.strictEqual(1, 1);
- * // OK
- *
- * assert.strictEqual('Hello foobar', 'Hello World!');
- * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:
- * // + actual - expected
- * //
- * // + 'Hello foobar'
- * // - 'Hello World!'
- * // ^
- *
- * const apples = 1;
- * const oranges = 2;
- * assert.strictEqual(apples, oranges, `apples ${apples} !== oranges ${oranges}`);
- * // AssertionError [ERR_ASSERTION]: apples 1 !== oranges 2
- *
- * assert.strictEqual(1, '1', new TypeError('Inputs are not identical'));
- * // TypeError: Inputs are not identical
- * ```
- *
- * If the values are not strictly equal, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is undefined, a
- * default error message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown
- * instead of the `AssertionError`.
- * @since v0.1.21
- */
- function strictEqual(actual: unknown, expected: T, message?: string | Error): asserts actual is T;
- /**
- * Tests strict inequality between the `actual` and `expected` parameters as
- * determined by [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.notStrictEqual(1, 2);
- * // OK
- *
- * assert.notStrictEqual(1, 1);
- * // AssertionError [ERR_ASSERTION]: Expected "actual" to be strictly unequal to:
- * //
- * // 1
- *
- * assert.notStrictEqual(1, '1');
- * // OK
- * ```
- *
- * If the values are strictly equal, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is undefined, a
- * default error message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown
- * instead of the `AssertionError`.
- * @since v0.1.21
- */
- function notStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * Tests for deep equality between the `actual` and `expected` parameters.
- * "Deep" equality means that the enumerable "own" properties of child objects
- * are recursively evaluated also by the following rules.
- * @since v1.2.0
- */
- function deepStrictEqual(actual: unknown, expected: T, message?: string | Error): asserts actual is T;
- /**
- * Tests for deep strict inequality. Opposite of {@link deepStrictEqual}.
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.notDeepStrictEqual({ a: 1 }, { a: '1' });
- * // OK
- * ```
- *
- * If the values are deeply and strictly equal, an `AssertionError` is thrown
- * with a `message` property set equal to the value of the `message` parameter. If
- * the `message` parameter is undefined, a default error message is assigned. If
- * the `message` parameter is an instance of an `Error` then it will be thrown
- * instead of the `AssertionError`.
- * @since v1.2.0
- */
- function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * Expects the function `fn` to throw an error.
- *
- * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
- * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function,
- * a validation object where each property will be tested for strict deep equality,
- * or an instance of error where each property will be tested for strict deep
- * equality including the non-enumerable `message` and `name` properties. When
- * using an object, it is also possible to use a regular expression, when
- * validating against a string property. See below for examples.
- *
- * If specified, `message` will be appended to the message provided by the `AssertionError` if the `fn` call fails to throw or in case the error validation
- * fails.
- *
- * Custom validation object/error instance:
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * const err = new TypeError('Wrong value');
- * err.code = 404;
- * err.foo = 'bar';
- * err.info = {
- * nested: true,
- * baz: 'text',
- * };
- * err.reg = /abc/i;
- *
- * assert.throws(
- * () => {
- * throw err;
- * },
- * {
- * name: 'TypeError',
- * message: 'Wrong value',
- * info: {
- * nested: true,
- * baz: 'text',
- * },
- * // Only properties on the validation object will be tested for.
- * // Using nested objects requires all properties to be present. Otherwise
- * // the validation is going to fail.
- * },
- * );
- *
- * // Using regular expressions to validate error properties:
- * assert.throws(
- * () => {
- * throw err;
- * },
- * {
- * // The `name` and `message` properties are strings and using regular
- * // expressions on those will match against the string. If they fail, an
- * // error is thrown.
- * name: /^TypeError$/,
- * message: /Wrong/,
- * foo: 'bar',
- * info: {
- * nested: true,
- * // It is not possible to use regular expressions for nested properties!
- * baz: 'text',
- * },
- * // The `reg` property contains a regular expression and only if the
- * // validation object contains an identical regular expression, it is going
- * // to pass.
- * reg: /abc/i,
- * },
- * );
- *
- * // Fails due to the different `message` and `name` properties:
- * assert.throws(
- * () => {
- * const otherErr = new Error('Not found');
- * // Copy all enumerable properties from `err` to `otherErr`.
- * for (const [key, value] of Object.entries(err)) {
- * otherErr[key] = value;
- * }
- * throw otherErr;
- * },
- * // The error's `message` and `name` properties will also be checked when using
- * // an error as validation object.
- * err,
- * );
- * ```
- *
- * Validate instanceof using constructor:
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.throws(
- * () => {
- * throw new Error('Wrong value');
- * },
- * Error,
- * );
- * ```
- *
- * Validate error message using [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions):
- *
- * Using a regular expression runs `.toString` on the error object, and will
- * therefore also include the error name.
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.throws(
- * () => {
- * throw new Error('Wrong value');
- * },
- * /^Error: Wrong value$/,
- * );
- * ```
- *
- * Custom error validation:
- *
- * The function must return `true` to indicate all internal validations passed.
- * It will otherwise fail with an `AssertionError`.
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.throws(
- * () => {
- * throw new Error('Wrong value');
- * },
- * (err) => {
- * assert(err instanceof Error);
- * assert(/value/.test(err));
- * // Avoid returning anything from validation functions besides `true`.
- * // Otherwise, it's not clear what part of the validation failed. Instead,
- * // throw an error about the specific validation that failed (as done in this
- * // example) and add as much helpful debugging information to that error as
- * // possible.
- * return true;
- * },
- * 'unexpected error',
- * );
- * ```
- *
- * `error` cannot be a string. If a string is provided as the second
- * argument, then `error` is assumed to be omitted and the string will be used for `message` instead. This can lead to easy-to-miss mistakes. Using the same
- * message as the thrown error message is going to result in an `ERR_AMBIGUOUS_ARGUMENT` error. Please read the example below carefully if using
- * a string as the second argument gets considered:
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * function throwingFirst() {
- * throw new Error('First');
- * }
- *
- * function throwingSecond() {
- * throw new Error('Second');
- * }
- *
- * function notThrowing() {}
- *
- * // The second argument is a string and the input function threw an Error.
- * // The first case will not throw as it does not match for the error message
- * // thrown by the input function!
- * assert.throws(throwingFirst, 'Second');
- * // In the next example the message has no benefit over the message from the
- * // error and since it is not clear if the user intended to actually match
- * // against the error message, Node.js throws an `ERR_AMBIGUOUS_ARGUMENT` error.
- * assert.throws(throwingSecond, 'Second');
- * // TypeError [ERR_AMBIGUOUS_ARGUMENT]
- *
- * // The string is only used (as message) in case the function does not throw:
- * assert.throws(notThrowing, 'Second');
- * // AssertionError [ERR_ASSERTION]: Missing expected exception: Second
- *
- * // If it was intended to match for the error message do this instead:
- * // It does not throw because the error messages match.
- * assert.throws(throwingSecond, /Second$/);
- *
- * // If the error message does not match, an AssertionError is thrown.
- * assert.throws(throwingFirst, /Second$/);
- * // AssertionError [ERR_ASSERTION]
- * ```
- *
- * Due to the confusing error-prone notation, avoid a string as the second
- * argument.
- * @since v0.1.21
- */
- function throws(block: () => unknown, message?: string | Error): void;
- function throws(block: () => unknown, error: AssertPredicate, message?: string | Error): void;
- /**
- * Asserts that the function `fn` does not throw an error.
- *
- * Using `assert.doesNotThrow()` is actually not useful because there
- * is no benefit in catching an error and then rethrowing it. Instead, consider
- * adding a comment next to the specific code path that should not throw and keep
- * error messages as expressive as possible.
- *
- * When `assert.doesNotThrow()` is called, it will immediately call the `fn` function.
- *
- * If an error is thrown and it is the same type as that specified by the `error` parameter, then an `AssertionError` is thrown. If the error is of a
- * different type, or if the `error` parameter is undefined, the error is
- * propagated back to the caller.
- *
- * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
- * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), or a validation
- * function. See {@link throws} for more details.
- *
- * The following, for instance, will throw the `TypeError` because there is no
- * matching error type in the assertion:
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.doesNotThrow(
- * () => {
- * throw new TypeError('Wrong value');
- * },
- * SyntaxError,
- * );
- * ```
- *
- * However, the following will result in an `AssertionError` with the message
- * 'Got unwanted exception...':
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.doesNotThrow(
- * () => {
- * throw new TypeError('Wrong value');
- * },
- * TypeError,
- * );
- * ```
- *
- * If an `AssertionError` is thrown and a value is provided for the `message` parameter, the value of `message` will be appended to the `AssertionError` message:
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.doesNotThrow(
- * () => {
- * throw new TypeError('Wrong value');
- * },
- * /Wrong value/,
- * 'Whoops',
- * );
- * // Throws: AssertionError: Got unwanted exception: Whoops
- * ```
- * @since v0.1.21
- */
- function doesNotThrow(block: () => unknown, message?: string | Error): void;
- function doesNotThrow(block: () => unknown, error: AssertPredicate, message?: string | Error): void;
- /**
- * Throws `value` if `value` is not `undefined` or `null`. This is useful when
- * testing the `error` argument in callbacks. The stack trace contains all frames
- * from the error passed to `ifError()` including the potential new frames for `ifError()` itself.
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.ifError(null);
- * // OK
- * assert.ifError(0);
- * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 0
- * assert.ifError('error');
- * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 'error'
- * assert.ifError(new Error());
- * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Error
- *
- * // Create some random error frames.
- * let err;
- * (function errorFrame() {
- * err = new Error('test error');
- * })();
- *
- * (function ifErrorFrame() {
- * assert.ifError(err);
- * })();
- * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: test error
- * // at ifErrorFrame
- * // at errorFrame
- * ```
- * @since v0.1.97
- */
- function ifError(value: unknown): asserts value is null | undefined;
- /**
- * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately
- * calls the function and awaits the returned promise to complete. It will then
- * check that the promise is rejected.
- *
- * If `asyncFn` is a function and it throws an error synchronously, `assert.rejects()` will return a rejected `Promise` with that error. If the
- * function does not return a promise, `assert.rejects()` will return a rejected `Promise` with an [ERR_INVALID_RETURN_VALUE](https://nodejs.org/docs/latest-v25.x/api/errors.html#err_invalid_return_value)
- * error. In both cases the error handler is skipped.
- *
- * Besides the async nature to await the completion behaves identically to {@link throws}.
- *
- * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
- * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function,
- * an object where each property will be tested for, or an instance of error where
- * each property will be tested for including the non-enumerable `message` and `name` properties.
- *
- * If specified, `message` will be the message provided by the `{@link AssertionError}` if the `asyncFn` fails to reject.
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * await assert.rejects(
- * async () => {
- * throw new TypeError('Wrong value');
- * },
- * {
- * name: 'TypeError',
- * message: 'Wrong value',
- * },
- * );
- * ```
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * await assert.rejects(
- * async () => {
- * throw new TypeError('Wrong value');
- * },
- * (err) => {
- * assert.strictEqual(err.name, 'TypeError');
- * assert.strictEqual(err.message, 'Wrong value');
- * return true;
- * },
- * );
- * ```
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.rejects(
- * Promise.reject(new Error('Wrong value')),
- * Error,
- * ).then(() => {
- * // ...
- * });
- * ```
- *
- * `error` cannot be a string. If a string is provided as the second argument, then `error` is assumed to
- * be omitted and the string will be used for `message` instead. This can lead to easy-to-miss mistakes. Please read the
- * example in {@link throws} carefully if using a string as the second argument gets considered.
- * @since v10.0.0
- */
- function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise;
- function rejects(
- block: (() => Promise) | Promise,
- error: AssertPredicate,
- message?: string | Error,
- ): Promise;
- /**
- * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately
- * calls the function and awaits the returned promise to complete. It will then
- * check that the promise is not rejected.
- *
- * If `asyncFn` is a function and it throws an error synchronously, `assert.doesNotReject()` will return a rejected `Promise` with that error. If
- * the function does not return a promise, `assert.doesNotReject()` will return a
- * rejected `Promise` with an [ERR_INVALID_RETURN_VALUE](https://nodejs.org/docs/latest-v25.x/api/errors.html#err_invalid_return_value) error. In both cases
- * the error handler is skipped.
- *
- * Using `assert.doesNotReject()` is actually not useful because there is little
- * benefit in catching a rejection and then rejecting it again. Instead, consider
- * adding a comment next to the specific code path that should not reject and keep
- * error messages as expressive as possible.
- *
- * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
- * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), or a validation
- * function. See {@link throws} for more details.
- *
- * Besides the async nature to await the completion behaves identically to {@link doesNotThrow}.
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * await assert.doesNotReject(
- * async () => {
- * throw new TypeError('Wrong value');
- * },
- * SyntaxError,
- * );
- * ```
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.doesNotReject(Promise.reject(new TypeError('Wrong value')))
- * .then(() => {
- * // ...
- * });
- * ```
- * @since v10.0.0
- */
- function doesNotReject(
- block: (() => Promise) | Promise,
- message?: string | Error,
- ): Promise;
- function doesNotReject(
- block: (() => Promise) | Promise,
- error: AssertPredicate,
- message?: string | Error,
- ): Promise;
- /**
- * Expects the `string` input to match the regular expression.
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.match('I will fail', /pass/);
- * // AssertionError [ERR_ASSERTION]: The input did not match the regular ...
- *
- * assert.match(123, /pass/);
- * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string.
- *
- * assert.match('I will pass', /pass/);
- * // OK
- * ```
- *
- * If the values do not match, or if the `string` argument is of another type than `string`, an `{@link AssertionError}` is thrown with a `message` property set equal
- * to the value of the `message` parameter. If the `message` parameter is
- * undefined, a default error message is assigned. If the `message` parameter is an
- * instance of an [Error](https://nodejs.org/docs/latest-v25.x/api/errors.html#class-error) then it will be thrown instead of the `{@link AssertionError}`.
- * @since v13.6.0, v12.16.0
- */
- function match(value: string, regExp: RegExp, message?: string | Error): void;
- /**
- * Expects the `string` input not to match the regular expression.
- *
- * ```js
- * import assert from 'node:assert/strict';
- *
- * assert.doesNotMatch('I will fail', /fail/);
- * // AssertionError [ERR_ASSERTION]: The input was expected to not match the ...
- *
- * assert.doesNotMatch(123, /pass/);
- * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string.
- *
- * assert.doesNotMatch('I will pass', /different/);
- * // OK
- * ```
- *
- * If the values do match, or if the `string` argument is of another type than `string`, an `{@link AssertionError}` is thrown with a `message` property set equal
- * to the value of the `message` parameter. If the `message` parameter is
- * undefined, a default error message is assigned. If the `message` parameter is an
- * instance of an [Error](https://nodejs.org/docs/latest-v25.x/api/errors.html#class-error) then it will be thrown instead of the `{@link AssertionError}`.
- * @since v13.6.0, v12.16.0
- */
- function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void;
- /**
- * Tests for partial deep equality between the `actual` and `expected` parameters.
- * "Deep" equality means that the enumerable "own" properties of child objects
- * are recursively evaluated also by the following rules. "Partial" equality means
- * that only properties that exist on the `expected` parameter are going to be
- * compared.
- *
- * This method always passes the same test cases as `assert.deepStrictEqual()`,
- * behaving as a super set of it.
- * @since v22.13.0
- */
- function partialDeepStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- }
- namespace assert {
- export { strict };
- }
- export = assert;
-}
-declare module "assert" {
- import assert = require("node:assert");
- export = assert;
-}
diff --git a/node_modules/@types/node/assert/strict.d.ts b/node_modules/@types/node/assert/strict.d.ts
deleted file mode 100644
index 7a9dcf5..0000000
--- a/node_modules/@types/node/assert/strict.d.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-declare module "node:assert/strict" {
- import {
- Assert,
- AssertionError,
- AssertionErrorOptions,
- AssertOptions,
- AssertPredicate,
- AssertStrict,
- deepStrictEqual,
- doesNotMatch,
- doesNotReject,
- doesNotThrow,
- fail,
- ifError,
- match,
- notDeepStrictEqual,
- notStrictEqual,
- ok,
- partialDeepStrictEqual,
- rejects,
- strictEqual,
- throws,
- } from "node:assert";
- function strict(value: unknown, message?: string | Error): asserts value;
- namespace strict {
- export {
- Assert,
- AssertionError,
- AssertionErrorOptions,
- AssertOptions,
- AssertPredicate,
- AssertStrict,
- deepStrictEqual,
- deepStrictEqual as deepEqual,
- doesNotMatch,
- doesNotReject,
- doesNotThrow,
- fail,
- ifError,
- match,
- notDeepStrictEqual,
- notDeepStrictEqual as notDeepEqual,
- notStrictEqual,
- notStrictEqual as notEqual,
- ok,
- partialDeepStrictEqual,
- rejects,
- strict,
- strictEqual,
- strictEqual as equal,
- throws,
- };
- }
- export = strict;
-}
-declare module "assert/strict" {
- import strict = require("node:assert/strict");
- export = strict;
-}
diff --git a/node_modules/@types/node/async_hooks.d.ts b/node_modules/@types/node/async_hooks.d.ts
deleted file mode 100644
index ac857ad..0000000
--- a/node_modules/@types/node/async_hooks.d.ts
+++ /dev/null
@@ -1,711 +0,0 @@
-declare module "node:async_hooks" {
- /**
- * ```js
- * import { executionAsyncId } from 'node:async_hooks';
- * import fs from 'node:fs';
- *
- * console.log(executionAsyncId()); // 1 - bootstrap
- * const path = '.';
- * fs.open(path, 'r', (err, fd) => {
- * console.log(executionAsyncId()); // 6 - open()
- * });
- * ```
- *
- * The ID returned from `executionAsyncId()` is related to execution timing, not
- * causality (which is covered by `triggerAsyncId()`):
- *
- * ```js
- * const server = net.createServer((conn) => {
- * // Returns the ID of the server, not of the new connection, because the
- * // callback runs in the execution scope of the server's MakeCallback().
- * async_hooks.executionAsyncId();
- *
- * }).listen(port, () => {
- * // Returns the ID of a TickObject (process.nextTick()) because all
- * // callbacks passed to .listen() are wrapped in a nextTick().
- * async_hooks.executionAsyncId();
- * });
- * ```
- *
- * Promise contexts may not get precise `executionAsyncIds` by default.
- * See the section on [promise execution tracking](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#promise-execution-tracking).
- * @since v8.1.0
- * @return The `asyncId` of the current execution context. Useful to track when something calls.
- */
- function executionAsyncId(): number;
- /**
- * Resource objects returned by `executionAsyncResource()` are most often internal
- * Node.js handle objects with undocumented APIs. Using any functions or properties
- * on the object is likely to crash your application and should be avoided.
- *
- * Using `executionAsyncResource()` in the top-level execution context will
- * return an empty object as there is no handle or request object to use,
- * but having an object representing the top-level can be helpful.
- *
- * ```js
- * import { open } from 'node:fs';
- * import { executionAsyncId, executionAsyncResource } from 'node:async_hooks';
- *
- * console.log(executionAsyncId(), executionAsyncResource()); // 1 {}
- * open(new URL(import.meta.url), 'r', (err, fd) => {
- * console.log(executionAsyncId(), executionAsyncResource()); // 7 FSReqWrap
- * });
- * ```
- *
- * This can be used to implement continuation local storage without the
- * use of a tracking `Map` to store the metadata:
- *
- * ```js
- * import { createServer } from 'node:http';
- * import {
- * executionAsyncId,
- * executionAsyncResource,
- * createHook,
- * } from 'node:async_hooks';
- * const sym = Symbol('state'); // Private symbol to avoid pollution
- *
- * createHook({
- * init(asyncId, type, triggerAsyncId, resource) {
- * const cr = executionAsyncResource();
- * if (cr) {
- * resource[sym] = cr[sym];
- * }
- * },
- * }).enable();
- *
- * const server = createServer((req, res) => {
- * executionAsyncResource()[sym] = { state: req.url };
- * setTimeout(function() {
- * res.end(JSON.stringify(executionAsyncResource()[sym]));
- * }, 100);
- * }).listen(3000);
- * ```
- * @since v13.9.0, v12.17.0
- * @return The resource representing the current execution. Useful to store data within the resource.
- */
- function executionAsyncResource(): object;
- /**
- * ```js
- * const server = net.createServer((conn) => {
- * // The resource that caused (or triggered) this callback to be called
- * // was that of the new connection. Thus the return value of triggerAsyncId()
- * // is the asyncId of "conn".
- * async_hooks.triggerAsyncId();
- *
- * }).listen(port, () => {
- * // Even though all callbacks passed to .listen() are wrapped in a nextTick()
- * // the callback itself exists because the call to the server's .listen()
- * // was made. So the return value would be the ID of the server.
- * async_hooks.triggerAsyncId();
- * });
- * ```
- *
- * Promise contexts may not get valid `triggerAsyncId`s by default. See
- * the section on [promise execution tracking](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#promise-execution-tracking).
- * @return The ID of the resource responsible for calling the callback that is currently being executed.
- */
- function triggerAsyncId(): number;
- interface HookCallbacks {
- /**
- * The [`init` callback](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#initasyncid-type-triggerasyncid-resource).
- */
- init?(asyncId: number, type: string, triggerAsyncId: number, resource: object): void;
- /**
- * The [`before` callback](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#beforeasyncid).
- */
- before?(asyncId: number): void;
- /**
- * The [`after` callback](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#afterasyncid).
- */
- after?(asyncId: number): void;
- /**
- * The [`promiseResolve` callback](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#promiseresolveasyncid).
- */
- promiseResolve?(asyncId: number): void;
- /**
- * The [`destroy` callback](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#destroyasyncid).
- */
- destroy?(asyncId: number): void;
- /**
- * Whether the hook should track `Promise`s. Cannot be `false` if
- * `promiseResolve` is set.
- * @default true
- */
- trackPromises?: boolean | undefined;
- }
- interface AsyncHook {
- /**
- * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop.
- */
- enable(): this;
- /**
- * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled.
- */
- disable(): this;
- }
- /**
- * Registers functions to be called for different lifetime events of each async
- * operation.
- *
- * The callbacks `init()`/`before()`/`after()`/`destroy()` are called for the
- * respective asynchronous event during a resource's lifetime.
- *
- * All callbacks are optional. For example, if only resource cleanup needs to
- * be tracked, then only the `destroy` callback needs to be passed. The
- * specifics of all functions that can be passed to `callbacks` is in the
- * [Hook Callbacks](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#hook-callbacks) section.
- *
- * ```js
- * import { createHook } from 'node:async_hooks';
- *
- * const asyncHook = createHook({
- * init(asyncId, type, triggerAsyncId, resource) { },
- * destroy(asyncId) { },
- * });
- * ```
- *
- * The callbacks will be inherited via the prototype chain:
- *
- * ```js
- * class MyAsyncCallbacks {
- * init(asyncId, type, triggerAsyncId, resource) { }
- * destroy(asyncId) {}
- * }
- *
- * class MyAddedCallbacks extends MyAsyncCallbacks {
- * before(asyncId) { }
- * after(asyncId) { }
- * }
- *
- * const asyncHook = async_hooks.createHook(new MyAddedCallbacks());
- * ```
- *
- * Because promises are asynchronous resources whose lifecycle is tracked
- * via the async hooks mechanism, the `init()`, `before()`, `after()`, and
- * `destroy()` callbacks _must not_ be async functions that return promises.
- * @since v8.1.0
- * @param options The [Hook Callbacks](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#hook-callbacks) to register
- * @returns Instance used for disabling and enabling hooks
- */
- function createHook(options: HookCallbacks): AsyncHook;
- interface AsyncResourceOptions {
- /**
- * The ID of the execution context that created this async event.
- * @default executionAsyncId()
- */
- triggerAsyncId?: number | undefined;
- /**
- * Disables automatic `emitDestroy` when the object is garbage collected.
- * This usually does not need to be set (even if `emitDestroy` is called
- * manually), unless the resource's `asyncId` is retrieved and the
- * sensitive API's `emitDestroy` is called with it.
- * @default false
- */
- requireManualDestroy?: boolean | undefined;
- }
- /**
- * The class `AsyncResource` is designed to be extended by the embedder's async
- * resources. Using this, users can easily trigger the lifetime events of their
- * own resources.
- *
- * The `init` hook will trigger when an `AsyncResource` is instantiated.
- *
- * The following is an overview of the `AsyncResource` API.
- *
- * ```js
- * import { AsyncResource, executionAsyncId } from 'node:async_hooks';
- *
- * // AsyncResource() is meant to be extended. Instantiating a
- * // new AsyncResource() also triggers init. If triggerAsyncId is omitted then
- * // async_hook.executionAsyncId() is used.
- * const asyncResource = new AsyncResource(
- * type, { triggerAsyncId: executionAsyncId(), requireManualDestroy: false },
- * );
- *
- * // Run a function in the execution context of the resource. This will
- * // * establish the context of the resource
- * // * trigger the AsyncHooks before callbacks
- * // * call the provided function `fn` with the supplied arguments
- * // * trigger the AsyncHooks after callbacks
- * // * restore the original execution context
- * asyncResource.runInAsyncScope(fn, thisArg, ...args);
- *
- * // Call AsyncHooks destroy callbacks.
- * asyncResource.emitDestroy();
- *
- * // Return the unique ID assigned to the AsyncResource instance.
- * asyncResource.asyncId();
- *
- * // Return the trigger ID for the AsyncResource instance.
- * asyncResource.triggerAsyncId();
- * ```
- */
- class AsyncResource {
- /**
- * AsyncResource() is meant to be extended. Instantiating a
- * new AsyncResource() also triggers init. If triggerAsyncId is omitted then
- * async_hook.executionAsyncId() is used.
- * @param type The type of async event.
- * @param triggerAsyncId The ID of the execution context that created
- * this async event (default: `executionAsyncId()`), or an
- * AsyncResourceOptions object (since v9.3.0)
- */
- constructor(type: string, triggerAsyncId?: number | AsyncResourceOptions);
- /**
- * Binds the given function to the current execution context.
- * @since v14.8.0, v12.19.0
- * @param fn The function to bind to the current execution context.
- * @param type An optional name to associate with the underlying `AsyncResource`.
- */
- static bind any, ThisArg>(
- fn: Func,
- type?: string,
- thisArg?: ThisArg,
- ): Func;
- /**
- * Binds the given function to execute to this `AsyncResource`'s scope.
- * @since v14.8.0, v12.19.0
- * @param fn The function to bind to the current `AsyncResource`.
- */
- bind any>(fn: Func): Func;
- /**
- * Call the provided function with the provided arguments in the execution context
- * of the async resource. This will establish the context, trigger the AsyncHooks
- * before callbacks, call the function, trigger the AsyncHooks after callbacks, and
- * then restore the original execution context.
- * @since v9.6.0
- * @param fn The function to call in the execution context of this async resource.
- * @param thisArg The receiver to be used for the function call.
- * @param args Optional arguments to pass to the function.
- */
- runInAsyncScope(
- fn: (this: This, ...args: any[]) => Result,
- thisArg?: This,
- ...args: any[]
- ): Result;
- /**
- * Call all `destroy` hooks. This should only ever be called once. An error will
- * be thrown if it is called more than once. This **must** be manually called. If
- * the resource is left to be collected by the GC then the `destroy` hooks will
- * never be called.
- * @return A reference to `asyncResource`.
- */
- emitDestroy(): this;
- /**
- * @return The unique `asyncId` assigned to the resource.
- */
- asyncId(): number;
- /**
- * @return The same `triggerAsyncId` that is passed to the `AsyncResource` constructor.
- */
- triggerAsyncId(): number;
- }
- interface AsyncLocalStorageOptions {
- /**
- * The default value to be used when no store is provided.
- */
- defaultValue?: any;
- /**
- * A name for the `AsyncLocalStorage` value.
- */
- name?: string | undefined;
- }
- /**
- * This class creates stores that stay coherent through asynchronous operations.
- *
- * While you can create your own implementation on top of the `node:async_hooks` module, `AsyncLocalStorage` should be preferred as it is a performant and memory
- * safe implementation that involves significant optimizations that are non-obvious
- * to implement.
- *
- * The following example uses `AsyncLocalStorage` to build a simple logger
- * that assigns IDs to incoming HTTP requests and includes them in messages
- * logged within each request.
- *
- * ```js
- * import http from 'node:http';
- * import { AsyncLocalStorage } from 'node:async_hooks';
- *
- * const asyncLocalStorage = new AsyncLocalStorage();
- *
- * function logWithId(msg) {
- * const id = asyncLocalStorage.getStore();
- * console.log(`${id !== undefined ? id : '-'}:`, msg);
- * }
- *
- * let idSeq = 0;
- * http.createServer((req, res) => {
- * asyncLocalStorage.run(idSeq++, () => {
- * logWithId('start');
- * // Imagine any chain of async operations here
- * setImmediate(() => {
- * logWithId('finish');
- * res.end();
- * });
- * });
- * }).listen(8080);
- *
- * http.get('http://localhost:8080');
- * http.get('http://localhost:8080');
- * // Prints:
- * // 0: start
- * // 0: finish
- * // 1: start
- * // 1: finish
- * ```
- *
- * Each instance of `AsyncLocalStorage` maintains an independent storage context.
- * Multiple instances can safely exist simultaneously without risk of interfering
- * with each other's data.
- * @since v13.10.0, v12.17.0
- */
- class AsyncLocalStorage {
- /**
- * Creates a new instance of `AsyncLocalStorage`. Store is only provided within a
- * `run()` call or after an `enterWith()` call.
- */
- constructor(options?: AsyncLocalStorageOptions);
- /**
- * Binds the given function to the current execution context.
- * @since v19.8.0
- * @param fn The function to bind to the current execution context.
- * @return A new function that calls `fn` within the captured execution context.
- */
- static bind any>(fn: Func): Func;
- /**
- * Captures the current execution context and returns a function that accepts a
- * function as an argument. Whenever the returned function is called, it
- * calls the function passed to it within the captured context.
- *
- * ```js
- * const asyncLocalStorage = new AsyncLocalStorage();
- * const runInAsyncScope = asyncLocalStorage.run(123, () => AsyncLocalStorage.snapshot());
- * const result = asyncLocalStorage.run(321, () => runInAsyncScope(() => asyncLocalStorage.getStore()));
- * console.log(result); // returns 123
- * ```
- *
- * AsyncLocalStorage.snapshot() can replace the use of AsyncResource for simple
- * async context tracking purposes, for example:
- *
- * ```js
- * class Foo {
- * #runInAsyncScope = AsyncLocalStorage.snapshot();
- *
- * get() { return this.#runInAsyncScope(() => asyncLocalStorage.getStore()); }
- * }
- *
- * const foo = asyncLocalStorage.run(123, () => new Foo());
- * console.log(asyncLocalStorage.run(321, () => foo.get())); // returns 123
- * ```
- * @since v19.8.0
- * @return A new function with the signature `(fn: (...args) : R, ...args) : R`.
- */
- static snapshot(): (fn: (...args: TArgs) => R, ...args: TArgs) => R;
- /**
- * Disables the instance of `AsyncLocalStorage`. All subsequent calls
- * to `asyncLocalStorage.getStore()` will return `undefined` until `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()` is called again.
- *
- * When calling `asyncLocalStorage.disable()`, all current contexts linked to the
- * instance will be exited.
- *
- * Calling `asyncLocalStorage.disable()` is required before the `asyncLocalStorage` can be garbage collected. This does not apply to stores
- * provided by the `asyncLocalStorage`, as those objects are garbage collected
- * along with the corresponding async resources.
- *
- * Use this method when the `asyncLocalStorage` is not in use anymore
- * in the current process.
- * @since v13.10.0, v12.17.0
- * @experimental
- */
- disable(): void;
- /**
- * Returns the current store.
- * If called outside of an asynchronous context initialized by
- * calling `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()`, it
- * returns `undefined`.
- * @since v13.10.0, v12.17.0
- */
- getStore(): T | undefined;
- /**
- * The name of the `AsyncLocalStorage` instance if provided.
- * @since v24.0.0
- */
- readonly name: string;
- /**
- * Runs a function synchronously within a context and returns its
- * return value. The store is not accessible outside of the callback function.
- * The store is accessible to any asynchronous operations created within the
- * callback.
- *
- * The optional `args` are passed to the callback function.
- *
- * If the callback function throws an error, the error is thrown by `run()` too.
- * The stacktrace is not impacted by this call and the context is exited.
- *
- * Example:
- *
- * ```js
- * const store = { id: 2 };
- * try {
- * asyncLocalStorage.run(store, () => {
- * asyncLocalStorage.getStore(); // Returns the store object
- * setTimeout(() => {
- * asyncLocalStorage.getStore(); // Returns the store object
- * }, 200);
- * throw new Error();
- * });
- * } catch (e) {
- * asyncLocalStorage.getStore(); // Returns undefined
- * // The error will be caught here
- * }
- * ```
- * @since v13.10.0, v12.17.0
- */
- run(store: T, callback: () => R): R;
- run(store: T, callback: (...args: TArgs) => R, ...args: TArgs): R;
- /**
- * Runs a function synchronously outside of a context and returns its
- * return value. The store is not accessible within the callback function or
- * the asynchronous operations created within the callback. Any `getStore()` call done within the callback function will always return `undefined`.
- *
- * The optional `args` are passed to the callback function.
- *
- * If the callback function throws an error, the error is thrown by `exit()` too.
- * The stacktrace is not impacted by this call and the context is re-entered.
- *
- * Example:
- *
- * ```js
- * // Within a call to run
- * try {
- * asyncLocalStorage.getStore(); // Returns the store object or value
- * asyncLocalStorage.exit(() => {
- * asyncLocalStorage.getStore(); // Returns undefined
- * throw new Error();
- * });
- * } catch (e) {
- * asyncLocalStorage.getStore(); // Returns the same object or value
- * // The error will be caught here
- * }
- * ```
- * @since v13.10.0, v12.17.0
- * @experimental
- */
- exit(callback: (...args: TArgs) => R, ...args: TArgs): R;
- /**
- * Creates a disposable scope that enters the given store and automatically
- * restores the previous store value when the scope is disposed. This method is
- * designed to work with JavaScript's explicit resource management (`using` syntax).
- *
- * Example:
- *
- * ```js
- * import { AsyncLocalStorage } from 'node:async_hooks';
- *
- * const asyncLocalStorage = new AsyncLocalStorage();
- *
- * {
- * using _ = asyncLocalStorage.withScope('my-store');
- * console.log(asyncLocalStorage.getStore()); // Prints: my-store
- * }
- *
- * console.log(asyncLocalStorage.getStore()); // Prints: undefined
- * ```
- *
- * The `withScope()` method is particularly useful for managing context in
- * synchronous code where you want to ensure the previous store value is restored
- * when exiting a block, even if an error is thrown.
- *
- * ```js
- * import { AsyncLocalStorage } from 'node:async_hooks';
- *
- * const asyncLocalStorage = new AsyncLocalStorage();
- *
- * try {
- * using _ = asyncLocalStorage.withScope('my-store');
- * console.log(asyncLocalStorage.getStore()); // Prints: my-store
- * throw new Error('test');
- * } catch (e) {
- * // Store is automatically restored even after error
- * console.log(asyncLocalStorage.getStore()); // Prints: undefined
- * }
- * ```
- *
- * **Important:** When using `withScope()` in async functions before the first
- * `await`, be aware that the scope change will affect the caller's context. The
- * synchronous portion of an async function (before the first `await`) runs
- * immediately when called, and when it reaches the first `await`, it returns the
- * promise to the caller. At that point, the scope change becomes visible in the
- * caller's context and will persist in subsequent synchronous code until something
- * else changes the scope value. For async operations, prefer using `run()` which
- * properly isolates context across async boundaries.
- *
- * ```js
- * import { AsyncLocalStorage } from 'node:async_hooks';
- *
- * const asyncLocalStorage = new AsyncLocalStorage();
- *
- * async function example() {
- * using _ = asyncLocalStorage.withScope('my-store');
- * console.log(asyncLocalStorage.getStore()); // Prints: my-store
- * await someAsyncOperation(); // Function pauses here and returns promise
- * console.log(asyncLocalStorage.getStore()); // Prints: my-store
- * }
- *
- * // Calling without await
- * example(); // Synchronous portion runs, then pauses at first await
- * // After the promise is returned, the scope 'my-store' is now active in caller!
- * console.log(asyncLocalStorage.getStore()); // Prints: my-store (unexpected!)
- * ```
- * @since v25.9.0
- * @experimental
- */
- withScope(store: T): RunScope;
- /**
- * Transitions into the context for the remainder of the current
- * synchronous execution and then persists the store through any following
- * asynchronous calls.
- *
- * Example:
- *
- * ```js
- * const store = { id: 1 };
- * // Replaces previous store with the given store object
- * asyncLocalStorage.enterWith(store);
- * asyncLocalStorage.getStore(); // Returns the store object
- * someAsyncOperation(() => {
- * asyncLocalStorage.getStore(); // Returns the same object
- * });
- * ```
- *
- * This transition will continue for the _entire_ synchronous execution.
- * This means that if, for example, the context is entered within an event
- * handler subsequent event handlers will also run within that context unless
- * specifically bound to another context with an `AsyncResource`. That is why `run()` should be preferred over `enterWith()` unless there are strong reasons
- * to use the latter method.
- *
- * ```js
- * const store = { id: 1 };
- *
- * emitter.on('my-event', () => {
- * asyncLocalStorage.enterWith(store);
- * });
- * emitter.on('my-event', () => {
- * asyncLocalStorage.getStore(); // Returns the same object
- * });
- *
- * asyncLocalStorage.getStore(); // Returns undefined
- * emitter.emit('my-event');
- * asyncLocalStorage.getStore(); // Returns the same object
- * ```
- * @since v13.11.0, v12.17.0
- * @experimental
- */
- enterWith(store: T): void;
- }
- /**
- * A disposable scope returned by `asyncLocalStorage.withScope()` that
- * automatically restores the previous store value when disposed. This class
- * implements the [Explicit Resource Management](https://github.com/tc39/proposal-explicit-resource-management) protocol and is designed to work
- * with JavaScript's `using` syntax.
- *
- * The scope automatically restores the previous store value when the `using` block
- * exits, whether through normal completion or by throwing an error.
- * @since v25.9.0
- * @experimental
- */
- interface RunScope extends Disposable {
- /**
- * Explicitly ends the scope and restores the previous store value. This method
- * is idempotent: calling it multiple times has the same effect as calling it once.
- *
- * The `[Symbol.dispose]()` method defers to `dispose()`.
- *
- * If `withScope()` is called without the `using` keyword, `dispose()` must be
- * called manually to restore the previous store value. Forgetting to call
- * `dispose()` will cause the store value to persist for the remainder of the
- * current execution context:
- *
- * ```js
- * import { AsyncLocalStorage } from 'node:async_hooks';
- *
- * const storage = new AsyncLocalStorage();
- *
- * // Without using, the scope must be disposed manually
- * const scope = storage.withScope('my-store');
- * // storage.getStore() === 'my-store' here
- *
- * scope.dispose(); // Restore previous value
- * // storage.getStore() === undefined here
- * ```
- * @since v25.9.0
- */
- dispose(): void;
- }
- /**
- * @since v17.2.0, v16.14.0
- * @return A map of provider types to the corresponding numeric id.
- * This map contains all the event types that might be emitted by the `async_hooks.init()` event.
- */
- namespace asyncWrapProviders {
- const NONE: number;
- const DIRHANDLE: number;
- const DNSCHANNEL: number;
- const ELDHISTOGRAM: number;
- const FILEHANDLE: number;
- const FILEHANDLECLOSEREQ: number;
- const FIXEDSIZEBLOBCOPY: number;
- const FSEVENTWRAP: number;
- const FSREQCALLBACK: number;
- const FSREQPROMISE: number;
- const GETADDRINFOREQWRAP: number;
- const GETNAMEINFOREQWRAP: number;
- const HEAPSNAPSHOT: number;
- const HTTP2SESSION: number;
- const HTTP2STREAM: number;
- const HTTP2PING: number;
- const HTTP2SETTINGS: number;
- const HTTPINCOMINGMESSAGE: number;
- const HTTPCLIENTREQUEST: number;
- const JSSTREAM: number;
- const JSUDPWRAP: number;
- const MESSAGEPORT: number;
- const PIPECONNECTWRAP: number;
- const PIPESERVERWRAP: number;
- const PIPEWRAP: number;
- const PROCESSWRAP: number;
- const PROMISE: number;
- const QUERYWRAP: number;
- const SHUTDOWNWRAP: number;
- const SIGNALWRAP: number;
- const STATWATCHER: number;
- const STREAMPIPE: number;
- const TCPCONNECTWRAP: number;
- const TCPSERVERWRAP: number;
- const TCPWRAP: number;
- const TTYWRAP: number;
- const UDPSENDWRAP: number;
- const UDPWRAP: number;
- const SIGINTWATCHDOG: number;
- const WORKER: number;
- const WORKERHEAPSNAPSHOT: number;
- const WRITEWRAP: number;
- const ZLIB: number;
- const CHECKPRIMEREQUEST: number;
- const PBKDF2REQUEST: number;
- const KEYPAIRGENREQUEST: number;
- const KEYGENREQUEST: number;
- const KEYEXPORTREQUEST: number;
- const CIPHERREQUEST: number;
- const DERIVEBITSREQUEST: number;
- const HASHREQUEST: number;
- const RANDOMBYTESREQUEST: number;
- const RANDOMPRIMEREQUEST: number;
- const SCRYPTREQUEST: number;
- const SIGNREQUEST: number;
- const TLSWRAP: number;
- const VERIFYREQUEST: number;
- }
-}
-declare module "async_hooks" {
- export * from "node:async_hooks";
-}
diff --git a/node_modules/@types/node/buffer.buffer.d.ts b/node_modules/@types/node/buffer.buffer.d.ts
deleted file mode 100644
index a6c4b25..0000000
--- a/node_modules/@types/node/buffer.buffer.d.ts
+++ /dev/null
@@ -1,466 +0,0 @@
-declare module "node:buffer" {
- type ImplicitArrayBuffer> = T extends
- { valueOf(): infer V extends ArrayBufferLike } ? V : T;
- global {
- interface BufferConstructor {
- // see buffer.d.ts for implementation shared with all TypeScript versions
-
- /**
- * Allocates a new buffer containing the given {str}.
- *
- * @param str String to store in buffer.
- * @param encoding encoding to use, optional. Default is 'utf8'
- * @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead.
- */
- new(str: string, encoding?: BufferEncoding): Buffer;
- /**
- * Allocates a new buffer of {size} octets.
- *
- * @param size count of octets to allocate.
- * @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`).
- */
- new(size: number): Buffer;
- /**
- * Allocates a new buffer containing the given {array} of octets.
- *
- * @param array The octets to store.
- * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead.
- */
- new(array: ArrayLike): Buffer;
- /**
- * Produces a Buffer backed by the same allocated memory as
- * the given {ArrayBuffer}/{SharedArrayBuffer}.
- *
- * @param arrayBuffer The ArrayBuffer with which to share memory.
- * @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead.
- */
- new(arrayBuffer: TArrayBuffer): Buffer;
- /**
- * Allocates a new `Buffer` using an `array` of bytes in the range `0` – `255`.
- * Array entries outside that range will be truncated to fit into it.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * // Creates a new Buffer containing the UTF-8 bytes of the string 'buffer'.
- * const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
- * ```
- *
- * If `array` is an `Array`-like object (that is, one with a `length` property of
- * type `number`), it is treated as if it is an array, unless it is a `Buffer` or
- * a `Uint8Array`. This means all other `TypedArray` variants get treated as an
- * `Array`. To create a `Buffer` from the bytes backing a `TypedArray`, use
- * `Buffer.copyBytesFrom()`.
- *
- * A `TypeError` will be thrown if `array` is not an `Array` or another type
- * appropriate for `Buffer.from()` variants.
- *
- * `Buffer.from(array)` and `Buffer.from(string)` may also use the internal
- * `Buffer` pool like `Buffer.allocUnsafe()` does.
- * @since v5.10.0
- */
- from(array: WithImplicitCoercion>): Buffer;
- /**
- * This creates a view of the `ArrayBuffer` without copying the underlying
- * memory. For example, when passed a reference to the `.buffer` property of a
- * `TypedArray` instance, the newly created `Buffer` will share the same
- * allocated memory as the `TypedArray`'s underlying `ArrayBuffer`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const arr = new Uint16Array(2);
- *
- * arr[0] = 5000;
- * arr[1] = 4000;
- *
- * // Shares memory with `arr`.
- * const buf = Buffer.from(arr.buffer);
- *
- * console.log(buf);
- * // Prints:
- *
- * // Changing the original Uint16Array changes the Buffer also.
- * arr[1] = 6000;
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * The optional `byteOffset` and `length` arguments specify a memory range within
- * the `arrayBuffer` that will be shared by the `Buffer`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const ab = new ArrayBuffer(10);
- * const buf = Buffer.from(ab, 0, 2);
- *
- * console.log(buf.length);
- * // Prints: 2
- * ```
- *
- * A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer` or a
- * `SharedArrayBuffer` or another type appropriate for `Buffer.from()`
- * variants.
- *
- * It is important to remember that a backing `ArrayBuffer` can cover a range
- * of memory that extends beyond the bounds of a `TypedArray` view. A new
- * `Buffer` created using the `buffer` property of a `TypedArray` may extend
- * beyond the range of the `TypedArray`:
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const arrA = Uint8Array.from([0x63, 0x64, 0x65, 0x66]); // 4 elements
- * const arrB = new Uint8Array(arrA.buffer, 1, 2); // 2 elements
- * console.log(arrA.buffer === arrB.buffer); // true
- *
- * const buf = Buffer.from(arrB.buffer);
- * console.log(buf);
- * // Prints:
- * ```
- * @since v5.10.0
- * @param arrayBuffer An `ArrayBuffer`, `SharedArrayBuffer`, for example the
- * `.buffer` property of a `TypedArray`.
- * @param byteOffset Index of first byte to expose. **Default:** `0`.
- * @param length Number of bytes to expose. **Default:**
- * `arrayBuffer.byteLength - byteOffset`.
- */
- from>(
- arrayBuffer: TArrayBuffer,
- byteOffset?: number,
- length?: number,
- ): Buffer>;
- /**
- * Creates a new `Buffer` containing `string`. The `encoding` parameter identifies
- * the character encoding to be used when converting `string` into bytes.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf1 = Buffer.from('this is a tést');
- * const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex');
- *
- * console.log(buf1.toString());
- * // Prints: this is a tést
- * console.log(buf2.toString());
- * // Prints: this is a tést
- * console.log(buf1.toString('latin1'));
- * // Prints: this is a tést
- * ```
- *
- * A `TypeError` will be thrown if `string` is not a string or another type
- * appropriate for `Buffer.from()` variants.
- *
- * `Buffer.from(string)` may also use the internal `Buffer` pool like
- * `Buffer.allocUnsafe()` does.
- * @since v5.10.0
- * @param string A string to encode.
- * @param encoding The encoding of `string`. **Default:** `'utf8'`.
- */
- from(string: WithImplicitCoercion, encoding?: BufferEncoding): Buffer;
- from(arrayOrString: WithImplicitCoercion | string>): Buffer;
- /**
- * Creates a new Buffer using the passed {data}
- * @param values to create a new Buffer
- */
- of(...items: number[]): Buffer;
- /**
- * Returns a new `Buffer` which is the result of concatenating all the `Buffer` instances in the `list` together.
- *
- * If the list has no items, or if the `totalLength` is 0, then a new zero-length `Buffer` is returned.
- *
- * If `totalLength` is not provided, it is calculated from the `Buffer` instances
- * in `list` by adding their lengths.
- *
- * If `totalLength` is provided, it must be an unsigned integer. If the
- * combined length of the `Buffer`s in `list` exceeds `totalLength`, the result is
- * truncated to `totalLength`. If the combined length of the `Buffer`s in `list` is
- * less than `totalLength`, the remaining space is filled with zeros.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * // Create a single `Buffer` from a list of three `Buffer` instances.
- *
- * const buf1 = Buffer.alloc(10);
- * const buf2 = Buffer.alloc(14);
- * const buf3 = Buffer.alloc(18);
- * const totalLength = buf1.length + buf2.length + buf3.length;
- *
- * console.log(totalLength);
- * // Prints: 42
- *
- * const bufA = Buffer.concat([buf1, buf2, buf3], totalLength);
- *
- * console.log(bufA);
- * // Prints:
- * console.log(bufA.length);
- * // Prints: 42
- * ```
- *
- * `Buffer.concat()` may also use the internal `Buffer` pool like `Buffer.allocUnsafe()` does.
- * @since v0.7.11
- * @param list List of `Buffer` or {@link Uint8Array} instances to concatenate.
- * @param totalLength Total length of the `Buffer` instances in `list` when concatenated.
- */
- concat(list: readonly Uint8Array[], totalLength?: number): Buffer;
- /**
- * Copies the underlying memory of `view` into a new `Buffer`.
- *
- * ```js
- * const u16 = new Uint16Array([0, 0xffff]);
- * const buf = Buffer.copyBytesFrom(u16, 1, 1);
- * u16[1] = 0;
- * console.log(buf.length); // 2
- * console.log(buf[0]); // 255
- * console.log(buf[1]); // 255
- * ```
- * @since v19.8.0
- * @param view The {TypedArray} to copy.
- * @param [offset=0] The starting offset within `view`.
- * @param [length=view.length - offset] The number of elements from `view` to copy.
- */
- copyBytesFrom(view: NodeJS.TypedArray, offset?: number, length?: number): Buffer;
- /**
- * Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the`Buffer` will be zero-filled.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.alloc(5);
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_OUT_OF_RANGE` is thrown.
- *
- * If `fill` is specified, the allocated `Buffer` will be initialized by calling `buf.fill(fill)`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.alloc(5, 'a');
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * If both `fill` and `encoding` are specified, the allocated `Buffer` will be
- * initialized by calling `buf.fill(fill, encoding)`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * Calling `Buffer.alloc()` can be measurably slower than the alternative `Buffer.allocUnsafe()` but ensures that the newly created `Buffer` instance
- * contents will never contain sensitive data from previous allocations, including
- * data that might not have been allocated for `Buffer`s.
- *
- * A `TypeError` will be thrown if `size` is not a number.
- * @since v5.10.0
- * @param size The desired length of the new `Buffer`.
- * @param [fill=0] A value to pre-fill the new `Buffer` with.
- * @param [encoding='utf8'] If `fill` is a string, this is its encoding.
- */
- alloc(size: number, fill?: string | Uint8Array | number, encoding?: BufferEncoding): Buffer;
- /**
- * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_OUT_OF_RANGE` is thrown.
- *
- * The underlying memory for `Buffer` instances created in this way is _not_
- * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `Buffer.alloc()` instead to initialize`Buffer` instances with zeroes.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(10);
- *
- * console.log(buf);
- * // Prints (contents may vary):
- *
- * buf.fill(0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * A `TypeError` will be thrown if `size` is not a number.
- *
- * The `Buffer` module pre-allocates an internal `Buffer` instance of
- * size `Buffer.poolSize` that is used as a pool for the fast allocation of new `Buffer` instances created using `Buffer.allocUnsafe()`, `Buffer.from(array)`,
- * and `Buffer.concat()` only when `size` is less than `Buffer.poolSize >>> 1` (floor of `Buffer.poolSize` divided by two).
- *
- * Use of this pre-allocated internal memory pool is a key difference between
- * calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`.
- * Specifically, `Buffer.alloc(size, fill)` will _never_ use the internal `Buffer`pool, while `Buffer.allocUnsafe(size).fill(fill)`_will_ use the internal`Buffer` pool if `size` is less
- * than or equal to half `Buffer.poolSize`. The
- * difference is subtle but can be important when an application requires the
- * additional performance that `Buffer.allocUnsafe()` provides.
- * @since v5.10.0
- * @param size The desired length of the new `Buffer`.
- */
- allocUnsafe(size: number): Buffer;
- /**
- * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_OUT_OF_RANGE` is thrown. A zero-length `Buffer` is created if
- * `size` is 0.
- *
- * The underlying memory for `Buffer` instances created in this way is _not_
- * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `buf.fill(0)` to initialize
- * such `Buffer` instances with zeroes.
- *
- * When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances,
- * allocations under 4 KiB are sliced from a single pre-allocated `Buffer`. This
- * allows applications to avoid the garbage collection overhead of creating many
- * individually allocated `Buffer` instances. This approach improves both
- * performance and memory usage by eliminating the need to track and clean up as
- * many individual `ArrayBuffer` objects.
- *
- * However, in the case where a developer may need to retain a small chunk of
- * memory from a pool for an indeterminate amount of time, it may be appropriate
- * to create an un-pooled `Buffer` instance using `Buffer.allocUnsafeSlow()` and
- * then copying out the relevant bits.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * // Need to keep around a few small chunks of memory.
- * const store = [];
- *
- * socket.on('readable', () => {
- * let data;
- * while (null !== (data = readable.read())) {
- * // Allocate for retained data.
- * const sb = Buffer.allocUnsafeSlow(10);
- *
- * // Copy the data into the new allocation.
- * data.copy(sb, 0, 0, 10);
- *
- * store.push(sb);
- * }
- * });
- * ```
- *
- * A `TypeError` will be thrown if `size` is not a number.
- * @since v5.12.0
- * @param size The desired length of the new `Buffer`.
- */
- allocUnsafeSlow(size: number): Buffer;
- }
- interface Buffer extends Uint8Array {
- // see buffer.d.ts for implementation shared with all TypeScript versions
-
- /**
- * Returns a new `Buffer` that references the same memory as the original, but
- * offset and cropped by the `start` and `end` indices.
- *
- * This method is not compatible with the `Uint8Array.prototype.slice()`,
- * which is a superclass of `Buffer`. To copy the slice, use`Uint8Array.prototype.slice()`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from('buffer');
- *
- * const copiedBuf = Uint8Array.prototype.slice.call(buf);
- * copiedBuf[0]++;
- * console.log(copiedBuf.toString());
- * // Prints: cuffer
- *
- * console.log(buf.toString());
- * // Prints: buffer
- *
- * // With buf.slice(), the original buffer is modified.
- * const notReallyCopiedBuf = buf.slice();
- * notReallyCopiedBuf[0]++;
- * console.log(notReallyCopiedBuf.toString());
- * // Prints: cuffer
- * console.log(buf.toString());
- * // Also prints: cuffer (!)
- * ```
- * @since v0.3.0
- * @deprecated Use `subarray` instead.
- * @param [start=0] Where the new `Buffer` will start.
- * @param [end=buf.length] Where the new `Buffer` will end (not inclusive).
- */
- slice(start?: number, end?: number): Buffer;
- /**
- * Returns a new `Buffer` that references the same memory as the original, but
- * offset and cropped by the `start` and `end` indices.
- *
- * Specifying `end` greater than `buf.length` will return the same result as
- * that of `end` equal to `buf.length`.
- *
- * This method is inherited from [`TypedArray.prototype.subarray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray).
- *
- * Modifying the new `Buffer` slice will modify the memory in the original `Buffer`because the allocated memory of the two objects overlap.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte
- * // from the original `Buffer`.
- *
- * const buf1 = Buffer.allocUnsafe(26);
- *
- * for (let i = 0; i < 26; i++) {
- * // 97 is the decimal ASCII value for 'a'.
- * buf1[i] = i + 97;
- * }
- *
- * const buf2 = buf1.subarray(0, 3);
- *
- * console.log(buf2.toString('ascii', 0, buf2.length));
- * // Prints: abc
- *
- * buf1[0] = 33;
- *
- * console.log(buf2.toString('ascii', 0, buf2.length));
- * // Prints: !bc
- * ```
- *
- * Specifying negative indexes causes the slice to be generated relative to the
- * end of `buf` rather than the beginning.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from('buffer');
- *
- * console.log(buf.subarray(-6, -1).toString());
- * // Prints: buffe
- * // (Equivalent to buf.subarray(0, 5).)
- *
- * console.log(buf.subarray(-6, -2).toString());
- * // Prints: buff
- * // (Equivalent to buf.subarray(0, 4).)
- *
- * console.log(buf.subarray(-5, -2).toString());
- * // Prints: uff
- * // (Equivalent to buf.subarray(1, 4).)
- * ```
- * @since v3.0.0
- * @param [start=0] Where the new `Buffer` will start.
- * @param [end=buf.length] Where the new `Buffer` will end (not inclusive).
- */
- subarray(start?: number, end?: number): Buffer;
- }
- // TODO: remove globals in future version
- /**
- * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports
- * TypeScript versions earlier than 5.7.
- */
- type NonSharedBuffer = Buffer;
- /**
- * @deprecated This is intended for internal use, and will be removed once `@types/node` no longer supports
- * TypeScript versions earlier than 5.7.
- */
- type AllowSharedBuffer = Buffer;
- }
-}
diff --git a/node_modules/@types/node/buffer.d.ts b/node_modules/@types/node/buffer.d.ts
deleted file mode 100644
index 7cff31f..0000000
--- a/node_modules/@types/node/buffer.d.ts
+++ /dev/null
@@ -1,1765 +0,0 @@
-declare module "node:buffer" {
- import { ReadableStream } from "node:stream/web";
- /**
- * This function returns `true` if `input` contains only valid UTF-8-encoded data,
- * including the case in which `input` is empty.
- *
- * Throws if the `input` is a detached array buffer.
- * @since v19.4.0, v18.14.0
- * @param input The input to validate.
- */
- export function isUtf8(input: ArrayBuffer | NodeJS.TypedArray): boolean;
- /**
- * This function returns `true` if `input` contains only valid ASCII-encoded data,
- * including the case in which `input` is empty.
- *
- * Throws if the `input` is a detached array buffer.
- * @since v19.6.0, v18.15.0
- * @param input The input to validate.
- */
- export function isAscii(input: ArrayBuffer | NodeJS.TypedArray): boolean;
- export let INSPECT_MAX_BYTES: number;
- export const kMaxLength: number;
- export const kStringMaxLength: number;
- export const constants: {
- MAX_LENGTH: number;
- MAX_STRING_LENGTH: number;
- };
- export type TranscodeEncoding =
- | "ascii"
- | "utf8"
- | "utf-8"
- | "utf16le"
- | "utf-16le"
- | "ucs2"
- | "ucs-2"
- | "latin1"
- | "binary";
- /**
- * Re-encodes the given `Buffer` or `Uint8Array` instance from one character
- * encoding to another. Returns a new `Buffer` instance.
- *
- * Throws if the `fromEnc` or `toEnc` specify invalid character encodings or if
- * conversion from `fromEnc` to `toEnc` is not permitted.
- *
- * Encodings supported by `buffer.transcode()` are: `'ascii'`, `'utf8'`, `'utf16le'`, `'ucs2'`, `'latin1'`, and `'binary'`.
- *
- * The transcoding process will use substitution characters if a given byte
- * sequence cannot be adequately represented in the target encoding. For instance:
- *
- * ```js
- * import { Buffer, transcode } from 'node:buffer';
- *
- * const newBuf = transcode(Buffer.from('€'), 'utf8', 'ascii');
- * console.log(newBuf.toString('ascii'));
- * // Prints: '?'
- * ```
- *
- * Because the Euro (`€`) sign is not representable in US-ASCII, it is replaced
- * with `?` in the transcoded `Buffer`.
- * @since v7.1.0
- * @param source A `Buffer` or `Uint8Array` instance.
- * @param fromEnc The current encoding.
- * @param toEnc To target encoding.
- */
- export function transcode(
- source: Uint8Array,
- fromEnc: TranscodeEncoding,
- toEnc: TranscodeEncoding,
- ): NonSharedBuffer;
- /**
- * Resolves a `'blob:nodedata:...'` an associated `Blob` object registered using
- * a prior call to `URL.createObjectURL()`.
- * @since v16.7.0
- * @param id A `'blob:nodedata:...` URL string returned by a prior call to `URL.createObjectURL()`.
- */
- export function resolveObjectURL(id: string): Blob | undefined;
- export { type AllowSharedBuffer, Buffer, type NonSharedBuffer };
- /** @deprecated This alias will be removed in a future version. Use the canonical `BlobPropertyBag` instead. */
- // TODO: remove in future major
- export interface BlobOptions extends BlobPropertyBag {}
- /** @deprecated This alias will be removed in a future version. Use the canonical `FilePropertyBag` instead. */
- export interface FileOptions extends FilePropertyBag {}
- export type WithImplicitCoercion =
- | T
- | { valueOf(): T }
- | (T extends string ? { [Symbol.toPrimitive](hint: "string"): T } : never);
- global {
- namespace NodeJS {
- export { BufferEncoding };
- }
- // Buffer class
- type BufferEncoding =
- | "ascii"
- | "utf8"
- | "utf-8"
- | "utf16le"
- | "utf-16le"
- | "ucs2"
- | "ucs-2"
- | "base64"
- | "base64url"
- | "latin1"
- | "binary"
- | "hex";
- /**
- * Raw data is stored in instances of the Buffer class.
- * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized.
- * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'base64url'|'binary'(deprecated)|'hex'
- */
- interface BufferConstructor {
- // see buffer.buffer.d.ts for implementation specific to TypeScript 5.7 and later
- // see ts5.6/buffer.buffer.d.ts for implementation specific to TypeScript 5.6 and earlier
-
- /**
- * Returns `true` if `obj` is a `Buffer`, `false` otherwise.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * Buffer.isBuffer(Buffer.alloc(10)); // true
- * Buffer.isBuffer(Buffer.from('foo')); // true
- * Buffer.isBuffer('a string'); // false
- * Buffer.isBuffer([]); // false
- * Buffer.isBuffer(new Uint8Array(1024)); // false
- * ```
- * @since v0.1.101
- */
- isBuffer(obj: any): obj is Buffer;
- /**
- * Returns `true` if `encoding` is the name of a supported character encoding,
- * or `false` otherwise.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * console.log(Buffer.isEncoding('utf8'));
- * // Prints: true
- *
- * console.log(Buffer.isEncoding('hex'));
- * // Prints: true
- *
- * console.log(Buffer.isEncoding('utf/8'));
- * // Prints: false
- *
- * console.log(Buffer.isEncoding(''));
- * // Prints: false
- * ```
- * @since v0.9.1
- * @param encoding A character encoding name to check.
- */
- isEncoding(encoding: string): encoding is BufferEncoding;
- /**
- * Returns the byte length of a string when encoded using `encoding`.
- * This is not the same as [`String.prototype.length`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length), which does not account
- * for the encoding that is used to convert the string into bytes.
- *
- * For `'base64'`, `'base64url'`, and `'hex'`, this function assumes valid input.
- * For strings that contain non-base64/hex-encoded data (e.g. whitespace), the
- * return value might be greater than the length of a `Buffer` created from the
- * string.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const str = '\u00bd + \u00bc = \u00be';
- *
- * console.log(`${str}: ${str.length} characters, ` +
- * `${Buffer.byteLength(str, 'utf8')} bytes`);
- * // Prints: ½ + ¼ = ¾: 9 characters, 12 bytes
- * ```
- *
- * When `string` is a
- * `Buffer`/[`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView)/[`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/-
- * Reference/Global_Objects/TypedArray)/[`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)/[`SharedArrayBuffer`](https://develop-
- * er.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer), the byte length as reported by `.byteLength`is returned.
- * @since v0.1.90
- * @param string A value to calculate the length of.
- * @param [encoding='utf8'] If `string` is a string, this is its encoding.
- * @return The number of bytes contained within `string`.
- */
- byteLength(
- string: string | NodeJS.ArrayBufferView | ArrayBufferLike,
- encoding?: BufferEncoding,
- ): number;
- /**
- * Compares `buf1` to `buf2`, typically for the purpose of sorting arrays of `Buffer` instances. This is equivalent to calling `buf1.compare(buf2)`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf1 = Buffer.from('1234');
- * const buf2 = Buffer.from('0123');
- * const arr = [buf1, buf2];
- *
- * console.log(arr.sort(Buffer.compare));
- * // Prints: [ , ]
- * // (This result is equal to: [buf2, buf1].)
- * ```
- * @since v0.11.13
- * @return Either `-1`, `0`, or `1`, depending on the result of the comparison. See `compare` for details.
- */
- compare(buf1: Uint8Array, buf2: Uint8Array): -1 | 0 | 1;
- /**
- * This is the size (in bytes) of pre-allocated internal `Buffer` instances used
- * for pooling. This value may be modified.
- * @since v0.11.3
- */
- poolSize: number;
- }
- interface Buffer {
- // see buffer.buffer.d.ts for implementation specific to TypeScript 5.7 and later
- // see ts5.6/buffer.buffer.d.ts for implementation specific to TypeScript 5.6 and earlier
-
- /**
- * Writes `string` to `buf` at `offset` according to the character encoding in`encoding`. The `length` parameter is the number of bytes to write. If `buf` did
- * not contain enough space to fit the entire string, only part of `string` will be
- * written. However, partially encoded characters will not be written.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.alloc(256);
- *
- * const len = buf.write('\u00bd + \u00bc = \u00be', 0);
- *
- * console.log(`${len} bytes: ${buf.toString('utf8', 0, len)}`);
- * // Prints: 12 bytes: ½ + ¼ = ¾
- *
- * const buffer = Buffer.alloc(10);
- *
- * const length = buffer.write('abcd', 8);
- *
- * console.log(`${length} bytes: ${buffer.toString('utf8', 8, 10)}`);
- * // Prints: 2 bytes : ab
- * ```
- * @since v0.1.90
- * @param string String to write to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write `string`.
- * @param [length=buf.length - offset] Maximum number of bytes to write (written bytes will not exceed `buf.length - offset`).
- * @param [encoding='utf8'] The character encoding of `string`.
- * @return Number of bytes written.
- */
- write(string: string, encoding?: BufferEncoding): number;
- write(string: string, offset: number, encoding?: BufferEncoding): number;
- write(string: string, offset: number, length: number, encoding?: BufferEncoding): number;
- /**
- * Decodes `buf` to a string according to the specified character encoding in`encoding`. `start` and `end` may be passed to decode only a subset of `buf`.
- *
- * If `encoding` is `'utf8'` and a byte sequence in the input is not valid UTF-8,
- * then each invalid byte is replaced with the replacement character `U+FFFD`.
- *
- * The maximum length of a string instance (in UTF-16 code units) is available
- * as {@link constants.MAX_STRING_LENGTH}.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf1 = Buffer.allocUnsafe(26);
- *
- * for (let i = 0; i < 26; i++) {
- * // 97 is the decimal ASCII value for 'a'.
- * buf1[i] = i + 97;
- * }
- *
- * console.log(buf1.toString('utf8'));
- * // Prints: abcdefghijklmnopqrstuvwxyz
- * console.log(buf1.toString('utf8', 0, 5));
- * // Prints: abcde
- *
- * const buf2 = Buffer.from('tést');
- *
- * console.log(buf2.toString('hex'));
- * // Prints: 74c3a97374
- * console.log(buf2.toString('utf8', 0, 3));
- * // Prints: té
- * console.log(buf2.toString(undefined, 0, 3));
- * // Prints: té
- * ```
- * @since v0.1.90
- * @param [encoding='utf8'] The character encoding to use.
- * @param [start=0] The byte offset to start decoding at.
- * @param [end=buf.length] The byte offset to stop decoding at (not inclusive).
- */
- toString(encoding?: BufferEncoding, start?: number, end?: number): string;
- /**
- * Returns a JSON representation of `buf`. [`JSON.stringify()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) implicitly calls
- * this function when stringifying a `Buffer` instance.
- *
- * `Buffer.from()` accepts objects in the format returned from this method.
- * In particular, `Buffer.from(buf.toJSON())` works like `Buffer.from(buf)`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
- * const json = JSON.stringify(buf);
- *
- * console.log(json);
- * // Prints: {"type":"Buffer","data":[1,2,3,4,5]}
- *
- * const copy = JSON.parse(json, (key, value) => {
- * return value && value.type === 'Buffer' ?
- * Buffer.from(value) :
- * value;
- * });
- *
- * console.log(copy);
- * // Prints:
- * ```
- * @since v0.9.2
- */
- toJSON(): {
- type: "Buffer";
- data: number[];
- };
- /**
- * Returns `true` if both `buf` and `otherBuffer` have exactly the same bytes,`false` otherwise. Equivalent to `buf.compare(otherBuffer) === 0`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf1 = Buffer.from('ABC');
- * const buf2 = Buffer.from('414243', 'hex');
- * const buf3 = Buffer.from('ABCD');
- *
- * console.log(buf1.equals(buf2));
- * // Prints: true
- * console.log(buf1.equals(buf3));
- * // Prints: false
- * ```
- * @since v0.11.13
- * @param otherBuffer A `Buffer` or {@link Uint8Array} with which to compare `buf`.
- */
- equals(otherBuffer: Uint8Array): boolean;
- /**
- * Compares `buf` with `target` and returns a number indicating whether `buf`comes before, after, or is the same as `target` in sort order.
- * Comparison is based on the actual sequence of bytes in each `Buffer`.
- *
- * * `0` is returned if `target` is the same as `buf`
- * * `1` is returned if `target` should come _before_`buf` when sorted.
- * * `-1` is returned if `target` should come _after_`buf` when sorted.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf1 = Buffer.from('ABC');
- * const buf2 = Buffer.from('BCD');
- * const buf3 = Buffer.from('ABCD');
- *
- * console.log(buf1.compare(buf1));
- * // Prints: 0
- * console.log(buf1.compare(buf2));
- * // Prints: -1
- * console.log(buf1.compare(buf3));
- * // Prints: -1
- * console.log(buf2.compare(buf1));
- * // Prints: 1
- * console.log(buf2.compare(buf3));
- * // Prints: 1
- * console.log([buf1, buf2, buf3].sort(Buffer.compare));
- * // Prints: [ , , ]
- * // (This result is equal to: [buf1, buf3, buf2].)
- * ```
- *
- * The optional `targetStart`, `targetEnd`, `sourceStart`, and `sourceEnd` arguments can be used to limit the comparison to specific ranges within `target` and `buf` respectively.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf1 = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]);
- * const buf2 = Buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]);
- *
- * console.log(buf1.compare(buf2, 5, 9, 0, 4));
- * // Prints: 0
- * console.log(buf1.compare(buf2, 0, 6, 4));
- * // Prints: -1
- * console.log(buf1.compare(buf2, 5, 6, 5));
- * // Prints: 1
- * ```
- *
- * `ERR_OUT_OF_RANGE` is thrown if `targetStart < 0`, `sourceStart < 0`, `targetEnd > target.byteLength`, or `sourceEnd > source.byteLength`.
- * @since v0.11.13
- * @param target A `Buffer` or {@link Uint8Array} with which to compare `buf`.
- * @param [targetStart=0] The offset within `target` at which to begin comparison.
- * @param [targetEnd=target.length] The offset within `target` at which to end comparison (not inclusive).
- * @param [sourceStart=0] The offset within `buf` at which to begin comparison.
- * @param [sourceEnd=buf.length] The offset within `buf` at which to end comparison (not inclusive).
- */
- compare(
- target: Uint8Array,
- targetStart?: number,
- targetEnd?: number,
- sourceStart?: number,
- sourceEnd?: number,
- ): -1 | 0 | 1;
- /**
- * Copies data from a region of `buf` to a region in `target`, even if the `target`memory region overlaps with `buf`.
- *
- * [`TypedArray.prototype.set()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set) performs the same operation, and is available
- * for all TypedArrays, including Node.js `Buffer`s, although it takes
- * different function arguments.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * // Create two `Buffer` instances.
- * const buf1 = Buffer.allocUnsafe(26);
- * const buf2 = Buffer.allocUnsafe(26).fill('!');
- *
- * for (let i = 0; i < 26; i++) {
- * // 97 is the decimal ASCII value for 'a'.
- * buf1[i] = i + 97;
- * }
- *
- * // Copy `buf1` bytes 16 through 19 into `buf2` starting at byte 8 of `buf2`.
- * buf1.copy(buf2, 8, 16, 20);
- * // This is equivalent to:
- * // buf2.set(buf1.subarray(16, 20), 8);
- *
- * console.log(buf2.toString('ascii', 0, 25));
- * // Prints: !!!!!!!!qrst!!!!!!!!!!!!!
- * ```
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * // Create a `Buffer` and copy data from one region to an overlapping region
- * // within the same `Buffer`.
- *
- * const buf = Buffer.allocUnsafe(26);
- *
- * for (let i = 0; i < 26; i++) {
- * // 97 is the decimal ASCII value for 'a'.
- * buf[i] = i + 97;
- * }
- *
- * buf.copy(buf, 0, 4, 10);
- *
- * console.log(buf.toString());
- * // Prints: efghijghijklmnopqrstuvwxyz
- * ```
- * @since v0.1.90
- * @param target A `Buffer` or {@link Uint8Array} to copy into.
- * @param [targetStart=0] The offset within `target` at which to begin writing.
- * @param [sourceStart=0] The offset within `buf` from which to begin copying.
- * @param [sourceEnd=buf.length] The offset within `buf` at which to stop copying (not inclusive).
- * @return The number of bytes copied.
- */
- copy(target: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian.
- *
- * `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeBigInt64BE(0x0102030405060708n, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v12.0.0, v10.20.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeBigInt64BE(value: bigint, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian.
- *
- * `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeBigInt64LE(0x0102030405060708n, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v12.0.0, v10.20.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeBigInt64LE(value: bigint, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian.
- *
- * This function is also available under the `writeBigUint64BE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeBigUInt64BE(0xdecafafecacefaden, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v12.0.0, v10.20.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeBigUInt64BE(value: bigint, offset?: number): number;
- /**
- * @alias Buffer.writeBigUInt64BE
- * @since v14.10.0, v12.19.0
- */
- writeBigUint64BE(value: bigint, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeBigUInt64LE(0xdecafafecacefaden, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * This function is also available under the `writeBigUint64LE` alias.
- * @since v12.0.0, v10.20.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeBigUInt64LE(value: bigint, offset?: number): number;
- /**
- * @alias Buffer.writeBigUInt64LE
- * @since v14.10.0, v12.19.0
- */
- writeBigUint64LE(value: bigint, offset?: number): number;
- /**
- * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as little-endian. Supports up to 48 bits of accuracy. Behavior is undefined
- * when `value` is anything other than an unsigned integer.
- *
- * This function is also available under the `writeUintLE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(6);
- *
- * buf.writeUIntLE(0x1234567890ab, 0, 6);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.
- * @return `offset` plus the number of bytes written.
- */
- writeUIntLE(value: number, offset: number, byteLength: number): number;
- /**
- * @alias Buffer.writeUIntLE
- * @since v14.9.0, v12.19.0
- */
- writeUintLE(value: number, offset: number, byteLength: number): number;
- /**
- * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as big-endian. Supports up to 48 bits of accuracy. Behavior is undefined
- * when `value` is anything other than an unsigned integer.
- *
- * This function is also available under the `writeUintBE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(6);
- *
- * buf.writeUIntBE(0x1234567890ab, 0, 6);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.
- * @return `offset` plus the number of bytes written.
- */
- writeUIntBE(value: number, offset: number, byteLength: number): number;
- /**
- * @alias Buffer.writeUIntBE
- * @since v14.9.0, v12.19.0
- */
- writeUintBE(value: number, offset: number, byteLength: number): number;
- /**
- * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as little-endian. Supports up to 48 bits of accuracy. Behavior is undefined
- * when `value` is anything other than a signed integer.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(6);
- *
- * buf.writeIntLE(0x1234567890ab, 0, 6);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.
- * @return `offset` plus the number of bytes written.
- */
- writeIntLE(value: number, offset: number, byteLength: number): number;
- /**
- * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as big-endian. Supports up to 48 bits of accuracy. Behavior is undefined when`value` is anything other than a
- * signed integer.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(6);
- *
- * buf.writeIntBE(0x1234567890ab, 0, 6);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.
- * @return `offset` plus the number of bytes written.
- */
- writeIntBE(value: number, offset: number, byteLength: number): number;
- /**
- * Reads an unsigned, big-endian 64-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readBigUint64BE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]);
- *
- * console.log(buf.readBigUInt64BE(0));
- * // Prints: 4294967295n
- * ```
- * @since v12.0.0, v10.20.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.
- */
- readBigUInt64BE(offset?: number): bigint;
- /**
- * @alias Buffer.readBigUInt64BE
- * @since v14.10.0, v12.19.0
- */
- readBigUint64BE(offset?: number): bigint;
- /**
- * Reads an unsigned, little-endian 64-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readBigUint64LE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]);
- *
- * console.log(buf.readBigUInt64LE(0));
- * // Prints: 18446744069414584320n
- * ```
- * @since v12.0.0, v10.20.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.
- */
- readBigUInt64LE(offset?: number): bigint;
- /**
- * @alias Buffer.readBigUInt64LE
- * @since v14.10.0, v12.19.0
- */
- readBigUint64LE(offset?: number): bigint;
- /**
- * Reads a signed, big-endian 64-bit integer from `buf` at the specified `offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed
- * values.
- * @since v12.0.0, v10.20.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.
- */
- readBigInt64BE(offset?: number): bigint;
- /**
- * Reads a signed, little-endian 64-bit integer from `buf` at the specified`offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed
- * values.
- * @since v12.0.0, v10.20.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.
- */
- readBigInt64LE(offset?: number): bigint;
- /**
- * Reads `byteLength` number of bytes from `buf` at the specified `offset` and interprets the result as an unsigned, little-endian integer supporting
- * up to 48 bits of accuracy.
- *
- * This function is also available under the `readUintLE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
- *
- * console.log(buf.readUIntLE(0, 6).toString(16));
- * // Prints: ab9078563412
- * ```
- * @since v0.11.15
- * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.
- */
- readUIntLE(offset: number, byteLength: number): number;
- /**
- * @alias Buffer.readUIntLE
- * @since v14.9.0, v12.19.0
- */
- readUintLE(offset: number, byteLength: number): number;
- /**
- * Reads `byteLength` number of bytes from `buf` at the specified `offset` and interprets the result as an unsigned big-endian integer supporting
- * up to 48 bits of accuracy.
- *
- * This function is also available under the `readUintBE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
- *
- * console.log(buf.readUIntBE(0, 6).toString(16));
- * // Prints: 1234567890ab
- * console.log(buf.readUIntBE(1, 6).toString(16));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.11.15
- * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.
- */
- readUIntBE(offset: number, byteLength: number): number;
- /**
- * @alias Buffer.readUIntBE
- * @since v14.9.0, v12.19.0
- */
- readUintBE(offset: number, byteLength: number): number;
- /**
- * Reads `byteLength` number of bytes from `buf` at the specified `offset` and interprets the result as a little-endian, two's complement signed value
- * supporting up to 48 bits of accuracy.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
- *
- * console.log(buf.readIntLE(0, 6).toString(16));
- * // Prints: -546f87a9cbee
- * ```
- * @since v0.11.15
- * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.
- */
- readIntLE(offset: number, byteLength: number): number;
- /**
- * Reads `byteLength` number of bytes from `buf` at the specified `offset` and interprets the result as a big-endian, two's complement signed value
- * supporting up to 48 bits of accuracy.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
- *
- * console.log(buf.readIntBE(0, 6).toString(16));
- * // Prints: 1234567890ab
- * console.log(buf.readIntBE(1, 6).toString(16));
- * // Throws ERR_OUT_OF_RANGE.
- * console.log(buf.readIntBE(1, 0).toString(16));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.11.15
- * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.
- */
- readIntBE(offset: number, byteLength: number): number;
- /**
- * Reads an unsigned 8-bit integer from `buf` at the specified `offset`.
- *
- * This function is also available under the `readUint8` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([1, -2]);
- *
- * console.log(buf.readUInt8(0));
- * // Prints: 1
- * console.log(buf.readUInt8(1));
- * // Prints: 254
- * console.log(buf.readUInt8(2));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`.
- */
- readUInt8(offset?: number): number;
- /**
- * @alias Buffer.readUInt8
- * @since v14.9.0, v12.19.0
- */
- readUint8(offset?: number): number;
- /**
- * Reads an unsigned, little-endian 16-bit integer from `buf` at the specified `offset`.
- *
- * This function is also available under the `readUint16LE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56]);
- *
- * console.log(buf.readUInt16LE(0).toString(16));
- * // Prints: 3412
- * console.log(buf.readUInt16LE(1).toString(16));
- * // Prints: 5634
- * console.log(buf.readUInt16LE(2).toString(16));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.
- */
- readUInt16LE(offset?: number): number;
- /**
- * @alias Buffer.readUInt16LE
- * @since v14.9.0, v12.19.0
- */
- readUint16LE(offset?: number): number;
- /**
- * Reads an unsigned, big-endian 16-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readUint16BE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56]);
- *
- * console.log(buf.readUInt16BE(0).toString(16));
- * // Prints: 1234
- * console.log(buf.readUInt16BE(1).toString(16));
- * // Prints: 3456
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.
- */
- readUInt16BE(offset?: number): number;
- /**
- * @alias Buffer.readUInt16BE
- * @since v14.9.0, v12.19.0
- */
- readUint16BE(offset?: number): number;
- /**
- * Reads an unsigned, little-endian 32-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readUint32LE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]);
- *
- * console.log(buf.readUInt32LE(0).toString(16));
- * // Prints: 78563412
- * console.log(buf.readUInt32LE(1).toString(16));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readUInt32LE(offset?: number): number;
- /**
- * @alias Buffer.readUInt32LE
- * @since v14.9.0, v12.19.0
- */
- readUint32LE(offset?: number): number;
- /**
- * Reads an unsigned, big-endian 32-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readUint32BE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]);
- *
- * console.log(buf.readUInt32BE(0).toString(16));
- * // Prints: 12345678
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readUInt32BE(offset?: number): number;
- /**
- * @alias Buffer.readUInt32BE
- * @since v14.9.0, v12.19.0
- */
- readUint32BE(offset?: number): number;
- /**
- * Reads a signed 8-bit integer from `buf` at the specified `offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed values.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([-1, 5]);
- *
- * console.log(buf.readInt8(0));
- * // Prints: -1
- * console.log(buf.readInt8(1));
- * // Prints: 5
- * console.log(buf.readInt8(2));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`.
- */
- readInt8(offset?: number): number;
- /**
- * Reads a signed, little-endian 16-bit integer from `buf` at the specified`offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed values.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0, 5]);
- *
- * console.log(buf.readInt16LE(0));
- * // Prints: 1280
- * console.log(buf.readInt16LE(1));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.
- */
- readInt16LE(offset?: number): number;
- /**
- * Reads a signed, big-endian 16-bit integer from `buf` at the specified `offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed values.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0, 5]);
- *
- * console.log(buf.readInt16BE(0));
- * // Prints: 5
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.
- */
- readInt16BE(offset?: number): number;
- /**
- * Reads a signed, little-endian 32-bit integer from `buf` at the specified`offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed values.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0, 0, 0, 5]);
- *
- * console.log(buf.readInt32LE(0));
- * // Prints: 83886080
- * console.log(buf.readInt32LE(1));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readInt32LE(offset?: number): number;
- /**
- * Reads a signed, big-endian 32-bit integer from `buf` at the specified `offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed values.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([0, 0, 0, 5]);
- *
- * console.log(buf.readInt32BE(0));
- * // Prints: 5
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readInt32BE(offset?: number): number;
- /**
- * Reads a 32-bit, little-endian float from `buf` at the specified `offset`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([1, 2, 3, 4]);
- *
- * console.log(buf.readFloatLE(0));
- * // Prints: 1.539989614439558e-36
- * console.log(buf.readFloatLE(1));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.11.15
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readFloatLE(offset?: number): number;
- /**
- * Reads a 32-bit, big-endian float from `buf` at the specified `offset`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([1, 2, 3, 4]);
- *
- * console.log(buf.readFloatBE(0));
- * // Prints: 2.387939260590663e-38
- * ```
- * @since v0.11.15
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readFloatBE(offset?: number): number;
- /**
- * Reads a 64-bit, little-endian double from `buf` at the specified `offset`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
- *
- * console.log(buf.readDoubleLE(0));
- * // Prints: 5.447603722011605e-270
- * console.log(buf.readDoubleLE(1));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.11.15
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`.
- */
- readDoubleLE(offset?: number): number;
- /**
- * Reads a 64-bit, big-endian double from `buf` at the specified `offset`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
- *
- * console.log(buf.readDoubleBE(0));
- * // Prints: 8.20788039913184e-304
- * ```
- * @since v0.11.15
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`.
- */
- readDoubleBE(offset?: number): number;
- reverse(): this;
- /**
- * Interprets `buf` as an array of unsigned 16-bit integers and swaps the
- * byte order _in-place_. Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 2.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
- *
- * console.log(buf1);
- * // Prints:
- *
- * buf1.swap16();
- *
- * console.log(buf1);
- * // Prints:
- *
- * const buf2 = Buffer.from([0x1, 0x2, 0x3]);
- *
- * buf2.swap16();
- * // Throws ERR_INVALID_BUFFER_SIZE.
- * ```
- *
- * One convenient use of `buf.swap16()` is to perform a fast in-place conversion
- * between UTF-16 little-endian and UTF-16 big-endian:
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from('This is little-endian UTF-16', 'utf16le');
- * buf.swap16(); // Convert to big-endian UTF-16 text.
- * ```
- * @since v5.10.0
- * @return A reference to `buf`.
- */
- swap16(): this;
- /**
- * Interprets `buf` as an array of unsigned 32-bit integers and swaps the
- * byte order _in-place_. Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 4.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
- *
- * console.log(buf1);
- * // Prints:
- *
- * buf1.swap32();
- *
- * console.log(buf1);
- * // Prints:
- *
- * const buf2 = Buffer.from([0x1, 0x2, 0x3]);
- *
- * buf2.swap32();
- * // Throws ERR_INVALID_BUFFER_SIZE.
- * ```
- * @since v5.10.0
- * @return A reference to `buf`.
- */
- swap32(): this;
- /**
- * Interprets `buf` as an array of 64-bit numbers and swaps byte order _in-place_.
- * Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 8.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
- *
- * console.log(buf1);
- * // Prints:
- *
- * buf1.swap64();
- *
- * console.log(buf1);
- * // Prints:
- *
- * const buf2 = Buffer.from([0x1, 0x2, 0x3]);
- *
- * buf2.swap64();
- * // Throws ERR_INVALID_BUFFER_SIZE.
- * ```
- * @since v6.3.0
- * @return A reference to `buf`.
- */
- swap64(): this;
- /**
- * Writes `value` to `buf` at the specified `offset`. `value` must be a
- * valid unsigned 8-bit integer. Behavior is undefined when `value` is anything
- * other than an unsigned 8-bit integer.
- *
- * This function is also available under the `writeUint8` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeUInt8(0x3, 0);
- * buf.writeUInt8(0x4, 1);
- * buf.writeUInt8(0x23, 2);
- * buf.writeUInt8(0x42, 3);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`.
- * @return `offset` plus the number of bytes written.
- */
- writeUInt8(value: number, offset?: number): number;
- /**
- * @alias Buffer.writeUInt8
- * @since v14.9.0, v12.19.0
- */
- writeUint8(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. The `value` must be a valid unsigned 16-bit integer. Behavior is undefined when `value` is
- * anything other than an unsigned 16-bit integer.
- *
- * This function is also available under the `writeUint16LE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeUInt16LE(0xdead, 0);
- * buf.writeUInt16LE(0xbeef, 2);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.
- * @return `offset` plus the number of bytes written.
- */
- writeUInt16LE(value: number, offset?: number): number;
- /**
- * @alias Buffer.writeUInt16LE
- * @since v14.9.0, v12.19.0
- */
- writeUint16LE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. The `value` must be a valid unsigned 16-bit integer. Behavior is undefined when `value`is anything other than an
- * unsigned 16-bit integer.
- *
- * This function is also available under the `writeUint16BE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeUInt16BE(0xdead, 0);
- * buf.writeUInt16BE(0xbeef, 2);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.
- * @return `offset` plus the number of bytes written.
- */
- writeUInt16BE(value: number, offset?: number): number;
- /**
- * @alias Buffer.writeUInt16BE
- * @since v14.9.0, v12.19.0
- */
- writeUint16BE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. The `value` must be a valid unsigned 32-bit integer. Behavior is undefined when `value` is
- * anything other than an unsigned 32-bit integer.
- *
- * This function is also available under the `writeUint32LE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeUInt32LE(0xfeedface, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeUInt32LE(value: number, offset?: number): number;
- /**
- * @alias Buffer.writeUInt32LE
- * @since v14.9.0, v12.19.0
- */
- writeUint32LE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. The `value` must be a valid unsigned 32-bit integer. Behavior is undefined when `value`is anything other than an
- * unsigned 32-bit integer.
- *
- * This function is also available under the `writeUint32BE` alias.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeUInt32BE(0xfeedface, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeUInt32BE(value: number, offset?: number): number;
- /**
- * @alias Buffer.writeUInt32BE
- * @since v14.9.0, v12.19.0
- */
- writeUint32BE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset`. `value` must be a valid
- * signed 8-bit integer. Behavior is undefined when `value` is anything other than
- * a signed 8-bit integer.
- *
- * `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(2);
- *
- * buf.writeInt8(2, 0);
- * buf.writeInt8(-2, 1);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`.
- * @return `offset` plus the number of bytes written.
- */
- writeInt8(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. The `value` must be a valid signed 16-bit integer. Behavior is undefined when `value` is
- * anything other than a signed 16-bit integer.
- *
- * The `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(2);
- *
- * buf.writeInt16LE(0x0304, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.
- * @return `offset` plus the number of bytes written.
- */
- writeInt16LE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. The `value` must be a valid signed 16-bit integer. Behavior is undefined when `value` is
- * anything other than a signed 16-bit integer.
- *
- * The `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(2);
- *
- * buf.writeInt16BE(0x0102, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.
- * @return `offset` plus the number of bytes written.
- */
- writeInt16BE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. The `value` must be a valid signed 32-bit integer. Behavior is undefined when `value` is
- * anything other than a signed 32-bit integer.
- *
- * The `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeInt32LE(0x05060708, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeInt32LE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. The `value` must be a valid signed 32-bit integer. Behavior is undefined when `value` is
- * anything other than a signed 32-bit integer.
- *
- * The `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeInt32BE(0x01020304, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeInt32BE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. Behavior is
- * undefined when `value` is anything other than a JavaScript number.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeFloatLE(0xcafebabe, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeFloatLE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. Behavior is
- * undefined when `value` is anything other than a JavaScript number.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeFloatBE(0xcafebabe, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeFloatBE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. The `value` must be a JavaScript number. Behavior is undefined when `value` is anything
- * other than a JavaScript number.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeDoubleLE(123.456, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeDoubleLE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. The `value` must be a JavaScript number. Behavior is undefined when `value` is anything
- * other than a JavaScript number.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeDoubleBE(123.456, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeDoubleBE(value: number, offset?: number): number;
- /**
- * Fills `buf` with the specified `value`. If the `offset` and `end` are not given,
- * the entire `buf` will be filled:
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * // Fill a `Buffer` with the ASCII character 'h'.
- *
- * const b = Buffer.allocUnsafe(50).fill('h');
- *
- * console.log(b.toString());
- * // Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
- *
- * // Fill a buffer with empty string
- * const c = Buffer.allocUnsafe(5).fill('');
- *
- * console.log(c.fill(''));
- * // Prints:
- * ```
- *
- * `value` is coerced to a `uint32` value if it is not a string, `Buffer`, or
- * integer. If the resulting integer is greater than `255` (decimal), `buf` will be
- * filled with `value & 255`.
- *
- * If the final write of a `fill()` operation falls on a multi-byte character,
- * then only the bytes of that character that fit into `buf` are written:
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * // Fill a `Buffer` with character that takes up two bytes in UTF-8.
- *
- * console.log(Buffer.allocUnsafe(5).fill('\u0222'));
- * // Prints:
- * ```
- *
- * If `value` contains invalid characters, it is truncated; if no valid
- * fill data remains, an exception is thrown:
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.allocUnsafe(5);
- *
- * console.log(buf.fill('a'));
- * // Prints:
- * console.log(buf.fill('aazz', 'hex'));
- * // Prints:
- * console.log(buf.fill('zz', 'hex'));
- * // Throws an exception.
- * ```
- * @since v0.5.0
- * @param value The value with which to fill `buf`. Empty value (string, Uint8Array, Buffer) is coerced to `0`.
- * @param [offset=0] Number of bytes to skip before starting to fill `buf`.
- * @param [end=buf.length] Where to stop filling `buf` (not inclusive).
- * @param [encoding='utf8'] The encoding for `value` if `value` is a string.
- * @return A reference to `buf`.
- */
- fill(value: string | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): this;
- fill(value: string | Uint8Array | number, offset: number, encoding: BufferEncoding): this;
- fill(value: string | Uint8Array | number, encoding: BufferEncoding): this;
- /**
- * If `value` is:
- *
- * * a string, `value` is interpreted according to the character encoding in `encoding`.
- * * a `Buffer` or [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), `value` will be used in its entirety.
- * To compare a partial `Buffer`, use `buf.subarray`.
- * * a number, `value` will be interpreted as an unsigned 8-bit integer
- * value between `0` and `255`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from('this is a buffer');
- *
- * console.log(buf.indexOf('this'));
- * // Prints: 0
- * console.log(buf.indexOf('is'));
- * // Prints: 2
- * console.log(buf.indexOf(Buffer.from('a buffer')));
- * // Prints: 8
- * console.log(buf.indexOf(97));
- * // Prints: 8 (97 is the decimal ASCII value for 'a')
- * console.log(buf.indexOf(Buffer.from('a buffer example')));
- * // Prints: -1
- * console.log(buf.indexOf(Buffer.from('a buffer example').slice(0, 8)));
- * // Prints: 8
- *
- * const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le');
- *
- * console.log(utf16Buffer.indexOf('\u03a3', 0, 'utf16le'));
- * // Prints: 4
- * console.log(utf16Buffer.indexOf('\u03a3', -4, 'utf16le'));
- * // Prints: 6
- * ```
- *
- * If `value` is not a string, number, or `Buffer`, this method will throw a `TypeError`. If `value` is a number, it will be coerced to a valid byte value,
- * an integer between 0 and 255.
- *
- * If `byteOffset` is not a number, it will be coerced to a number. If the result
- * of coercion is `NaN` or `0`, then the entire buffer will be searched. This
- * behavior matches [`String.prototype.indexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf).
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const b = Buffer.from('abcdef');
- *
- * // Passing a value that's a number, but not a valid byte.
- * // Prints: 2, equivalent to searching for 99 or 'c'.
- * console.log(b.indexOf(99.9));
- * console.log(b.indexOf(256 + 99));
- *
- * // Passing a byteOffset that coerces to NaN or 0.
- * // Prints: 1, searching the whole buffer.
- * console.log(b.indexOf('b', undefined));
- * console.log(b.indexOf('b', {}));
- * console.log(b.indexOf('b', null));
- * console.log(b.indexOf('b', []));
- * ```
- *
- * If `value` is an empty string or empty `Buffer` and `byteOffset` is less
- * than `buf.length`, `byteOffset` will be returned. If `value` is empty and`byteOffset` is at least `buf.length`, `buf.length` will be returned.
- * @since v1.5.0
- * @param value What to search for.
- * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.
- * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`.
- * @return The index of the first occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`.
- */
- indexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number;
- indexOf(value: string | number | Uint8Array, encoding: BufferEncoding): number;
- /**
- * Identical to `buf.indexOf()`, except the last occurrence of `value` is found
- * rather than the first occurrence.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from('this buffer is a buffer');
- *
- * console.log(buf.lastIndexOf('this'));
- * // Prints: 0
- * console.log(buf.lastIndexOf('buffer'));
- * // Prints: 17
- * console.log(buf.lastIndexOf(Buffer.from('buffer')));
- * // Prints: 17
- * console.log(buf.lastIndexOf(97));
- * // Prints: 15 (97 is the decimal ASCII value for 'a')
- * console.log(buf.lastIndexOf(Buffer.from('yolo')));
- * // Prints: -1
- * console.log(buf.lastIndexOf('buffer', 5));
- * // Prints: 5
- * console.log(buf.lastIndexOf('buffer', 4));
- * // Prints: -1
- *
- * const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le');
- *
- * console.log(utf16Buffer.lastIndexOf('\u03a3', undefined, 'utf16le'));
- * // Prints: 6
- * console.log(utf16Buffer.lastIndexOf('\u03a3', -5, 'utf16le'));
- * // Prints: 4
- * ```
- *
- * If `value` is not a string, number, or `Buffer`, this method will throw a `TypeError`. If `value` is a number, it will be coerced to a valid byte value,
- * an integer between 0 and 255.
- *
- * If `byteOffset` is not a number, it will be coerced to a number. Any arguments
- * that coerce to `NaN`, like `{}` or `undefined`, will search the whole buffer.
- * This behavior matches [`String.prototype.lastIndexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf).
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const b = Buffer.from('abcdef');
- *
- * // Passing a value that's a number, but not a valid byte.
- * // Prints: 2, equivalent to searching for 99 or 'c'.
- * console.log(b.lastIndexOf(99.9));
- * console.log(b.lastIndexOf(256 + 99));
- *
- * // Passing a byteOffset that coerces to NaN.
- * // Prints: 1, searching the whole buffer.
- * console.log(b.lastIndexOf('b', undefined));
- * console.log(b.lastIndexOf('b', {}));
- *
- * // Passing a byteOffset that coerces to 0.
- * // Prints: -1, equivalent to passing 0.
- * console.log(b.lastIndexOf('b', null));
- * console.log(b.lastIndexOf('b', []));
- * ```
- *
- * If `value` is an empty string or empty `Buffer`, `byteOffset` will be returned.
- * @since v6.0.0
- * @param value What to search for.
- * @param [byteOffset=buf.length - 1] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.
- * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`.
- * @return The index of the last occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`.
- */
- lastIndexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number;
- lastIndexOf(value: string | number | Uint8Array, encoding: BufferEncoding): number;
- /**
- * Equivalent to `buf.indexOf() !== -1`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- *
- * const buf = Buffer.from('this is a buffer');
- *
- * console.log(buf.includes('this'));
- * // Prints: true
- * console.log(buf.includes('is'));
- * // Prints: true
- * console.log(buf.includes(Buffer.from('a buffer')));
- * // Prints: true
- * console.log(buf.includes(97));
- * // Prints: true (97 is the decimal ASCII value for 'a')
- * console.log(buf.includes(Buffer.from('a buffer example')));
- * // Prints: false
- * console.log(buf.includes(Buffer.from('a buffer example').slice(0, 8)));
- * // Prints: true
- * console.log(buf.includes('this', 4));
- * // Prints: false
- * ```
- * @since v5.3.0
- * @param value What to search for.
- * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.
- * @param [encoding='utf8'] If `value` is a string, this is its encoding.
- * @return `true` if `value` was found in `buf`, `false` otherwise.
- */
- includes(value: string | number | Buffer, byteOffset?: number, encoding?: BufferEncoding): boolean;
- includes(value: string | number | Buffer, encoding: BufferEncoding): boolean;
- }
- var Buffer: BufferConstructor;
- }
- // #region web types
- export type BlobPart = NodeJS.BufferSource | Blob | string;
- export interface BlobPropertyBag {
- endings?: "native" | "transparent";
- type?: string;
- }
- export interface FilePropertyBag extends BlobPropertyBag {
- lastModified?: number;
- }
- export interface Blob {
- readonly size: number;
- readonly type: string;
- arrayBuffer(): Promise;
- bytes(): Promise;
- slice(start?: number, end?: number, contentType?: string): Blob;
- stream(): ReadableStream;
- text(): Promise;
- }
- export var Blob: {
- prototype: Blob;
- new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
- };
- export interface File extends Blob {
- readonly lastModified: number;
- readonly name: string;
- readonly webkitRelativePath: string;
- }
- export var File: {
- prototype: File;
- new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
- };
- export import atob = globalThis.atob;
- export import btoa = globalThis.btoa;
- // #endregion
-}
-declare module "buffer" {
- export * from "node:buffer";
-}
diff --git a/node_modules/@types/node/child_process.d.ts b/node_modules/@types/node/child_process.d.ts
deleted file mode 100644
index e3964ab..0000000
--- a/node_modules/@types/node/child_process.d.ts
+++ /dev/null
@@ -1,1366 +0,0 @@
-declare module "node:child_process" {
- import { NonSharedBuffer } from "node:buffer";
- import * as dgram from "node:dgram";
- import { Abortable, EventEmitter, InternalEventEmitter } from "node:events";
- import * as net from "node:net";
- import { Readable, Stream, Writable } from "node:stream";
- import { URL } from "node:url";
- type Serializable = string | object | number | boolean | bigint;
- type SendHandle = net.Socket | net.Server | dgram.Socket | undefined;
- interface ChildProcessEventMap {
- "close": [code: number | null, signal: NodeJS.Signals | null];
- "disconnect": [];
- "error": [err: Error];
- "exit": [code: number | null, signal: NodeJS.Signals | null];
- "message": [message: Serializable, sendHandle: SendHandle];
- "spawn": [];
- }
- /**
- * Instances of the `ChildProcess` represent spawned child processes.
- *
- * Instances of `ChildProcess` are not intended to be created directly. Rather,
- * use the {@link spawn}, {@link exec},{@link execFile}, or {@link fork} methods to create
- * instances of `ChildProcess`.
- * @since v2.2.0
- */
- class ChildProcess implements EventEmitter {
- /**
- * A `Writable Stream` that represents the child process's `stdin`.
- *
- * If a child process waits to read all of its input, the child will not continue
- * until this stream has been closed via `end()`.
- *
- * If the child was spawned with `stdio[0]` set to anything other than `'pipe'`,
- * then this will be `null`.
- *
- * `subprocess.stdin` is an alias for `subprocess.stdio[0]`. Both properties will
- * refer to the same value.
- *
- * The `subprocess.stdin` property can be `null` or `undefined` if the child process could not be successfully spawned.
- * @since v0.1.90
- */
- stdin: Writable | null;
- /**
- * A `Readable Stream` that represents the child process's `stdout`.
- *
- * If the child was spawned with `stdio[1]` set to anything other than `'pipe'`,
- * then this will be `null`.
- *
- * `subprocess.stdout` is an alias for `subprocess.stdio[1]`. Both properties will
- * refer to the same value.
- *
- * ```js
- * import { spawn } from 'node:child_process';
- *
- * const subprocess = spawn('ls');
- *
- * subprocess.stdout.on('data', (data) => {
- * console.log(`Received chunk ${data}`);
- * });
- * ```
- *
- * The `subprocess.stdout` property can be `null` or `undefined` if the child process could not be successfully spawned.
- * @since v0.1.90
- */
- stdout: Readable | null;
- /**
- * A `Readable Stream` that represents the child process's `stderr`.
- *
- * If the child was spawned with `stdio[2]` set to anything other than `'pipe'`,
- * then this will be `null`.
- *
- * `subprocess.stderr` is an alias for `subprocess.stdio[2]`. Both properties will
- * refer to the same value.
- *
- * The `subprocess.stderr` property can be `null` or `undefined` if the child process could not be successfully spawned.
- * @since v0.1.90
- */
- stderr: Readable | null;
- /**
- * The `subprocess.channel` property is a reference to the child's IPC channel. If
- * no IPC channel exists, this property is `undefined`.
- * @since v7.1.0
- */
- readonly channel?: Control | null;
- /**
- * A sparse array of pipes to the child process, corresponding with positions in
- * the `stdio` option passed to {@link spawn} that have been set
- * to the value `'pipe'`. `subprocess.stdio[0]`, `subprocess.stdio[1]`, and `subprocess.stdio[2]` are also available as `subprocess.stdin`, `subprocess.stdout`, and `subprocess.stderr`,
- * respectively.
- *
- * In the following example, only the child's fd `1` (stdout) is configured as a
- * pipe, so only the parent's `subprocess.stdio[1]` is a stream, all other values
- * in the array are `null`.
- *
- * ```js
- * import assert from 'node:assert';
- * import fs from 'node:fs';
- * import child_process from 'node:child_process';
- *
- * const subprocess = child_process.spawn('ls', {
- * stdio: [
- * 0, // Use parent's stdin for child.
- * 'pipe', // Pipe child's stdout to parent.
- * fs.openSync('err.out', 'w'), // Direct child's stderr to a file.
- * ],
- * });
- *
- * assert.strictEqual(subprocess.stdio[0], null);
- * assert.strictEqual(subprocess.stdio[0], subprocess.stdin);
- *
- * assert(subprocess.stdout);
- * assert.strictEqual(subprocess.stdio[1], subprocess.stdout);
- *
- * assert.strictEqual(subprocess.stdio[2], null);
- * assert.strictEqual(subprocess.stdio[2], subprocess.stderr);
- * ```
- *
- * The `subprocess.stdio` property can be `undefined` if the child process could
- * not be successfully spawned.
- * @since v0.7.10
- */
- readonly stdio: [
- Writable | null,
- // stdin
- Readable | null,
- // stdout
- Readable | null,
- // stderr
- Readable | Writable | null | undefined,
- // extra
- Readable | Writable | null | undefined, // extra
- ];
- /**
- * The `subprocess.killed` property indicates whether the child process
- * successfully received a signal from `subprocess.kill()`. The `killed` property
- * does not indicate that the child process has been terminated.
- * @since v0.5.10
- */
- readonly killed: boolean;
- /**
- * Returns the process identifier (PID) of the child process. If the child process
- * fails to spawn due to errors, then the value is `undefined` and `error` is
- * emitted.
- *
- * ```js
- * import { spawn } from 'node:child_process';
- * const grep = spawn('grep', ['ssh']);
- *
- * console.log(`Spawned child pid: ${grep.pid}`);
- * grep.stdin.end();
- * ```
- * @since v0.1.90
- */
- readonly pid?: number | undefined;
- /**
- * The `subprocess.connected` property indicates whether it is still possible to
- * send and receive messages from a child process. When `subprocess.connected` is `false`, it is no longer possible to send or receive messages.
- * @since v0.7.2
- */
- readonly connected: boolean;
- /**
- * The `subprocess.exitCode` property indicates the exit code of the child process.
- * If the child process is still running, the field will be `null`.
- *
- * When the child process is terminated by a signal, `subprocess.exitCode` will be
- * `null` and `subprocess.signalCode` will be set. To get the corresponding
- * POSIX exit code, use
- * `util.convertProcessSignalToExitCode(subprocess.signalCode)`.
- */
- readonly exitCode: number | null;
- /**
- * The `subprocess.signalCode` property indicates the signal received by
- * the child process if any, else `null`.
- */
- readonly signalCode: NodeJS.Signals | null;
- /**
- * The `subprocess.spawnargs` property represents the full list of command-line
- * arguments the child process was launched with.
- */
- readonly spawnargs: string[];
- /**
- * The `subprocess.spawnfile` property indicates the executable file name of
- * the child process that is launched.
- *
- * For {@link fork}, its value will be equal to `process.execPath`.
- * For {@link spawn}, its value will be the name of
- * the executable file.
- * For {@link exec}, its value will be the name of the shell
- * in which the child process is launched.
- */
- readonly spawnfile: string;
- /**
- * The `subprocess.kill()` method sends a signal to the child process. If no
- * argument is given, the process will be sent the `'SIGTERM'` signal. See [`signal(7)`](http://man7.org/linux/man-pages/man7/signal.7.html) for a list of available signals. This function
- * returns `true` if [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) succeeds, and `false` otherwise.
- *
- * ```js
- * import { spawn } from 'node:child_process';
- * const grep = spawn('grep', ['ssh']);
- *
- * grep.on('close', (code, signal) => {
- * console.log(
- * `child process terminated due to receipt of signal ${signal}`);
- * });
- *
- * // Send SIGHUP to process.
- * grep.kill('SIGHUP');
- * ```
- *
- * The `ChildProcess` object may emit an `'error'` event if the signal
- * cannot be delivered. Sending a signal to a child process that has already exited
- * is not an error but may have unforeseen consequences. Specifically, if the
- * process identifier (PID) has been reassigned to another process, the signal will
- * be delivered to that process instead which can have unexpected results.
- *
- * While the function is called `kill`, the signal delivered to the child process
- * may not actually terminate the process.
- *
- * See [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) for reference.
- *
- * On Windows, where POSIX signals do not exist, the `signal` argument will be
- * ignored, and the process will be killed forcefully and abruptly (similar to `'SIGKILL'`).
- * See `Signal Events` for more details.
- *
- * On Linux, child processes of child processes will not be terminated
- * when attempting to kill their parent. This is likely to happen when running a
- * new process in a shell or with the use of the `shell` option of `ChildProcess`:
- *
- * ```js
- * 'use strict';
- * import { spawn } from 'node:child_process';
- *
- * const subprocess = spawn(
- * 'sh',
- * [
- * '-c',
- * `node -e "setInterval(() => {
- * console.log(process.pid, 'is alive')
- * }, 500);"`,
- * ], {
- * stdio: ['inherit', 'inherit', 'inherit'],
- * },
- * );
- *
- * setTimeout(() => {
- * subprocess.kill(); // Does not terminate the Node.js process in the shell.
- * }, 2000);
- * ```
- * @since v0.1.90
- */
- kill(signal?: NodeJS.Signals | number): boolean;
- /**
- * Calls {@link ChildProcess.kill} with `'SIGTERM'`.
- * @since v20.5.0
- */
- [Symbol.dispose](): void;
- /**
- * When an IPC channel has been established between the parent and child (
- * i.e. when using {@link fork}), the `subprocess.send()` method can
- * be used to send messages to the child process. When the child process is a
- * Node.js instance, these messages can be received via the `'message'` event.
- *
- * The message goes through serialization and parsing. The resulting
- * message might not be the same as what is originally sent.
- *
- * For example, in the parent script:
- *
- * ```js
- * import cp from 'node:child_process';
- * const n = cp.fork(`${__dirname}/sub.js`);
- *
- * n.on('message', (m) => {
- * console.log('PARENT got message:', m);
- * });
- *
- * // Causes the child to print: CHILD got message: { hello: 'world' }
- * n.send({ hello: 'world' });
- * ```
- *
- * And then the child script, `'sub.js'` might look like this:
- *
- * ```js
- * process.on('message', (m) => {
- * console.log('CHILD got message:', m);
- * });
- *
- * // Causes the parent to print: PARENT got message: { foo: 'bar', baz: null }
- * process.send({ foo: 'bar', baz: NaN });
- * ```
- *
- * Child Node.js processes will have a `process.send()` method of their own
- * that allows the child to send messages back to the parent.
- *
- * There is a special case when sending a `{cmd: 'NODE_foo'}` message. Messages
- * containing a `NODE_` prefix in the `cmd` property are reserved for use within
- * Node.js core and will not be emitted in the child's `'message'` event. Rather, such messages are emitted using the `'internalMessage'` event and are consumed internally by Node.js.
- * Applications should avoid using such messages or listening for `'internalMessage'` events as it is subject to change without notice.
- *
- * The optional `sendHandle` argument that may be passed to `subprocess.send()` is
- * for passing a TCP server or socket object to the child process. The child will
- * receive the object as the second argument passed to the callback function
- * registered on the `'message'` event. Any data that is received and buffered in
- * the socket will not be sent to the child. Sending IPC sockets is not supported on Windows.
- *
- * The optional `callback` is a function that is invoked after the message is
- * sent but before the child may have received it. The function is called with a
- * single argument: `null` on success, or an `Error` object on failure.
- *
- * If no `callback` function is provided and the message cannot be sent, an `'error'` event will be emitted by the `ChildProcess` object. This can
- * happen, for instance, when the child process has already exited.
- *
- * `subprocess.send()` will return `false` if the channel has closed or when the
- * backlog of unsent messages exceeds a threshold that makes it unwise to send
- * more. Otherwise, the method returns `true`. The `callback` function can be
- * used to implement flow control.
- *
- * #### Example: sending a server object
- *
- * The `sendHandle` argument can be used, for instance, to pass the handle of
- * a TCP server object to the child process as illustrated in the example below:
- *
- * ```js
- * import { createServer } from 'node:net';
- * import { fork } from 'node:child_process';
- * const subprocess = fork('subprocess.js');
- *
- * // Open up the server object and send the handle.
- * const server = createServer();
- * server.on('connection', (socket) => {
- * socket.end('handled by parent');
- * });
- * server.listen(1337, () => {
- * subprocess.send('server', server);
- * });
- * ```
- *
- * The child would then receive the server object as:
- *
- * ```js
- * process.on('message', (m, server) => {
- * if (m === 'server') {
- * server.on('connection', (socket) => {
- * socket.end('handled by child');
- * });
- * }
- * });
- * ```
- *
- * Once the server is now shared between the parent and child, some connections
- * can be handled by the parent and some by the child.
- *
- * While the example above uses a server created using the `node:net` module, `node:dgram` module servers use exactly the same workflow with the exceptions of
- * listening on a `'message'` event instead of `'connection'` and using `server.bind()` instead of `server.listen()`. This is, however, only
- * supported on Unix platforms.
- *
- * #### Example: sending a socket object
- *
- * Similarly, the `sendHandler` argument can be used to pass the handle of a
- * socket to the child process. The example below spawns two children that each
- * handle connections with "normal" or "special" priority:
- *
- * ```js
- * import { createServer } from 'node:net';
- * import { fork } from 'node:child_process';
- * const normal = fork('subprocess.js', ['normal']);
- * const special = fork('subprocess.js', ['special']);
- *
- * // Open up the server and send sockets to child. Use pauseOnConnect to prevent
- * // the sockets from being read before they are sent to the child process.
- * const server = createServer({ pauseOnConnect: true });
- * server.on('connection', (socket) => {
- *
- * // If this is special priority...
- * if (socket.remoteAddress === '74.125.127.100') {
- * special.send('socket', socket);
- * return;
- * }
- * // This is normal priority.
- * normal.send('socket', socket);
- * });
- * server.listen(1337);
- * ```
- *
- * The `subprocess.js` would receive the socket handle as the second argument
- * passed to the event callback function:
- *
- * ```js
- * process.on('message', (m, socket) => {
- * if (m === 'socket') {
- * if (socket) {
- * // Check that the client socket exists.
- * // It is possible for the socket to be closed between the time it is
- * // sent and the time it is received in the child process.
- * socket.end(`Request handled with ${process.argv[2]} priority`);
- * }
- * }
- * });
- * ```
- *
- * Do not use `.maxConnections` on a socket that has been passed to a subprocess.
- * The parent cannot track when the socket is destroyed.
- *
- * Any `'message'` handlers in the subprocess should verify that `socket` exists,
- * as the connection may have been closed during the time it takes to send the
- * connection to the child.
- * @since v0.5.9
- * @param sendHandle `undefined`, or a [`net.Socket`](https://nodejs.org/docs/latest-v25.x/api/net.html#class-netsocket), [`net.Server`](https://nodejs.org/docs/latest-v25.x/api/net.html#class-netserver), or [`dgram.Socket`](https://nodejs.org/docs/latest-v25.x/api/dgram.html#class-dgramsocket) object.
- * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles. `options` supports the following properties:
- */
- send(message: Serializable, callback?: (error: Error | null) => void): boolean;
- send(message: Serializable, sendHandle?: SendHandle, callback?: (error: Error | null) => void): boolean;
- send(
- message: Serializable,
- sendHandle?: SendHandle,
- options?: MessageOptions,
- callback?: (error: Error | null) => void,
- ): boolean;
- /**
- * Closes the IPC channel between parent and child, allowing the child to exit
- * gracefully once there are no other connections keeping it alive. After calling
- * this method the `subprocess.connected` and `process.connected` properties in
- * both the parent and child (respectively) will be set to `false`, and it will be
- * no longer possible to pass messages between the processes.
- *
- * The `'disconnect'` event will be emitted when there are no messages in the
- * process of being received. This will most often be triggered immediately after
- * calling `subprocess.disconnect()`.
- *
- * When the child process is a Node.js instance (e.g. spawned using {@link fork}), the `process.disconnect()` method can be invoked
- * within the child process to close the IPC channel as well.
- * @since v0.7.2
- */
- disconnect(): void;
- /**
- * By default, the parent will wait for the detached child to exit. To prevent the
- * parent from waiting for a given `subprocess` to exit, use the `subprocess.unref()` method. Doing so will cause the parent's event loop to not
- * include the child in its reference count, allowing the parent to exit
- * independently of the child, unless there is an established IPC channel between
- * the child and the parent.
- *
- * ```js
- * import { spawn } from 'node:child_process';
- *
- * const subprocess = spawn(process.argv[0], ['child_program.js'], {
- * detached: true,
- * stdio: 'ignore',
- * });
- *
- * subprocess.unref();
- * ```
- * @since v0.7.10
- */
- unref(): void;
- /**
- * Calling `subprocess.ref()` after making a call to `subprocess.unref()` will
- * restore the removed reference count for the child process, forcing the parent
- * to wait for the child to exit before exiting itself.
- *
- * ```js
- * import { spawn } from 'node:child_process';
- *
- * const subprocess = spawn(process.argv[0], ['child_program.js'], {
- * detached: true,
- * stdio: 'ignore',
- * });
- *
- * subprocess.unref();
- * subprocess.ref();
- * ```
- * @since v0.7.10
- */
- ref(): void;
- }
- interface ChildProcess extends InternalEventEmitter {}
- // return this object when stdio option is undefined or not specified
- interface ChildProcessWithoutNullStreams extends ChildProcess {
- stdin: Writable;
- stdout: Readable;
- stderr: Readable;
- readonly stdio: [
- Writable,
- Readable,
- Readable,
- // stderr
- Readable | Writable | null | undefined,
- // extra, no modification
- Readable | Writable | null | undefined, // extra, no modification
- ];
- }
- // return this object when stdio option is a tuple of 3
- interface ChildProcessByStdio
- extends ChildProcess
- {
- stdin: I;
- stdout: O;
- stderr: E;
- readonly stdio: [
- I,
- O,
- E,
- Readable | Writable | null | undefined,
- // extra, no modification
- Readable | Writable | null | undefined, // extra, no modification
- ];
- }
- interface Control extends EventEmitter {
- ref(): void;
- unref(): void;
- }
- interface MessageOptions {
- keepOpen?: boolean | undefined;
- }
- type IOType = "overlapped" | "pipe" | "ignore" | "inherit";
- type StdioOptions = IOType | Array;
- type SerializationType = "json" | "advanced";
- interface MessagingOptions extends Abortable {
- /**
- * Specify the kind of serialization used for sending messages between processes.
- * @default 'json'
- */
- serialization?: SerializationType | undefined;
- /**
- * The signal value to be used when the spawned process will be killed by the abort signal.
- * @default 'SIGTERM'
- */
- killSignal?: NodeJS.Signals | number | undefined;
- /**
- * In milliseconds the maximum amount of time the process is allowed to run.
- */
- timeout?: number | undefined;
- }
- interface ProcessEnvOptions {
- uid?: number | undefined;
- gid?: number | undefined;
- cwd?: string | URL | undefined;
- env?: NodeJS.ProcessEnv | undefined;
- }
- interface CommonOptions extends ProcessEnvOptions {
- /**
- * @default false
- */
- windowsHide?: boolean | undefined;
- /**
- * @default 0
- */
- timeout?: number | undefined;
- }
- interface CommonSpawnOptions extends CommonOptions, MessagingOptions, Abortable {
- argv0?: string | undefined;
- /**
- * Can be set to 'pipe', 'inherit', 'overlapped', or 'ignore', or an array of these strings.
- * If passed as an array, the first element is used for `stdin`, the second for
- * `stdout`, and the third for `stderr`. A fourth element can be used to
- * specify the `stdio` behavior beyond the standard streams. See
- * {@link ChildProcess.stdio} for more information.
- *
- * @default 'pipe'
- */
- stdio?: StdioOptions | undefined;
- shell?: boolean | string | undefined;
- windowsVerbatimArguments?: boolean | undefined;
- }
- interface SpawnOptions extends CommonSpawnOptions {
- detached?: boolean | undefined;
- }
- interface SpawnOptionsWithoutStdio extends SpawnOptions {
- stdio?: StdioPipeNamed | StdioPipe[] | undefined;
- }
- type StdioNull = "inherit" | "ignore" | Stream;
- type StdioPipeNamed = "pipe" | "overlapped";
- type StdioPipe = undefined | null | StdioPipeNamed;
- interface SpawnOptionsWithStdioTuple<
- Stdin extends StdioNull | StdioPipe,
- Stdout extends StdioNull | StdioPipe,
- Stderr extends StdioNull | StdioPipe,
- > extends SpawnOptions {
- stdio: [Stdin, Stdout, Stderr];
- }
- /**
- * The `child_process.spawn()` method spawns a new process using the given `command`, with command-line arguments in `args`. If omitted, `args` defaults
- * to an empty array.
- *
- * **If the `shell` option is enabled, do not pass unsanitized user input to this**
- * **function. Any input containing shell metacharacters may be used to trigger**
- * **arbitrary command execution.**
- *
- * A third argument may be used to specify additional options, with these defaults:
- *
- * ```js
- * const defaults = {
- * cwd: undefined,
- * env: process.env,
- * };
- * ```
- *
- * Use `cwd` to specify the working directory from which the process is spawned.
- * If not given, the default is to inherit the current working directory. If given,
- * but the path does not exist, the child process emits an `ENOENT` error
- * and exits immediately. `ENOENT` is also emitted when the command
- * does not exist.
- *
- * Use `env` to specify environment variables that will be visible to the new
- * process, the default is `process.env`.
- *
- * `undefined` values in `env` will be ignored.
- *
- * Example of running `ls -lh /usr`, capturing `stdout`, `stderr`, and the
- * exit code:
- *
- * ```js
- * import { spawn } from 'node:child_process';
- * import { once } from 'node:events';
- * const ls = spawn('ls', ['-lh', '/usr']);
- *
- * ls.stdout.on('data', (data) => {
- * console.log(`stdout: ${data}`);
- * });
- *
- * ls.stderr.on('data', (data) => {
- * console.error(`stderr: ${data}`);
- * });
- *
- * const [code] = await once(ls, 'close');
- * console.log(`child process exited with code ${code}`);
- * ```
- *
- * Example: A very elaborate way to run `ps ax | grep ssh`
- *
- * ```js
- * import { spawn } from 'node:child_process';
- * const ps = spawn('ps', ['ax']);
- * const grep = spawn('grep', ['ssh']);
- *
- * ps.stdout.on('data', (data) => {
- * grep.stdin.write(data);
- * });
- *
- * ps.stderr.on('data', (data) => {
- * console.error(`ps stderr: ${data}`);
- * });
- *
- * ps.on('close', (code) => {
- * if (code !== 0) {
- * console.log(`ps process exited with code ${code}`);
- * }
- * grep.stdin.end();
- * });
- *
- * grep.stdout.on('data', (data) => {
- * console.log(data.toString());
- * });
- *
- * grep.stderr.on('data', (data) => {
- * console.error(`grep stderr: ${data}`);
- * });
- *
- * grep.on('close', (code) => {
- * if (code !== 0) {
- * console.log(`grep process exited with code ${code}`);
- * }
- * });
- * ```
- *
- * Example of checking for failed `spawn`:
- *
- * ```js
- * import { spawn } from 'node:child_process';
- * const subprocess = spawn('bad_command');
- *
- * subprocess.on('error', (err) => {
- * console.error('Failed to start subprocess.');
- * });
- * ```
- *
- * Certain platforms (macOS, Linux) will use the value of `argv[0]` for the process
- * title while others (Windows, SunOS) will use `command`.
- *
- * Node.js overwrites `argv[0]` with `process.execPath` on startup, so `process.argv[0]` in a Node.js child process will not match the `argv0` parameter passed to `spawn` from the parent. Retrieve
- * it with the `process.argv0` property instead.
- *
- * If the `signal` option is enabled, calling `.abort()` on the corresponding `AbortController` is similar to calling `.kill()` on the child process except
- * the error passed to the callback will be an `AbortError`:
- *
- * ```js
- * import { spawn } from 'node:child_process';
- * const controller = new AbortController();
- * const { signal } = controller;
- * const grep = spawn('grep', ['ssh'], { signal });
- * grep.on('error', (err) => {
- * // This will be called with err being an AbortError if the controller aborts
- * });
- * controller.abort(); // Stops the child process
- * ```
- * @since v0.1.90
- * @param command The command to run.
- * @param args List of string arguments.
- */
- function spawn(command: string, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams;
- function spawn(
- command: string,
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(command: string, options: SpawnOptions): ChildProcess;
- // overloads of spawn with 'args'
- function spawn(
- command: string,
- args?: readonly string[],
- options?: SpawnOptionsWithoutStdio,
- ): ChildProcessWithoutNullStreams;
- function spawn(
- command: string,
- args: readonly string[],
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- args: readonly string[],
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- args: readonly string[],
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- args: readonly string[],
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- args: readonly string[],
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- args: readonly string[],
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- args: readonly string[],
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(
- command: string,
- args: readonly string[],
- options: SpawnOptionsWithStdioTuple,
- ): ChildProcessByStdio;
- function spawn(command: string, args: readonly string[], options: SpawnOptions): ChildProcess;
- interface ExecOptions extends CommonOptions {
- shell?: string | undefined;
- signal?: AbortSignal | undefined;
- maxBuffer?: number | undefined;
- killSignal?: NodeJS.Signals | number | undefined;
- encoding?: string | null | undefined;
- }
- interface ExecOptionsWithStringEncoding extends ExecOptions {
- encoding?: BufferEncoding | undefined;
- }
- interface ExecOptionsWithBufferEncoding extends ExecOptions {
- encoding: "buffer" | null; // specify `null`.
- }
- // TODO: Just Plain Wrong™ (see also nodejs/node#57392)
- interface ExecException extends Error {
- cmd?: string;
- killed?: boolean;
- code?: number;
- signal?: NodeJS.Signals;
- stdout?: string;
- stderr?: string;
- }
- /**
- * Spawns a shell then executes the `command` within that shell, buffering any
- * generated output. The `command` string passed to the exec function is processed
- * directly by the shell and special characters (vary based on [shell](https://en.wikipedia.org/wiki/List_of_command-line_interpreters))
- * need to be dealt with accordingly:
- *
- * ```js
- * import { exec } from 'node:child_process';
- *
- * exec('"/path/to/test file/test.sh" arg1 arg2');
- * // Double quotes are used so that the space in the path is not interpreted as
- * // a delimiter of multiple arguments.
- *
- * exec('echo "The \\$HOME variable is $HOME"');
- * // The $HOME variable is escaped in the first instance, but not in the second.
- * ```
- *
- * **Never pass unsanitized user input to this function. Any input containing shell**
- * **metacharacters may be used to trigger arbitrary command execution.**
- *
- * If a `callback` function is provided, it is called with the arguments `(error, stdout, stderr)`. On success, `error` will be `null`. On error, `error` will be an instance of `Error`. The
- * `error.code` property will be
- * the exit code of the process. By convention, any exit code other than `0` indicates an error. `error.signal` will be the signal that terminated the
- * process.
- *
- * The `stdout` and `stderr` arguments passed to the callback will contain the
- * stdout and stderr output of the child process. By default, Node.js will decode
- * the output as UTF-8 and pass strings to the callback. The `encoding` option
- * can be used to specify the character encoding used to decode the stdout and
- * stderr output. If `encoding` is `'buffer'`, or an unrecognized character
- * encoding, `Buffer` objects will be passed to the callback instead.
- *
- * ```js
- * import { exec } from 'node:child_process';
- * exec('cat *.js missing_file | wc -l', (error, stdout, stderr) => {
- * if (error) {
- * console.error(`exec error: ${error}`);
- * return;
- * }
- * console.log(`stdout: ${stdout}`);
- * console.error(`stderr: ${stderr}`);
- * });
- * ```
- *
- * If `timeout` is greater than `0`, the parent will send the signal
- * identified by the `killSignal` property (the default is `'SIGTERM'`) if the
- * child runs longer than `timeout` milliseconds.
- *
- * Unlike the [`exec(3)`](http://man7.org/linux/man-pages/man3/exec.3.html) POSIX system call, `child_process.exec()` does not replace
- * the existing process and uses a shell to execute the command.
- *
- * If this method is invoked as its `util.promisify()` ed version, it returns
- * a `Promise` for an `Object` with `stdout` and `stderr` properties. The returned `ChildProcess` instance is attached to the `Promise` as a `child` property. In
- * case of an error (including any error resulting in an exit code other than 0), a
- * rejected promise is returned, with the same `error` object given in the
- * callback, but with two additional properties `stdout` and `stderr`.
- *
- * ```js
- * import util from 'node:util';
- * import child_process from 'node:child_process';
- * const exec = util.promisify(child_process.exec);
- *
- * async function lsExample() {
- * const { stdout, stderr } = await exec('ls');
- * console.log('stdout:', stdout);
- * console.error('stderr:', stderr);
- * }
- * lsExample();
- * ```
- *
- * If the `signal` option is enabled, calling `.abort()` on the corresponding `AbortController` is similar to calling `.kill()` on the child process except
- * the error passed to the callback will be an `AbortError`:
- *
- * ```js
- * import { exec } from 'node:child_process';
- * const controller = new AbortController();
- * const { signal } = controller;
- * const child = exec('grep ssh', { signal }, (error) => {
- * console.error(error); // an AbortError
- * });
- * controller.abort();
- * ```
- * @since v0.1.90
- * @param command The command to run, with space-separated arguments.
- * @param callback called with the output when process terminates.
- */
- function exec(
- command: string,
- callback?: (error: ExecException | null, stdout: string, stderr: string) => void,
- ): ChildProcess;
- // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.
- function exec(
- command: string,
- options: ExecOptionsWithBufferEncoding,
- callback?: (error: ExecException | null, stdout: NonSharedBuffer, stderr: NonSharedBuffer) => void,
- ): ChildProcess;
- // `options` with well-known or absent `encoding` means stdout/stderr are definitely `string`.
- function exec(
- command: string,
- options: ExecOptionsWithStringEncoding,
- callback?: (error: ExecException | null, stdout: string, stderr: string) => void,
- ): ChildProcess;
- // fallback if nothing else matches. Worst case is always `string | Buffer`.
- function exec(
- command: string,
- options: ExecOptions | undefined | null,
- callback?: (
- error: ExecException | null,
- stdout: string | NonSharedBuffer,
- stderr: string | NonSharedBuffer,
- ) => void,
- ): ChildProcess;
- interface PromiseWithChild extends Promise {
- child: ChildProcess;
- }
- namespace exec {
- function __promisify__(command: string): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- command: string,
- options: ExecOptionsWithBufferEncoding,
- ): PromiseWithChild<{
- stdout: NonSharedBuffer;
- stderr: NonSharedBuffer;
- }>;
- function __promisify__(
- command: string,
- options: ExecOptionsWithStringEncoding,
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- command: string,
- options: ExecOptions | undefined | null,
- ): PromiseWithChild<{
- stdout: string | NonSharedBuffer;
- stderr: string | NonSharedBuffer;
- }>;
- }
- interface ExecFileOptions extends CommonOptions, Abortable {
- maxBuffer?: number | undefined;
- killSignal?: NodeJS.Signals | number | undefined;
- windowsVerbatimArguments?: boolean | undefined;
- shell?: boolean | string | undefined;
- signal?: AbortSignal | undefined;
- encoding?: string | null | undefined;
- }
- interface ExecFileOptionsWithStringEncoding extends ExecFileOptions {
- encoding?: BufferEncoding | undefined;
- }
- interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions {
- encoding: "buffer" | null;
- }
- /** @deprecated Use `ExecFileOptions` instead. */
- interface ExecFileOptionsWithOtherEncoding extends ExecFileOptions {}
- // TODO: execFile exceptions can take many forms... this accurately describes none of them
- type ExecFileException =
- & Omit
- & Omit
- & { code?: string | number | null };
- /**
- * The `child_process.execFile()` function is similar to {@link exec} except that it does not spawn a shell by default. Rather, the specified
- * executable `file` is spawned directly as a new process making it slightly more
- * efficient than {@link exec}.
- *
- * The same options as {@link exec} are supported. Since a shell is
- * not spawned, behaviors such as I/O redirection and file globbing are not
- * supported.
- *
- * ```js
- * import { execFile } from 'node:child_process';
- * const child = execFile('node', ['--version'], (error, stdout, stderr) => {
- * if (error) {
- * throw error;
- * }
- * console.log(stdout);
- * });
- * ```
- *
- * The `stdout` and `stderr` arguments passed to the callback will contain the
- * stdout and stderr output of the child process. By default, Node.js will decode
- * the output as UTF-8 and pass strings to the callback. The `encoding` option
- * can be used to specify the character encoding used to decode the stdout and
- * stderr output. If `encoding` is `'buffer'`, or an unrecognized character
- * encoding, `Buffer` objects will be passed to the callback instead.
- *
- * If this method is invoked as its `util.promisify()` ed version, it returns
- * a `Promise` for an `Object` with `stdout` and `stderr` properties. The returned `ChildProcess` instance is attached to the `Promise` as a `child` property. In
- * case of an error (including any error resulting in an exit code other than 0), a
- * rejected promise is returned, with the same `error` object given in the
- * callback, but with two additional properties `stdout` and `stderr`.
- *
- * ```js
- * import util from 'node:util';
- * import child_process from 'node:child_process';
- * const execFile = util.promisify(child_process.execFile);
- * async function getVersion() {
- * const { stdout } = await execFile('node', ['--version']);
- * console.log(stdout);
- * }
- * getVersion();
- * ```
- *
- * **If the `shell` option is enabled, do not pass unsanitized user input to this**
- * **function. Any input containing shell metacharacters may be used to trigger**
- * **arbitrary command execution.**
- *
- * If the `signal` option is enabled, calling `.abort()` on the corresponding `AbortController` is similar to calling `.kill()` on the child process except
- * the error passed to the callback will be an `AbortError`:
- *
- * ```js
- * import { execFile } from 'node:child_process';
- * const controller = new AbortController();
- * const { signal } = controller;
- * const child = execFile('node', ['--version'], { signal }, (error) => {
- * console.error(error); // an AbortError
- * });
- * controller.abort();
- * ```
- * @since v0.1.91
- * @param file The name or path of the executable file to run.
- * @param args List of string arguments.
- * @param callback Called with the output when process terminates.
- */
- // no `options` definitely means stdout/stderr are `string`.
- function execFile(
- file: string,
- callback?: (error: ExecFileException | null, stdout: string, stderr: string) => void,
- ): ChildProcess;
- function execFile(
- file: string,
- args: readonly string[] | undefined | null,
- callback?: (error: ExecFileException | null, stdout: string, stderr: string) => void,
- ): ChildProcess;
- // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.
- function execFile(
- file: string,
- options: ExecFileOptionsWithBufferEncoding,
- callback?: (error: ExecFileException | null, stdout: NonSharedBuffer, stderr: NonSharedBuffer) => void,
- ): ChildProcess;
- function execFile(
- file: string,
- args: readonly string[] | undefined | null,
- options: ExecFileOptionsWithBufferEncoding,
- callback?: (error: ExecFileException | null, stdout: NonSharedBuffer, stderr: NonSharedBuffer) => void,
- ): ChildProcess;
- // `options` with well-known or absent `encoding` means stdout/stderr are definitely `string`.
- function execFile(
- file: string,
- options: ExecFileOptionsWithStringEncoding,
- callback?: (error: ExecFileException | null, stdout: string, stderr: string) => void,
- ): ChildProcess;
- function execFile(
- file: string,
- args: readonly string[] | undefined | null,
- options: ExecFileOptionsWithStringEncoding,
- callback?: (error: ExecFileException | null, stdout: string, stderr: string) => void,
- ): ChildProcess;
- // fallback if nothing else matches. Worst case is always `string | Buffer`.
- function execFile(
- file: string,
- options: ExecFileOptions | undefined | null,
- callback:
- | ((
- error: ExecFileException | null,
- stdout: string | NonSharedBuffer,
- stderr: string | NonSharedBuffer,
- ) => void)
- | undefined
- | null,
- ): ChildProcess;
- function execFile(
- file: string,
- args: readonly string[] | undefined | null,
- options: ExecFileOptions | undefined | null,
- callback:
- | ((
- error: ExecFileException | null,
- stdout: string | NonSharedBuffer,
- stderr: string | NonSharedBuffer,
- ) => void)
- | undefined
- | null,
- ): ChildProcess;
- namespace execFile {
- function __promisify__(file: string): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- file: string,
- args: readonly string[] | undefined | null,
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- file: string,
- options: ExecFileOptionsWithBufferEncoding,
- ): PromiseWithChild<{
- stdout: NonSharedBuffer;
- stderr: NonSharedBuffer;
- }>;
- function __promisify__(
- file: string,
- args: readonly string[] | undefined | null,
- options: ExecFileOptionsWithBufferEncoding,
- ): PromiseWithChild<{
- stdout: NonSharedBuffer;
- stderr: NonSharedBuffer;
- }>;
- function __promisify__(
- file: string,
- options: ExecFileOptionsWithStringEncoding,
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- file: string,
- args: readonly string[] | undefined | null,
- options: ExecFileOptionsWithStringEncoding,
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- file: string,
- options: ExecFileOptions | undefined | null,
- ): PromiseWithChild<{
- stdout: string | NonSharedBuffer;
- stderr: string | NonSharedBuffer;
- }>;
- function __promisify__(
- file: string,
- args: readonly string[] | undefined | null,
- options: ExecFileOptions | undefined | null,
- ): PromiseWithChild<{
- stdout: string | NonSharedBuffer;
- stderr: string | NonSharedBuffer;
- }>;
- }
- interface ForkOptions extends ProcessEnvOptions, MessagingOptions, Abortable {
- execPath?: string | undefined;
- execArgv?: string[] | undefined;
- silent?: boolean | undefined;
- /**
- * Can be set to 'pipe', 'inherit', 'overlapped', or 'ignore', or an array of these strings.
- * If passed as an array, the first element is used for `stdin`, the second for
- * `stdout`, and the third for `stderr`. A fourth element can be used to
- * specify the `stdio` behavior beyond the standard streams. See
- * {@link ChildProcess.stdio} for more information.
- *
- * @default 'pipe'
- */
- stdio?: StdioOptions | undefined;
- detached?: boolean | undefined;
- windowsVerbatimArguments?: boolean | undefined;
- }
- /**
- * The `child_process.fork()` method is a special case of {@link spawn} used specifically to spawn new Node.js processes.
- * Like {@link spawn}, a `ChildProcess` object is returned. The
- * returned `ChildProcess` will have an additional communication channel
- * built-in that allows messages to be passed back and forth between the parent and
- * child. See `subprocess.send()` for details.
- *
- * Keep in mind that spawned Node.js child processes are
- * independent of the parent with exception of the IPC communication channel
- * that is established between the two. Each process has its own memory, with
- * their own V8 instances. Because of the additional resource allocations
- * required, spawning a large number of child Node.js processes is not
- * recommended.
- *
- * By default, `child_process.fork()` will spawn new Node.js instances using the `process.execPath` of the parent process. The `execPath` property in the `options` object allows for an alternative
- * execution path to be used.
- *
- * Node.js processes launched with a custom `execPath` will communicate with the
- * parent process using the file descriptor (fd) identified using the
- * environment variable `NODE_CHANNEL_FD` on the child process.
- *
- * Unlike the [`fork(2)`](http://man7.org/linux/man-pages/man2/fork.2.html) POSIX system call, `child_process.fork()` does not clone the
- * current process.
- *
- * The `shell` option available in {@link spawn} is not supported by `child_process.fork()` and will be ignored if set.
- *
- * If the `signal` option is enabled, calling `.abort()` on the corresponding `AbortController` is similar to calling `.kill()` on the child process except
- * the error passed to the callback will be an `AbortError`:
- *
- * ```js
- * if (process.argv[2] === 'child') {
- * setTimeout(() => {
- * console.log(`Hello from ${process.argv[2]}!`);
- * }, 1_000);
- * } else {
- * import { fork } from 'node:child_process';
- * const controller = new AbortController();
- * const { signal } = controller;
- * const child = fork(__filename, ['child'], { signal });
- * child.on('error', (err) => {
- * // This will be called with err being an AbortError if the controller aborts
- * });
- * controller.abort(); // Stops the child process
- * }
- * ```
- * @since v0.5.0
- * @param modulePath The module to run in the child.
- * @param args List of string arguments.
- */
- function fork(modulePath: string | URL, options?: ForkOptions): ChildProcess;
- function fork(modulePath: string | URL, args?: readonly string[], options?: ForkOptions): ChildProcess;
- interface SpawnSyncOptions extends CommonSpawnOptions {
- input?: string | NodeJS.ArrayBufferView | undefined;
- maxBuffer?: number | undefined;
- encoding?: BufferEncoding | "buffer" | null | undefined;
- }
- interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions {
- encoding: BufferEncoding;
- }
- interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions {
- encoding?: "buffer" | null | undefined;
- }
- interface SpawnSyncReturns {
- pid: number;
- output: Array;
- stdout: T;
- stderr: T;
- status: number | null;
- signal: NodeJS.Signals | null;
- error?: Error;
- }
- /**
- * The `child_process.spawnSync()` method is generally identical to {@link spawn} with the exception that the function will not return
- * until the child process has fully closed. When a timeout has been encountered
- * and `killSignal` is sent, the method won't return until the process has
- * completely exited. If the process intercepts and handles the `SIGTERM` signal
- * and doesn't exit, the parent process will wait until the child process has
- * exited.
- *
- * **If the `shell` option is enabled, do not pass unsanitized user input to this**
- * **function. Any input containing shell metacharacters may be used to trigger**
- * **arbitrary command execution.**
- * @since v0.11.12
- * @param command The command to run.
- * @param args List of string arguments.
- */
- function spawnSync(command: string): SpawnSyncReturns;
- function spawnSync(command: string, options: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns;
- function spawnSync(command: string, options: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns;
- function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns;
- function spawnSync(command: string, args: readonly string[]): SpawnSyncReturns;
- function spawnSync(
- command: string,
- args: readonly string[],
- options: SpawnSyncOptionsWithStringEncoding,
- ): SpawnSyncReturns;
- function spawnSync(
- command: string,
- args: readonly string[],
- options: SpawnSyncOptionsWithBufferEncoding,
- ): SpawnSyncReturns;
- function spawnSync(
- command: string,
- args?: readonly string[],
- options?: SpawnSyncOptions,
- ): SpawnSyncReturns;
- interface CommonExecOptions extends CommonOptions {
- input?: string | NodeJS.ArrayBufferView | undefined;
- /**
- * Can be set to 'pipe', 'inherit, or 'ignore', or an array of these strings.
- * If passed as an array, the first element is used for `stdin`, the second for
- * `stdout`, and the third for `stderr`. A fourth element can be used to
- * specify the `stdio` behavior beyond the standard streams. See
- * {@link ChildProcess.stdio} for more information.
- *
- * @default 'pipe'
- */
- stdio?: StdioOptions | undefined;
- killSignal?: NodeJS.Signals | number | undefined;
- maxBuffer?: number | undefined;
- encoding?: BufferEncoding | "buffer" | null | undefined;
- }
- interface ExecSyncOptions extends CommonExecOptions {
- shell?: string | undefined;
- }
- interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions {
- encoding: BufferEncoding;
- }
- interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions {
- encoding?: "buffer" | null | undefined;
- }
- /**
- * The `child_process.execSync()` method is generally identical to {@link exec} with the exception that the method will not return
- * until the child process has fully closed. When a timeout has been encountered
- * and `killSignal` is sent, the method won't return until the process has
- * completely exited. If the child process intercepts and handles the `SIGTERM` signal and doesn't exit, the parent process will wait until the child process
- * has exited.
- *
- * If the process times out or has a non-zero exit code, this method will throw.
- * The `Error` object will contain the entire result from {@link spawnSync}.
- *
- * **Never pass unsanitized user input to this function. Any input containing shell**
- * **metacharacters may be used to trigger arbitrary command execution.**
- * @since v0.11.12
- * @param command The command to run.
- * @return The stdout from the command.
- */
- function execSync(command: string): NonSharedBuffer;
- function execSync(command: string, options: ExecSyncOptionsWithStringEncoding): string;
- function execSync(command: string, options: ExecSyncOptionsWithBufferEncoding): NonSharedBuffer;
- function execSync(command: string, options?: ExecSyncOptions): string | NonSharedBuffer;
- interface ExecFileSyncOptions extends CommonExecOptions {
- shell?: boolean | string | undefined;
- }
- interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions {
- encoding: BufferEncoding;
- }
- interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions {
- encoding?: "buffer" | null | undefined; // specify `null`.
- }
- /**
- * The `child_process.execFileSync()` method is generally identical to {@link execFile} with the exception that the method will not
- * return until the child process has fully closed. When a timeout has been
- * encountered and `killSignal` is sent, the method won't return until the process
- * has completely exited.
- *
- * If the child process intercepts and handles the `SIGTERM` signal and
- * does not exit, the parent process will still wait until the child process has
- * exited.
- *
- * If the process times out or has a non-zero exit code, this method will throw an `Error` that will include the full result of the underlying {@link spawnSync}.
- *
- * **If the `shell` option is enabled, do not pass unsanitized user input to this**
- * **function. Any input containing shell metacharacters may be used to trigger**
- * **arbitrary command execution.**
- * @since v0.11.12
- * @param file The name or path of the executable file to run.
- * @param args List of string arguments.
- * @return The stdout from the command.
- */
- function execFileSync(file: string): NonSharedBuffer;
- function execFileSync(file: string, options: ExecFileSyncOptionsWithStringEncoding): string;
- function execFileSync(file: string, options: ExecFileSyncOptionsWithBufferEncoding): NonSharedBuffer;
- function execFileSync(file: string, options?: ExecFileSyncOptions): string | NonSharedBuffer;
- function execFileSync(file: string, args: readonly string[]): NonSharedBuffer;
- function execFileSync(
- file: string,
- args: readonly string[],
- options: ExecFileSyncOptionsWithStringEncoding,
- ): string;
- function execFileSync(
- file: string,
- args: readonly string[],
- options: ExecFileSyncOptionsWithBufferEncoding,
- ): NonSharedBuffer;
- function execFileSync(
- file: string,
- args?: readonly string[],
- options?: ExecFileSyncOptions,
- ): string | NonSharedBuffer;
-}
-declare module "child_process" {
- export * from "node:child_process";
-}
diff --git a/node_modules/@types/node/cluster.d.ts b/node_modules/@types/node/cluster.d.ts
deleted file mode 100644
index 80f55ae..0000000
--- a/node_modules/@types/node/cluster.d.ts
+++ /dev/null
@@ -1,432 +0,0 @@
-declare module "node:cluster" {
- import * as child_process from "node:child_process";
- import { EventEmitter, InternalEventEmitter } from "node:events";
- class Worker implements EventEmitter {
- constructor(options?: cluster.WorkerOptions);
- /**
- * Each new worker is given its own unique id, this id is stored in the `id`.
- *
- * While a worker is alive, this is the key that indexes it in `cluster.workers`.
- * @since v0.8.0
- */
- id: number;
- /**
- * All workers are created using [`child_process.fork()`](https://nodejs.org/docs/latest-v25.x/api/child_process.html#child_processforkmodulepath-args-options), the returned object
- * from this function is stored as `.process`. In a worker, the global `process` is stored.
- *
- * See: [Child Process module](https://nodejs.org/docs/latest-v25.x/api/child_process.html#child_processforkmodulepath-args-options).
- *
- * Workers will call `process.exit(0)` if the `'disconnect'` event occurs
- * on `process` and `.exitedAfterDisconnect` is not `true`. This protects against
- * accidental disconnection.
- * @since v0.7.0
- */
- process: child_process.ChildProcess;
- /**
- * Send a message to a worker or primary, optionally with a handle.
- *
- * In the primary, this sends a message to a specific worker. It is identical to [`ChildProcess.send()`](https://nodejs.org/docs/latest-v25.x/api/child_process.html#subprocesssendmessage-sendhandle-options-callback).
- *
- * In a worker, this sends a message to the primary. It is identical to `process.send()`.
- *
- * This example will echo back all messages from the primary:
- *
- * ```js
- * if (cluster.isPrimary) {
- * const worker = cluster.fork();
- * worker.send('hi there');
- *
- * } else if (cluster.isWorker) {
- * process.on('message', (msg) => {
- * process.send(msg);
- * });
- * }
- * ```
- * @since v0.7.0
- * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles.
- */
- send(message: child_process.Serializable, callback?: (error: Error | null) => void): boolean;
- send(
- message: child_process.Serializable,
- sendHandle: child_process.SendHandle,
- callback?: (error: Error | null) => void,
- ): boolean;
- send(
- message: child_process.Serializable,
- sendHandle: child_process.SendHandle,
- options?: child_process.MessageOptions,
- callback?: (error: Error | null) => void,
- ): boolean;
- /**
- * This function will kill the worker. In the primary worker, it does this by
- * disconnecting the `worker.process`, and once disconnected, killing with `signal`. In the worker, it does it by killing the process with `signal`.
- *
- * The `kill()` function kills the worker process without waiting for a graceful
- * disconnect, it has the same behavior as `worker.process.kill()`.
- *
- * This method is aliased as `worker.destroy()` for backwards compatibility.
- *
- * In a worker, `process.kill()` exists, but it is not this function;
- * it is [`kill()`](https://nodejs.org/docs/latest-v25.x/api/process.html#processkillpid-signal).
- * @since v0.9.12
- * @param [signal='SIGTERM'] Name of the kill signal to send to the worker process.
- */
- kill(signal?: string): void;
- destroy(signal?: string): void;
- /**
- * In a worker, this function will close all servers, wait for the `'close'` event
- * on those servers, and then disconnect the IPC channel.
- *
- * In the primary, an internal message is sent to the worker causing it to call `.disconnect()` on itself.
- *
- * Causes `.exitedAfterDisconnect` to be set.
- *
- * After a server is closed, it will no longer accept new connections,
- * but connections may be accepted by any other listening worker. Existing
- * connections will be allowed to close as usual. When no more connections exist,
- * see `server.close()`, the IPC channel to the worker will close allowing it
- * to die gracefully.
- *
- * The above applies _only_ to server connections, client connections are not
- * automatically closed by workers, and disconnect does not wait for them to close
- * before exiting.
- *
- * In a worker, `process.disconnect` exists, but it is not this function;
- * it is `disconnect()`.
- *
- * Because long living server connections may block workers from disconnecting, it
- * may be useful to send a message, so application specific actions may be taken to
- * close them. It also may be useful to implement a timeout, killing a worker if
- * the `'disconnect'` event has not been emitted after some time.
- *
- * ```js
- * import net from 'node:net';
- *
- * if (cluster.isPrimary) {
- * const worker = cluster.fork();
- * let timeout;
- *
- * worker.on('listening', (address) => {
- * worker.send('shutdown');
- * worker.disconnect();
- * timeout = setTimeout(() => {
- * worker.kill();
- * }, 2000);
- * });
- *
- * worker.on('disconnect', () => {
- * clearTimeout(timeout);
- * });
- *
- * } else if (cluster.isWorker) {
- * const server = net.createServer((socket) => {
- * // Connections never end
- * });
- *
- * server.listen(8000);
- *
- * process.on('message', (msg) => {
- * if (msg === 'shutdown') {
- * // Initiate graceful close of any connections to server
- * }
- * });
- * }
- * ```
- * @since v0.7.7
- * @return A reference to `worker`.
- */
- disconnect(): this;
- /**
- * This function returns `true` if the worker is connected to its primary via its
- * IPC channel, `false` otherwise. A worker is connected to its primary after it
- * has been created. It is disconnected after the `'disconnect'` event is emitted.
- * @since v0.11.14
- */
- isConnected(): boolean;
- /**
- * This function returns `true` if the worker's process has terminated (either
- * because of exiting or being signaled). Otherwise, it returns `false`.
- *
- * ```js
- * import cluster from 'node:cluster';
- * import http from 'node:http';
- * import { availableParallelism } from 'node:os';
- * import process from 'node:process';
- *
- * const numCPUs = availableParallelism();
- *
- * if (cluster.isPrimary) {
- * console.log(`Primary ${process.pid} is running`);
- *
- * // Fork workers.
- * for (let i = 0; i < numCPUs; i++) {
- * cluster.fork();
- * }
- *
- * cluster.on('fork', (worker) => {
- * console.log('worker is dead:', worker.isDead());
- * });
- *
- * cluster.on('exit', (worker, code, signal) => {
- * console.log('worker is dead:', worker.isDead());
- * });
- * } else {
- * // Workers can share any TCP connection. In this case, it is an HTTP server.
- * http.createServer((req, res) => {
- * res.writeHead(200);
- * res.end(`Current process\n ${process.pid}`);
- * process.kill(process.pid);
- * }).listen(8000);
- * }
- * ```
- * @since v0.11.14
- */
- isDead(): boolean;
- /**
- * This property is `true` if the worker exited due to `.disconnect()`.
- * If the worker exited any other way, it is `false`. If the
- * worker has not exited, it is `undefined`.
- *
- * The boolean `worker.exitedAfterDisconnect` allows distinguishing between
- * voluntary and accidental exit, the primary may choose not to respawn a worker
- * based on this value.
- *
- * ```js
- * cluster.on('exit', (worker, code, signal) => {
- * if (worker.exitedAfterDisconnect === true) {
- * console.log('Oh, it was just voluntary – no need to worry');
- * }
- * });
- *
- * // kill worker
- * worker.kill();
- * ```
- * @since v6.0.0
- */
- exitedAfterDisconnect: boolean;
- }
- interface Worker extends InternalEventEmitter {}
- type _Worker = Worker;
- namespace cluster {
- interface Worker extends _Worker {}
- interface WorkerOptions {
- id?: number | undefined;
- process?: child_process.ChildProcess | undefined;
- state?: string | undefined;
- }
- interface WorkerEventMap {
- "disconnect": [];
- "error": [error: Error];
- "exit": [code: number, signal: string];
- "listening": [address: Address];
- "message": [message: any, handle: child_process.SendHandle];
- "online": [];
- }
- interface ClusterSettings {
- /**
- * List of string arguments passed to the Node.js executable.
- * @default process.execArgv
- */
- execArgv?: string[] | undefined;
- /**
- * File path to worker file.
- * @default process.argv[1]
- */
- exec?: string | undefined;
- /**
- * String arguments passed to worker.
- * @default process.argv.slice(2)
- */
- args?: readonly string[] | undefined;
- /**
- * Whether or not to send output to parent's stdio.
- * @default false
- */
- silent?: boolean | undefined;
- /**
- * Configures the stdio of forked processes. Because the cluster module relies on IPC to function, this configuration must
- * contain an `'ipc'` entry. When this option is provided, it overrides `silent`. See [`child_prcess.spawn()`](https://nodejs.org/docs/latest-v25.x/api/child_process.html#child_processspawncommand-args-options)'s
- * [`stdio`](https://nodejs.org/docs/latest-v25.x/api/child_process.html#optionsstdio).
- */
- stdio?: any[] | undefined;
- /**
- * Sets the user identity of the process. (See [`setuid(2)`](https://man7.org/linux/man-pages/man2/setuid.2.html).)
- */
- uid?: number | undefined;
- /**
- * Sets the group identity of the process. (See [`setgid(2)`](https://man7.org/linux/man-pages/man2/setgid.2.html).)
- */
- gid?: number | undefined;
- /**
- * Sets inspector port of worker. This can be a number, or a function that takes no arguments and returns a number.
- * By default each worker gets its own port, incremented from the primary's `process.debugPort`.
- */
- inspectPort?: number | (() => number) | undefined;
- /**
- * Specify the kind of serialization used for sending messages between processes. Possible values are `'json'` and `'advanced'`.
- * See [Advanced serialization for `child_process`](https://nodejs.org/docs/latest-v25.x/api/child_process.html#advanced-serialization) for more details.
- * @default false
- */
- serialization?: "json" | "advanced" | undefined;
- /**
- * Current working directory of the worker process.
- * @default undefined (inherits from parent process)
- */
- cwd?: string | undefined;
- /**
- * Hide the forked processes console window that would normally be created on Windows systems.
- * @default false
- */
- windowsHide?: boolean | undefined;
- }
- interface Address {
- address: string;
- port: number;
- /**
- * The `addressType` is one of:
- *
- * * `4` (TCPv4)
- * * `6` (TCPv6)
- * * `-1` (Unix domain socket)
- * * `'udp4'` or `'udp6'` (UDPv4 or UDPv6)
- */
- addressType: 4 | 6 | -1 | "udp4" | "udp6";
- }
- interface ClusterEventMap {
- "disconnect": [worker: Worker];
- "exit": [worker: Worker, code: number, signal: string];
- "fork": [worker: Worker];
- "listening": [worker: Worker, address: Address];
- "message": [worker: Worker, message: any, handle: child_process.SendHandle];
- "online": [worker: Worker];
- "setup": [settings: ClusterSettings];
- }
- interface Cluster extends InternalEventEmitter {
- /**
- * A `Worker` object contains all public information and method about a worker.
- * In the primary it can be obtained using `cluster.workers`. In a worker
- * it can be obtained using `cluster.worker`.
- * @since v0.7.0
- */
- Worker: typeof Worker;
- disconnect(callback?: () => void): void;
- /**
- * Spawn a new worker process.
- *
- * This can only be called from the primary process.
- * @param env Key/value pairs to add to worker process environment.
- * @since v0.6.0
- */
- fork(env?: any): Worker;
- /** @deprecated since v16.0.0 - use isPrimary. */
- readonly isMaster: boolean;
- /**
- * True if the process is a primary. This is determined by the `process.env.NODE_UNIQUE_ID`. If `process.env.NODE_UNIQUE_ID`
- * is undefined, then `isPrimary` is `true`.
- * @since v16.0.0
- */
- readonly isPrimary: boolean;
- /**
- * True if the process is not a primary (it is the negation of `cluster.isPrimary`).
- * @since v0.6.0
- */
- readonly isWorker: boolean;
- /**
- * The scheduling policy, either `cluster.SCHED_RR` for round-robin or `cluster.SCHED_NONE` to leave it to the operating system. This is a
- * global setting and effectively frozen once either the first worker is spawned, or [`.setupPrimary()`](https://nodejs.org/docs/latest-v25.x/api/cluster.html#clustersetupprimarysettings)
- * is called, whichever comes first.
- *
- * `SCHED_RR` is the default on all operating systems except Windows. Windows will change to `SCHED_RR` once libuv is able to effectively distribute
- * IOCP handles without incurring a large performance hit.
- *
- * `cluster.schedulingPolicy` can also be set through the `NODE_CLUSTER_SCHED_POLICY` environment variable. Valid values are `'rr'` and `'none'`.
- * @since v0.11.2
- */
- schedulingPolicy: number;
- /**
- * After calling [`.setupPrimary()`](https://nodejs.org/docs/latest-v25.x/api/cluster.html#clustersetupprimarysettings)
- * (or [`.fork()`](https://nodejs.org/docs/latest-v25.x/api/cluster.html#clusterforkenv)) this settings object will contain
- * the settings, including the default values.
- *
- * This object is not intended to be changed or set manually.
- * @since v0.7.1
- */
- readonly settings: ClusterSettings;
- /** @deprecated since v16.0.0 - use [`.setupPrimary()`](https://nodejs.org/docs/latest-v25.x/api/cluster.html#clustersetupprimarysettings) instead. */
- setupMaster(settings?: ClusterSettings): void;
- /**
- * `setupPrimary` is used to change the default 'fork' behavior. Once called, the settings will be present in `cluster.settings`.
- *
- * Any settings changes only affect future calls to [`.fork()`](https://nodejs.org/docs/latest-v25.x/api/cluster.html#clusterforkenv)
- * and have no effect on workers that are already running.
- *
- * The only attribute of a worker that cannot be set via `.setupPrimary()` is the `env` passed to
- * [`.fork()`](https://nodejs.org/docs/latest-v25.x/api/cluster.html#clusterforkenv).
- *
- * The defaults above apply to the first call only; the defaults for later calls are the current values at the time of
- * `cluster.setupPrimary()` is called.
- *
- * ```js
- * import cluster from 'node:cluster';
- *
- * cluster.setupPrimary({
- * exec: 'worker.js',
- * args: ['--use', 'https'],
- * silent: true,
- * });
- * cluster.fork(); // https worker
- * cluster.setupPrimary({
- * exec: 'worker.js',
- * args: ['--use', 'http'],
- * });
- * cluster.fork(); // http worker
- * ```
- *
- * This can only be called from the primary process.
- * @since v16.0.0
- */
- setupPrimary(settings?: ClusterSettings): void;
- /**
- * A reference to the current worker object. Not available in the primary process.
- *
- * ```js
- * import cluster from 'node:cluster';
- *
- * if (cluster.isPrimary) {
- * console.log('I am primary');
- * cluster.fork();
- * cluster.fork();
- * } else if (cluster.isWorker) {
- * console.log(`I am worker #${cluster.worker.id}`);
- * }
- * ```
- * @since v0.7.0
- */
- readonly worker?: Worker;
- /**
- * A hash that stores the active worker objects, keyed by `id` field. This makes it easy to loop through all the workers. It is only available in the primary process.
- *
- * A worker is removed from `cluster.workers` after the worker has disconnected _and_ exited. The order between these two events cannot be determined in advance. However, it
- * is guaranteed that the removal from the `cluster.workers` list happens before the last `'disconnect'` or `'exit'` event is emitted.
- *
- * ```js
- * import cluster from 'node:cluster';
- *
- * for (const worker of Object.values(cluster.workers)) {
- * worker.send('big announcement to all workers');
- * }
- * ```
- * @since v0.7.0
- */
- readonly workers?: NodeJS.Dict;
- readonly SCHED_NONE: number;
- readonly SCHED_RR: number;
- }
- }
- var cluster: cluster.Cluster;
- export = cluster;
-}
-declare module "cluster" {
- import cluster = require("node:cluster");
- export = cluster;
-}
diff --git a/node_modules/@types/node/compatibility/iterators.d.ts b/node_modules/@types/node/compatibility/iterators.d.ts
deleted file mode 100644
index 156e785..0000000
--- a/node_modules/@types/node/compatibility/iterators.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// Backwards-compatible iterator interfaces, augmented with iterator helper methods by lib.esnext.iterator in TypeScript 5.6.
-// The IterableIterator interface does not contain these methods, which creates assignability issues in places where IteratorObjects
-// are expected (eg. DOM-compatible APIs) if lib.esnext.iterator is loaded.
-// Also ensures that iterators returned by the Node API, which inherit from Iterator.prototype, correctly expose the iterator helper methods
-// if lib.esnext.iterator is loaded.
-// TODO: remove once this package no longer supports TS 5.5, and replace NodeJS.BuiltinIteratorReturn with BuiltinIteratorReturn.
-
-// Placeholders for TS <5.6
-interface IteratorObject {}
-interface AsyncIteratorObject {}
-
-declare namespace NodeJS {
- // Populate iterator methods for TS <5.6
- interface Iterator extends globalThis.Iterator {}
- interface AsyncIterator extends globalThis.AsyncIterator {}
-
- // Polyfill for TS 5.6's instrinsic BuiltinIteratorReturn type, required for DOM-compatible iterators
- type BuiltinIteratorReturn = ReturnType extends
- globalThis.Iterator ? TReturn
- : any;
-}
diff --git a/node_modules/@types/node/console.d.ts b/node_modules/@types/node/console.d.ts
deleted file mode 100644
index b7f8833..0000000
--- a/node_modules/@types/node/console.d.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-declare module "node:console" {
- import { InspectOptions } from "node:util";
- namespace console {
- interface ConsoleOptions {
- stdout: NodeJS.WritableStream;
- stderr?: NodeJS.WritableStream | undefined;
- /**
- * Ignore errors when writing to the underlying streams.
- * @default true
- */
- ignoreErrors?: boolean | undefined;
- /**
- * Set color support for this `Console` instance. Setting to true enables coloring while inspecting
- * values. Setting to `false` disables coloring while inspecting values. Setting to `'auto'` makes color
- * support depend on the value of the `isTTY` property and the value returned by `getColorDepth()` on the
- * respective stream. This option can not be used, if `inspectOptions.colors` is set as well.
- * @default 'auto'
- */
- colorMode?: boolean | "auto" | undefined;
- /**
- * Specifies options that are passed along to
- * [`util.inspect()`](https://nodejs.org/docs/latest-v25.x/api/util.html#utilinspectobject-options).
- */
- inspectOptions?: InspectOptions | ReadonlyMap | undefined;
- /**
- * Set group indentation.
- * @default 2
- */
- groupIndentation?: number | undefined;
- }
- interface Console {
- readonly Console: {
- prototype: Console;
- new(stdout: NodeJS.WritableStream, stderr?: NodeJS.WritableStream, ignoreErrors?: boolean): Console;
- new(options: ConsoleOptions): Console;
- };
- assert(condition?: unknown, ...data: any[]): void;
- clear(): void;
- count(label?: string): void;
- countReset(label?: string): void;
- debug(...data: any[]): void;
- dir(item?: any, options?: InspectOptions): void;
- dirxml(...data: any[]): void;
- error(...data: any[]): void;
- group(...data: any[]): void;
- groupCollapsed(...data: any[]): void;
- groupEnd(): void;
- info(...data: any[]): void;
- log(...data: any[]): void;
- table(tabularData?: any, properties?: string[]): void;
- time(label?: string): void;
- timeEnd(label?: string): void;
- timeLog(label?: string, ...data: any[]): void;
- trace(...data: any[]): void;
- warn(...data: any[]): void;
- /**
- * This method does not display anything unless used in the inspector. The `console.profile()`
- * method starts a JavaScript CPU profile with an optional label until {@link profileEnd}
- * is called. The profile is then added to the Profile panel of the inspector.
- *
- * ```js
- * console.profile('MyLabel');
- * // Some code
- * console.profileEnd('MyLabel');
- * // Adds the profile 'MyLabel' to the Profiles panel of the inspector.
- * ```
- * @since v8.0.0
- */
- profile(label?: string): void;
- /**
- * This method does not display anything unless used in the inspector. Stops the current
- * JavaScript CPU profiling session if one has been started and prints the report to the
- * Profiles panel of the inspector. See {@link profile} for an example.
- *
- * If this method is called without a label, the most recently started profile is stopped.
- * @since v8.0.0
- */
- profileEnd(label?: string): void;
- /**
- * This method does not display anything unless used in the inspector. The `console.timeStamp()`
- * method adds an event with the label `'label'` to the Timeline panel of the inspector.
- * @since v8.0.0
- */
- timeStamp(label?: string): void;
- }
- }
- var console: console.Console;
- export = console;
-}
-declare module "console" {
- import console = require("node:console");
- export = console;
-}
diff --git a/node_modules/@types/node/constants.d.ts b/node_modules/@types/node/constants.d.ts
deleted file mode 100644
index a271f9a..0000000
--- a/node_modules/@types/node/constants.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-declare module "node:constants" {
- const constants:
- & typeof import("node:os").constants.dlopen
- & typeof import("node:os").constants.errno
- & typeof import("node:os").constants.priority
- & typeof import("node:os").constants.signals
- & typeof import("node:fs").constants
- & typeof import("node:crypto").constants;
- export = constants;
-}
-declare module "constants" {
- import constants = require("node:constants");
- export = constants;
-}
diff --git a/node_modules/@types/node/crypto.d.ts b/node_modules/@types/node/crypto.d.ts
deleted file mode 100644
index 1933d60..0000000
--- a/node_modules/@types/node/crypto.d.ts
+++ /dev/null
@@ -1,4058 +0,0 @@
-declare module "node:crypto" {
- import { NonSharedBuffer } from "node:buffer";
- import * as stream from "node:stream";
- import { PeerCertificate } from "node:tls";
- /**
- * SPKAC is a Certificate Signing Request mechanism originally implemented by
- * Netscape and was specified formally as part of HTML5's `keygen` element.
- *
- * `` is deprecated since [HTML 5.2](https://www.w3.org/TR/html52/changes.html#features-removed) and new projects
- * should not use this element anymore.
- *
- * The `node:crypto` module provides the `Certificate` class for working with SPKAC
- * data. The most common usage is handling output generated by the HTML5 `` element. Node.js uses [OpenSSL's SPKAC
- * implementation](https://www.openssl.org/docs/man3.0/man1/openssl-spkac.html) internally.
- * @since v0.11.8
- */
- class Certificate {
- /**
- * ```js
- * const { Certificate } = await import('node:crypto');
- * const spkac = getSpkacSomehow();
- * const challenge = Certificate.exportChallenge(spkac);
- * console.log(challenge.toString('utf8'));
- * // Prints: the challenge as a UTF8 string
- * ```
- * @since v9.0.0
- * @param encoding The `encoding` of the `spkac` string.
- * @return The challenge component of the `spkac` data structure, which includes a public key and a challenge.
- */
- static exportChallenge(spkac: BinaryLike): NonSharedBuffer;
- /**
- * ```js
- * const { Certificate } = await import('node:crypto');
- * const spkac = getSpkacSomehow();
- * const publicKey = Certificate.exportPublicKey(spkac);
- * console.log(publicKey);
- * // Prints: the public key as
- * ```
- * @since v9.0.0
- * @param encoding The `encoding` of the `spkac` string.
- * @return The public key component of the `spkac` data structure, which includes a public key and a challenge.
- */
- static exportPublicKey(spkac: BinaryLike, encoding?: string): NonSharedBuffer;
- /**
- * ```js
- * import { Buffer } from 'node:buffer';
- * const { Certificate } = await import('node:crypto');
- *
- * const spkac = getSpkacSomehow();
- * console.log(Certificate.verifySpkac(Buffer.from(spkac)));
- * // Prints: true or false
- * ```
- * @since v9.0.0
- * @param encoding The `encoding` of the `spkac` string.
- * @return `true` if the given `spkac` data structure is valid, `false` otherwise.
- */
- static verifySpkac(spkac: NodeJS.ArrayBufferView): boolean;
- /**
- * @deprecated
- * @param spkac
- * @returns The challenge component of the `spkac` data structure,
- * which includes a public key and a challenge.
- */
- exportChallenge(spkac: BinaryLike): NonSharedBuffer;
- /**
- * @deprecated
- * @param spkac
- * @param encoding The encoding of the spkac string.
- * @returns The public key component of the `spkac` data structure,
- * which includes a public key and a challenge.
- */
- exportPublicKey(spkac: BinaryLike, encoding?: string): NonSharedBuffer;
- /**
- * @deprecated
- * @param spkac
- * @returns `true` if the given `spkac` data structure is valid,
- * `false` otherwise.
- */
- verifySpkac(spkac: NodeJS.ArrayBufferView): boolean;
- }
- namespace constants {
- // https://nodejs.org/dist/latest-v25.x/docs/api/crypto.html#crypto-constants
- const OPENSSL_VERSION_NUMBER: number;
- /** Applies multiple bug workarounds within OpenSSL. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html for detail. */
- const SSL_OP_ALL: number;
- /** Instructs OpenSSL to allow a non-[EC]DHE-based key exchange mode for TLS v1.3 */
- const SSL_OP_ALLOW_NO_DHE_KEX: number;
- /** Allows legacy insecure renegotiation between OpenSSL and unpatched clients or servers. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */
- const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number;
- /** Attempts to use the server's preferences instead of the client's when selecting a cipher. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */
- const SSL_OP_CIPHER_SERVER_PREFERENCE: number;
- /** Instructs OpenSSL to use Cisco's version identifier of DTLS_BAD_VER. */
- const SSL_OP_CISCO_ANYCONNECT: number;
- /** Instructs OpenSSL to turn on cookie exchange. */
- const SSL_OP_COOKIE_EXCHANGE: number;
- /** Instructs OpenSSL to add server-hello extension from an early version of the cryptopro draft. */
- const SSL_OP_CRYPTOPRO_TLSEXT_BUG: number;
- /** Instructs OpenSSL to disable a SSL 3.0/TLS 1.0 vulnerability workaround added in OpenSSL 0.9.6d. */
- const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number;
- /** Allows initial connection to servers that do not support RI. */
- const SSL_OP_LEGACY_SERVER_CONNECT: number;
- /** Instructs OpenSSL to disable support for SSL/TLS compression. */
- const SSL_OP_NO_COMPRESSION: number;
- /** Instructs OpenSSL to disable encrypt-then-MAC. */
- const SSL_OP_NO_ENCRYPT_THEN_MAC: number;
- const SSL_OP_NO_QUERY_MTU: number;
- /** Instructs OpenSSL to disable renegotiation. */
- const SSL_OP_NO_RENEGOTIATION: number;
- /** Instructs OpenSSL to always start a new session when performing renegotiation. */
- const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number;
- /** Instructs OpenSSL to turn off SSL v2 */
- const SSL_OP_NO_SSLv2: number;
- /** Instructs OpenSSL to turn off SSL v3 */
- const SSL_OP_NO_SSLv3: number;
- /** Instructs OpenSSL to disable use of RFC4507bis tickets. */
- const SSL_OP_NO_TICKET: number;
- /** Instructs OpenSSL to turn off TLS v1 */
- const SSL_OP_NO_TLSv1: number;
- /** Instructs OpenSSL to turn off TLS v1.1 */
- const SSL_OP_NO_TLSv1_1: number;
- /** Instructs OpenSSL to turn off TLS v1.2 */
- const SSL_OP_NO_TLSv1_2: number;
- /** Instructs OpenSSL to turn off TLS v1.3 */
- const SSL_OP_NO_TLSv1_3: number;
- /** Instructs OpenSSL server to prioritize ChaCha20-Poly1305 when the client does. This option has no effect if `SSL_OP_CIPHER_SERVER_PREFERENCE` is not enabled. */
- const SSL_OP_PRIORITIZE_CHACHA: number;
- /** Instructs OpenSSL to disable version rollback attack detection. */
- const SSL_OP_TLS_ROLLBACK_BUG: number;
- const ENGINE_METHOD_RSA: number;
- const ENGINE_METHOD_DSA: number;
- const ENGINE_METHOD_DH: number;
- const ENGINE_METHOD_RAND: number;
- const ENGINE_METHOD_EC: number;
- const ENGINE_METHOD_CIPHERS: number;
- const ENGINE_METHOD_DIGESTS: number;
- const ENGINE_METHOD_PKEY_METHS: number;
- const ENGINE_METHOD_PKEY_ASN1_METHS: number;
- const ENGINE_METHOD_ALL: number;
- const ENGINE_METHOD_NONE: number;
- const DH_CHECK_P_NOT_SAFE_PRIME: number;
- const DH_CHECK_P_NOT_PRIME: number;
- const DH_UNABLE_TO_CHECK_GENERATOR: number;
- const DH_NOT_SUITABLE_GENERATOR: number;
- const RSA_PKCS1_PADDING: number;
- const RSA_SSLV23_PADDING: number;
- const RSA_NO_PADDING: number;
- const RSA_PKCS1_OAEP_PADDING: number;
- const RSA_X931_PADDING: number;
- const RSA_PKCS1_PSS_PADDING: number;
- /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the digest size when signing or verifying. */
- const RSA_PSS_SALTLEN_DIGEST: number;
- /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the maximum permissible value when signing data. */
- const RSA_PSS_SALTLEN_MAX_SIGN: number;
- /** Causes the salt length for RSA_PKCS1_PSS_PADDING to be determined automatically when verifying a signature. */
- const RSA_PSS_SALTLEN_AUTO: number;
- const POINT_CONVERSION_COMPRESSED: number;
- const POINT_CONVERSION_UNCOMPRESSED: number;
- const POINT_CONVERSION_HYBRID: number;
- /** Specifies the built-in default cipher list used by Node.js (colon-separated values). */
- const defaultCoreCipherList: string;
- /** Specifies the active default cipher list used by the current Node.js process (colon-separated values). */
- const defaultCipherList: string;
- }
- interface HashOptions extends stream.TransformOptions {
- /**
- * For XOF hash functions such as `shake256`, the
- * outputLength option can be used to specify the desired output length in bytes.
- */
- outputLength?: number | undefined;
- }
- /** @deprecated since v10.0.0 */
- const fips: boolean;
- /**
- * Creates and returns a `Hash` object that can be used to generate hash digests
- * using the given `algorithm`. Optional `options` argument controls stream
- * behavior. For XOF hash functions such as `'shake256'`, the `outputLength` option
- * can be used to specify the desired output length in bytes.
- *
- * The `algorithm` is dependent on the available algorithms supported by the
- * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc.
- * On recent releases of OpenSSL, `openssl list -digest-algorithms` will
- * display the available digest algorithms.
- *
- * Example: generating the sha256 sum of a file
- *
- * ```js
- * import {
- * createReadStream,
- * } from 'node:fs';
- * import { argv } from 'node:process';
- * const {
- * createHash,
- * } = await import('node:crypto');
- *
- * const filename = argv[2];
- *
- * const hash = createHash('sha256');
- *
- * const input = createReadStream(filename);
- * input.on('readable', () => {
- * // Only one element is going to be produced by the
- * // hash stream.
- * const data = input.read();
- * if (data)
- * hash.update(data);
- * else {
- * console.log(`${hash.digest('hex')} ${filename}`);
- * }
- * });
- * ```
- * @since v0.1.92
- * @param options `stream.transform` options
- */
- function createHash(algorithm: string, options?: HashOptions): Hash;
- /**
- * Creates and returns an `Hmac` object that uses the given `algorithm` and `key`.
- * Optional `options` argument controls stream behavior.
- *
- * The `algorithm` is dependent on the available algorithms supported by the
- * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc.
- * On recent releases of OpenSSL, `openssl list -digest-algorithms` will
- * display the available digest algorithms.
- *
- * The `key` is the HMAC key used to generate the cryptographic HMAC hash. If it is
- * a `KeyObject`, its type must be `secret`. If it is a string, please consider `caveats when using strings as inputs to cryptographic APIs`. If it was
- * obtained from a cryptographically secure source of entropy, such as {@link randomBytes} or {@link generateKey}, its length should not
- * exceed the block size of `algorithm` (e.g., 512 bits for SHA-256).
- *
- * Example: generating the sha256 HMAC of a file
- *
- * ```js
- * import {
- * createReadStream,
- * } from 'node:fs';
- * import { argv } from 'node:process';
- * const {
- * createHmac,
- * } = await import('node:crypto');
- *
- * const filename = argv[2];
- *
- * const hmac = createHmac('sha256', 'a secret');
- *
- * const input = createReadStream(filename);
- * input.on('readable', () => {
- * // Only one element is going to be produced by the
- * // hash stream.
- * const data = input.read();
- * if (data)
- * hmac.update(data);
- * else {
- * console.log(`${hmac.digest('hex')} ${filename}`);
- * }
- * });
- * ```
- * @since v0.1.94
- * @param options `stream.transform` options
- */
- function createHmac(algorithm: string, key: BinaryLike | KeyObject, options?: stream.TransformOptions): Hmac;
- // https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings
- type BinaryToTextEncoding = "base64" | "base64url" | "hex" | "binary";
- type CharacterEncoding = "utf8" | "utf-8" | "utf16le" | "utf-16le" | "latin1";
- type LegacyCharacterEncoding = "ascii" | "binary" | "ucs2" | "ucs-2";
- type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding;
- type ECDHKeyFormat = "compressed" | "uncompressed" | "hybrid";
- /**
- * The `Hash` class is a utility for creating hash digests of data. It can be
- * used in one of two ways:
- *
- * * As a `stream` that is both readable and writable, where data is written
- * to produce a computed hash digest on the readable side, or
- * * Using the `hash.update()` and `hash.digest()` methods to produce the
- * computed hash.
- *
- * The {@link createHash} method is used to create `Hash` instances. `Hash`objects are not to be created directly using the `new` keyword.
- *
- * Example: Using `Hash` objects as streams:
- *
- * ```js
- * const {
- * createHash,
- * } = await import('node:crypto');
- *
- * const hash = createHash('sha256');
- *
- * hash.on('readable', () => {
- * // Only one element is going to be produced by the
- * // hash stream.
- * const data = hash.read();
- * if (data) {
- * console.log(data.toString('hex'));
- * // Prints:
- * // 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50
- * }
- * });
- *
- * hash.write('some data to hash');
- * hash.end();
- * ```
- *
- * Example: Using `Hash` and piped streams:
- *
- * ```js
- * import { createReadStream } from 'node:fs';
- * import { stdout } from 'node:process';
- * const { createHash } = await import('node:crypto');
- *
- * const hash = createHash('sha256');
- *
- * const input = createReadStream('test.js');
- * input.pipe(hash).setEncoding('hex').pipe(stdout);
- * ```
- *
- * Example: Using the `hash.update()` and `hash.digest()` methods:
- *
- * ```js
- * const {
- * createHash,
- * } = await import('node:crypto');
- *
- * const hash = createHash('sha256');
- *
- * hash.update('some data to hash');
- * console.log(hash.digest('hex'));
- * // Prints:
- * // 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50
- * ```
- * @since v0.1.92
- */
- class Hash extends stream.Transform {
- private constructor();
- /**
- * Creates a new `Hash` object that contains a deep copy of the internal state
- * of the current `Hash` object.
- *
- * The optional `options` argument controls stream behavior. For XOF hash
- * functions such as `'shake256'`, the `outputLength` option can be used to
- * specify the desired output length in bytes.
- *
- * An error is thrown when an attempt is made to copy the `Hash` object after
- * its `hash.digest()` method has been called.
- *
- * ```js
- * // Calculate a rolling hash.
- * const {
- * createHash,
- * } = await import('node:crypto');
- *
- * const hash = createHash('sha256');
- *
- * hash.update('one');
- * console.log(hash.copy().digest('hex'));
- *
- * hash.update('two');
- * console.log(hash.copy().digest('hex'));
- *
- * hash.update('three');
- * console.log(hash.copy().digest('hex'));
- *
- * // Etc.
- * ```
- * @since v13.1.0
- * @param options `stream.transform` options
- */
- copy(options?: HashOptions): Hash;
- /**
- * Updates the hash content with the given `data`, the encoding of which
- * is given in `inputEncoding`.
- * If `encoding` is not provided, and the `data` is a string, an
- * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.
- *
- * This can be called many times with new data as it is streamed.
- * @since v0.1.92
- * @param inputEncoding The `encoding` of the `data` string.
- */
- update(data: BinaryLike): Hash;
- update(data: string, inputEncoding: Encoding): Hash;
- /**
- * Calculates the digest of all of the data passed to be hashed (using the `hash.update()` method).
- * If `encoding` is provided a string will be returned; otherwise
- * a `Buffer` is returned.
- *
- * The `Hash` object can not be used again after `hash.digest()` method has been
- * called. Multiple calls will cause an error to be thrown.
- * @since v0.1.92
- * @param encoding The `encoding` of the return value.
- */
- digest(): NonSharedBuffer;
- digest(encoding: BinaryToTextEncoding): string;
- }
- /**
- * The `Hmac` class is a utility for creating cryptographic HMAC digests. It can
- * be used in one of two ways:
- *
- * * As a `stream` that is both readable and writable, where data is written
- * to produce a computed HMAC digest on the readable side, or
- * * Using the `hmac.update()` and `hmac.digest()` methods to produce the
- * computed HMAC digest.
- *
- * The {@link createHmac} method is used to create `Hmac` instances. `Hmac`objects are not to be created directly using the `new` keyword.
- *
- * Example: Using `Hmac` objects as streams:
- *
- * ```js
- * const {
- * createHmac,
- * } = await import('node:crypto');
- *
- * const hmac = createHmac('sha256', 'a secret');
- *
- * hmac.on('readable', () => {
- * // Only one element is going to be produced by the
- * // hash stream.
- * const data = hmac.read();
- * if (data) {
- * console.log(data.toString('hex'));
- * // Prints:
- * // 7fd04df92f636fd450bc841c9418e5825c17f33ad9c87c518115a45971f7f77e
- * }
- * });
- *
- * hmac.write('some data to hash');
- * hmac.end();
- * ```
- *
- * Example: Using `Hmac` and piped streams:
- *
- * ```js
- * import { createReadStream } from 'node:fs';
- * import { stdout } from 'node:process';
- * const {
- * createHmac,
- * } = await import('node:crypto');
- *
- * const hmac = createHmac('sha256', 'a secret');
- *
- * const input = createReadStream('test.js');
- * input.pipe(hmac).pipe(stdout);
- * ```
- *
- * Example: Using the `hmac.update()` and `hmac.digest()` methods:
- *
- * ```js
- * const {
- * createHmac,
- * } = await import('node:crypto');
- *
- * const hmac = createHmac('sha256', 'a secret');
- *
- * hmac.update('some data to hash');
- * console.log(hmac.digest('hex'));
- * // Prints:
- * // 7fd04df92f636fd450bc841c9418e5825c17f33ad9c87c518115a45971f7f77e
- * ```
- * @since v0.1.94
- */
- class Hmac extends stream.Transform {
- private constructor();
- /**
- * Updates the `Hmac` content with the given `data`, the encoding of which
- * is given in `inputEncoding`.
- * If `encoding` is not provided, and the `data` is a string, an
- * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.
- *
- * This can be called many times with new data as it is streamed.
- * @since v0.1.94
- * @param inputEncoding The `encoding` of the `data` string.
- */
- update(data: BinaryLike): Hmac;
- update(data: string, inputEncoding: Encoding): Hmac;
- /**
- * Calculates the HMAC digest of all of the data passed using `hmac.update()`.
- * If `encoding` is
- * provided a string is returned; otherwise a `Buffer` is returned;
- *
- * The `Hmac` object can not be used again after `hmac.digest()` has been
- * called. Multiple calls to `hmac.digest()` will result in an error being thrown.
- * @since v0.1.94
- * @param encoding The `encoding` of the return value.
- */
- digest(): NonSharedBuffer;
- digest(encoding: BinaryToTextEncoding): string;
- }
- type KeyFormat = "pem" | "der" | "jwk";
- type KeyObjectType = "secret" | "public" | "private";
- type PublicKeyExportType = "pkcs1" | "spki";
- type PrivateKeyExportType = "pkcs1" | "pkcs8" | "sec1";
- type KeyExportOptions =
- | SymmetricKeyExportOptions
- | PublicKeyExportOptions
- | PrivateKeyExportOptions
- | JwkKeyExportOptions;
- interface SymmetricKeyExportOptions {
- format?: "buffer" | undefined;
- }
- interface PublicKeyExportOptions {
- type: T;
- format: Exclude;
- }
- interface PrivateKeyExportOptions {
- type: T;
- format: Exclude;
- cipher?: string | undefined;
- passphrase?: string | Buffer | undefined;
- }
- interface JwkKeyExportOptions {
- format: "jwk";
- }
- interface KeyPairExportOptions<
- TPublic extends PublicKeyExportType = PublicKeyExportType,
- TPrivate extends PrivateKeyExportType = PrivateKeyExportType,
- > {
- publicKeyEncoding?: PublicKeyExportOptions | JwkKeyExportOptions | undefined;
- privateKeyEncoding?: PrivateKeyExportOptions | JwkKeyExportOptions | undefined;
- }
- type KeyExportResult = T extends { format: infer F extends KeyFormat }
- ? { der: NonSharedBuffer; jwk: webcrypto.JsonWebKey; pem: string }[F]
- : Default;
- interface KeyPairExportResult {
- publicKey: KeyExportResult;
- privateKey: KeyExportResult;
- }
- type KeyPairExportCallback = (
- err: Error | null,
- publicKey: KeyExportResult,
- privateKey: KeyExportResult,
- ) => void;
- type MLDSAKeyType = `ml-dsa-${44 | 65 | 87}`;
- type MLKEMKeyType = `ml-kem-${1024 | 512 | 768}`;
- type SLHDSAKeyType = `slh-dsa-${"sha2" | "shake"}-${128 | 192 | 256}${"f" | "s"}`;
- type AsymmetricKeyType =
- | "dh"
- | "dsa"
- | "ec"
- | "ed25519"
- | "ed448"
- | MLDSAKeyType
- | MLKEMKeyType
- | "rsa-pss"
- | "rsa"
- | SLHDSAKeyType
- | "x25519"
- | "x448";
- interface AsymmetricKeyDetails {
- /**
- * Key size in bits (RSA, DSA).
- */
- modulusLength?: number;
- /**
- * Public exponent (RSA).
- */
- publicExponent?: bigint;
- /**
- * Name of the message digest (RSA-PSS).
- */
- hashAlgorithm?: string;
- /**
- * Name of the message digest used by MGF1 (RSA-PSS).
- */
- mgf1HashAlgorithm?: string;
- /**
- * Minimal salt length in bytes (RSA-PSS).
- */
- saltLength?: number;
- /**
- * Size of q in bits (DSA).
- */
- divisorLength?: number;
- /**
- * Name of the curve (EC).
- */
- namedCurve?: string;
- }
- /**
- * Node.js uses a `KeyObject` class to represent a symmetric or asymmetric key,
- * and each kind of key exposes different functions. The {@link createSecretKey}, {@link createPublicKey} and {@link createPrivateKey} methods are used to create `KeyObject`instances. `KeyObject`
- * objects are not to be created directly using the `new`keyword.
- *
- * Most applications should consider using the new `KeyObject` API instead of
- * passing keys as strings or `Buffer`s due to improved security features.
- *
- * `KeyObject` instances can be passed to other threads via `postMessage()`.
- * The receiver obtains a cloned `KeyObject`, and the `KeyObject` does not need to
- * be listed in the `transferList` argument.
- * @since v11.6.0
- */
- class KeyObject {
- private constructor();
- /**
- * Example: Converting a `CryptoKey` instance to a `KeyObject`:
- *
- * ```js
- * const { KeyObject } = await import('node:crypto');
- * const { subtle } = globalThis.crypto;
- *
- * const key = await subtle.generateKey({
- * name: 'HMAC',
- * hash: 'SHA-256',
- * length: 256,
- * }, true, ['sign', 'verify']);
- *
- * const keyObject = KeyObject.from(key);
- * console.log(keyObject.symmetricKeySize);
- * // Prints: 32 (symmetric key size in bytes)
- * ```
- * @since v15.0.0
- */
- static from(key: webcrypto.CryptoKey): KeyObject;
- /**
- * For asymmetric keys, this property represents the type of the key. See the
- * supported [asymmetric key types](https://nodejs.org/docs/latest-v25.x/api/crypto.html#asymmetric-key-types).
- *
- * This property is `undefined` for unrecognized `KeyObject` types and symmetric
- * keys.
- * @since v11.6.0
- */
- asymmetricKeyType?: AsymmetricKeyType;
- /**
- * This property exists only on asymmetric keys. Depending on the type of the key,
- * this object contains information about the key. None of the information obtained
- * through this property can be used to uniquely identify a key or to compromise
- * the security of the key.
- *
- * For RSA-PSS keys, if the key material contains a `RSASSA-PSS-params` sequence,
- * the `hashAlgorithm`, `mgf1HashAlgorithm`, and `saltLength` properties will be
- * set.
- *
- * Other key details might be exposed via this API using additional attributes.
- * @since v15.7.0
- */
- asymmetricKeyDetails?: AsymmetricKeyDetails;
- /**
- * For symmetric keys, the following encoding options can be used:
- *
- * For public keys, the following encoding options can be used:
- *
- * For private keys, the following encoding options can be used:
- *
- * The result type depends on the selected encoding format, when PEM the
- * result is a string, when DER it will be a buffer containing the data
- * encoded as DER, when [JWK](https://tools.ietf.org/html/rfc7517) it will be an object.
- *
- * When [JWK](https://tools.ietf.org/html/rfc7517) encoding format was selected, all other encoding options are
- * ignored.
- *
- * PKCS#1, SEC1, and PKCS#8 type keys can be encrypted by using a combination of
- * the `cipher` and `format` options. The PKCS#8 `type` can be used with any`format` to encrypt any key algorithm (RSA, EC, or DH) by specifying a`cipher`. PKCS#1 and SEC1 can only be
- * encrypted by specifying a `cipher`when the PEM `format` is used. For maximum compatibility, use PKCS#8 for
- * encrypted private keys. Since PKCS#8 defines its own
- * encryption mechanism, PEM-level encryption is not supported when encrypting
- * a PKCS#8 key. See [RFC 5208](https://www.rfc-editor.org/rfc/rfc5208.txt) for PKCS#8 encryption and [RFC 1421](https://www.rfc-editor.org/rfc/rfc1421.txt) for
- * PKCS#1 and SEC1 encryption.
- * @since v11.6.0
- */
- export(options?: T): KeyExportResult;
- /**
- * Returns `true` or `false` depending on whether the keys have exactly the same
- * type, value, and parameters. This method is not [constant time](https://en.wikipedia.org/wiki/Timing_attack).
- * @since v17.7.0, v16.15.0
- * @param otherKeyObject A `KeyObject` with which to compare `keyObject`.
- */
- equals(otherKeyObject: KeyObject): boolean;
- /**
- * For secret keys, this property represents the size of the key in bytes. This
- * property is `undefined` for asymmetric keys.
- * @since v11.6.0
- */
- symmetricKeySize?: number;
- /**
- * Converts a `KeyObject` instance to a `CryptoKey`.
- * @since 22.10.0
- */
- toCryptoKey(
- algorithm:
- | webcrypto.AlgorithmIdentifier
- | webcrypto.RsaHashedImportParams
- | webcrypto.EcKeyImportParams
- | webcrypto.HmacImportParams,
- extractable: boolean,
- keyUsages: readonly webcrypto.KeyUsage[],
- ): webcrypto.CryptoKey;
- /**
- * Depending on the type of this `KeyObject`, this property is either`'secret'` for secret (symmetric) keys, `'public'` for public (asymmetric) keys
- * or `'private'` for private (asymmetric) keys.
- * @since v11.6.0
- */
- type: KeyObjectType;
- }
- type CipherCCMTypes = "aes-128-ccm" | "aes-192-ccm" | "aes-256-ccm";
- type CipherGCMTypes = "aes-128-gcm" | "aes-192-gcm" | "aes-256-gcm";
- type CipherOCBTypes = "aes-128-ocb" | "aes-192-ocb" | "aes-256-ocb";
- type CipherChaCha20Poly1305Types = "chacha20-poly1305";
- type BinaryLike = string | NodeJS.ArrayBufferView;
- type CipherKey = BinaryLike | KeyObject;
- interface CipherCCMOptions extends stream.TransformOptions {
- authTagLength: number;
- }
- interface CipherGCMOptions extends stream.TransformOptions {
- authTagLength?: number | undefined;
- }
- interface CipherOCBOptions extends stream.TransformOptions {
- authTagLength: number;
- }
- interface CipherChaCha20Poly1305Options extends stream.TransformOptions {
- /** @default 16 */
- authTagLength?: number | undefined;
- }
- /**
- * Creates and returns a `Cipher` object, with the given `algorithm`, `key` and
- * initialization vector (`iv`).
- *
- * The `options` argument controls stream behavior and is optional except when a
- * cipher in CCM or OCB mode (e.g. `'aes-128-ccm'`) is used. In that case, the`authTagLength` option is required and specifies the length of the
- * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to set the length of the authentication
- * tag that will be returned by `getAuthTag()` and defaults to 16 bytes.
- * For `chacha20-poly1305`, the `authTagLength` option defaults to 16 bytes.
- *
- * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On
- * recent OpenSSL releases, `openssl list -cipher-algorithms` will
- * display the available cipher algorithms.
- *
- * The `key` is the raw key used by the `algorithm` and `iv` is an [initialization vector](https://en.wikipedia.org/wiki/Initialization_vector). Both arguments must be `'utf8'` encoded
- * strings,`Buffers`, `TypedArray`, or `DataView`s. The `key` may optionally be
- * a `KeyObject` of type `secret`. If the cipher does not need
- * an initialization vector, `iv` may be `null`.
- *
- * When passing strings for `key` or `iv`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * Initialization vectors should be unpredictable and unique; ideally, they will be
- * cryptographically random. They do not have to be secret: IVs are typically just
- * added to ciphertext messages unencrypted. It may sound contradictory that
- * something has to be unpredictable and unique, but does not have to be secret;
- * remember that an attacker must not be able to predict ahead of time what a
- * given IV will be.
- * @since v0.1.94
- * @param options `stream.transform` options
- */
- function createCipheriv(
- algorithm: CipherCCMTypes,
- key: CipherKey,
- iv: BinaryLike,
- options: CipherCCMOptions,
- ): CipherCCM;
- function createCipheriv(
- algorithm: CipherOCBTypes,
- key: CipherKey,
- iv: BinaryLike,
- options: CipherOCBOptions,
- ): CipherOCB;
- function createCipheriv(
- algorithm: CipherGCMTypes,
- key: CipherKey,
- iv: BinaryLike,
- options?: CipherGCMOptions,
- ): CipherGCM;
- function createCipheriv(
- algorithm: CipherChaCha20Poly1305Types,
- key: CipherKey,
- iv: BinaryLike,
- options?: CipherChaCha20Poly1305Options,
- ): CipherChaCha20Poly1305;
- function createCipheriv(
- algorithm: string,
- key: CipherKey,
- iv: BinaryLike | null,
- options?: stream.TransformOptions,
- ): Cipheriv;
- /**
- * Instances of the `Cipheriv` class are used to encrypt data. The class can be
- * used in one of two ways:
- *
- * * As a `stream` that is both readable and writable, where plain unencrypted
- * data is written to produce encrypted data on the readable side, or
- * * Using the `cipher.update()` and `cipher.final()` methods to produce
- * the encrypted data.
- *
- * The {@link createCipheriv} method is
- * used to create `Cipheriv` instances. `Cipheriv` objects are not to be created
- * directly using the `new` keyword.
- *
- * Example: Using `Cipheriv` objects as streams:
- *
- * ```js
- * const {
- * scrypt,
- * randomFill,
- * createCipheriv,
- * } = await import('node:crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- *
- * // First, we'll generate the key. The key length is dependent on the algorithm.
- * // In this case for aes192, it is 24 bytes (192 bits).
- * scrypt(password, 'salt', 24, (err, key) => {
- * if (err) throw err;
- * // Then, we'll generate a random initialization vector
- * randomFill(new Uint8Array(16), (err, iv) => {
- * if (err) throw err;
- *
- * // Once we have the key and iv, we can create and use the cipher...
- * const cipher = createCipheriv(algorithm, key, iv);
- *
- * let encrypted = '';
- * cipher.setEncoding('hex');
- *
- * cipher.on('data', (chunk) => encrypted += chunk);
- * cipher.on('end', () => console.log(encrypted));
- *
- * cipher.write('some clear text data');
- * cipher.end();
- * });
- * });
- * ```
- *
- * Example: Using `Cipheriv` and piped streams:
- *
- * ```js
- * import {
- * createReadStream,
- * createWriteStream,
- * } from 'node:fs';
- *
- * import {
- * pipeline,
- * } from 'node:stream';
- *
- * const {
- * scrypt,
- * randomFill,
- * createCipheriv,
- * } = await import('node:crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- *
- * // First, we'll generate the key. The key length is dependent on the algorithm.
- * // In this case for aes192, it is 24 bytes (192 bits).
- * scrypt(password, 'salt', 24, (err, key) => {
- * if (err) throw err;
- * // Then, we'll generate a random initialization vector
- * randomFill(new Uint8Array(16), (err, iv) => {
- * if (err) throw err;
- *
- * const cipher = createCipheriv(algorithm, key, iv);
- *
- * const input = createReadStream('test.js');
- * const output = createWriteStream('test.enc');
- *
- * pipeline(input, cipher, output, (err) => {
- * if (err) throw err;
- * });
- * });
- * });
- * ```
- *
- * Example: Using the `cipher.update()` and `cipher.final()` methods:
- *
- * ```js
- * const {
- * scrypt,
- * randomFill,
- * createCipheriv,
- * } = await import('node:crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- *
- * // First, we'll generate the key. The key length is dependent on the algorithm.
- * // In this case for aes192, it is 24 bytes (192 bits).
- * scrypt(password, 'salt', 24, (err, key) => {
- * if (err) throw err;
- * // Then, we'll generate a random initialization vector
- * randomFill(new Uint8Array(16), (err, iv) => {
- * if (err) throw err;
- *
- * const cipher = createCipheriv(algorithm, key, iv);
- *
- * let encrypted = cipher.update('some clear text data', 'utf8', 'hex');
- * encrypted += cipher.final('hex');
- * console.log(encrypted);
- * });
- * });
- * ```
- * @since v0.1.94
- */
- class Cipheriv extends stream.Transform {
- private constructor();
- /**
- * Updates the cipher with `data`. If the `inputEncoding` argument is given,
- * the `data`argument is a string using the specified encoding. If the `inputEncoding`argument is not given, `data` must be a `Buffer`, `TypedArray`, or `DataView`. If `data` is a `Buffer`,
- * `TypedArray`, or `DataView`, then `inputEncoding` is ignored.
- *
- * The `outputEncoding` specifies the output format of the enciphered
- * data. If the `outputEncoding`is specified, a string using the specified encoding is returned. If no`outputEncoding` is provided, a `Buffer` is returned.
- *
- * The `cipher.update()` method can be called multiple times with new data until `cipher.final()` is called. Calling `cipher.update()` after `cipher.final()` will result in an error being
- * thrown.
- * @since v0.1.94
- * @param inputEncoding The `encoding` of the data.
- * @param outputEncoding The `encoding` of the return value.
- */
- update(data: BinaryLike): NonSharedBuffer;
- update(data: string, inputEncoding: Encoding): NonSharedBuffer;
- update(data: NodeJS.ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string;
- update(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string;
- /**
- * Once the `cipher.final()` method has been called, the `Cipheriv` object can no
- * longer be used to encrypt data. Attempts to call `cipher.final()` more than
- * once will result in an error being thrown.
- * @since v0.1.94
- * @param outputEncoding The `encoding` of the return value.
- * @return Any remaining enciphered contents. If `outputEncoding` is specified, a string is returned. If an `outputEncoding` is not provided, a {@link Buffer} is returned.
- */
- final(): NonSharedBuffer;
- final(outputEncoding: BufferEncoding): string;
- /**
- * When using block encryption algorithms, the `Cipheriv` class will automatically
- * add padding to the input data to the appropriate block size. To disable the
- * default padding call `cipher.setAutoPadding(false)`.
- *
- * When `autoPadding` is `false`, the length of the entire input data must be a
- * multiple of the cipher's block size or `cipher.final()` will throw an error.
- * Disabling automatic padding is useful for non-standard padding, for instance
- * using `0x0` instead of PKCS padding.
- *
- * The `cipher.setAutoPadding()` method must be called before `cipher.final()`.
- * @since v0.7.1
- * @param [autoPadding=true]
- * @return for method chaining.
- */
- setAutoPadding(autoPadding?: boolean): this;
- }
- interface CipherCCM extends Cipheriv {
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options: {
- plaintextLength: number;
- },
- ): this;
- getAuthTag(): NonSharedBuffer;
- }
- interface CipherGCM extends Cipheriv {
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options?: {
- plaintextLength: number;
- },
- ): this;
- getAuthTag(): NonSharedBuffer;
- }
- interface CipherOCB extends Cipheriv {
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options?: {
- plaintextLength: number;
- },
- ): this;
- getAuthTag(): NonSharedBuffer;
- }
- interface CipherChaCha20Poly1305 extends Cipheriv {
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options: {
- plaintextLength: number;
- },
- ): this;
- getAuthTag(): NonSharedBuffer;
- }
- /**
- * Creates and returns a `Decipheriv` object that uses the given `algorithm`, `key` and initialization vector (`iv`).
- *
- * The `options` argument controls stream behavior and is optional except when a
- * cipher in CCM or OCB mode (e.g. `'aes-128-ccm'`) is used. In that case, the `authTagLength` option is required and specifies the length of the
- * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength` option is not required but can be used to restrict accepted authentication tags
- * to those with the specified length.
- * For `chacha20-poly1305`, the `authTagLength` option defaults to 16 bytes.
- *
- * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On
- * recent OpenSSL releases, `openssl list -cipher-algorithms` will
- * display the available cipher algorithms.
- *
- * The `key` is the raw key used by the `algorithm` and `iv` is an [initialization vector](https://en.wikipedia.org/wiki/Initialization_vector). Both arguments must be `'utf8'` encoded
- * strings,`Buffers`, `TypedArray`, or `DataView`s. The `key` may optionally be
- * a `KeyObject` of type `secret`. If the cipher does not need
- * an initialization vector, `iv` may be `null`.
- *
- * When passing strings for `key` or `iv`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * Initialization vectors should be unpredictable and unique; ideally, they will be
- * cryptographically random. They do not have to be secret: IVs are typically just
- * added to ciphertext messages unencrypted. It may sound contradictory that
- * something has to be unpredictable and unique, but does not have to be secret;
- * remember that an attacker must not be able to predict ahead of time what a given
- * IV will be.
- * @since v0.1.94
- * @param options `stream.transform` options
- */
- function createDecipheriv(
- algorithm: CipherCCMTypes,
- key: CipherKey,
- iv: BinaryLike,
- options: CipherCCMOptions,
- ): DecipherCCM;
- function createDecipheriv(
- algorithm: CipherOCBTypes,
- key: CipherKey,
- iv: BinaryLike,
- options: CipherOCBOptions,
- ): DecipherOCB;
- function createDecipheriv(
- algorithm: CipherGCMTypes,
- key: CipherKey,
- iv: BinaryLike,
- options?: CipherGCMOptions,
- ): DecipherGCM;
- function createDecipheriv(
- algorithm: CipherChaCha20Poly1305Types,
- key: CipherKey,
- iv: BinaryLike,
- options?: CipherChaCha20Poly1305Options,
- ): DecipherChaCha20Poly1305;
- function createDecipheriv(
- algorithm: string,
- key: CipherKey,
- iv: BinaryLike | null,
- options?: stream.TransformOptions,
- ): Decipheriv;
- /**
- * Instances of the `Decipheriv` class are used to decrypt data. The class can be
- * used in one of two ways:
- *
- * * As a `stream` that is both readable and writable, where plain encrypted
- * data is written to produce unencrypted data on the readable side, or
- * * Using the `decipher.update()` and `decipher.final()` methods to
- * produce the unencrypted data.
- *
- * The {@link createDecipheriv} method is
- * used to create `Decipheriv` instances. `Decipheriv` objects are not to be created
- * directly using the `new` keyword.
- *
- * Example: Using `Decipheriv` objects as streams:
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- * const {
- * scryptSync,
- * createDecipheriv,
- * } = await import('node:crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- * // Key length is dependent on the algorithm. In this case for aes192, it is
- * // 24 bytes (192 bits).
- * // Use the async `crypto.scrypt()` instead.
- * const key = scryptSync(password, 'salt', 24);
- * // The IV is usually passed along with the ciphertext.
- * const iv = Buffer.alloc(16, 0); // Initialization vector.
- *
- * const decipher = createDecipheriv(algorithm, key, iv);
- *
- * let decrypted = '';
- * decipher.on('readable', () => {
- * let chunk;
- * while (null !== (chunk = decipher.read())) {
- * decrypted += chunk.toString('utf8');
- * }
- * });
- * decipher.on('end', () => {
- * console.log(decrypted);
- * // Prints: some clear text data
- * });
- *
- * // Encrypted with same algorithm, key and iv.
- * const encrypted =
- * 'e5f79c5915c02171eec6b212d5520d44480993d7d622a7c4c2da32f6efda0ffa';
- * decipher.write(encrypted, 'hex');
- * decipher.end();
- * ```
- *
- * Example: Using `Decipheriv` and piped streams:
- *
- * ```js
- * import {
- * createReadStream,
- * createWriteStream,
- * } from 'node:fs';
- * import { Buffer } from 'node:buffer';
- * const {
- * scryptSync,
- * createDecipheriv,
- * } = await import('node:crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- * // Use the async `crypto.scrypt()` instead.
- * const key = scryptSync(password, 'salt', 24);
- * // The IV is usually passed along with the ciphertext.
- * const iv = Buffer.alloc(16, 0); // Initialization vector.
- *
- * const decipher = createDecipheriv(algorithm, key, iv);
- *
- * const input = createReadStream('test.enc');
- * const output = createWriteStream('test.js');
- *
- * input.pipe(decipher).pipe(output);
- * ```
- *
- * Example: Using the `decipher.update()` and `decipher.final()` methods:
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- * const {
- * scryptSync,
- * createDecipheriv,
- * } = await import('node:crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- * // Use the async `crypto.scrypt()` instead.
- * const key = scryptSync(password, 'salt', 24);
- * // The IV is usually passed along with the ciphertext.
- * const iv = Buffer.alloc(16, 0); // Initialization vector.
- *
- * const decipher = createDecipheriv(algorithm, key, iv);
- *
- * // Encrypted using same algorithm, key and iv.
- * const encrypted =
- * 'e5f79c5915c02171eec6b212d5520d44480993d7d622a7c4c2da32f6efda0ffa';
- * let decrypted = decipher.update(encrypted, 'hex', 'utf8');
- * decrypted += decipher.final('utf8');
- * console.log(decrypted);
- * // Prints: some clear text data
- * ```
- * @since v0.1.94
- */
- class Decipheriv extends stream.Transform {
- private constructor();
- /**
- * Updates the decipher with `data`. If the `inputEncoding` argument is given,
- * the `data` argument is a string using the specified encoding. If the `inputEncoding` argument is not given, `data` must be a `Buffer`. If `data` is a `Buffer` then `inputEncoding` is
- * ignored.
- *
- * The `outputEncoding` specifies the output format of the enciphered
- * data. If the `outputEncoding` is specified, a string using the specified encoding is returned. If no `outputEncoding` is provided, a `Buffer` is returned.
- *
- * The `decipher.update()` method can be called multiple times with new data until `decipher.final()` is called. Calling `decipher.update()` after `decipher.final()` will result in an error
- * being thrown.
- * @since v0.1.94
- * @param inputEncoding The `encoding` of the `data` string.
- * @param outputEncoding The `encoding` of the return value.
- */
- update(data: NodeJS.ArrayBufferView): NonSharedBuffer;
- update(data: string, inputEncoding: Encoding): NonSharedBuffer;
- update(data: NodeJS.ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string;
- update(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string;
- /**
- * Once the `decipher.final()` method has been called, the `Decipheriv` object can
- * no longer be used to decrypt data. Attempts to call `decipher.final()` more
- * than once will result in an error being thrown.
- * @since v0.1.94
- * @param outputEncoding The `encoding` of the return value.
- * @return Any remaining deciphered contents. If `outputEncoding` is specified, a string is returned. If an `outputEncoding` is not provided, a {@link Buffer} is returned.
- */
- final(): NonSharedBuffer;
- final(outputEncoding: BufferEncoding): string;
- /**
- * When data has been encrypted without standard block padding, calling `decipher.setAutoPadding(false)` will disable automatic padding to prevent `decipher.final()` from checking for and
- * removing padding.
- *
- * Turning auto padding off will only work if the input data's length is a
- * multiple of the ciphers block size.
- *
- * The `decipher.setAutoPadding()` method must be called before `decipher.final()`.
- * @since v0.7.1
- * @param [autoPadding=true]
- * @return for method chaining.
- */
- setAutoPadding(auto_padding?: boolean): this;
- }
- interface DecipherCCM extends Decipheriv {
- setAuthTag(buffer: NodeJS.ArrayBufferView): this;
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options: {
- plaintextLength: number;
- },
- ): this;
- }
- interface DecipherGCM extends Decipheriv {
- setAuthTag(buffer: NodeJS.ArrayBufferView): this;
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options?: {
- plaintextLength: number;
- },
- ): this;
- }
- interface DecipherOCB extends Decipheriv {
- setAuthTag(buffer: NodeJS.ArrayBufferView): this;
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options?: {
- plaintextLength: number;
- },
- ): this;
- }
- interface DecipherChaCha20Poly1305 extends Decipheriv {
- setAuthTag(buffer: NodeJS.ArrayBufferView): this;
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options: {
- plaintextLength: number;
- },
- ): this;
- }
- interface PrivateKeyInput {
- key: string | Buffer;
- format?: KeyFormat | undefined;
- type?: PrivateKeyExportType | undefined;
- passphrase?: string | Buffer | undefined;
- encoding?: string | undefined;
- }
- interface PublicKeyInput {
- key: string | Buffer;
- format?: KeyFormat | undefined;
- type?: PublicKeyExportType | undefined;
- encoding?: string | undefined;
- }
- /**
- * Asynchronously generates a new random secret key of the given `length`. The `type` will determine which validations will be performed on the `length`.
- *
- * ```js
- * const {
- * generateKey,
- * } = await import('node:crypto');
- *
- * generateKey('hmac', { length: 512 }, (err, key) => {
- * if (err) throw err;
- * console.log(key.export().toString('hex')); // 46e..........620
- * });
- * ```
- *
- * The size of a generated HMAC key should not exceed the block size of the
- * underlying hash function. See {@link createHmac} for more information.
- * @since v15.0.0
- * @param type The intended use of the generated secret key. Currently accepted values are `'hmac'` and `'aes'`.
- */
- function generateKey(
- type: "hmac" | "aes",
- options: {
- length: number;
- },
- callback: (err: Error | null, key: KeyObject) => void,
- ): void;
- /**
- * Synchronously generates a new random secret key of the given `length`. The `type` will determine which validations will be performed on the `length`.
- *
- * ```js
- * const {
- * generateKeySync,
- * } = await import('node:crypto');
- *
- * const key = generateKeySync('hmac', { length: 512 });
- * console.log(key.export().toString('hex')); // e89..........41e
- * ```
- *
- * The size of a generated HMAC key should not exceed the block size of the
- * underlying hash function. See {@link createHmac} for more information.
- * @since v15.0.0
- * @param type The intended use of the generated secret key. Currently accepted values are `'hmac'` and `'aes'`.
- */
- function generateKeySync(
- type: "hmac" | "aes",
- options: {
- length: number;
- },
- ): KeyObject;
- interface JsonWebKeyInput {
- key: webcrypto.JsonWebKey;
- format: "jwk";
- }
- /**
- * Creates and returns a new key object containing a private key. If `key` is a
- * string or `Buffer`, `format` is assumed to be `'pem'`; otherwise, `key` must be an object with the properties described above.
- *
- * If the private key is encrypted, a `passphrase` must be specified. The length
- * of the passphrase is limited to 1024 bytes.
- * @since v11.6.0
- */
- function createPrivateKey(key: PrivateKeyInput | string | Buffer | JsonWebKeyInput): KeyObject;
- /**
- * Creates and returns a new key object containing a public key. If `key` is a
- * string or `Buffer`, `format` is assumed to be `'pem'`; if `key` is a `KeyObject` with type `'private'`, the public key is derived from the given private key;
- * otherwise, `key` must be an object with the properties described above.
- *
- * If the format is `'pem'`, the `'key'` may also be an X.509 certificate.
- *
- * Because public keys can be derived from private keys, a private key may be
- * passed instead of a public key. In that case, this function behaves as if {@link createPrivateKey} had been called, except that the type of the
- * returned `KeyObject` will be `'public'` and that the private key cannot be
- * extracted from the returned `KeyObject`. Similarly, if a `KeyObject` with type `'private'` is given, a new `KeyObject` with type `'public'` will be returned
- * and it will be impossible to extract the private key from the returned object.
- * @since v11.6.0
- */
- function createPublicKey(key: PublicKeyInput | string | Buffer | KeyObject | JsonWebKeyInput): KeyObject;
- /**
- * Creates and returns a new key object containing a secret key for symmetric
- * encryption or `Hmac`.
- * @since v11.6.0
- * @param encoding The string encoding when `key` is a string.
- */
- function createSecretKey(key: NodeJS.ArrayBufferView): KeyObject;
- function createSecretKey(key: string, encoding: BufferEncoding): KeyObject;
- /**
- * Creates and returns a `Sign` object that uses the given `algorithm`. Use {@link getHashes} to obtain the names of the available digest algorithms.
- * Optional `options` argument controls the `stream.Writable` behavior.
- *
- * In some cases, a `Sign` instance can be created using the name of a signature
- * algorithm, such as `'RSA-SHA256'`, instead of a digest algorithm. This will use
- * the corresponding digest algorithm. This does not work for all signature
- * algorithms, such as `'ecdsa-with-SHA256'`, so it is best to always use digest
- * algorithm names.
- * @since v0.1.92
- * @param options `stream.Writable` options
- */
- // TODO: signing algorithm type
- function createSign(algorithm: string, options?: stream.WritableOptions): Sign;
- type DSAEncoding = "der" | "ieee-p1363";
- interface SigningOptions {
- /**
- * @see crypto.constants.RSA_PKCS1_PADDING
- */
- padding?: number | undefined;
- saltLength?: number | undefined;
- dsaEncoding?: DSAEncoding | undefined;
- context?: ArrayBuffer | NodeJS.ArrayBufferView | undefined;
- }
- interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions {}
- interface SignKeyObjectInput extends SigningOptions {
- key: KeyObject;
- }
- interface SignJsonWebKeyInput extends JsonWebKeyInput, SigningOptions {}
- interface VerifyPublicKeyInput extends PublicKeyInput, SigningOptions {}
- interface VerifyKeyObjectInput extends SigningOptions {
- key: KeyObject;
- }
- interface VerifyJsonWebKeyInput extends JsonWebKeyInput, SigningOptions {}
- type KeyLike = string | Buffer | KeyObject;
- /**
- * The `Sign` class is a utility for generating signatures. It can be used in one
- * of two ways:
- *
- * * As a writable `stream`, where data to be signed is written and the `sign.sign()` method is used to generate and return the signature, or
- * * Using the `sign.update()` and `sign.sign()` methods to produce the
- * signature.
- *
- * The {@link createSign} method is used to create `Sign` instances. The
- * argument is the string name of the hash function to use. `Sign` objects are not
- * to be created directly using the `new` keyword.
- *
- * Example: Using `Sign` and `Verify` objects as streams:
- *
- * ```js
- * const {
- * generateKeyPairSync,
- * createSign,
- * createVerify,
- * } = await import('node:crypto');
- *
- * const { privateKey, publicKey } = generateKeyPairSync('ec', {
- * namedCurve: 'sect239k1',
- * });
- *
- * const sign = createSign('SHA256');
- * sign.write('some data to sign');
- * sign.end();
- * const signature = sign.sign(privateKey, 'hex');
- *
- * const verify = createVerify('SHA256');
- * verify.write('some data to sign');
- * verify.end();
- * console.log(verify.verify(publicKey, signature, 'hex'));
- * // Prints: true
- * ```
- *
- * Example: Using the `sign.update()` and `verify.update()` methods:
- *
- * ```js
- * const {
- * generateKeyPairSync,
- * createSign,
- * createVerify,
- * } = await import('node:crypto');
- *
- * const { privateKey, publicKey } = generateKeyPairSync('rsa', {
- * modulusLength: 2048,
- * });
- *
- * const sign = createSign('SHA256');
- * sign.update('some data to sign');
- * sign.end();
- * const signature = sign.sign(privateKey);
- *
- * const verify = createVerify('SHA256');
- * verify.update('some data to sign');
- * verify.end();
- * console.log(verify.verify(publicKey, signature));
- * // Prints: true
- * ```
- * @since v0.1.92
- */
- class Sign extends stream.Writable {
- private constructor();
- /**
- * Updates the `Sign` content with the given `data`, the encoding of which
- * is given in `inputEncoding`.
- * If `encoding` is not provided, and the `data` is a string, an
- * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.
- *
- * This can be called many times with new data as it is streamed.
- * @since v0.1.92
- * @param inputEncoding The `encoding` of the `data` string.
- */
- update(data: BinaryLike): this;
- update(data: string, inputEncoding: Encoding): this;
- /**
- * Calculates the signature on all the data passed through using either `sign.update()` or `sign.write()`.
- *
- * If `privateKey` is not a `KeyObject`, this function behaves as if `privateKey` had been passed to {@link createPrivateKey}. If it is an
- * object, the following additional properties can be passed:
- *
- * If `outputEncoding` is provided a string is returned; otherwise a `Buffer` is returned.
- *
- * The `Sign` object can not be again used after `sign.sign()` method has been
- * called. Multiple calls to `sign.sign()` will result in an error being thrown.
- * @since v0.1.92
- */
- sign(privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput | SignJsonWebKeyInput): NonSharedBuffer;
- sign(
- privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput | SignJsonWebKeyInput,
- outputFormat: BinaryToTextEncoding,
- ): string;
- }
- /**
- * Creates and returns a `Verify` object that uses the given algorithm.
- * Use {@link getHashes} to obtain an array of names of the available
- * signing algorithms. Optional `options` argument controls the `stream.Writable` behavior.
- *
- * In some cases, a `Verify` instance can be created using the name of a signature
- * algorithm, such as `'RSA-SHA256'`, instead of a digest algorithm. This will use
- * the corresponding digest algorithm. This does not work for all signature
- * algorithms, such as `'ecdsa-with-SHA256'`, so it is best to always use digest
- * algorithm names.
- * @since v0.1.92
- * @param options `stream.Writable` options
- */
- function createVerify(algorithm: string, options?: stream.WritableOptions): Verify;
- /**
- * The `Verify` class is a utility for verifying signatures. It can be used in one
- * of two ways:
- *
- * * As a writable `stream` where written data is used to validate against the
- * supplied signature, or
- * * Using the `verify.update()` and `verify.verify()` methods to verify
- * the signature.
- *
- * The {@link createVerify} method is used to create `Verify` instances. `Verify` objects are not to be created directly using the `new` keyword.
- *
- * See `Sign` for examples.
- * @since v0.1.92
- */
- class Verify extends stream.Writable {
- private constructor();
- /**
- * Updates the `Verify` content with the given `data`, the encoding of which
- * is given in `inputEncoding`.
- * If `inputEncoding` is not provided, and the `data` is a string, an
- * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or `DataView`, then `inputEncoding` is ignored.
- *
- * This can be called many times with new data as it is streamed.
- * @since v0.1.92
- * @param inputEncoding The `encoding` of the `data` string.
- */
- update(data: BinaryLike): Verify;
- update(data: string, inputEncoding: Encoding): Verify;
- /**
- * Verifies the provided data using the given `object` and `signature`.
- *
- * If `object` is not a `KeyObject`, this function behaves as if `object` had been passed to {@link createPublicKey}. If it is an
- * object, the following additional properties can be passed:
- *
- * The `signature` argument is the previously calculated signature for the data, in
- * the `signatureEncoding`.
- * If a `signatureEncoding` is specified, the `signature` is expected to be a
- * string; otherwise `signature` is expected to be a `Buffer`, `TypedArray`, or `DataView`.
- *
- * The `verify` object can not be used again after `verify.verify()` has been
- * called. Multiple calls to `verify.verify()` will result in an error being
- * thrown.
- *
- * Because public keys can be derived from private keys, a private key may
- * be passed instead of a public key.
- * @since v0.1.92
- */
- verify(
- object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput | VerifyJsonWebKeyInput,
- signature: NodeJS.ArrayBufferView,
- ): boolean;
- verify(
- object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput | VerifyJsonWebKeyInput,
- signature: string,
- signature_format?: BinaryToTextEncoding,
- ): boolean;
- }
- /**
- * Creates a `DiffieHellman` key exchange object using the supplied `prime` and an
- * optional specific `generator`.
- *
- * The `generator` argument can be a number, string, or `Buffer`. If `generator` is not specified, the value `2` is used.
- *
- * If `primeEncoding` is specified, `prime` is expected to be a string; otherwise
- * a `Buffer`, `TypedArray`, or `DataView` is expected.
- *
- * If `generatorEncoding` is specified, `generator` is expected to be a string;
- * otherwise a number, `Buffer`, `TypedArray`, or `DataView` is expected.
- * @since v0.11.12
- * @param primeEncoding The `encoding` of the `prime` string.
- * @param [generator=2]
- * @param generatorEncoding The `encoding` of the `generator` string.
- */
- function createDiffieHellman(primeLength: number, generator?: number): DiffieHellman;
- function createDiffieHellman(
- prime: ArrayBuffer | NodeJS.ArrayBufferView,
- generator?: number | ArrayBuffer | NodeJS.ArrayBufferView,
- ): DiffieHellman;
- function createDiffieHellman(
- prime: ArrayBuffer | NodeJS.ArrayBufferView,
- generator: string,
- generatorEncoding: BinaryToTextEncoding,
- ): DiffieHellman;
- function createDiffieHellman(
- prime: string,
- primeEncoding: BinaryToTextEncoding,
- generator?: number | ArrayBuffer | NodeJS.ArrayBufferView,
- ): DiffieHellman;
- function createDiffieHellman(
- prime: string,
- primeEncoding: BinaryToTextEncoding,
- generator: string,
- generatorEncoding: BinaryToTextEncoding,
- ): DiffieHellman;
- /**
- * The `DiffieHellman` class is a utility for creating Diffie-Hellman key
- * exchanges.
- *
- * Instances of the `DiffieHellman` class can be created using the {@link createDiffieHellman} function.
- *
- * ```js
- * import assert from 'node:assert';
- *
- * const {
- * createDiffieHellman,
- * } = await import('node:crypto');
- *
- * // Generate Alice's keys...
- * const alice = createDiffieHellman(2048);
- * const aliceKey = alice.generateKeys();
- *
- * // Generate Bob's keys...
- * const bob = createDiffieHellman(alice.getPrime(), alice.getGenerator());
- * const bobKey = bob.generateKeys();
- *
- * // Exchange and generate the secret...
- * const aliceSecret = alice.computeSecret(bobKey);
- * const bobSecret = bob.computeSecret(aliceKey);
- *
- * // OK
- * assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex'));
- * ```
- * @since v0.5.0
- */
- class DiffieHellman {
- private constructor();
- /**
- * Generates private and public Diffie-Hellman key values unless they have been
- * generated or computed already, and returns
- * the public key in the specified `encoding`. This key should be
- * transferred to the other party.
- * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned.
- *
- * This function is a thin wrapper around [`DH_generate_key()`](https://www.openssl.org/docs/man3.0/man3/DH_generate_key.html). In particular,
- * once a private key has been generated or set, calling this function only updates
- * the public key but does not generate a new private key.
- * @since v0.5.0
- * @param encoding The `encoding` of the return value.
- */
- generateKeys(): NonSharedBuffer;
- generateKeys(encoding: BinaryToTextEncoding): string;
- /**
- * Computes the shared secret using `otherPublicKey` as the other
- * party's public key and returns the computed shared secret. The supplied
- * key is interpreted using the specified `inputEncoding`, and secret is
- * encoded using specified `outputEncoding`.
- * If the `inputEncoding` is not
- * provided, `otherPublicKey` is expected to be a `Buffer`, `TypedArray`, or `DataView`.
- *
- * If `outputEncoding` is given a string is returned; otherwise, a `Buffer` is returned.
- * @since v0.5.0
- * @param inputEncoding The `encoding` of an `otherPublicKey` string.
- * @param outputEncoding The `encoding` of the return value.
- */
- computeSecret(
- otherPublicKey: NodeJS.ArrayBufferView,
- inputEncoding?: null,
- outputEncoding?: null,
- ): NonSharedBuffer;
- computeSecret(
- otherPublicKey: string,
- inputEncoding: BinaryToTextEncoding,
- outputEncoding?: null,
- ): NonSharedBuffer;
- computeSecret(
- otherPublicKey: NodeJS.ArrayBufferView,
- inputEncoding: null,
- outputEncoding: BinaryToTextEncoding,
- ): string;
- computeSecret(
- otherPublicKey: string,
- inputEncoding: BinaryToTextEncoding,
- outputEncoding: BinaryToTextEncoding,
- ): string;
- /**
- * Returns the Diffie-Hellman prime in the specified `encoding`.
- * If `encoding` is provided a string is
- * returned; otherwise a `Buffer` is returned.
- * @since v0.5.0
- * @param encoding The `encoding` of the return value.
- */
- getPrime(): NonSharedBuffer;
- getPrime(encoding: BinaryToTextEncoding): string;
- /**
- * Returns the Diffie-Hellman generator in the specified `encoding`.
- * If `encoding` is provided a string is
- * returned; otherwise a `Buffer` is returned.
- * @since v0.5.0
- * @param encoding The `encoding` of the return value.
- */
- getGenerator(): NonSharedBuffer;
- getGenerator(encoding: BinaryToTextEncoding): string;
- /**
- * Returns the Diffie-Hellman public key in the specified `encoding`.
- * If `encoding` is provided a
- * string is returned; otherwise a `Buffer` is returned.
- * @since v0.5.0
- * @param encoding The `encoding` of the return value.
- */
- getPublicKey(): NonSharedBuffer;
- getPublicKey(encoding: BinaryToTextEncoding): string;
- /**
- * Returns the Diffie-Hellman private key in the specified `encoding`.
- * If `encoding` is provided a
- * string is returned; otherwise a `Buffer` is returned.
- * @since v0.5.0
- * @param encoding The `encoding` of the return value.
- */
- getPrivateKey(): NonSharedBuffer;
- getPrivateKey(encoding: BinaryToTextEncoding): string;
- /**
- * Sets the Diffie-Hellman public key. If the `encoding` argument is provided, `publicKey` is expected
- * to be a string. If no `encoding` is provided, `publicKey` is expected
- * to be a `Buffer`, `TypedArray`, or `DataView`.
- * @since v0.5.0
- * @param encoding The `encoding` of the `publicKey` string.
- */
- setPublicKey(publicKey: NodeJS.ArrayBufferView): void;
- setPublicKey(publicKey: string, encoding: BufferEncoding): void;
- /**
- * Sets the Diffie-Hellman private key. If the `encoding` argument is provided,`privateKey` is expected
- * to be a string. If no `encoding` is provided, `privateKey` is expected
- * to be a `Buffer`, `TypedArray`, or `DataView`.
- *
- * This function does not automatically compute the associated public key. Either `diffieHellman.setPublicKey()` or `diffieHellman.generateKeys()` can be
- * used to manually provide the public key or to automatically derive it.
- * @since v0.5.0
- * @param encoding The `encoding` of the `privateKey` string.
- */
- setPrivateKey(privateKey: NodeJS.ArrayBufferView): void;
- setPrivateKey(privateKey: string, encoding: BufferEncoding): void;
- /**
- * A bit field containing any warnings and/or errors resulting from a check
- * performed during initialization of the `DiffieHellman` object.
- *
- * The following values are valid for this property (as defined in `node:constants` module):
- *
- * * `DH_CHECK_P_NOT_SAFE_PRIME`
- * * `DH_CHECK_P_NOT_PRIME`
- * * `DH_UNABLE_TO_CHECK_GENERATOR`
- * * `DH_NOT_SUITABLE_GENERATOR`
- * @since v0.11.12
- */
- verifyError: number;
- }
- /**
- * The `DiffieHellmanGroup` class takes a well-known modp group as its argument.
- * It works the same as `DiffieHellman`, except that it does not allow changing its keys after creation.
- * In other words, it does not implement `setPublicKey()` or `setPrivateKey()` methods.
- *
- * ```js
- * const { createDiffieHellmanGroup } = await import('node:crypto');
- * const dh = createDiffieHellmanGroup('modp1');
- * ```
- * The name (e.g. `'modp1'`) is taken from [RFC 2412](https://www.rfc-editor.org/rfc/rfc2412.txt) (modp1 and 2) and [RFC 3526](https://www.rfc-editor.org/rfc/rfc3526.txt):
- * ```bash
- * $ perl -ne 'print "$1\n" if /"(modp\d+)"/' src/node_crypto_groups.h
- * modp1 # 768 bits
- * modp2 # 1024 bits
- * modp5 # 1536 bits
- * modp14 # 2048 bits
- * modp15 # etc.
- * modp16
- * modp17
- * modp18
- * ```
- * @since v0.7.5
- */
- const DiffieHellmanGroup: DiffieHellmanGroupConstructor;
- interface DiffieHellmanGroupConstructor {
- new(name: string): DiffieHellmanGroup;
- (name: string): DiffieHellmanGroup;
- readonly prototype: DiffieHellmanGroup;
- }
- type DiffieHellmanGroup = Omit;
- /**
- * Creates a predefined `DiffieHellmanGroup` key exchange object. The
- * supported groups are listed in the documentation for `DiffieHellmanGroup`.
- *
- * The returned object mimics the interface of objects created by {@link createDiffieHellman}, but will not allow changing
- * the keys (with `diffieHellman.setPublicKey()`, for example). The
- * advantage of using this method is that the parties do not have to
- * generate nor exchange a group modulus beforehand, saving both processor
- * and communication time.
- *
- * Example (obtaining a shared secret):
- *
- * ```js
- * const {
- * getDiffieHellman,
- * } = await import('node:crypto');
- * const alice = getDiffieHellman('modp14');
- * const bob = getDiffieHellman('modp14');
- *
- * alice.generateKeys();
- * bob.generateKeys();
- *
- * const aliceSecret = alice.computeSecret(bob.getPublicKey(), null, 'hex');
- * const bobSecret = bob.computeSecret(alice.getPublicKey(), null, 'hex');
- *
- * // aliceSecret and bobSecret should be the same
- * console.log(aliceSecret === bobSecret);
- * ```
- * @since v0.7.5
- */
- function getDiffieHellman(groupName: string): DiffieHellmanGroup;
- /**
- * An alias for {@link getDiffieHellman}
- * @since v0.9.3
- */
- function createDiffieHellmanGroup(name: string): DiffieHellmanGroup;
- /**
- * Provides an asynchronous Password-Based Key Derivation Function 2 (PBKDF2)
- * implementation. A selected HMAC digest algorithm specified by `digest` is
- * applied to derive a key of the requested byte length (`keylen`) from the `password`, `salt` and `iterations`.
- *
- * The supplied `callback` function is called with two arguments: `err` and `derivedKey`. If an error occurs while deriving the key, `err` will be set;
- * otherwise `err` will be `null`. By default, the successfully generated `derivedKey` will be passed to the callback as a `Buffer`. An error will be
- * thrown if any of the input arguments specify invalid values or types.
- *
- * The `iterations` argument must be a number set as high as possible. The
- * higher the number of iterations, the more secure the derived key will be,
- * but will take a longer amount of time to complete.
- *
- * The `salt` should be as unique as possible. It is recommended that a salt is
- * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.
- *
- * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * ```js
- * const {
- * pbkdf2,
- * } = await import('node:crypto');
- *
- * pbkdf2('secret', 'salt', 100000, 64, 'sha512', (err, derivedKey) => {
- * if (err) throw err;
- * console.log(derivedKey.toString('hex')); // '3745e48...08d59ae'
- * });
- * ```
- *
- * An array of supported digest functions can be retrieved using {@link getHashes}.
- *
- * This API uses libuv's threadpool, which can have surprising and
- * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information.
- * @since v0.5.5
- */
- function pbkdf2(
- password: BinaryLike,
- salt: BinaryLike,
- iterations: number,
- keylen: number,
- digest: string,
- callback: (err: Error | null, derivedKey: NonSharedBuffer) => void,
- ): void;
- /**
- * Provides a synchronous Password-Based Key Derivation Function 2 (PBKDF2)
- * implementation. A selected HMAC digest algorithm specified by `digest` is
- * applied to derive a key of the requested byte length (`keylen`) from the `password`, `salt` and `iterations`.
- *
- * If an error occurs an `Error` will be thrown, otherwise the derived key will be
- * returned as a `Buffer`.
- *
- * The `iterations` argument must be a number set as high as possible. The
- * higher the number of iterations, the more secure the derived key will be,
- * but will take a longer amount of time to complete.
- *
- * The `salt` should be as unique as possible. It is recommended that a salt is
- * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.
- *
- * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * ```js
- * const {
- * pbkdf2Sync,
- * } = await import('node:crypto');
- *
- * const key = pbkdf2Sync('secret', 'salt', 100000, 64, 'sha512');
- * console.log(key.toString('hex')); // '3745e48...08d59ae'
- * ```
- *
- * An array of supported digest functions can be retrieved using {@link getHashes}.
- * @since v0.9.3
- */
- function pbkdf2Sync(
- password: BinaryLike,
- salt: BinaryLike,
- iterations: number,
- keylen: number,
- digest: string,
- ): NonSharedBuffer;
- /**
- * Generates cryptographically strong pseudorandom data. The `size` argument
- * is a number indicating the number of bytes to generate.
- *
- * If a `callback` function is provided, the bytes are generated asynchronously
- * and the `callback` function is invoked with two arguments: `err` and `buf`.
- * If an error occurs, `err` will be an `Error` object; otherwise it is `null`. The `buf` argument is a `Buffer` containing the generated bytes.
- *
- * ```js
- * // Asynchronous
- * const {
- * randomBytes,
- * } = await import('node:crypto');
- *
- * randomBytes(256, (err, buf) => {
- * if (err) throw err;
- * console.log(`${buf.length} bytes of random data: ${buf.toString('hex')}`);
- * });
- * ```
- *
- * If the `callback` function is not provided, the random bytes are generated
- * synchronously and returned as a `Buffer`. An error will be thrown if
- * there is a problem generating the bytes.
- *
- * ```js
- * // Synchronous
- * const {
- * randomBytes,
- * } = await import('node:crypto');
- *
- * const buf = randomBytes(256);
- * console.log(
- * `${buf.length} bytes of random data: ${buf.toString('hex')}`);
- * ```
- *
- * The `crypto.randomBytes()` method will not complete until there is
- * sufficient entropy available.
- * This should normally never take longer than a few milliseconds. The only time
- * when generating the random bytes may conceivably block for a longer period of
- * time is right after boot, when the whole system is still low on entropy.
- *
- * This API uses libuv's threadpool, which can have surprising and
- * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information.
- *
- * The asynchronous version of `crypto.randomBytes()` is carried out in a single
- * threadpool request. To minimize threadpool task length variation, partition
- * large `randomBytes` requests when doing so as part of fulfilling a client
- * request.
- * @since v0.5.8
- * @param size The number of bytes to generate. The `size` must not be larger than `2**31 - 1`.
- * @return if the `callback` function is not provided.
- */
- function randomBytes(size: number): NonSharedBuffer;
- function randomBytes(size: number, callback: (err: Error | null, buf: NonSharedBuffer) => void): void;
- function pseudoRandomBytes(size: number): NonSharedBuffer;
- function pseudoRandomBytes(size: number, callback: (err: Error | null, buf: NonSharedBuffer) => void): void;
- /**
- * Return a random integer `n` such that `min <= n < max`. This
- * implementation avoids [modulo bias](https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#Modulo_bias).
- *
- * The range (`max - min`) must be less than 2**48. `min` and `max` must
- * be [safe integers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger).
- *
- * If the `callback` function is not provided, the random integer is
- * generated synchronously.
- *
- * ```js
- * // Asynchronous
- * const {
- * randomInt,
- * } = await import('node:crypto');
- *
- * randomInt(3, (err, n) => {
- * if (err) throw err;
- * console.log(`Random number chosen from (0, 1, 2): ${n}`);
- * });
- * ```
- *
- * ```js
- * // Synchronous
- * const {
- * randomInt,
- * } = await import('node:crypto');
- *
- * const n = randomInt(3);
- * console.log(`Random number chosen from (0, 1, 2): ${n}`);
- * ```
- *
- * ```js
- * // With `min` argument
- * const {
- * randomInt,
- * } = await import('node:crypto');
- *
- * const n = randomInt(1, 7);
- * console.log(`The dice rolled: ${n}`);
- * ```
- * @since v14.10.0, v12.19.0
- * @param [min=0] Start of random range (inclusive).
- * @param max End of random range (exclusive).
- * @param callback `function(err, n) {}`.
- */
- function randomInt(max: number): number;
- function randomInt(min: number, max: number): number;
- function randomInt(max: number, callback: (err: Error | null, value: number) => void): void;
- function randomInt(min: number, max: number, callback: (err: Error | null, value: number) => void): void;
- /**
- * Synchronous version of {@link randomFill}.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- * const { randomFillSync } = await import('node:crypto');
- *
- * const buf = Buffer.alloc(10);
- * console.log(randomFillSync(buf).toString('hex'));
- *
- * randomFillSync(buf, 5);
- * console.log(buf.toString('hex'));
- *
- * // The above is equivalent to the following:
- * randomFillSync(buf, 5, 5);
- * console.log(buf.toString('hex'));
- * ```
- *
- * Any `ArrayBuffer`, `TypedArray` or `DataView` instance may be passed as`buffer`.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- * const { randomFillSync } = await import('node:crypto');
- *
- * const a = new Uint32Array(10);
- * console.log(Buffer.from(randomFillSync(a).buffer,
- * a.byteOffset, a.byteLength).toString('hex'));
- *
- * const b = new DataView(new ArrayBuffer(10));
- * console.log(Buffer.from(randomFillSync(b).buffer,
- * b.byteOffset, b.byteLength).toString('hex'));
- *
- * const c = new ArrayBuffer(10);
- * console.log(Buffer.from(randomFillSync(c)).toString('hex'));
- * ```
- * @since v7.10.0, v6.13.0
- * @param buffer Must be supplied. The size of the provided `buffer` must not be larger than `2**31 - 1`.
- * @param [offset=0]
- * @param [size=buffer.length - offset]
- * @return The object passed as `buffer` argument.
- */
- function randomFillSync(buffer: T, offset?: number, size?: number): T;
- /**
- * This function is similar to {@link randomBytes} but requires the first
- * argument to be a `Buffer` that will be filled. It also
- * requires that a callback is passed in.
- *
- * If the `callback` function is not provided, an error will be thrown.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- * const { randomFill } = await import('node:crypto');
- *
- * const buf = Buffer.alloc(10);
- * randomFill(buf, (err, buf) => {
- * if (err) throw err;
- * console.log(buf.toString('hex'));
- * });
- *
- * randomFill(buf, 5, (err, buf) => {
- * if (err) throw err;
- * console.log(buf.toString('hex'));
- * });
- *
- * // The above is equivalent to the following:
- * randomFill(buf, 5, 5, (err, buf) => {
- * if (err) throw err;
- * console.log(buf.toString('hex'));
- * });
- * ```
- *
- * Any `ArrayBuffer`, `TypedArray`, or `DataView` instance may be passed as `buffer`.
- *
- * While this includes instances of `Float32Array` and `Float64Array`, this
- * function should not be used to generate random floating-point numbers. The
- * result may contain `+Infinity`, `-Infinity`, and `NaN`, and even if the array
- * contains finite numbers only, they are not drawn from a uniform random
- * distribution and have no meaningful lower or upper bounds.
- *
- * ```js
- * import { Buffer } from 'node:buffer';
- * const { randomFill } = await import('node:crypto');
- *
- * const a = new Uint32Array(10);
- * randomFill(a, (err, buf) => {
- * if (err) throw err;
- * console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength)
- * .toString('hex'));
- * });
- *
- * const b = new DataView(new ArrayBuffer(10));
- * randomFill(b, (err, buf) => {
- * if (err) throw err;
- * console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength)
- * .toString('hex'));
- * });
- *
- * const c = new ArrayBuffer(10);
- * randomFill(c, (err, buf) => {
- * if (err) throw err;
- * console.log(Buffer.from(buf).toString('hex'));
- * });
- * ```
- *
- * This API uses libuv's threadpool, which can have surprising and
- * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information.
- *
- * The asynchronous version of `crypto.randomFill()` is carried out in a single
- * threadpool request. To minimize threadpool task length variation, partition
- * large `randomFill` requests when doing so as part of fulfilling a client
- * request.
- * @since v7.10.0, v6.13.0
- * @param buffer Must be supplied. The size of the provided `buffer` must not be larger than `2**31 - 1`.
- * @param [offset=0]
- * @param [size=buffer.length - offset]
- * @param callback `function(err, buf) {}`.
- */
- function randomFill(
- buffer: T,
- callback: (err: Error | null, buf: T) => void,
- ): void;
- function randomFill(
- buffer: T,
- offset: number,
- callback: (err: Error | null, buf: T) => void,
- ): void;
- function randomFill(
- buffer: T,
- offset: number,
- size: number,
- callback: (err: Error | null, buf: T) => void,
- ): void;
- interface ScryptOptions {
- cost?: number | undefined;
- blockSize?: number | undefined;
- parallelization?: number | undefined;
- N?: number | undefined;
- r?: number | undefined;
- p?: number | undefined;
- maxmem?: number | undefined;
- }
- /**
- * Provides an asynchronous [scrypt](https://en.wikipedia.org/wiki/Scrypt) implementation. Scrypt is a password-based
- * key derivation function that is designed to be expensive computationally and
- * memory-wise in order to make brute-force attacks unrewarding.
- *
- * The `salt` should be as unique as possible. It is recommended that a salt is
- * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.
- *
- * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * The `callback` function is called with two arguments: `err` and `derivedKey`. `err` is an exception object when key derivation fails, otherwise `err` is `null`. `derivedKey` is passed to the
- * callback as a `Buffer`.
- *
- * An exception is thrown when any of the input arguments specify invalid values
- * or types.
- *
- * ```js
- * const {
- * scrypt,
- * } = await import('node:crypto');
- *
- * // Using the factory defaults.
- * scrypt('password', 'salt', 64, (err, derivedKey) => {
- * if (err) throw err;
- * console.log(derivedKey.toString('hex')); // '3745e48...08d59ae'
- * });
- * // Using a custom N parameter. Must be a power of two.
- * scrypt('password', 'salt', 64, { N: 1024 }, (err, derivedKey) => {
- * if (err) throw err;
- * console.log(derivedKey.toString('hex')); // '3745e48...aa39b34'
- * });
- * ```
- * @since v10.5.0
- */
- function scrypt(
- password: BinaryLike,
- salt: BinaryLike,
- keylen: number,
- callback: (err: Error | null, derivedKey: NonSharedBuffer) => void,
- ): void;
- function scrypt(
- password: BinaryLike,
- salt: BinaryLike,
- keylen: number,
- options: ScryptOptions,
- callback: (err: Error | null, derivedKey: NonSharedBuffer) => void,
- ): void;
- /**
- * Provides a synchronous [scrypt](https://en.wikipedia.org/wiki/Scrypt) implementation. Scrypt is a password-based
- * key derivation function that is designed to be expensive computationally and
- * memory-wise in order to make brute-force attacks unrewarding.
- *
- * The `salt` should be as unique as possible. It is recommended that a salt is
- * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.
- *
- * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * An exception is thrown when key derivation fails, otherwise the derived key is
- * returned as a `Buffer`.
- *
- * An exception is thrown when any of the input arguments specify invalid values
- * or types.
- *
- * ```js
- * const {
- * scryptSync,
- * } = await import('node:crypto');
- * // Using the factory defaults.
- *
- * const key1 = scryptSync('password', 'salt', 64);
- * console.log(key1.toString('hex')); // '3745e48...08d59ae'
- * // Using a custom N parameter. Must be a power of two.
- * const key2 = scryptSync('password', 'salt', 64, { N: 1024 });
- * console.log(key2.toString('hex')); // '3745e48...aa39b34'
- * ```
- * @since v10.5.0
- */
- function scryptSync(
- password: BinaryLike,
- salt: BinaryLike,
- keylen: number,
- options?: ScryptOptions,
- ): NonSharedBuffer;
- interface RsaPublicKey {
- key: KeyLike;
- padding?: number | undefined;
- }
- interface RsaPrivateKey {
- key: KeyLike;
- passphrase?: string | undefined;
- /**
- * @default 'sha1'
- */
- oaepHash?: string | undefined;
- oaepLabel?: NodeJS.TypedArray | undefined;
- padding?: number | undefined;
- }
- /**
- * Encrypts the content of `buffer` with `key` and returns a new `Buffer` with encrypted content. The returned data can be decrypted using
- * the corresponding private key, for example using {@link privateDecrypt}.
- *
- * If `key` is not a `KeyObject`, this function behaves as if `key` had been passed to {@link createPublicKey}. If it is an
- * object, the `padding` property can be passed. Otherwise, this function uses `RSA_PKCS1_OAEP_PADDING`.
- *
- * Because RSA public keys can be derived from private keys, a private key may
- * be passed instead of a public key.
- * @since v0.11.14
- */
- function publicEncrypt(
- key: RsaPublicKey | RsaPrivateKey | KeyLike,
- buffer: NodeJS.ArrayBufferView | string,
- ): NonSharedBuffer;
- /**
- * Decrypts `buffer` with `key`.`buffer` was previously encrypted using
- * the corresponding private key, for example using {@link privateEncrypt}.
- *
- * If `key` is not a `KeyObject`, this function behaves as if `key` had been passed to {@link createPublicKey}. If it is an
- * object, the `padding` property can be passed. Otherwise, this function uses `RSA_PKCS1_PADDING`.
- *
- * Because RSA public keys can be derived from private keys, a private key may
- * be passed instead of a public key.
- * @since v1.1.0
- */
- function publicDecrypt(
- key: RsaPublicKey | RsaPrivateKey | KeyLike,
- buffer: NodeJS.ArrayBufferView | string,
- ): NonSharedBuffer;
- /**
- * Decrypts `buffer` with `privateKey`. `buffer` was previously encrypted using
- * the corresponding public key, for example using {@link publicEncrypt}.
- *
- * If `privateKey` is not a `KeyObject`, this function behaves as if `privateKey` had been passed to {@link createPrivateKey}. If it is an
- * object, the `padding` property can be passed. Otherwise, this function uses `RSA_PKCS1_OAEP_PADDING`.
- * @since v0.11.14
- */
- function privateDecrypt(
- privateKey: RsaPrivateKey | KeyLike,
- buffer: NodeJS.ArrayBufferView | string,
- ): NonSharedBuffer;
- /**
- * Encrypts `buffer` with `privateKey`. The returned data can be decrypted using
- * the corresponding public key, for example using {@link publicDecrypt}.
- *
- * If `privateKey` is not a `KeyObject`, this function behaves as if `privateKey` had been passed to {@link createPrivateKey}. If it is an
- * object, the `padding` property can be passed. Otherwise, this function uses `RSA_PKCS1_PADDING`.
- * @since v1.1.0
- */
- function privateEncrypt(
- privateKey: RsaPrivateKey | KeyLike,
- buffer: NodeJS.ArrayBufferView | string,
- ): NonSharedBuffer;
- /**
- * ```js
- * const {
- * getCiphers,
- * } = await import('node:crypto');
- *
- * console.log(getCiphers()); // ['aes-128-cbc', 'aes-128-ccm', ...]
- * ```
- * @since v0.9.3
- * @return An array with the names of the supported cipher algorithms.
- */
- function getCiphers(): string[];
- /**
- * ```js
- * const {
- * getCurves,
- * } = await import('node:crypto');
- *
- * console.log(getCurves()); // ['Oakley-EC2N-3', 'Oakley-EC2N-4', ...]
- * ```
- * @since v2.3.0
- * @return An array with the names of the supported elliptic curves.
- */
- function getCurves(): string[];
- /**
- * @since v10.0.0
- * @return `1` if and only if a FIPS compliant crypto provider is currently in use, `0` otherwise. A future semver-major release may change the return type of this API to a {boolean}.
- */
- function getFips(): 1 | 0;
- /**
- * Enables the FIPS compliant crypto provider in a FIPS-enabled Node.js build.
- * Throws an error if FIPS mode is not available.
- * @since v10.0.0
- * @param bool `true` to enable FIPS mode.
- */
- function setFips(bool: boolean): void;
- /**
- * ```js
- * const {
- * getHashes,
- * } = await import('node:crypto');
- *
- * console.log(getHashes()); // ['DSA', 'DSA-SHA', 'DSA-SHA1', ...]
- * ```
- * @since v0.9.3
- * @return An array of the names of the supported hash algorithms, such as `'RSA-SHA256'`. Hash algorithms are also called "digest" algorithms.
- */
- function getHashes(): string[];
- /**
- * The `ECDH` class is a utility for creating Elliptic Curve Diffie-Hellman (ECDH)
- * key exchanges.
- *
- * Instances of the `ECDH` class can be created using the {@link createECDH} function.
- *
- * ```js
- * import assert from 'node:assert';
- *
- * const {
- * createECDH,
- * } = await import('node:crypto');
- *
- * // Generate Alice's keys...
- * const alice = createECDH('secp521r1');
- * const aliceKey = alice.generateKeys();
- *
- * // Generate Bob's keys...
- * const bob = createECDH('secp521r1');
- * const bobKey = bob.generateKeys();
- *
- * // Exchange and generate the secret...
- * const aliceSecret = alice.computeSecret(bobKey);
- * const bobSecret = bob.computeSecret(aliceKey);
- *
- * assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex'));
- * // OK
- * ```
- * @since v0.11.14
- */
- class ECDH {
- private constructor();
- /**
- * Converts the EC Diffie-Hellman public key specified by `key` and `curve` to the
- * format specified by `format`. The `format` argument specifies point encoding
- * and can be `'compressed'`, `'uncompressed'` or `'hybrid'`. The supplied key is
- * interpreted using the specified `inputEncoding`, and the returned key is encoded
- * using the specified `outputEncoding`.
- *
- * Use {@link getCurves} to obtain a list of available curve names.
- * On recent OpenSSL releases, `openssl ecparam -list_curves` will also display
- * the name and description of each available elliptic curve.
- *
- * If `format` is not specified the point will be returned in `'uncompressed'` format.
- *
- * If the `inputEncoding` is not provided, `key` is expected to be a `Buffer`, `TypedArray`, or `DataView`.
- *
- * Example (uncompressing a key):
- *
- * ```js
- * const {
- * createECDH,
- * ECDH,
- * } = await import('node:crypto');
- *
- * const ecdh = createECDH('secp256k1');
- * ecdh.generateKeys();
- *
- * const compressedKey = ecdh.getPublicKey('hex', 'compressed');
- *
- * const uncompressedKey = ECDH.convertKey(compressedKey,
- * 'secp256k1',
- * 'hex',
- * 'hex',
- * 'uncompressed');
- *
- * // The converted key and the uncompressed public key should be the same
- * console.log(uncompressedKey === ecdh.getPublicKey('hex'));
- * ```
- * @since v10.0.0
- * @param inputEncoding The `encoding` of the `key` string.
- * @param outputEncoding The `encoding` of the return value.
- * @param [format='uncompressed']
- */
- static convertKey(
- key: BinaryLike,
- curve: string,
- inputEncoding?: BinaryToTextEncoding,
- outputEncoding?: "latin1" | "hex" | "base64" | "base64url",
- format?: "uncompressed" | "compressed" | "hybrid",
- ): NonSharedBuffer | string;
- /**
- * Generates private and public EC Diffie-Hellman key values, and returns
- * the public key in the specified `format` and `encoding`. This key should be
- * transferred to the other party.
- *
- * The `format` argument specifies point encoding and can be `'compressed'` or `'uncompressed'`. If `format` is not specified, the point will be returned in`'uncompressed'` format.
- *
- * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned.
- * @since v0.11.14
- * @param encoding The `encoding` of the return value.
- * @param [format='uncompressed']
- */
- generateKeys(): NonSharedBuffer;
- generateKeys(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;
- /**
- * Computes the shared secret using `otherPublicKey` as the other
- * party's public key and returns the computed shared secret. The supplied
- * key is interpreted using specified `inputEncoding`, and the returned secret
- * is encoded using the specified `outputEncoding`.
- * If the `inputEncoding` is not
- * provided, `otherPublicKey` is expected to be a `Buffer`, `TypedArray`, or `DataView`.
- *
- * If `outputEncoding` is given a string will be returned; otherwise a `Buffer` is returned.
- *
- * `ecdh.computeSecret` will throw an`ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY` error when `otherPublicKey` lies outside of the elliptic curve. Since `otherPublicKey` is
- * usually supplied from a remote user over an insecure network,
- * be sure to handle this exception accordingly.
- * @since v0.11.14
- * @param inputEncoding The `encoding` of the `otherPublicKey` string.
- * @param outputEncoding The `encoding` of the return value.
- */
- computeSecret(otherPublicKey: NodeJS.ArrayBufferView): NonSharedBuffer;
- computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding): NonSharedBuffer;
- computeSecret(otherPublicKey: NodeJS.ArrayBufferView, outputEncoding: BinaryToTextEncoding): string;
- computeSecret(
- otherPublicKey: string,
- inputEncoding: BinaryToTextEncoding,
- outputEncoding: BinaryToTextEncoding,
- ): string;
- /**
- * If `encoding` is specified, a string is returned; otherwise a `Buffer` is
- * returned.
- * @since v0.11.14
- * @param encoding The `encoding` of the return value.
- * @return The EC Diffie-Hellman in the specified `encoding`.
- */
- getPrivateKey(): NonSharedBuffer;
- getPrivateKey(encoding: BinaryToTextEncoding): string;
- /**
- * The `format` argument specifies point encoding and can be `'compressed'` or `'uncompressed'`. If `format` is not specified the point will be returned in`'uncompressed'` format.
- *
- * If `encoding` is specified, a string is returned; otherwise a `Buffer` is
- * returned.
- * @since v0.11.14
- * @param encoding The `encoding` of the return value.
- * @param [format='uncompressed']
- * @return The EC Diffie-Hellman public key in the specified `encoding` and `format`.
- */
- getPublicKey(encoding?: null, format?: ECDHKeyFormat): NonSharedBuffer;
- getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;
- /**
- * Sets the EC Diffie-Hellman private key.
- * If `encoding` is provided, `privateKey` is expected
- * to be a string; otherwise `privateKey` is expected to be a `Buffer`, `TypedArray`, or `DataView`.
- *
- * If `privateKey` is not valid for the curve specified when the `ECDH` object was
- * created, an error is thrown. Upon setting the private key, the associated
- * public point (key) is also generated and set in the `ECDH` object.
- * @since v0.11.14
- * @param encoding The `encoding` of the `privateKey` string.
- */
- setPrivateKey(privateKey: NodeJS.ArrayBufferView): void;
- setPrivateKey(privateKey: string, encoding: BinaryToTextEncoding): void;
- }
- /**
- * Creates an Elliptic Curve Diffie-Hellman (`ECDH`) key exchange object using a
- * predefined curve specified by the `curveName` string. Use {@link getCurves} to obtain a list of available curve names. On recent
- * OpenSSL releases, `openssl ecparam -list_curves` will also display the name
- * and description of each available elliptic curve.
- * @since v0.11.14
- */
- function createECDH(curveName: string): ECDH;
- /**
- * This function compares the underlying bytes that represent the given `ArrayBuffer`, `TypedArray`, or `DataView` instances using a constant-time
- * algorithm.
- *
- * This function does not leak timing information that
- * would allow an attacker to guess one of the values. This is suitable for
- * comparing HMAC digests or secret values like authentication cookies or [capability urls](https://www.w3.org/TR/capability-urls/).
- *
- * `a` and `b` must both be `Buffer`s, `TypedArray`s, or `DataView`s, and they
- * must have the same byte length. An error is thrown if `a` and `b` have
- * different byte lengths.
- *
- * If at least one of `a` and `b` is a `TypedArray` with more than one byte per
- * entry, such as `Uint16Array`, the result will be computed using the platform
- * byte order.
- *
- * **When both of the inputs are `Float32Array`s or `Float64Array`s, this function might return unexpected results due to IEEE 754**
- * **encoding of floating-point numbers. In particular, neither `x === y` nor `Object.is(x, y)` implies that the byte representations of two floating-point**
- * **numbers `x` and `y` are equal.**
- *
- * Use of `crypto.timingSafeEqual` does not guarantee that the _surrounding_ code
- * is timing-safe. Care should be taken to ensure that the surrounding code does
- * not introduce timing vulnerabilities.
- * @since v6.6.0
- */
- function timingSafeEqual(a: NodeJS.ArrayBufferView, b: NodeJS.ArrayBufferView): boolean;
- interface DHKeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8"> {
- /**
- * The prime parameter
- */
- prime?: Buffer | undefined;
- /**
- * Prime length in bits
- */
- primeLength?: number | undefined;
- /**
- * Custom generator
- * @default 2
- */
- generator?: number | undefined;
- /**
- * Diffie-Hellman group name
- * @see {@link getDiffieHellman}
- */
- groupName?: string | undefined;
- }
- interface DSAKeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8"> {
- /**
- * Key size in bits
- */
- modulusLength: number;
- /**
- * Size of q in bits
- */
- divisorLength: number;
- }
- interface ECKeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8" | "sec1"> {
- /**
- * Name of the curve to use
- */
- namedCurve: string;
- /**
- * Must be `'named'` or `'explicit'`
- * @default 'named'
- */
- paramEncoding?: "explicit" | "named" | undefined;
- }
- interface ED25519KeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8"> {}
- interface ED448KeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8"> {}
- interface MLDSAKeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8"> {}
- interface MLKEMKeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8"> {}
- interface RSAPSSKeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8"> {
- /**
- * Key size in bits
- */
- modulusLength: number;
- /**
- * Public exponent
- * @default 0x10001
- */
- publicExponent?: number | undefined;
- /**
- * Name of the message digest
- */
- hashAlgorithm?: string | undefined;
- /**
- * Name of the message digest used by MGF1
- */
- mgf1HashAlgorithm?: string | undefined;
- /**
- * Minimal salt length in bytes
- */
- saltLength?: string | undefined;
- }
- interface RSAKeyPairOptions extends KeyPairExportOptions<"pkcs1" | "spki", "pkcs1" | "pkcs8"> {
- /**
- * Key size in bits
- */
- modulusLength: number;
- /**
- * Public exponent
- * @default 0x10001
- */
- publicExponent?: number | undefined;
- }
- interface SLHDSAKeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8"> {}
- interface X25519KeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8"> {}
- interface X448KeyPairOptions extends KeyPairExportOptions<"spki", "pkcs8"> {}
- /**
- * Generates a new asymmetric key pair of the given `type`. See the
- * supported [asymmetric key types](https://nodejs.org/docs/latest-v25.x/api/crypto.html#asymmetric-key-types).
- *
- * If a `publicKeyEncoding` or `privateKeyEncoding` was specified, this function
- * behaves as if `keyObject.export()` had been called on its result. Otherwise,
- * the respective part of the key is returned as a `KeyObject`.
- *
- * When encoding public keys, it is recommended to use `'spki'`. When encoding
- * private keys, it is recommended to use `'pkcs8'` with a strong passphrase,
- * and to keep the passphrase confidential.
- *
- * ```js
- * const {
- * generateKeyPairSync,
- * } = await import('node:crypto');
- *
- * const {
- * publicKey,
- * privateKey,
- * } = generateKeyPairSync('rsa', {
- * modulusLength: 4096,
- * publicKeyEncoding: {
- * type: 'spki',
- * format: 'pem',
- * },
- * privateKeyEncoding: {
- * type: 'pkcs8',
- * format: 'pem',
- * cipher: 'aes-256-cbc',
- * passphrase: 'top secret',
- * },
- * });
- * ```
- *
- * The return value `{ publicKey, privateKey }` represents the generated key pair.
- * When PEM encoding was selected, the respective key will be a string, otherwise
- * it will be a buffer containing the data encoded as DER.
- * @since v10.12.0
- * @param type The asymmetric key type to generate. See the
- * supported [asymmetric key types](https://nodejs.org/docs/latest-v25.x/api/crypto.html#asymmetric-key-types).
- */
- function generateKeyPairSync(
- type: "dh",
- options: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: "dsa",
- options: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: "ec",
- options: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: "ed25519",
- options?: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: "ed448",
- options?: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: MLDSAKeyType,
- options?: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: MLKEMKeyType,
- options?: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: "rsa-pss",
- options: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: "rsa",
- options: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: SLHDSAKeyType,
- options?: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: "x25519",
- options?: T,
- ): KeyPairExportResult;
- function generateKeyPairSync(
- type: "x448",
- options?: T,
- ): KeyPairExportResult;
- /**
- * Generates a new asymmetric key pair of the given `type`. See the
- * supported [asymmetric key types](https://nodejs.org/docs/latest-v25.x/api/crypto.html#asymmetric-key-types).
- *
- * If a `publicKeyEncoding` or `privateKeyEncoding` was specified, this function
- * behaves as if `keyObject.export()` had been called on its result. Otherwise,
- * the respective part of the key is returned as a `KeyObject`.
- *
- * It is recommended to encode public keys as `'spki'` and private keys as `'pkcs8'` with encryption for long-term storage:
- *
- * ```js
- * const {
- * generateKeyPair,
- * } = await import('node:crypto');
- *
- * generateKeyPair('rsa', {
- * modulusLength: 4096,
- * publicKeyEncoding: {
- * type: 'spki',
- * format: 'pem',
- * },
- * privateKeyEncoding: {
- * type: 'pkcs8',
- * format: 'pem',
- * cipher: 'aes-256-cbc',
- * passphrase: 'top secret',
- * },
- * }, (err, publicKey, privateKey) => {
- * // Handle errors and use the generated key pair.
- * });
- * ```
- *
- * On completion, `callback` will be called with `err` set to `undefined` and `publicKey` / `privateKey` representing the generated key pair.
- *
- * If this method is invoked as its `util.promisify()` ed version, it returns
- * a `Promise` for an `Object` with `publicKey` and `privateKey` properties.
- * @since v10.12.0
- * @param type The asymmetric key type to generate. See the
- * supported [asymmetric key types](https://nodejs.org/docs/latest-v25.x/api/crypto.html#asymmetric-key-types).
- */
- function generateKeyPair(
- type: "dh",
- options: T,
- callback: KeyPairExportCallback,
- ): void;
- function generateKeyPair(
- type: "dsa",
- options: T,
- callback: KeyPairExportCallback,
- ): void;
- function generateKeyPair(
- type: "ec",
- options: T,
- callback: KeyPairExportCallback,
- ): void;
- function generateKeyPair(
- type: "ed25519",
- options: T | undefined,
- callback: KeyPairExportCallback,
- ): void;
- function generateKeyPair(
- type: "ed448",
- options: T | undefined,
- callback: KeyPairExportCallback