Skip to content

Latest commit

 

History

History
1711 lines (1295 loc) · 48.9 KB

File metadata and controls

1711 lines (1295 loc) · 48.9 KB

Gumlet Python API

Complete reference of every operation, grouped by resource. See the README for usage and configuration.

Contents

Setup

import os

from gumlet import Gumlet

client = Gumlet(
    api_key=os.environ.get("API_KEY"),
)

VideoAssets

Upload, manage, and retrieve video assets, including thumbnails, subtitles, audio tracks, and chapters.

Create Asset

An asset refers to media content/video that is processed, stored, and delivered through Gumlet. This endpoint creates an asset allowing users to ingest media content into the Gumlet system for processing and delivery.

Direction Type
Request VideoAssetCreateParams
Response VideoAssetCreateResponse
video_asset = client.video_assets.create(
    input="http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8",
    format="ABR",
    title="Example Title",
    workspace_id="<your workspace id>",
)

Create Asset Direct Upload

This endpoint creates a video asset allowing upload of a video from the local file system and ingest media content into the Gumlet system for processing and delivery. Body parameters are the same as the Create Asset body parameters except for the input parameter, which this endpoint does not take. A successful response will be returned with upload_url field. You can make PUT request to that URL to upload video. To upload video using upload_url refer to this.

Direction Type
Request VideoAssetUploadParams
Response VideoAssetUploadResponse
video_asset = client.video_assets.upload(
    collection_id="646df1c9173a4a2fcac180b4",
    profile_id="646df1c9173a4a2fcac180b7",
    format="ABR",
    tag=["ball"],
    description="some description",
    metadata={"headermeta": "metavalue"},
    call_to_actions=[
        {
            "start_time": 1,
            "end_time": 90,
            "text": "some test",
            "url": "https://some-url.com",
            "position_from_top": 11,
            "position_from_right": 23,
            "border_radius": "11",
            "font_color": "#000001",
            "background_color": "#ffffff",
        }
    ],
    playlist_id="6597acd5ed6f26a9c5ca9633",
    folder="697375fbfa2d1037283140e4",
)

Asset Details

This endpoint retrieves the details of an asset that has previously been created.

Direction Type
Response VideoAssetRetrieveDetailsResponse
video_asset = client.video_assets.retrieve_details(
    asset_id="assetId",
)

Delete Asset

This endpoint removes an asset given its unique asset id. The asset will be removed from storage as well, associated URLs will be inaccessible.

client.video_assets.delete(
    asset_id="assetId",
)

Update Asset

This endpoint allows users to update video asset that has previously been created.

Direction Type
Request VideoAssetUpdateParams
Response VideoAssetUpdateResponse
video_asset = client.video_assets.update(
    asset_id="<YOUR_ASSET_ID>",
    title="Updated Title",
)

Update thumbnail from video

Select frame from video to use as thumbnail.

Direction Type
Request VideoAssetThumbnailSelectParams
Response VideoAssetThumbnailSelectResponse
video_asset = client.video_assets.thumbnail_select(
    asset_id="assetId",
    frame_at_second=2,
)

Update thumbnail via upload

Use any image file to use as thumbnail. Once you use the API, you will get upload_url in the response, and that can be used to upload the image file.

Here is the sample curl request.

curl --location --request PUT '<upload_url>' \
--data '<YOUR_FILE_PATH>'
Direction Type
Response VideoAssetThumbnailUploadResponse
video_asset = client.video_assets.thumbnail_upload(
    asset_id="assetId",
)

Create/Update Video Asset Chapters

This endpoint will create/update video asset chapters.

Direction Type
Request VideoAssetCreateUpdateChapterParams
Response VideoAssetCreateUpdateChapterResponse
video_asset = client.video_assets.create_update_chapter(
    asset_id="assetId",
    chapters=[{"label": "Chapter 1", "startTime": 0}, {"label": "Chapter 2", "startTime": 10}],
)

List Assets

List folders and assets for a workspace in a single response. Use parent_id to browse a specific folder, or filters like title, status, and playlist_id to search assets.

Direction Type
Request VideoAssetListParams
Response VideoAssetListResponse
video_asset = client.video_assets.list(
    workspace_id="workspaceId",
    type="all",
    offset=0,
    size=20,
    signed_token="false",
)

List Assets

[Deprecated] This endpoint list assets in video workspace. You can also pass status and tag to filter assets.

Direction Type
Request VideoAssetListDeprecatedParams
Response VideoAssetListDeprecatedResponse
video_asset = client.video_assets.list_deprecated(
    workspace_id="workspaceId",
    sort_by="created_at",
    order_by="desc",
)

Bulk Delete

Delete multiple VOD assets at once.

Direction Type
Request VideoAssetDeleteManyParams
Response VideoAssetDeleteManyResponse
video_asset = client.video_assets.delete_many(
    asset_list=["64249a8858fd3a208b987702", "64784bae843b155b829bbf84"],
    source_id="60bd2ba353ff754d28179ee6",
)

Bulk Tag

Add / remove tags from multiple assets at once.

Direction Type
Request VideoAssetTagManyParams
Response VideoAssetTagManyResponse
video_asset = client.video_assets.tag_many(
    asset_list=["6221db301c8b821b0519fba0", "61e8f2726ec832ab2ac4fa6e"],
    source_id="60bd2ba353ff754d28179ee6",
    add_tags=["tag-1"],
    remove_tags=["playlist-1"],
)

Asset Analytics

Get video analytics for a single asset.

Direction Type
Request VideoAssetAnalyticsParams
Response VideoAssetAnalyticsResponse
video_asset = client.video_assets.analytics(
    asset_id="assetId",
    group_by="daily",
    date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"},
    metrics=["impressions"],
)

SubtitleUpload

Add subtitles to an existing asset.

Upload Subtitles

Upload .srt or .vtt file to the video asset. The response of this API call gives upload_url for each language specified. You need to send a PUT request of the subtitle files to those URLs. Once that's done, you need to call the subtitle upload complete API. Only after that, Gumlet will add subtitles to asset.

Direction Type
Request SubtitleUploadUploadParams
Response SubtitleUploadUploadResponse
subtitle_upload = client.subtitle_upload.upload(
    asset_id="assetId",
    language_codes=["en"],
)

Complete Subtitle Upload

This API must be called after adding subtitles; the add subtitle call gives you URLs to upload, and you complete a PUT request to those URLs. Once that is done, calling this initiates the process to actually add the subtitle to the video.

Direction Type
Request SubtitleUploadCompleteParams
Response SubtitleUploadCompleteResponse
subtitle_upload = client.subtitle_upload.complete(
    asset_id="assetId",
    upload_responses=[{"language_code": "en", "uploaded": True}],
)

AudioUpload

Add additional audio tracks to an existing asset.

Add Audio

Add any audio file to the video asset. The response of this API call gives upload_url for each language specified. You need to send a PUT request of the audio files to those URLs. Once that's done, you need to call the audio upload complete API. Only after that will Gumlet add audio to the asset.

Direction Type
Request AudioUploadUploadParams
Response AudioUploadUploadResponse
audio_upload = client.audio_upload.upload(
    asset_id="assetId",
    language_codes=["en"],
)

Complete Audio Upload

This API must be called after adding audio(s); The add audio call gives you URLs to upload, and you complete a PUT request to those URLs. Once that is done, calling this initiates the process to actually add the subtitle to the video.

Direction Type
Request AudioUploadCompleteParams
Response AudioUploadCompleteResponse
audio_upload = client.audio_upload.complete(
    asset_id="assetId",
    upload_responses=[{"language_codes": ["en"], "uploaded": True}],
)

VideoUsageAnalytics

Query video analytics and streaming duration usage data.

Video Usage Analytics

This endpoint gives usage analytics data of your videos. Ex - top assets, bandwidth consumption

Direction Type
Request VideoUsageAnalyticRetrieveParams
Response VideoUsageAnalyticRetrieveResponse
video_usage_analytic = client.video_usage_analytics.retrieve(
    metrics=["bandwidth_consumption", "asset_duration", "storage_unit", "top_assets", "drm_requests"],
    date_range={"start_at": "2026-08-01", "end_at": "2026-08-20"},
    top_assets_count="5",
    top_assets_page="0",
    group_by="hourly",
)

Top Streamed Assets

This endpoint lists top streamed assets in a video collection

Direction Type
Request VideoUsageAnalyticTopAssetsParams
Response VideoUsageAnalyticTopAssetsResponse
video_usage_analytic = client.video_usage_analytics.top_assets(
    start_at="2026-06-21",
    end_at="2026-06-30",
    page="1",
    page_size="1000",
)

MultipartUpload

Upload large video files in parts and complete the multipart upload.

Get Part Upload URL

Use this endpoint to retrieve a pre-signed upload URL for the given part number.

Direction Type
Response MultipartUploadRetrievePartURLResponse
multipart_upload = client.multipart_upload.retrieve_part_url(
    asset_id="assetId",
    part_number="partNumber",
)

Complete Multipart Upload

Once you upload all parts to S3 bucket via pre-signed URL, use this endpoint to complete the multipart upload.

Direction Type
Request MultipartUploadCompleteParams
Response MultipartUploadCompleteResponse
multipart_upload = client.multipart_upload.complete(
    asset_id="assetId",
)

Abort Upload

This call aborts multi-part upload and deletes the already uploaded parts from the storage.

Direction Type
Request MultipartUploadAbortParams
Response MultipartUploadAbortResponse
multipart_upload = client.multipart_upload.abort(
    asset_id="assetId",
)

List Uploads

Lists all parts uploaded so far.

Direction Type
Request MultipartUploadListParams
Response MultipartUploadListResponse
multipart_upload = client.multipart_upload.list(
    asset_id="assetId",
)

VideoProfiles

Create and manage encoding/output profiles for video assets.

Create Profile

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.

Direction Type
Request VideoProfileCreateParams
Response VideoProfileCreateResponse
video_profile = client.video_profiles.create(
    name="Gumlet-Profile-1",
    format="ABR",
)

List Profiles

This endpoint retrieves the details of all profiles that have previously been created.

Direction Type
Request VideoProfileListParams
Response VideoProfileListResponse
video_profile = client.video_profiles.list()

Update Profile

Update an existing profile. Settings provided in body parameters will only be updated in the existing profile.

Direction Type
Request VideoProfileUpdateParams
Response VideoProfileUpdateResponse
video_profile = client.video_profiles.update(
    path_profile_id="profileId",
    body_profile_id="",
    format="ABR",
)

Get Profile

This endpoint retrieves the details of a video profile that has previously been created.

Direction Type
Response VideoProfileRetrieveResponse
video_profile = client.video_profiles.retrieve(
    profile_id="profileId",
)

Delete Profile

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.

Direction Type
Response VideoProfileDeleteResponse
video_profile = client.video_profiles.delete(
    profile_id="profileId",
)

VideoPlaylists

Create and manage playlists, and control which assets belong to them.

Create Playlist

Create new playlist inside video wprkspace

Direction Type
Request VideoPlaylistCreateParams
Response VideoPlaylistCreateResponse
video_playlist = client.video_playlists.create(
    collection_id="{{video-source-id}}",
    title="Playlist-Title",
    description="This is description for playlist.",
)

Get all playlists

Get all playlists for given workspace

Direction Type
Request VideoPlaylistListAllParams
Response VideoPlaylistListAllResponse
video_playlist = client.video_playlists.list_all()

Add asset to playlist

This operation adds a single asset or a list of assets to a playlist.

Direction Type
Request VideoPlaylistCreateAssetParams
Response VideoPlaylistCreateAssetResponse
video_playlist = client.video_playlists.create_asset(
    playlist_id="playlistId",
    asset_list=[
        {"asset_id": "6508790283e4d60611846790"},
        {"position": 1, "asset_id": "650878f883e4d6061184677d"},
        {"asset_id": "650878de83e4d6061184676a"},
        {"position": 2, "asset_id": "650878d883e4d60611846757"},
        {"position": 3, "asset_id": "65578dd87eebc22dcdd549a2"},
    ],
)

Remove asset from playlist

Removed an asset or list of assets from a given playlist.

Direction Type
Request VideoPlaylistDeleteAssetParams
Response VideoPlaylistDeleteAssetResponse
video_playlist = client.video_playlists.delete_asset(
    playlist_id="playlistId",
    delete_list=["6508790783e4d606118467a3"],
)

Update Playlist

This endpoint allows you to update playlist name, channel visibility, or playlist order on a channel page.

Direction Type
Request VideoPlaylistUpdateParams
Response VideoPlaylistUpdateResponse
video_playlist = client.video_playlists.update(
    playlist_id="playlistId",
    title="Playlist-Title-Updated",
    description="This is updated description",
    position=6,
    player_config={
        "preload": True,
        "autoplay": False,
        "disable_seek": True,
        "disable_player_controls": False,
        "powered_by_gumlet_overlay": False,
        "allow_drm_protected_videos": False,
        "loop": False,
        "player_color": "#6658ea",
        "include_seo": True,
        "subtitle_enabled": True,
        "pixel_tags": {},
        "logo_width": 51,
        "logo_height": 100,
        "dynamic_watermark": False,
        "watermark_font_size": 1,
        "watermark_font_color": "#ff0000",
        "watermark_bg_color": "transparent",
        "watermark_interval": 1000,
    },
    channel_visibility=False,
)

delete

Deletes this playlist.

client.video_playlists.delete(
    playlist_id="playlistId",
)

Get playlist assets

Get a list of all assets inside playlist. You can choose in which order are assets returned.

Direction Type
Request VideoPlaylistListAssetsParams
Response VideoPlaylistListAssetsResponse
video_playlist = client.video_playlists.list_assets(
    playlist_id="playlistId",
    sort_order=1,
    page_number=1,
    page_size="10",
)

Arrange Videos In Playlist

Reorder videos inside a playlist either by moving a single asset to a position or by sorting the playlist by title or created date.

Direction Type
Request VideoPlaylistReorderAssetParams
Response VideoPlaylistReorderAssetResponse
video_playlist = client.video_playlists.reorder_asset(
    playlist_id="playlistId",
    asset_id="6e82bf783e88be000ab45ed2",
    page_number=1,
    page_size=10,
    asset_position=0,
)

Webhooks

Configure webhooks for account and asset events.

Create Webhook

Creates a new webhook listener.

Direction Type
Request WebhookCreateParams
Response WebhookCreateResponse
webhook = client.webhooks.create(
    url="",
    secret_token="",
    triggers=[""],
    sources=[""],
)

List Webhooks

List all webhooks.

Direction Type
Response WebhookListResponse
webhook = client.webhooks.list()

Update Webhook

Update a webhook listener.

Direction Type
Request WebhookUpdateParams
Response WebhookUpdateResponse
webhook = client.webhooks.update(
    webhook_id="webhookId",
)

Delete Webhook

Delete webhook listener endpoint.

Direction Type
Response WebhookDeleteResponse
webhook = client.webhooks.delete(
    webhook_id="webhookId",
)

Get History

Get logs history for a given webhook.

Direction Type
Response WebhookHistoryResponse
webhook = client.webhooks.history(
    webhook_id="webhookId",
)

ImageSources

Manage image sources, view image analytics, and purge the image cache.

Create Source

This endpoint allows users to create image source.

Direction Type
Request ImageSourceCreateParams
Response ImageSourceCreateResponse
image_source = client.image_sources.create(
    namespace="google-demo",
    type="webfolder",
    webfolder={"base_url": "https://www.google.com"},
)

List Sources

This endpoint list image sources which are assigned to the user or token.

Direction Type
Request ImageSourceListParams
Response ImageSourceListResponse
image_source = client.image_sources.list(
    offset=0,
    size=20,
)

Get Image Source

Get all details about image source.

Direction Type
Response ImageSourceRetrieveResponse
image_source = client.image_sources.retrieve(
    image_source_id="imageSourceId",
)

Update Source

This endpoint allows users to update image source that has previously been created.

Direction Type
Request ImageSourceUpdateParams
Response ImageSourceUpdateResponse
image_source = client.image_sources.update(
    image_source_id="imageSourceId",
    type="aws",
    aws={
        "bucket_name": "my-bucket-test",
        "bucket_region": "ap-southeast-1",
        "access_key": "BQUA6QFXVWHAAB6IO2X1",
        "secret": "aws_secret",
    },
)

Delete Source

This endpoint removes a image source. All image delivery using this subdomain will be stopped.

Direction Type
Response ImageSourceDeleteResponse
image_source = client.image_sources.delete(
    image_source_id="imageSourceId",
)

Purge Cache

You can purge cache for any image by using our cache purge API.

Direction Type
Request ImageSourcePurgeCacheParams
Response ImageSourcePurgeCacheResponse
image_source = client.image_sources.purge_cache(
    subdomain="subdomain",
    paths=["image.jpeg", "image2.png"],
)

Purge Image Cache

You can purge the cache for any image path by using this cache purge API.

Direction Type
Request ImageSourcePurgeParams
Response ImageSourcePurgeResponse
image_source = client.image_sources.purge(
    source_id="sourceId",
    paths=["image.jpeg", "image2.png"],
)

ImageUsageAnalytics

Query aggregated and chart-ready image usage analytics data.

Image Usage Analytics

This endpoint helps you get image analytics data like bandwidth consumption, request count, CDN hit ratio, etc.

Direction Type
Request ImageUsageAnalyticRetrieveParams
Response ImageUsageAnalyticRetrieveResponse
image_usage_analytic = client.image_usage_analytics.retrieve(
    metrics=["bandwidth_consumption"],
    date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"},
    group_by="daily",
)

LiveStreamAssets

Create, control, and monitor live stream assets.

Create Live Asset

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.

Direction Type
Request LiveStreamAssetCreateParams
Response LiveStreamAssetCreateResponse
live_stream_asset = client.live_stream_assets.create(
    live_source_id="",
    resolution="",
)

Update Live Asset

A live asset refers to media content/video that is live-streamed through Gumlet. This endpoint allows users to update a live streaming asset.

Direction Type
Request LiveStreamAssetUpdateParams
Response LiveStreamAssetUpdateResponse
live_stream_asset = client.live_stream_assets.update(
    live_asset_id="",
)

Get Live Asset Status

This endpoint retrieves the details of a live video asset that has previously been created.

Direction Type
Response LiveStreamAssetRetrieveStatusResponse
live_stream_asset = client.live_stream_assets.retrieve_status(
    live_asset_id="liveAssetId",
)

Delete Live Asset

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.

Direction Type
Response LiveStreamAssetDeleteResponse
live_stream_asset = client.live_stream_assets.delete(
    live_asset_id="liveAssetId",
)

Complete Live Stream

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.

Direction Type
Response LiveStreamAssetCompleteResponse
live_stream_asset = client.live_stream_assets.complete(
    live_asset_id="liveAssetId",
)

Filter Live Assets

This endpoint lists live assets on the basis of status for the given live_source_id.

Direction Type
Request LiveStreamAssetFilterParams
Response LiveStreamAssetFilterResponse
live_stream_asset = client.live_stream_assets.filter(
    live_source_id="liveSourceId",
)

start

Start a live stream.

client.live_stream_assets.start(
    live_asset_id="liveAssetId",
)

Upload Live Thumbnails

Generate presigned upload URLs for live stream thumbnails. Supported thumbnail states are preparing, disconnected, and end.

Direction Type
Request LiveStreamAssetUploadParams
Response LiveStreamAssetUploadResponse
live_stream_asset = client.live_stream_assets.upload(
    live_asset_id="68c406b147f9ad0c0d584ce2",
    statuses="preparing",
)

Get Live Asset Status History

This endpoint retrieves the history of a live video asset that has previously been created.

Direction Type
Response LiveStreamAssetStatusHistoryResponse
live_stream_asset = client.live_stream_assets.status_history(
    live_asset_id="liveAssetId",
)

RecycleBin

Endpoints to list deleted assets and restore them.

Recover Deleted Asset

Recovers a deleted asset from the recycle bin.

Direction Type
Request RecycleBinRecoverParams
client.recycle_bin.recover(
    asset_id="",
)

List Recycle Bin

List all assets in a recycle bin for a given workspace. The deleted assets are available for 30 days. After that, assets are permanently deleted.

Direction Type
Request RecycleBinListParams
Response RecycleBinListResponse
recycle_bin = client.recycle_bin.list(
    size=20,
    workspace_id="workspace_id",
)

VideoWorkspaces

Create and manage video workspaces.

List Workspaces

This endpoint list video workspace which are assigned to the user or token.

Direction Type
Request VideoWorkspaceListParams
Response VideoWorkspaceListResponse
video_workspace = client.video_workspaces.list(
    offset="0",
    size="10",
)

Create Workspace

Video workspaces are top-level entities in Gumlet. You can use them to organize videos for different teams/departments or use cases.

Direction Type
Request VideoWorkspaceCreateParams
Response VideoWorkspaceCreateResponse
video_workspace = client.video_workspaces.create(
    name="zoom-workspace",
    type="direct-upload",
    zoom={"secret": "yourSecret"},
)

Update Workspace

This endpoint allows users to update video workspace that has previously been created.

Direction Type
Request VideoWorkspaceUpdateParams
Response VideoWorkspaceUpdateResponse
video_workspace = client.video_workspaces.update(
    workspace_id="workspaceId",
    name="awsrename",
    default_profile_id="646df1c9173a4a2fcac180b7",
    type="aws",
    aws={
        "bucket_name": "my-bucket-test",
        "bucket_region": "ap-southeast-1",
        "access_key": "BQUA6QFXVWHAAB6IO2X1",
        "secret": "aws_secret",
    },
)

Get Workspace

This endpoint get all the data of video workspace that has previously been created.

Direction Type
Response VideoWorkspaceRetrieveResponse
video_workspace = client.video_workspaces.retrieve(
    workspace_id="workspaceId",
)

Delete Workspace

This endpoint removes a video workspace given its unique asset id. All the asset in workspace will be removed from storage as well, associated URLs will be inaccessible.

Direction Type
Response VideoWorkspaceDeleteResponse
video_workspace = client.video_workspaces.delete(
    workspace_id="workspaceId",
)

Folders

Organize video assets into folders within a workspace.

Create Folder

Create a folder inside a video workspace. Optionally provide parent_id to create a nested folder.

Direction Type
Request FolderCreateParams
Response FolderCreateResponse
folder = client.folders.create(
    workspace_id="workspaceId",
    name="Course Assets",
    parent_id="",
)

List Folders

List folders for a video workspace. Use parent_id to list only folders inside a specific parent folder.

Direction Type
Request FolderListParams
Response FolderListResponse
folder = client.folders.list(
    workspace_id="workspaceId",
)

Get Folder

Get a single folder by id.

Direction Type
Response FolderRetrieveResponse
folder = client.folders.retrieve(
    workspace_id="workspaceId",
    folder_id="folderId",
)

Update Folder

Rename a folder, move it to another parent folder, or move assets into the folder by sending asset_ids.

Direction Type
Request FolderUpdateParams
Response FolderUpdateResponse
folder = client.folders.update(
    workspace_id="workspaceId",
    folder_id="folderId",
    name="Course Assets Updated",
)

Delete Folder

Delete a folder. Descendant folders and assets inside them are deleted by the backend workflow.

Direction Type
Response FolderDeleteResponse
folder = client.folders.delete(
    workspace_id="workspaceId",
    folder_id="folderId",
)

Remove Assets From Folder

Remove one or more assets from their current folder assignment inside the workspace.

Direction Type
Request FolderDeleteAssetsParams
Response FolderDeleteAssetsResponse
folder = client.folders.delete_assets(
    workspace_id="workspaceId",
    asset_ids=["67e4f2b4403562dbea654301", "67e4f2bb403562dbea654302"],
)

ChannelViewers

Invite and remove viewers on a private video channel.

Invite Channel Viewers

Invite one or more viewers to a members-only channel.

Direction Type
Request ChannelViewerInviteParams
Response ChannelViewerInviteResponse
channel_viewer = client.channel_viewers.invite(
    video_workspace_id="videoWorkspaceId",
    users=[
        {"email": "test@gumlet.com", "name": "Test User-0"},
        {"email": "test+1@gumlet.com", "name": "Test User-1"},
        {"email": "test+2@gumlet.com", "name": "Test User-2"},
    ],
)

Remove Channel Viewers

Remove one or more viewers from a channel by email address.

Direction Type
Request ChannelViewerDeleteParams
Response ChannelViewerDeleteResponse
channel_viewer = client.channel_viewers.delete(
    video_workspace_id="videoWorkspaceId",
    emails=["test@gumlet.com", "test+2@gumlet.com"],
)

Invite Channel Viewers via CSV

Invite viewers to a channel by uploading a CSV file.

Direction Type
Request ChannelViewerInviteCsvParams
Response ChannelViewerInviteCsvResponse
channel_viewer = client.channel_viewers.invite_csv(
    video_workspace_id="videoWorkspaceId",
    viewers_csv=b"viewers.csv",
)

List Subscribers

List all channel subscribers.

Direction Type
Request ChannelViewerListSubscribersParams
Response ChannelViewerListSubscribersResponse
channel_viewer = client.channel_viewers.list_subscribers(
    workspace_id="workspaceId",
    page_number=1,
    page_size=10,
)

VideoAnalytics

Query aggregated and chart-ready video analytics data.

Viewer Analytics

This endpoint retrieves viewer analytics data. This endpoint is use for deep insights on the analytics data.

Direction Type
Request VideoAnalyticChartDataParams
Response VideoAnalyticChartDataResponse
video_analytic = client.video_analytics.chart_data(
    metrics=[""],
    workspace_id="",
    date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"},
    group_by="daily",
)

Breakdown Data

This endpoint retrieves breakdown data of the given metrics by given breakdown field

Direction Type
Request VideoAnalyticBreakdownDataParams
Response VideoAnalyticBreakdownDataResponse
video_analytic = client.video_analytics.breakdown_data(
    date_range={"start_at": "2026-07-20", "end_at": "2026-08-20"},
    filters=[],
    breakdowns=[
        {"name": "custom_video_id", "metric": "views", "page": 1, "page_size": 10},
        {"name": "custom_video_title", "metric": "completion_percent_by_views", "page": 1, "page_size": 10},
    ],
    workspace_id="6694c405e63913eecf3cf5fb",
)

Aggregated Data

This endpoint retrieves aggregated data of the given metrics.

Direction Type
Request VideoAnalyticAggregatedDataParams
Response VideoAnalyticAggregatedDataResponse
video_analytic = client.video_analytics.aggregated_data(
    aggregate=[{"metric": "views", "function": "sum"}],
    workspace_id="",
    timeframe={},
)

OrganizationData

Endpoints to get organization details.

Get Organization Details

You can get organization data using this API.

Direction Type
Response OrganizationDataFetchOrgResponse
organization_data = client.organization_data.fetch_org()

UserData

Endpoints to get user details.

Get User

This endpoint gives information about the user account.

Direction Type
Response UserDataFetchResponse
user_data = client.user_data.fetch()

AuditLogs

Get detailed user activity logs for the entire organisation.

Fetch Audit Logs

Get audit logs for the user activity in your organisation. Please note that this endpoint can only be accessed by owner and admin role users.

Direction Type
Request AuditLogFetchParams
Response AuditLogFetchResponse
audit_log = client.audit_logs.fetch(
    date_range={"start_at": "2026-08-25", "end_at": "2026-08-29"},
    page_number=1,
    page_size=100,
)

Billing

Get / change all details about billing and invoices.

List Invoices

Liost all invoices that are generated so far.

Direction Type
Response BillingListInvoicesResponse
billing = client.billing.list_invoices()

Get Billing Details

Get billing details for this organization.

Direction Type
Response BillingFetchDetailsResponse
billing = client.billing.fetch_details()

Update Billing Details

Update billing details

Direction Type
Request BillingUpdateDetailsParams
Response BillingUpdateDetailsResponse
billing = client.billing.update_details(
    address_line="",
    city="",
    company_name="",
    country_code="",
    gst_number="",
    postal="",
    state_code="",
)

Upcoming Invoice

Get details about upcoming invoice.

Direction Type
Response BillingFetchUpcomingInvoiceResponse
billing = client.billing.fetch_upcoming_invoice()

LiveStreamWorkspaces

Create and manage live stream workspaces.

List Workspaces

List all live stream workspaces.

Direction Type
Response LiveStreamWorkspaceListResponse
live_stream_workspace = client.live_stream_workspaces.list()

Create Workspace

Create live stream workspace.

Direction Type
Request LiveStreamWorkspaceCreateParams
Response LiveStreamWorkspaceCreateResponse
live_stream_workspace = client.live_stream_workspaces.create(
    name="",
)

Update Workspace

Update live stream workspace.

Direction Type
Request LiveStreamWorkspaceUpdateParams
Response LiveStreamWorkspaceUpdateResponse
live_stream_workspace = client.live_stream_workspaces.update(
    live_workspace_id="liveWorkspaceId",
    name="live-stream-collections",
    video_source_id="67bea1d66ca0059a95bf7de9",
)

Delete Workspace

Delete the live stream workspace.

Direction Type
Response LiveStreamWorkspaceDeleteResponse
live_stream_workspace = client.live_stream_workspaces.delete(
    live_workspace_id="liveWorkspaceId",
)

LiveStreamAnalytics

Get usage analytics for live streams.

Usage Analytics

Get usage analytics for your live streams.

Direction Type
Request LiveStreamAnalyticUsageParams
Response LiveStreamAnalyticUsageResponse
live_stream_analytic = client.live_stream_analytics.usage(
    date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"},
    group_by="daily",
    metrics=["bandwidth_consumption"],
)

GlobalSearch

Search all video assets / playlists / folders etc across workspaces.

Global Search

Search all video assets / playlists / folders etc across workspaces.

Direction Type
Request GlobalSearchSearchParams
Response GlobalSearchSearchResponse
global_search = client.global_search.search(
    search_query="search_query",
    size=20,
    assets_offset=0,
    folders_offset=0,
    playlists_offset=0,
    channels_offset=0,
)