openapi: 3.1.0
info:
title: Gumlet Live Stream Assets API
version: '1.4'
description: Live Stream Assets 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: Live Stream Assets
paths:
/video/live/assets:
post:
summary: Create Live Asset
description: A live asset refers to media content/video that is live-streamed through Gumlet. This
endpoint creates a live streaming asset allowing users to live stream a video that will be pushed
to Gumlet.
operationId: create-live-asset
requestBody:
content:
application/json:
schema:
type: object
required:
- live_source_id
- resolution
properties:
live_source_id:
type: string
description: Gumlet live video source/collection id.
resolution:
type: string
description: 'Required resolutions in HLS delivery format for live stream. Can be an
array of string out of the following values: `240p`, `360p`, `480p`, `540p`, `720p`,
and `1080p`. Resized rendition will retain the input aspect ratio.'
title:
type: string
description: Your live stream asset title
mp4_access:
type: boolean
description: Creates MP4 version for download purpose.
orientation:
type: string
enum:
- landscape
- potrait
start_at:
type: string
format: date-time
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
status: created
stream_key: 68c3da5947f9ad0c0d513fe3
live_asset_id: 68c3da5947f9ad0c0d513fe2
live_video_source_id: 67e4ecea403562dbea654269
input:
resolution:
- 360p
- 480p
- 720p
- 240p
- 1080p
title: gumlet-stream
stream_url: rtmp://44.245.28.195:1935/app/68c3da5947f9ad0c0d513fe3
output:
playback_url: https://stream.gumlet.io/67e4ecea403562dbea654269/68c3da5947f9ad0c0d513fe2/main.m3u8
recording_playback_url: https://video.gumlet.io/6867815b6410daa283f85532/68c3da5947f9ad0c0d513fe4/main.m3u8
recording_dash_playback_url: https://video.gumlet.io/6867815b6410daa283f85532/68c3da5947f9ad0c0d513fe4/main.mpd
vod_asset_id: 68c3da5947f9ad0c0d513fe4
created_at: 1757665882451
updated_at: 1757665882451
schema:
type: object
properties:
status:
type: string
example: created
stream_key:
type: string
example: 619231610822a81d955d22f4
live_asset_id:
type: string
example: 619231610822a81d955d22f3
live_video_source_id:
type: string
example: 6165247368d80232d28d4379
input:
type: object
properties:
resolution:
type: array
items:
type: string
example: 720p
title:
type: string
stream_url:
type: string
example: rtmp://livestream-ingest.gumlet.io:1935/app/619231610822a81d955d22f4
output:
type: object
properties:
playback_url:
type: string
example: https://video.gumlet.io/6165247368d80232d28d4379/619231610822a81d955d22f3/master.m3u8
recording_playback_url:
type: string
recording_dash_playback_url:
type: string
thumbnail:
type: object
properties:
preparing:
type: string
example: https://stream.gumlet.io/67e4ecea403562dbea654269/68c3da5947f9ad0c0d513fe2/thumbnail-preparing.png
disconnected:
type: string
example: https://stream.gumlet.io/67e4ecea403562dbea654269/68c3da5947f9ad0c0d513fe2/thumbnail-disconnected.png
end:
type: string
example: https://stream.gumlet.io/67e4ecea403562dbea654269/68c3da5947f9ad0c0d513fe2/thumbnail-end.png
created_at:
type: integer
example: 1636970849188
default: 0
updated_at:
type: integer
example: 1636970849188
default: 0
vod_asset_id:
type: string
'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':
description: '401'
content:
application/json:
examples:
Result:
value:
error:
code: source_not_found
message: Could not find any video source with specified source ID.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: source_not_found
message:
type: string
example: Could not find any video source with specified source ID.
'403':
description: Forbidden — monthly live streaming quota exceeded
content:
application/json:
examples:
Result:
value:
error:
code: live_stream_monthly_usage_quota_exceeded
message: You have already exceeded your monthly quota for live streaming usage.
Please upgrade your plan.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: live_stream_monthly_usage_quota_exceeded
message:
type: string
example: You have already exceeded your monthly quota for live streaming usage.
Please upgrade your plan.
required:
- code
- message
required:
- error
'422':
$ref: '#/components/responses/ValidationError'
deprecated: false
tags:
- Live Stream Assets
x-stoplight:
id: cka42lfc4c8hf
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 liveStreamAsset = await client.liveStreamAssets.create({\n\
\ live_source_id: '',\n resolution: '',\n});\n\nconsole.log(liveStreamAsset);"
- 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\nlive_stream_asset = client.live_stream_assets.create(\n live_source_id=\"\
\",\n resolution=\"\",\n)\n\nprint(live_stream_asset)"
/video/live/assets/update:
post:
summary: Update Live Asset
description: A live asset refers to media content/video that is live-streamed through Gumlet. This
endpoint allows users to update a live streaming asset.
operationId: create-live-asset-copy
requestBody:
content:
application/json:
schema:
type: object
required:
- live_asset_id
properties:
live_asset_id:
type: string
description: Gumlet live video asset id.
title:
type: string
description: Your live stream asset title
start_at:
type: string
format: date-time
description: ''
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
status: created
stream_key: 68c6d4b8d2b638a10ef3e044
live_asset_id: 68c6d4b8d2b638a10ef3e043
live_video_source_id: 67e4ecea403562dbea654269
input:
resolution:
- 360p
- 480p
- 720p
title: gumlet-stream-1-edited
stream_url: rtmp://52.11.39.160:1935/app/68c6d4b8d2b638a10ef3e044
output:
playback_url: https://stream.gumlet.io/67e4ecea403562dbea654269/68c6d4b8d2b638a10ef3e043/main.m3u8
recording_playback_url: https://video.gumlet.io/6867815b6410daa283f85532/68c6d4b8d2b638a10ef3e045/main.m3u8
recording_dash_playback_url: https://video.gumlet.io/6867815b6410daa283f85532/68c6d4b8d2b638a10ef3e045/main.mpd
vod_asset_id: 68c6d4b8d2b638a10ef3e045
created_at: 1757861049778
updated_at: 1757861101257
schema:
type: object
properties:
status:
type: string
example: created
stream_key:
type: string
example: 619231610822a81d955d22f4
live_asset_id:
type: string
example: 619231610822a81d955d22f3
live_video_source_id:
type: string
example: 6165247368d80232d28d4379
input:
type: object
properties:
resolution:
type: array
items:
type: string
example: 720p
title:
type: string
stream_url:
type: string
example: rtmp://livestream-ingest.gumlet.io:1935/app/619231610822a81d955d22f4
output:
type: object
properties:
playback_url:
type: string
example: https://video.gumlet.io/6165247368d80232d28d4379/619231610822a81d955d22f3/master.m3u8
recording_playback_url:
type: string
recording_dash_playback_url:
type: string
thumbnail:
type: object
properties:
preparing:
type: string
example: https://stream.gumlet.io/67e4ecea403562dbea654269/68c6d4b8d2b638a10ef3e043/thumbnail-preparing.png
disconnected:
type: string
example: https://stream.gumlet.io/67e4ecea403562dbea654269/68c6d4b8d2b638a10ef3e043/thumbnail-disconnected.png
end:
type: string
example: https://stream.gumlet.io/67e4ecea403562dbea654269/68c6d4b8d2b638a10ef3e043/thumbnail-end.png
created_at:
type: integer
example: 1636970849188
default: 0
updated_at:
type: integer
example: 1636970849188
default: 0
vod_asset_id:
type: string
'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':
description: '401'
content:
application/json:
examples:
Result:
value:
error:
code: source_not_found
message: Could not find any video source with specified source ID.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: source_not_found
message:
type: string
example: Could not find any video source with specified source ID.
'403':
$ref: '#/components/responses/Forbidden'
'404':
description: Not Found
content:
application/json:
examples:
Result:
value:
error:
code: live_asset_not_found
message: Live Video Asset not found.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: live_asset_not_found
message:
type: string
example: Live Video Asset not found.
required:
- code
- message
required:
- error
deprecated: false
tags:
- Live Stream Assets
x-stoplight:
id: 5728lo8oym6rd
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 liveStreamAsset = await client.liveStreamAssets.update({\n\
\ live_asset_id: '',\n});\n\nconsole.log(liveStreamAsset);"
- 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\nlive_stream_asset = client.live_stream_assets.update(\n live_asset_id=\"\
\",\n)\n\nprint(live_stream_asset)"
/video/live/assets/{live_asset_id}:
get:
summary: Get Live Asset Status
description: This endpoint retrieves the details of a live video asset that has previously been
created.
operationId: get-live-asset-status
parameters:
- name: live_asset_id
in: path
description: A live asset id for the previously created asset.
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
status: disconnected
stream_key: 68c406b147f9ad0c0d584ce3
live_asset_id: 68c406b147f9ad0c0d584ce2
live_video_source_id: 67e4ecea403562dbea654269
input:
resolution:
- 720p
title: gumlet-stream
stream_url: rtmp://44.231.82.146:1935/app/68c406b147f9ad0c0d584ce3
output:
playback_url: https://stream.gumlet.io/67e4ecea403562dbea654269/68c406b147f9ad0c0d584ce2/main.m3u8
recording_playback_url: https://video.gumlet.io/6867815b6410daa283f85532/68c406b147f9ad0c0d584ce4/main.m3u8
recording_dash_playback_url: https://video.gumlet.io/6867815b6410daa283f85532/68c406b147f9ad0c0d584ce4/main.mpd
thumbnail:
disconnected: https://stream.gumlet.io/67e4ecea403562dbea654269/68c406b147f9ad0c0d584ce2/thumbnail-disconnected.png
vod_asset_id: 68c406b147f9ad0c0d584ce4
created_at: 1757677234093
updated_at: 1757677327882
schema:
type: object
properties:
status:
type: string
example: created
stream_key:
type: string
example: 619231610822a81d955d22f4
live_asset_id:
type: string
example: 619231610822a81d955d22f3
live_video_source_id:
type: string
example: 6165247368d80232d28d4379
input:
type: object
properties:
resolution:
type: array
items:
type: string
example: 720p
title:
type: string
stream_url:
type: string
example: rtmp://livestream-ingest.gumlet.io:1935/app/619231610822a81d955d22f4
output:
type: object
properties:
playback_url:
type: string
example: https://video.gumlet.io/6165247368d80232d28d4379/619231610822a81d955d22f3/master.m3u8
recording_playback_url:
type: string
recording_dash_playback_url:
type: string
thumbnail:
type: object
properties:
preparing:
type: string
example: https://stream.gumlet.io/67e4ecea403562dbea654269/68c406b147f9ad0c0d584ce2/thumbnail-preparing.png
disconnected:
type: string
example: https://stream.gumlet.io/67e4ecea403562dbea654269/68c406b147f9ad0c0d584ce2/thumbnail-disconnected.png
end:
type: string
example: https://stream.gumlet.io/67e4ecea403562dbea654269/68c406b147f9ad0c0d584ce2/thumbnail-end.png
created_at:
type: integer
example: 1636970849188
default: 0
updated_at:
type: integer
example: 1636970849188
default: 0
vod_asset_id:
type: string
'400':
description: Bad Request
content:
application/json:
examples:
Result:
value:
error:
code: live_asset_not_found
message: Live Video Asset not found.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: live_asset_not_found
message:
type: string
example: Live Video Asset not found.
required:
- code
- message
required:
- error
'401':
description: '401'
content:
application/json:
examples:
Result:
value:
error:
code: live_asset_not_found
message: Could not find any live video asset with specified asset_id.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: live_asset_not_found
message:
type: string
example: Could not find any live video asset with specified asset_id.
'403':
$ref: '#/components/responses/Forbidden'
deprecated: false
tags:
- Live Stream Assets
x-stoplight:
id: 29sodii3xa4fn
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 liveStreamAsset = await client.liveStreamAssets.retrieveStatus('liveAssetId');\n\
\nconsole.log(liveStreamAsset);"
- 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\nlive_stream_asset = client.live_stream_assets.retrieve_status(\n live_asset_id=\"\
liveAssetId\",\n)\n\nprint(live_stream_asset)"
delete:
summary: Delete Live Asset
description: This endpoint removes a live asset given its unique live asset id. The live asset will
be removed from storage as well, associated URLs will be inaccessible.
operationId: delete-live-asset
parameters:
- name: live_asset_id
in: path
description: Live asset id of the live asset 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 — invalid live asset
content:
application/json:
examples:
Result:
value:
error:
code: live_asset_not_found
message: Live Video Asset not found.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: live_asset_not_found
message:
type: string
example: Live Video Asset not found.
required:
- code
- message
required:
- error
'401':
description: Unauthorized — live stream cannot be deleted in preparing state
content:
application/json:
examples:
Result:
value:
error:
code: livestream_can_not_be_deleted
message: The live stream cannot be deleted while in the preparing state.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: livestream_can_not_be_deleted
message:
type: string
example: The live stream cannot be deleted while in the preparing state.
required:
- code
- message
required:
- error
'403':
$ref: '#/components/responses/Forbidden'
deprecated: false
tags:
- Live Stream Assets
x-stoplight:
id: ual1t8bmdt647
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 liveStreamAsset = await client.liveStreamAssets.delete('liveAssetId');\n\
\nconsole.log(liveStreamAsset);"
- 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\nlive_stream_asset = client.live_stream_assets.delete(\n live_asset_id=\"\
liveAssetId\",\n)\n\nprint(live_stream_asset)"
/video/live/assets/{live_asset_id}/complete:
post:
summary: Complete Live Stream
description: This endpoint allows marking live assets complete. Once the live asset is marked complete,
it can no longer be used to ingest the live stream on Gumlet.
operationId: complete-live-stream
parameters:
- name: live_asset_id
in: path
description: Live asset id of the live stream which needs to be completed.
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: {}
schema:
type: object
properties: {}
'400':
description: Bad Request — invalid live asset
content:
application/json:
examples:
Result:
value:
error:
code: live_asset_not_found
message: Live Video Asset not found.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: live_asset_not_found
message:
type: string
example: Live Video Asset not found.
required:
- code
- message
required:
- error
'401':
description: Unauthorized — live stream cannot be completed in preparing state
content:
application/json:
examples:
Result:
value:
error:
code: livestream_can_not_be_completed
message: The live stream cannot be completed while in the preparing state.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: livestream_can_not_be_completed
message:
type: string
example: The live stream cannot be completed while in the preparing state.
required:
- code
- message
required:
- error
'403':
$ref: '#/components/responses/Forbidden'
deprecated: false
tags:
- Live Stream Assets
x-stoplight:
id: pe5lhtkmzix7d
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 liveStreamAsset = await client.liveStreamAssets.complete('liveAssetId');\n\
\nconsole.log(liveStreamAsset);"
- 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\nlive_stream_asset = client.live_stream_assets.complete(\n live_asset_id=\"\
liveAssetId\",\n)\n\nprint(live_stream_asset)"
/video/live/assets/list/{live_source_id}:
get:
summary: Filter Live Assets
description: This endpoint lists live assets on the basis of `status` for the given `live_source_id`.
operationId: filter-live-assets
parameters:
- name: live_source_id
in: path
description: Gumlet live source/collection id.
schema:
type: string
required: true
- name: status
in: query
description: To filter live assets on the basis of their current status. Can be specified as a
single status value string or comma-separated status values. The status value can be one of
`created`, `active`, `complete`, `disconnected`, `errored`, and `deleted`.
schema:
type: string
- name: offset
in: query
description: Offset value for a paginated list of assets.
schema:
type: integer
format: int32
- name: size
in: query
description: Page size for the paginated list.
schema:
type: integer
format: int32
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
all_live_assets:
- status: complete
stream_key: 68b671c1373a93b5103e1f9b
live_asset_id: 68b671c1373a93b5103e1f9a
live_video_source_id: 68678418fc386bd77fd5c689
input:
resolution:
- 360p
- 480p
- 720p
- 1080p
title: gumlet-stream
stream_url: rtmp://44.241.193.188:1935/app/68b671c1373a93b5103e1f9b
output:
playback_url: https://stream.gumlet.io/68678418fc386bd77fd5c689/68b671c1373a93b5103e1f9a/main.m3u8
recording_playback_url: https://video.gumlet.io/68678419fc386bd77fd5c69c/68b671c1373a93b5103e1f9c/main.m3u8
recording_dash_playback_url: https://video.gumlet.io/68678419fc386bd77fd5c69c/68b671c1373a93b5103e1f9c/main.mpd
vod_asset_id: 68b671c1373a93b5103e1f9c
start_at: 1756787280000
created_at: 1756787138405
updated_at: 1756787392403
- status: deleted
stream_key: 686784192f7f889f3d149bdb
live_asset_id: 686784192f7f889f3d149bda
live_video_source_id: 68678418fc386bd77fd5c689
input:
resolution:
- 240p
- 360p
- 480p
- 720p
- 1080p
title: gumlet-live-stream
stream_url: rtmp://44.250.15.141:1935/app/686784192f7f889f3d149bdb
created_at: 1751614490873
updated_at: 1751700918544
deleted_at: 1751700918543
total_live_asset_count: 2
current_offset: 2
schema:
type: object
properties:
all_live_assets:
type: array
items:
type: object
properties:
status:
type: string
example: created
stream_key:
type: string
example: 619231610822a81d955d22f4
live_asset_id:
type: string
example: 619231610822a81d955d22f3
live_video_source_id:
type: string
example: 6165247368d80232d28d4379
input:
type: object
properties:
resolution:
type: array
items:
type: string
example: 720p
title:
type: string
stream_url:
type: string
example: rtmp://livestream-ingest.gumlet.io:1935/app/619231610822a81d955d22f4
output:
type: object
properties:
playback_url:
type: string
example: https://video.gumlet.io/6165247368d80232d28d4379/619231610822a81d955d22f3/master.m3u8
recording_playback_url:
type: string
recording_dash_playback_url:
type: string
thumbnail:
type: object
properties:
preparing:
type: string
example: https://stream.gumlet.io/68678418fc386bd77fd5c689/68b671c1373a93b5103e1f9a/thumbnail-preparing.png
disconnected:
type: string
example: https://stream.gumlet.io/68678418fc386bd77fd5c689/68b671c1373a93b5103e1f9a/thumbnail-disconnected.png
end:
type: string
example: https://stream.gumlet.io/68678418fc386bd77fd5c689/68b671c1373a93b5103e1f9a/thumbnail-end.png
created_at:
type: integer
example: 1636970849188
default: 0
updated_at:
type: integer
example: 1636970849188
default: 0
deleted_at:
type: integer
total_live_asset_count:
type: integer
example: 5
default: 0
current_offset:
type: integer
example: 5
default: 0
'400':
description: Bad Request
content:
application/json:
examples:
Result:
value:
error:
code: source_not_found
message: Could not find any video source with the specified source_id.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: source_not_found
message:
type: string
example: Could not find any video source with the specified source_id.
required:
- code
- message
required:
- error
'401':
description: '401'
content:
application/json:
examples:
Result:
value:
error:
code: live_source_not_found
message: Could not find any live video source with specified source ID.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: live_source_not_found
message:
type: string
example: Could not find any live video source with specified source ID.
'403':
$ref: '#/components/responses/Forbidden'
deprecated: false
tags:
- Live Stream Assets
x-stoplight:
id: v569z8svqfd5g
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 liveStreamAsset = await client.liveStreamAssets.filter('liveSourceId');\n\
\nconsole.log(liveStreamAsset);"
- 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\nlive_stream_asset = client.live_stream_assets.filter(\n live_source_id=\"\
liveSourceId\",\n)\n\nprint(live_stream_asset)"
/video/live/assets/{live_asset_id}/start:
post:
description: Start a live stream.
operationId: start-live
responses:
'200':
description: ''
content:
application/json:
examples:
New Example:
summary: New Example
value:
status: preparing
stream_key: 684aaf3179ee5275ba12c684
live_asset_id: 684caf2179ee5277ba13c683
live_video_source_id: 654c7d41f5f3302c85dd7bc3
input:
resolution:
- 360p
- 480p
title: demo
stream_url: rtmp://14.23.65.56:1935/app/684aaf3179ee5275ba12c684
output:
playback_url: https://stream.gumlet.io/654c7d41f5f3302c85dd7bc3/684caf2179ee5277ba13c683/main.m3u8
recording_playback_url: https://video.gumlet.io/654c7d41f5f3302c85dd7bc3/684aaf3179ee5255ba13c685/main.m3u8
recording_dash_playback_url: https://video.gumlet.io/654c7d41f5f3302c85dd7bc3/684aaf3179ee5255ba13c685/main.mpd
thumbnail:
preparing: https://stream.gumlet.io/654c7d41f5f3302c85dd7bc3/684caf2179ee5277ba13c683/thumbnail-preparing.png
vod_asset_id: 684aaf3179ee5255ba13c685
created_at: 1749724978564
updated_at: 1749725090495
'400':
description: Bad Request
content:
application/json:
examples:
Result:
value:
error:
code: unable_to_start_live_asset
message: Could not start live asset.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: unable_to_start_live_asset
message:
type: string
example: Could not start live asset.
required:
- code
- message
required:
- error
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
parameters:
- in: path
name: live_asset_id
description: List asset id for which the stream needs to start.
schema:
type: string
required: true
tags:
- Live Stream Assets
x-stoplight:
id: 1bk7v7srb4xnu
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\nawait client.liveStreamAssets.start('liveAssetId');"
- 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\nclient.live_stream_assets.start(\n live_asset_id=\"liveAssetId\",\n)"
/video/live/assets/thumbnail/upload:
post:
summary: Upload Live Thumbnails
description: Generate presigned upload URLs for live stream thumbnails. Supported thumbnail states
are `preparing`, `disconnected`, and `end`.
operationId: thumbnail-upload-live
requestBody:
content:
application/json:
schema:
type: object
required:
- live_asset_id
- statuses
properties:
live_asset_id:
type: string
description: Gumlet live video asset id.
statuses:
description: Thumbnail states to upload. You can send an array or a comma-separated
string.
oneOf:
- type: array
items:
type: string
enum:
- preparing
- disconnected
- end
- type: string
example: preparing,disconnected
examples:
Request Example:
value:
live_asset_id: 68c406b147f9ad0c0d584ce2
statuses:
- preparing
- disconnected
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
message: Upload URLs issued.
presigned_upload_urls:
preparing: https://gumlet-live-user-uploads.s3.amazonaws.com/live/67e4ecea403562dbea654269/68c406b147f9ad0c0d584ce2/thumbnail-preparing.png?signature=...
disconnected: https://gumlet-live-user-uploads.s3.amazonaws.com/live/67e4ecea403562dbea654269/68c406b147f9ad0c0d584ce2/thumbnail-disconnected.png?signature=...
schema:
type: object
properties:
message:
type: string
example: Upload URLs issued.
presigned_upload_urls:
type: object
properties:
preparing:
type: string
disconnected:
type: string
end:
type: string
'400':
description: Bad Request
content:
application/json:
examples:
Result:
value:
error:
code: invalid_parameter
message: 'Provide at least one valid status in "statuses". Allowed: preparing, disconnected,
end.'
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: invalid_parameter
message:
type: string
example: 'Provide at least one valid status in "statuses". Allowed: preparing,
disconnected, end.'
required:
- code
- message
required:
- error
'401':
$ref: '#/components/responses/Unauthorized'
'403':
description: '403'
content:
application/json:
examples:
Result:
value:
error:
code: live_asset_not_found
message: Live Video Asset not found.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: live_asset_not_found
message:
type: string
example: Live Video Asset not found.
'404':
description: Not Found
content:
application/json:
examples:
Result:
value:
error:
code: not_found
message: Live Video Asset not found.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: not_found
message:
type: string
example: Live Video Asset not found.
required:
- code
- message
required:
- error
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
tags:
- Live Stream Assets
x-stoplight:
id: 63zbin0vn1ydw
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 liveStreamAsset = await client.liveStreamAssets.upload({\n\
\ live_asset_id: '68c406b147f9ad0c0d584ce2',\n statuses: ['preparing', 'disconnected'],\n\
});\n\nconsole.log(liveStreamAsset);"
- 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\nlive_stream_asset = client.live_stream_assets.upload(\n live_asset_id=\"\
68c406b147f9ad0c0d584ce2\",\n statuses=\"preparing\",\n)\n\nprint(live_stream_asset)"
/video/live/assets/{live_asset_id}/history:
get:
summary: Get Live Asset Status History
description: This endpoint retrieves the history of a live video asset that has previously been
created.
operationId: asset-status-history
parameters:
- name: live_asset_id
in: path
description: A live asset id for the previously created asset.
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
status: created
stream_key: 619231610822a81d955d22f4
live_asset_id: 619231610822a81d955d22f3
live_video_source_id: 6165247368d80232d28d4379
input:
resolution:
- 720p
stream_url: rtmp://livestream-ingest.gumlet.io:1935/app/619231610822a81d955d22f4
output:
playback_url: https://video.gumlet.io/6165247368d80232d28d4379/619231610822a81d955d22f3/master.m3u8
created_at: 1636970849188
updated_at: 1636970849188
schema:
type: object
properties:
status:
type: string
example: created
stream_key:
type: string
example: 619231610822a81d955d22f4
live_asset_id:
type: string
example: 619231610822a81d955d22f3
live_video_source_id:
type: string
example: 6165247368d80232d28d4379
input:
type: object
properties:
resolution:
type: array
items:
type: string
example: 720p
stream_url:
type: string
example: rtmp://livestream-ingest.gumlet.io:1935/app/619231610822a81d955d22f4
output:
type: object
properties:
playback_url:
type: string
example: https://video.gumlet.io/6165247368d80232d28d4379/619231610822a81d955d22f3/master.m3u8
created_at:
type: integer
example: 1636970849188
default: 0
updated_at:
type: integer
example: 1636970849188
default: 0
'400':
description: Bad Request
content:
application/json:
examples:
Result:
value:
error:
code: asset_history_not_found
message: Could not find status history for the specified live asset.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: asset_history_not_found
message:
type: string
example: Could not find status history for the specified live asset.
required:
- code
- message
required:
- error
'401':
description: '401'
content:
application/json:
examples:
Result:
value:
error:
code: live_asset_not_found
message: Could not find any live video asset with specified asset_id.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: live_asset_not_found
message:
type: string
example: Could not find any live video asset with specified asset_id.
'403':
$ref: '#/components/responses/Forbidden'
deprecated: false
tags:
- Live Stream Assets
x-stoplight:
id: x23u8u11y6gic
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 liveStreamAsset = await client.liveStreamAssets.statusHistory('liveAssetId');\n\
\nconsole.log(liveStreamAsset);"
- 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\nlive_stream_asset = client.live_stream_assets.status_history(\n live_asset_id=\"\
liveAssetId\",\n)\n\nprint(live_stream_asset)"
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: []