openapi: 3.1.0
info:
title: Gumlet Video Profiles API
version: '1.4'
description: Video Profiles operations of the Gumlet API.
contact:
name: Gumlet Support Team
url: https://www.gumlet.com/contact/
email: support@gumlet.com
termsOfService: https://www.gumlet.com/terms/
servers:
- url: https://api.gumlet.com/v1
tags:
- name: Video Profiles
paths:
/video/profiles:
post:
summary: Create Profile
description: Gumlet provides the functionality of creating multiple video assets using the same
set of parameters. A Video profile is a set of parameters that can be referenced/used while creating
a video as a single parameter.
operationId: create-profile
requestBody:
content:
application/json:
schema:
type: object
required:
- name
- format
properties:
name:
type: string
description: Profile name or identifier.
default: Gumlet-Profile-1
format:
type: string
description: Transcode and deliver the asset in the requested format. The options can
be one of `ABR` (HLS + DASH) and `MP4`.
default: ABR
enum:
- ABR
- MP4
width:
type: string
description: Resize video with the given width. Can be an absolute value in pixels or
a percentage value with the `%` suffix. Specified values greater than the original
asset width will be ignored. Only applicable when specified `format` is `MP4`.
height:
type: string
description: Resize video with the given height. Can be an absolute value in pixels
or a percentage value with the `%` suffix. Specified values greater than the original
asset height will be ignored. Only applicable when specified `format` is `MP4`.
resolution:
type: string
description: 'Required resolutions of the transformed asset in case of HLS or MPEG-DASH
delivery format. Can be a comma-separated string out of the following values: `240p`,
`360p`, `480p`, `540p`, `720p`, and `1080p `. Resized rendition will retain the input
aspect ratio.'
crop:
type: object
description: This transformation can be used to crop the video by defining a rectangular
area within the dimensions of the output video.
required:
- width
- height
properties:
horizontal_margin:
type: string
description: 'This parameter defines the horizontal coordinate value of the upper-left
corner of the cropping area. Values can be an absolute number of pixels or a percentage
value relative to the video width. **Default: `0`**'
vertical_margin:
type: string
description: 'This parameter defines the vertical coordinate value of the upper-left
corner of the cropping area. Values can be an absolute number of pixels or a percentage
value relative to the video height. **Default: `0`**'
width:
type: string
description: Width of the cropping area in pixels.
height:
type: string
description: Height of the cropping area in pixels.
pad:
type: object
description: This transformation can be used to add padding to the video.
properties:
top:
type: string
description: 'Width of padding on the top side. Values can be an absolute number
of pixels or a percentage value relative to the video height. **Default: `%5`**'
left:
type: string
description: 'Width of padding on the left side. Values can be an absolute number
of pixels or a percentage value relative to the video width. **Default: `0`**'
bottom:
type: string
description: 'Width of padding on the bottom side. Values can be an absolute number
of pixels or a percentage value relative to the video height. **Default: `%5`**'
right:
type: string
description: 'Width of padding on the right side. Values can be an absolute number
of pixels or a percentage value relative to the video width. **Default: `0`**'
color:
type: string
description: 'Color of padding area. **Default: `black`**'
trim:
type: object
description: Trim transformation can be used to trim videos based on time duration.
required:
- start_offset
- end_offset
properties:
start_offset:
type: number
description: Start offset in number of seconds or in `HH:MM:SS` format.
format: float
end_offset:
type: number
description: End offset in number of seconds or in `HH:MM:SS` format.
format: float
duration:
type: number
description: Duration can be used in conjunction with `start_offset` parameter,
can be specified in number of seconds.
format: float
image_overlay:
type: object
description: Image overlay can be used to brand a video or add a visual label in the
form of an image.
required:
- url
properties:
url:
type: string
description: This is the required parameter for image overlay; it can be a URL to
an image that needs to be overlaid.
horizontal_margin:
type: string
description: 'This parameter defines the horizontal coordinate value of the corner
(determined by `horizontal_align`) of the overlay area. Values can be an absolute
number of pixels or a percentage value relative to the video width. **Default:
`0`**'
vertical_margin:
type: string
description: 'This parameter defines the vertical coordinate value of the corner
(determined by `vertical_align`) of the overlay area. Values can be an absolute
number of pixels or a percentage value relative to the video height. **Default:
`0`**'
horizontal_align:
type: string
description: 'This parameter specifies the horizontal alignment of the overlaid
image and can be either `left` or `right`. **Default: `right`**'
vertical_align:
type: string
description: 'This parameter specifies the vertical alignment of the overlaid image
and can be either `top` or `bottom`. **Default: `bottom`**'
width:
type: string
description: 'Width of the overlaid image. **Default: `image width`**'
height:
type: string
description: 'Height of the overlaid image. **Default: `image height`**'
text_overlay:
type: object
description: Text overlay can be used to brand a video or add a label in the form of
text.
required:
- text
properties:
text:
type: string
description: Text to be overlaid on video.
horizontal_align:
type: string
description: 'This parameter specifies the horizontal alignment of the overlaid
text and can be either `left` or `right`. **Default: `right`**'
vertical_align:
type: string
description: 'This parameter specifies the vertical alignment of the overlaid text
and can be either `top` or `bottom`. **Default: `bottom`**'
horizontal_margin:
type: string
description: 'This parameter defines the horizontal coordinate value of the corner
(determined by `horizontal_align`) of the overlay area. Values can be an absolute
number of pixels relative to the video width. **Default: `0`**'
vertical_margin:
type: string
description: 'This parameter defines the vertical coordinate value of the corner
(determined by vertical_align) of the overlay area. Values can be an absolute
number of pixels relative to the video height. **Default: `0`**'
color:
type: string
description: 'Font color for text. **Default: `black`**'
font:
type: string
description: 'Font family type for text. **Default: `sans`**'
font_size:
type: string
description: 'Font size in pixels. **Default: `16`**'
opacity:
type: string
description: 'Overlay text opacity can be specified with opacity parameter where
value can be between `0` and `100` where `0` is considered completely transparent
and `100` is considered completely opaque. **Default: `100`**'
box:
type: boolean
description: 'This parameter allows drawing a rectangular box over the overlaid
text. **Default: `false`**'
box_color:
type: string
description: 'Box color can be specified with this parameter. **Default: `white`**'
box_opacity:
type: string
description: 'Box opacity can be specified with this parameter. **Default: `100`**'
box_border:
type: string
description: 'Padding between the box border and the text can be specified with
this parameter in pixels. **Default: `0`**'
animated_gif:
type: object
description: Create an animated GIF from a video.
properties:
start_offset:
type: string
description: 'The time (in seconds or `HH:MM:SS` format) of the video timeline where
the animated gif should begin. **Default: `0`**'
end_offset:
type: string
description: The time (in seconds or `HH:MM:SS` format) of the video timeline where
the GIF ends. Defaults to `10` seconds after the start_offset. Maximum duration
of GIF is limited to `10` seconds.
width:
type: string
description: The width in pixels (or in percentage value of asset width) of the
animated GIF. Max width is `640px`.
height:
type: string
description: The height in pixels (or in percentage value of asset height) of the
animated GIF. Max height is `640px`.
fps:
type: string
description: The frame rate of the generated GIF. Defaults to `15` fps. Max `30`
fps.
generate_subtitles:
type: object
description: Gumlet allows you to generate subtitles from the audio stream (use
ISO 639-1 Language Codes). Remove this object if you do not want to generate
AI subtitles.
properties:
transcribe:
type: boolean
description: This will generate the subtitles in the native audio.
default: true
subtitle_languages:
type: string
description: Array of string of language codes for which subtitle needs to be generated.
Maximum four language codes are allowed.
mp4_access:
type: boolean
description: 'Creates `mp4` version for download purpose in case of `MPEG-DASH` or `HLS`
delivery format. **Default: `false`**'
per_title_encoding:
type: boolean
description: 'Gumlet analyzes each input video on a wide range of visual aspects. Based
on the analysis, it chooses a unique set of transcoding options for processing the
video. This ensures that the output video is of optimal size and best quality. **Default:
`true`**'
process_low_resolution_input:
type: boolean
description: 'Currently, the minimum supported frame size is `57600` (`240x240`) pixels
for `HLS/DASH` and `21025` (`145x145`) pixels for `MP4` format. However, enabling
this flag will allow Gumlet to simply put your video asset into the specified delivery
format without transcoding and optimization. Enabling this flag will cause any kind
of specified video transformation to be ignored if you input video asset frame size
is lower than the minimum supported frame size for the specified format. **Default:
`false`**'
audio_only:
type: boolean
description: 'This flag allows Gumlet to transcode and deliver audio-only in the specified
format. In this case,This flag allows Gumlet to transcode and deliver audio-only in
the specified format. In this case, video transformation and thumbnails/animated GIFs
would not be created. **Default: `false`**'
enable_drm:
type: boolean
description: Enable DRM encryption for transcoded videos. Gumlet supports Widevine and
FairPlay DRMs.
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
profile_id: 61921fb10822a81d955d1730
name: Gumlet-Profile-1
transformations:
format: hls
audio_codec:
- aac
video_codec:
- libx264
thumbnail:
- auto
thumbnail_format: png
mp4_access: false
per_title_encoding: true
created_at: 1636966321742
schema:
type: object
properties:
profile_id:
type: string
example: 61921fb10822a81d955d1730
name:
type: string
example: Gumlet-Profile-1
transformations:
type: object
properties:
format:
type: string
example: hls
audio_codec:
type: array
items:
type: string
example: aac
video_codec:
type: array
items:
type: string
example: libx264
thumbnail:
type: array
items:
type: string
example: auto
thumbnail_format:
type: string
example: png
mp4_access:
type: boolean
example: false
default: true
per_title_encoding:
type: boolean
example: true
default: true
created_at:
type: integer
example: 1636966321742
default: 0
'400':
description: Bad Request
content:
application/json:
examples:
Result:
value:
error:
code: parameter_missing
message: video output format (format) and profile name (name) are required to create
profile.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: parameter_missing
message:
type: string
example: video output format (format) and profile name (name) are required to
create profile.
required:
- code
- message
required:
- error
'401':
description: '401'
content:
application/json:
examples:
Result:
value:
error:
code: profile_not_found
message: Could not find any video profile with specified profile_id.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: profile_not_found
message:
type: string
example: Could not find any video profile with specified profile_id.
'403':
$ref: '#/components/responses/Forbidden'
'422':
$ref: '#/components/responses/ValidationError'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
tags:
- Video Profiles
x-stoplight:
id: c17cjdbbio5um
x-codeSamples:
- label: TypeScript
lang: TypeScript
source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'],\
\ // defaults to the API_KEY env var\n});\n\nconst videoProfile = await client.videoProfiles.create({\n\
\ name: 'Gumlet-Profile-1',\n format: 'ABR',\n});\n\nconsole.log(videoProfile);"
- label: Python
lang: Python
source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"\
API_KEY\"),\n)\n\nvideo_profile = client.video_profiles.create(\n name=\"Gumlet-Profile-1\"\
,\n format=\"ABR\",\n)\n\nprint(video_profile)"
get:
summary: List Profiles
description: This endpoint retrieves the details of all profiles that have previously been created.
operationId: list-profiles
parameters:
- name: offset
in: query
description: Offset value for a paginated list of profiles. Can be zero for the first time and
`current_offset` value received from the last request afterwards.
schema:
type: integer
format: int32
- name: size
in: query
description: 'Page size for the paginated list. **Default: `10`**'
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
all_profiles:
- profile_id: 61921fb10822a81d955d1730
name: Gumlet-Profile-1
transformations:
format: hls
audio_codec:
- aac
video_codec:
- libx264
thumbnail:
- auto
thumbnail_format: png
mp4_access: false
per_title_encoding: true
created_at: 1636966321742
updated_at: 1636966321742
- profile_id: 619206f80822a81d955cb2b1
name: Gumlet Video Profile-1
transformations:
format: hls
audio_codec:
- aac
video_codec:
- libx264
thumbnail:
- auto
thumbnail_format: png
mp4_access: false
per_title_encoding: true
created_at: 1636959992966
updated_at: 1636959992966
- profile_id: 61666fce68d8028cdd8e3417
name: new-staging-1
transformations:
format: hls
resolution:
- 240p
- 360p
- 480p
- 540p
- 720p
- 1080p
video_codec:
- libx264
audio_codec:
- aac
thumbnail:
- auto
thumbnail_format: png
mp4_access: false
per_title_encoding: true
created_at: 1634103246666
updated_at: 1634103246666
- profile_id: 615db3e70ba15d66354583c2
name: new-staging-p
transformations:
resolution:
- 240p
- 360p
- 480p
- 540p
- 720p
format: hls
audio_codec:
- aac
video_codec:
- libx264
thumbnail:
- auto
thumbnail_format: png
mp4_access: false
per_title_encoding: true
created_at: 1633530855475
updated_at: 1633530855475
- profile_id: 615d84e80ba15d66354534fe
name: new-profile-test
transformations:
resolution:
- 240p
- 360p
- 480p
- 540p
- 720p
- 1080p
format: hls
audio_codec:
- aac
video_codec:
- libx264
thumbnail:
- auto
thumbnail_format: png
mp4_access: true
per_title_encoding: true
created_at: 1633518824278
updated_at: 1633518824278
- profile_id: 60a3f690687a6ca9aad205dc
name: staging-profile
transformations:
format: hls
resolution:
'0': 240p
'1': 360p
'2': 480p
'3': 540p
video_codec:
- libx264
audio_codec:
- aac
thumbnail:
- auto
thumbnail_format: png
mp4_access: true
per_title_encoding: true
trim: {}
created_at: 1621358224338
updated_at: 1633517722412
- profile_id: 609cf385fb00af2de13f8b3f
name: non-pte-test-profile
transformations:
format: hls
resolution:
- 240p
- 360p
- 480p
- 540p
- 720p
- 1080p
video_codec:
- libx264
audio_codec:
- aac
thumbnail:
- auto
thumbnail_format: png
mp4_access: false
per_title_encoding: false
created_at: 1620898693836
updated_at: 1620898693836
- profile_id: 5feaf9a22e3cb37e8417174e
name: Gumlet Video Profile-1
transformations:
format: hls
video_codec:
- libx264
audio_codec:
- aac
text_overlay:
text: Gumlet
vertical_align: top
horizontal_align: left
vertical_margin: 10%
horizontal_margin: 10%
font_color: black
font: sans
font_size: 45
box: true
box_color: white
box_border: 10
thumbnail:
- auto
thumbnail_format: png
mp4_access: false
image_overlay:
url: https://assets.gumlet.io/assets/logo.svg?format=png
vertical_align: top
horizontal_align: left
vertical_margin: 5%
horizontal_margin: 5%
width: 10%
height: 10%
created_at: 1609234850093
updated_at: 1609235119156
total_profile_count: 8
current_offset: 8
schema:
type: object
properties:
all_profiles:
type: array
items:
type: object
properties:
profile_id:
type: string
example: 61921fb10822a81d955d1730
name:
type: string
example: Gumlet-Profile-1
transformations:
type: object
properties:
format:
type: string
example: hls
audio_codec:
type: array
items:
type: string
example: aac
video_codec:
type: array
items:
type: string
example: libx264
thumbnail:
type: array
items:
type: string
example: auto
thumbnail_format:
type: string
example: png
mp4_access:
type: boolean
example: false
default: true
per_title_encoding:
type: boolean
example: true
default: true
created_at:
type: integer
example: 1636966321742
default: 0
updated_at:
type: integer
example: 1636966321742
default: 0
total_profile_count:
type: integer
example: 8
default: 0
current_offset:
type: integer
example: 8
default: 0
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
deprecated: false
tags:
- Video Profiles
x-stoplight:
id: pagbl35gzdirz
x-codeSamples:
- label: TypeScript
lang: TypeScript
source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'],\
\ // defaults to the API_KEY env var\n});\n\nconst videoProfile = await client.videoProfiles.list();\n\
\nconsole.log(videoProfile);"
- label: Python
lang: Python
source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"\
API_KEY\"),\n)\n\nvideo_profile = client.video_profiles.list()\n\nprint(video_profile)"
/video/profiles/{profile_id}:
post:
summary: Update Profile
description: Update an existing profile. Settings provided in body parameters will only be updated
in the existing profile.
operationId: update-profile
parameters:
- name: profile_id
in: path
description: Profile id of the profile which need to be updated.
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
required:
- profile_id
properties:
profile_id:
type: string
description: Profile id of the profile which needs to be deleted.
name:
type: string
description: Profile name or identifier.
format:
type: string
description: Transcode and deliver the asset in the requested format. The options can
be one of `ABR` (HLS + DASH) and `MP4`.
default: ABR
enum:
- ABR
- MP4
width:
type: string
description: Resize video with the given width. Can be an absolute value in pixels or
a percentage value with the `%` suffix. Specified values greater than the original
asset width will be ignored. Only applicable when specified `format` is `MP4`.
height:
type: string
description: Resize video with the given height. Can be an absolute value in pixels
or a percentage value with the `%` suffix. Specified values greater than the original
asset height will be ignored. Only applicable when specified `format` is `MP4`.
resolution:
type: string
description: Resize video with the given height. Can be an absolute value in pixels
or a percentage value with the `%` suffix. Specified values greater than the original
asset height will be ignored. Only applicable when specified `format` is `MP4`.
crop:
type: object
description: This transformation can be used to crop the video by defining a rectangular
area within the dimensions of the output video.
required:
- width
- height
properties:
horizontal_margin:
type: string
description: 'This parameter defines the horizontal coordinate value of the upper-left
corner of the cropping area. Values can be an absolute number of pixels or a percentage
value relative to the video width. **Default: `0`**'
vertical_margin:
type: string
description: 'This parameter defines the vertical coordinate value of the upper-left
corner of the cropping area. Values can be an absolute number of pixels or a percentage
value relative to the video height. **Default: `0`**'
width:
type: string
description: Width of the cropping area in pixels.
height:
type: string
description: Height of the cropping area in pixels.
x-apidog-orders:
- horizontal_margin
- vertical_margin
- width
- height
pad:
type: object
description: This transformation can be used to add padding to the video.
properties:
top:
type: string
description: 'Width of padding on the top side. Values can be an absolute number
of pixels or a percentage value relative to the video height. **Default: `%5`**'
left:
type: string
description: 'Width of padding on the left side. Values can be an absolute number
of pixels or a percentage value relative to the video width. **Default: `0`**'
bottom:
type: string
description: 'Width of padding on the bottom side. Values can be an absolute number
of pixels or a percentage value relative to the video height. **Default: `%5`**'
right:
type: string
description: 'Width of padding on the right side. Values can be an absolute number
of pixels or a percentage value relative to the video width. **Default: `0`**'
color:
type: string
description: 'Color of padding area. **Default: `black`**'
x-apidog-orders:
- top
- left
- bottom
- right
- color
trim:
type: object
description: Trim transformation can be used to trim videos based on time duration.
required:
- start_offset
- end_offset
properties:
start_offset:
type: number
description: Start offset in number of seconds or in `HH:MM:SS` format.
format: float
end_offset:
type: number
description: End offset in number of seconds or in `HH:MM:SS` format.
format: float
duration:
type: number
description: Duration can be used in conjunction with `start_offset` parameter,
can be specified in number of seconds.
format: float
x-apidog-orders:
- start_offset
- end_offset
- duration
image_overlay:
type: object
description: Image overlay can be used to brand a video or add a visual label in the
form of an image.
required:
- url
properties:
url:
type: string
description: This is the required parameter for image overlay; it can be a URL to
an image that needs to be overlaid.
horizontal_margin:
type: string
description: 'This parameter defines the horizontal coordinate value of the corner
(determined by `horizontal_align`) of the overlay area. Values can be an absolute
number of pixels or a percentage value relative to the video width. **Default:
`0`**'
vertical_margin:
type: string
description: 'This parameter defines the vertical coordinate value of the corner
(determined by `vertical_align`) of the overlay area. Values can be an absolute
number of pixels or a percentage value relative to the video height. **Default:
`0`**'
horizontal_align:
type: string
description: 'This parameter specifies the horizontal alignment of the overlaid
image and can be either `left` or `right`. **Default: `right`**'
vertical_align:
type: string
description: 'This parameter specifies the vertical alignment of the overlaid image
and can be either `top` or `bottom`. **Default: `bottom`**'
width:
type: string
description: 'Width of the overlaid image. **Default: `image width`**'
height:
type: string
description: 'Height of the overlaid image. **Default: `image height`**'
x-apidog-orders:
- url
- horizontal_margin
- vertical_margin
- horizontal_align
- vertical_align
- width
- height
text_overlay:
type: object
description: Text overlay can be used to brand a video or add a label in the form of
text.
required:
- text
properties:
text:
type: string
description: Text to be overlaid on video.
horizontal_align:
type: string
description: 'This parameter specifies the horizontal alignment of the overlaid
text and can be either `left` or `right`. **Default: `right`**'
vertical_align:
type: string
description: 'This parameter specifies the vertical alignment of the overlaid text
and can be either `top` or `bottom`. **Default: `bottom`**'
horizontal_margin:
type: string
description: 'This parameter defines the horizontal coordinate value of the corner
(determined by `horizontal_align`) of the overlay area. Values can be an absolute
number of pixels relative to the video width. **Default: `0`**'
vertical_margin:
type: string
description: 'This parameter defines the vertical coordinate value of the corner
(determined by vertical_align) of the overlay area. Values can be an absolute
number of pixels relative to the video height. **Default: `0`**'
color:
type: string
description: 'Font color for text. **Default: `black`**'
font:
type: string
description: 'Font family type for text. **Default: `sans`**'
font_size:
type: string
description: 'Font size in pixels. **Default: `16`**'
opacity:
type: string
description: 'Overlay text opacity can be specified with opacity parameter where
value can be between `0` and `100` where `0` is considered completely transparent
and `100` is considered completely opaque. **Default: `100`**'
box:
type: boolean
description: 'This parameter allows drawing a rectangular box over the overlaid
text. **Default: `false`**'
box_color:
type: string
description: 'Box color can be specified with this parameter. **Default: `white`**'
box_opacity:
type: string
description: 'Box opacity can be specified with this parameter. **Default: `100`**'
box_border:
type: string
description: 'Padding between the box border and the text can be specified with
this parameter in pixels. **Default: `0`**'
x-apidog-orders:
- text
- horizontal_align
- vertical_align
- horizontal_margin
- vertical_margin
- color
- font
- font_size
- opacity
- box
- box_color
- box_opacity
- box_border
animated_gif:
type: object
description: Create an animated GIF from a video.
properties:
start_offset:
type: string
description: 'The time (in seconds or `HH:MM:SS` format) of the video timeline where
the animated gif should begin. **Default: `0`**'
end_offset:
type: string
description: The time (in seconds or `HH:MM:SS` format) of the video timeline where
the GIF ends. Defaults to `10` seconds after the start_offset. Maximum duration
of GIF is limited to `10` seconds.
width:
type: string
description: The width in pixels (or in percentage value of asset width) of the
animated GIF. Max width is `640px`.
height:
type: string
description: The height in pixels (or in percentage value of asset height) of the
animated GIF. Max height is `640px`.
fps:
type: string
description: The frame rate of the generated GIF. Defaults to `15` fps. Max `30`
fps.
x-apidog-orders:
- start_offset
- end_offset
- width
- height
- fps
generate_subtitles:
type: object
description: Gumlet allows you to generate subtitles from the audio stream (use
ISO 639-1 Language Codes). You can remove this object if you don't want to generate
AI subtitles.
properties:
subtitle_languages:
type: array
description: Array of string of language codes for which subtitle needs to be generated.
Maximum four language codes are allowed.
items:
type: string
transcribe:
type: boolean
default: true
description: This is by default true to generate the subtitles in the native audio.
x-apidog-orders:
- subtitle_languages
- transcribe
mp4_access:
type: boolean
description: 'Creates `mp4` version for download purpose in case of `MPEG-DASH` or `HLS`
delivery format. **Default: `false`**'
per_title_encoding:
type: boolean
description: 'Gumlet analyzes each input video on a wide range of visual aspects. Based
on the analysis, it chooses a unique set of transcoding options for processing the
video. This ensures that the output video is of optimal size and best quality. **Default:
`true`**'
process_low_resolution_input:
type: boolean
description: 'Currently, the minimum supported frame size is `57600` (`240x240`) pixels
for `HLS/DASH` and `21025` (`145x145`) pixels for `MP4` format. However, enabling
this flag will allow Gumlet to simply put your video asset into the specified delivery
format without transcoding and optimization. Enabling this flag will cause any kind
of specified video transformation to be ignored if you input video asset frame size
is lower than the minimum supported frame size for the specified format. **Default:
`false`**'
audio_only:
type: boolean
description: 'This flag allows Gumlet to transcode and deliver audio-only in the specified
format. In this case,This flag allows Gumlet to transcode and deliver audio-only in
the specified format. In this case, video transformation and thumbnails/animated GIFs
would not be created. **Default: `false`**'
enable_drm:
type: boolean
description: Enable DRM encryption for transcoded videos. Gumlet supports Widevine and
FairPlay DRMs.
vc:
type: array
items:
type: string
description: Video Codecs
generate_chapters:
type: boolean
description: Whether Gumlet should generate chapters.
generate_description:
type: boolean
description: Whether Gumlet should generate descriptions.
x-apidog-orders:
- profile_id
- name
- format
- width
- height
- resolution
- vc
- crop
- pad
- trim
- image_overlay
- text_overlay
- animated_gif
- generate_subtitles
- mp4_access
- per_title_encoding
- process_low_resolution_input
- audio_only
- enable_drm
- generate_chapters
- generate_description
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
profile_id: 61921fb10822a81d955d1730
name: Gumlet-Profile-2
transformations:
resolution: 240p,360p
format: hls
audio_codec:
- aac
video_codec:
- libx264
thumbnail:
- auto
thumbnail_format: png
mp4_access: false
per_title_encoding: true
created_at: 1636966321742
updated_at: 1636975593082
schema:
type: object
properties:
profile_id:
type: string
example: 61921fb10822a81d955d1730
name:
type: string
example: Gumlet-Profile-2
transformations:
type: object
properties:
resolution:
type: string
example: 240p,360p
format:
type: string
example: hls
audio_codec:
type: array
items:
type: string
example: aac
video_codec:
type: array
items:
type: string
example: libx264
thumbnail:
type: array
items:
type: string
example: auto
thumbnail_format:
type: string
example: png
mp4_access:
type: boolean
example: false
default: true
per_title_encoding:
type: boolean
example: true
default: true
created_at:
type: integer
example: 1636966321742
default: 0
updated_at:
type: integer
example: 1636975593082
default: 0
'400':
description: Bad Request
content:
application/json:
examples:
Result:
value:
error:
code: parameter_missing
message: One or more required values are missing.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: parameter_missing
message:
type: string
example: One or more required values are missing.
required:
- code
- message
required:
- error
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
description: Not Found
content:
application/json:
examples:
Result:
value:
error:
code: profile_not_found
message: Could not find any video profile with specified profile_id.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: profile_not_found
message:
type: string
example: Could not find any video profile with specified profile_id.
required:
- code
- message
required:
- error
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
tags:
- Video Profiles
x-stoplight:
id: 4z7lrir87xi3k
x-codeSamples:
- label: TypeScript
lang: TypeScript
source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'],\
\ // defaults to the API_KEY env var\n});\n\nconst videoProfile = await client.videoProfiles.update('profileId',\
\ {\n profile_id: '',\n format: 'ABR',\n});\n\nconsole.log(videoProfile);"
- label: Python
lang: Python
source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"\
API_KEY\"),\n)\n\nvideo_profile = client.video_profiles.update(\n path_profile_id=\"profileId\"\
,\n body_profile_id=\"\",\n format=\"ABR\",\n)\n\nprint(video_profile)"
get:
summary: Get Profile
description: This endpoint retrieves the details of a video profile that has previously been created.
operationId: get-profile
parameters:
- name: profile_id
in: path
description: Profile id of the profile which needs to be retrieved.
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
profile_id: 61921fb10822a81d955d1730
name: Gumlet-Profile-2
transformations:
format: hls
audio_codec:
- aac
video_codec:
- libx264
thumbnail:
- auto
thumbnail_format: png
mp4_access: false
per_title_encoding: true
resolution: 240p,360p
created_at: 1636966321742
updated_at: 1636975593082
schema:
type: object
properties:
profile_id:
type: string
examples:
- 61921fb10822a81d955d1730
name:
type: string
examples:
- Gumlet-Profile-2
transformations:
type: object
properties:
format:
type: string
examples:
- hls
audio_codec:
type: array
items:
type: string
examples:
- aac
video_codec:
type: array
items:
type: string
examples:
- libx264
thumbnail:
type: array
items:
type: string
examples:
- auto
thumbnail_format:
type: string
examples:
- png
mp4_access:
type: boolean
default: true
examples:
- false
per_title_encoding:
type: boolean
default: true
examples:
- true
resolution:
type: string
examples:
- 240p,360p
generate_chapters:
type: boolean
description: Flag that shows if AI generated chapters are enabled
x-apidog-orders:
- format
- audio_codec
- video_codec
- thumbnail
- thumbnail_format
- mp4_access
- per_title_encoding
- resolution
- generate_chapters
created_at:
type: integer
default: 0
examples:
- 1636966321742
updated_at:
type: integer
default: 0
examples:
- 1636975593082
x-apidog-orders:
- profile_id
- name
- transformations
- created_at
- updated_at
'400':
description: Bad Request
content:
application/json:
examples:
Result:
value:
error:
code: profile_not_found
message: Could not find any video profile with specified profile_id.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: profile_not_found
message:
type: string
example: Could not find any video profile with specified profile_id.
required:
- code
- message
required:
- error
'401':
description: '401'
content:
application/json:
examples:
Result:
value:
error:
code: profile_not_found
message: Could not find any video profile with specified profile_id.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: profile_not_found
message:
type: string
example: Could not find any video profile with specified profile_id.
'403':
$ref: '#/components/responses/Forbidden'
'404':
description: Not Found
content:
application/json:
examples:
Result:
value:
error:
code: profile_not_found
message: Could not find any video profile with specified profile_id.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: profile_not_found
message:
type: string
example: Could not find any video profile with specified profile_id.
required:
- code
- message
required:
- error
deprecated: false
tags:
- Video Profiles
x-codeSamples:
- label: TypeScript
lang: TypeScript
source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'],\
\ // defaults to the API_KEY env var\n});\n\nconst videoProfile = await client.videoProfiles.retrieve('profileId');\n\
\nconsole.log(videoProfile);"
- label: Python
lang: Python
source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"\
API_KEY\"),\n)\n\nvideo_profile = client.video_profiles.retrieve(\n profile_id=\"profileId\"\
,\n)\n\nprint(video_profile)"
delete:
summary: Delete Profile
description: This endpoint removes a profile given its unique `profile_id`. The profile will be
removed but video assets created using the profile will remain as it is.
operationId: delete-profile
parameters:
- name: profile_id
in: path
description: Profile id of the profile which needs to be deleted.
schema:
type: string
required: true
responses:
'204':
description: '204'
content:
application/json:
examples:
Result:
value: {}
schema:
type: object
properties: {}
'400':
description: Bad Request — profile linked to workspace
content:
application/json:
examples:
Result:
value:
error:
code: profile_collection_link_found
message: The profile is configured as default profile for one or multiple workspaces.
Please remove it as default profile first.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: profile_collection_link_found
message:
type: string
example: The profile is configured as default profile for one or multiple workspaces.
Please remove it as default profile first.
required:
- code
- message
required:
- error
'401':
description: '401'
content:
application/json:
examples:
Result:
value:
error:
code: profile_not_found
message: Could not find any video profile with specified profile_id.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: profile_not_found
message:
type: string
example: Could not find any video profile with specified profile_id.
'403':
$ref: '#/components/responses/Forbidden'
'404':
description: Not Found
content:
application/json:
examples:
Result:
value:
error:
code: profile_not_found
message: Could not find any video profile with specified profile_id.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: profile_not_found
message:
type: string
example: Could not find any video profile with specified profile_id.
required:
- code
- message
required:
- error
deprecated: false
tags:
- Video Profiles
x-stoplight:
id: 0rf71da9mcxfb
x-codeSamples:
- label: TypeScript
lang: TypeScript
source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'],\
\ // defaults to the API_KEY env var\n});\n\nconst videoProfile = await client.videoProfiles.delete('profileId');\n\
\nconsole.log(videoProfile);"
- label: Python
lang: Python
source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"\
API_KEY\"),\n)\n\nvideo_profile = client.video_profiles.delete(\n profile_id=\"profileId\"\
,\n)\n\nprint(video_profile)"
components:
securitySchemes:
API_KEY:
type: http
scheme: bearer
schemas:
Error:
type: object
required:
- error
properties:
error:
type: object
required:
- code
- message
properties:
code:
type: string
description: Machine-readable error code
message:
type: string
description: Human-readable error message
param:
type: string
description: Optional parameter name related to the error
responses:
Unauthorized:
description: Unauthorized — missing or invalid API key / bearer token
content:
application/json:
examples:
Result:
value:
error:
code: invalid_api_key
message: API key supplied with request is invalid
schema:
$ref: '#/components/schemas/Error'
Forbidden:
description: Forbidden — unpaid account or insufficient role permissions
content:
application/json:
examples:
Result:
value:
error:
code: unauthorized
message: You don't have access to this feature. Please contact your organization owner.
schema:
$ref: '#/components/schemas/Error'
ValidationError:
description: Unprocessable Entity — request validation failed
content:
application/json:
examples:
Result:
value:
error:
code: invalid_parameter
message: body must have required property ''
schema:
$ref: '#/components/schemas/Error'
InternalServerError:
description: Internal Server Error
content:
application/json:
examples:
Result:
value:
error:
code: internal_server_error
message: We have encountered some server error. We have been notified and will fix it
soon.
schema:
$ref: '#/components/schemas/Error'
security:
- API_KEY: []