diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index f6a9e15..96f1cd9 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "1.2.2"
+ ".": "1.3.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b4adf3b..93e7bde 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,18 @@
# Changelog
+## [1.3.0](https://github.com/gumlet/python-sdk/compare/v1.2.2...v1.3.0) (2026-10-22)
+
+
+### Features
+
+* **api:** update SDK surface (2 changes) ([6961ef9](https://github.com/gumlet/python-sdk/commit/6961ef96b644410a435993e13b0d6e93a111d850))
+
+
+### Chores
+
+* **api:** regenerate SDK ([1a8da58](https://github.com/gumlet/python-sdk/commit/1a8da58196105bce858d99c114fd22dac65a25d2))
+* **api:** update generated SDK content ([9a8ed30](https://github.com/gumlet/python-sdk/commit/9a8ed3037ae51f25fa0b56702a16591e0c98a3e2))
+
## [1.2.2](https://github.com/gumlet/python-sdk/compare/v1.2.1...v1.2.2) (2026-10-15)
diff --git a/api.md b/api.md
index 0cdcbba..23046d0 100644
--- a/api.md
+++ b/api.md
@@ -429,8 +429,7 @@ audio_upload = client.audio_upload.upload(
### 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.
+Finish adding audio tracks to an existing video asset. Call this only after the audio files have been PUT to the upload URLs from the add-audio call. This attaches those tracks to the asset.
| Direction | Type |
| --- | --- |
@@ -566,6 +565,7 @@ Gumlet provides the functionality of creating multiple video assets using the sa
video_profile = client.video_profiles.create(
name="Gumlet-Profile-1",
format="ABR",
+ transcribe=False,
)
```
@@ -596,6 +596,7 @@ video_profile = client.video_profiles.update(
path_profile_id="profileId",
body_profile_id="",
format="ABR",
+ transcribe=False,
vc=["libx264"],
)
```
@@ -916,7 +917,7 @@ image_source = client.image_sources.retrieve(
### Update Source
-This endpoint allows users to update image source that has previously been created.
+Update settings on an image source that already exists. This does not create a source or purge cached images.
| Direction | Type |
| --- | --- |
@@ -1453,7 +1454,7 @@ video_analytic = client.video_analytics.chart_data(
### Breakdown Data
-This endpoint retrieves breakdown data of the given metrics by given breakdown field
+Read viewer metrics for one workspace, grouped by a breakdown field, for a date range of at most 60 days. This does not change assets or delivery.
| Direction | Type |
| --- | --- |
diff --git a/pyproject.toml b/pyproject.toml
index 80053c7..07ec775 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "gumlet"
-version = "1.2.2" # x-release-please-version
+version = "1.3.0" # x-release-please-version
description = "Gumlet helps developers deliver online video and images. This API encompasses Gumlet Video, Image and Video Analytics functionality to help you build your products better and faster than ever before."
readme = "README.md"
license = "Apache-2.0"
diff --git a/scalar-sdk.manifest.json b/scalar-sdk.manifest.json
index 11e92de..ccc1231 100644
--- a/scalar-sdk.manifest.json
+++ b/scalar-sdk.manifest.json
@@ -1,7 +1,7 @@
{
"name": "Gumlet",
"slug": "gumlet",
- "generatorVersion": "0.36.5",
+ "generatorVersion": "0.36.8",
"servers": [
"https://api.gumlet.com/v1"
],
@@ -4722,6 +4722,7 @@
"text_overlay",
"animated_gif",
"generate_subtitles",
+ "transcribe",
"mp4_access",
"per_title_encoding",
"process_low_resolution_input",
@@ -4741,6 +4742,7 @@
"text_overlay",
"animated_gif",
"generate_subtitles",
+ "transcribe",
"mp4_access",
"per_title_encoding",
"process_low_resolution_input",
@@ -4796,6 +4798,10 @@
"name": "generate_subtitles",
"required": false
},
+ {
+ "name": "transcribe",
+ "required": false
+ },
{
"name": "mp4_access",
"required": false
@@ -5062,6 +5068,7 @@
"text_overlay",
"animated_gif",
"generate_subtitles",
+ "transcribe",
"mp4_access",
"per_title_encoding",
"process_low_resolution_input",
@@ -5085,6 +5092,7 @@
"text_overlay",
"animated_gif",
"generate_subtitles",
+ "transcribe",
"mp4_access",
"per_title_encoding",
"process_low_resolution_input",
@@ -5147,6 +5155,10 @@
"name": "generate_subtitles",
"required": false
},
+ {
+ "name": "transcribe",
+ "required": false
+ },
{
"name": "mp4_access",
"required": false
diff --git a/src/gumlet/_version.py b/src/gumlet/_version.py
index d522dc3..9c1752e 100644
--- a/src/gumlet/_version.py
+++ b/src/gumlet/_version.py
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Scalar. See README.md for details.
__title__ = "gumlet"
-__version__ = "1.2.2" # x-release-please-version
+__version__ = "1.3.0" # x-release-please-version
diff --git a/src/gumlet/resources/audio_upload.py b/src/gumlet/resources/audio_upload.py
index af892c9..2413579 100644
--- a/src/gumlet/resources/audio_upload.py
+++ b/src/gumlet/resources/audio_upload.py
@@ -96,8 +96,7 @@ def complete(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> AudioUploadCompleteResponse:
"""
- 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.
+ Finish adding audio tracks to an existing video asset. Call this only after the audio files have been PUT to the upload URLs from the add-audio call. This attaches those tracks to the asset.
Args:
asset_id: An asset id for the previously created asset.
@@ -204,8 +203,7 @@ async def complete(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> AudioUploadCompleteResponse:
"""
- 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.
+ Finish adding audio tracks to an existing video asset. Call this only after the audio files have been PUT to the upload URLs from the add-audio call. This attaches those tracks to the asset.
Args:
asset_id: An asset id for the previously created asset.
diff --git a/src/gumlet/resources/image_sources.py b/src/gumlet/resources/image_sources.py
index 5dabcb8..7c30e88 100644
--- a/src/gumlet/resources/image_sources.py
+++ b/src/gumlet/resources/image_sources.py
@@ -281,7 +281,7 @@ def update(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> ImageSourceUpdateResponse:
"""
- This endpoint allows users to update image source that has previously been created.
+ Update settings on an image source that already exists. This does not create a source or purge cached images.
Args:
image_source_id: image source id which you want to update
@@ -754,7 +754,7 @@ async def update(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> ImageSourceUpdateResponse:
"""
- This endpoint allows users to update image source that has previously been created.
+ Update settings on an image source that already exists. This does not create a source or purge cached images.
Args:
image_source_id: image source id which you want to update
diff --git a/src/gumlet/resources/video_analytics.py b/src/gumlet/resources/video_analytics.py
index 0ba70b5..08eacfa 100644
--- a/src/gumlet/resources/video_analytics.py
+++ b/src/gumlet/resources/video_analytics.py
@@ -130,7 +130,7 @@ def breakdown_data(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> VideoAnalyticBreakdownDataResponse:
"""
- This endpoint retrieves breakdown data of the given metrics by given breakdown field
+ Read viewer metrics for one workspace, grouped by a breakdown field, for a date range of at most 60 days. This does not change assets or delivery.
Args:
date_range: The timeframe to get the data for. The maximum range between start_at and end_at is 60 days.
@@ -332,7 +332,7 @@ async def breakdown_data(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> VideoAnalyticBreakdownDataResponse:
"""
- This endpoint retrieves breakdown data of the given metrics by given breakdown field
+ Read viewer metrics for one workspace, grouped by a breakdown field, for a date range of at most 60 days. This does not change assets or delivery.
Args:
date_range: The timeframe to get the data for. The maximum range between start_at and end_at is 60 days.
diff --git a/src/gumlet/resources/video_profiles.py b/src/gumlet/resources/video_profiles.py
index dccbdd9..729489a 100644
--- a/src/gumlet/resources/video_profiles.py
+++ b/src/gumlet/resources/video_profiles.py
@@ -52,6 +52,7 @@ def create(
text_overlay: video_profile_create_params.TextOverlay | Omit = omit,
animated_gif: video_profile_create_params.AnimatedGif | Omit = omit,
generate_subtitles: video_profile_create_params.GenerateSubtitles | Omit = omit,
+ transcribe: bool | Omit = omit,
mp4_access: bool | Omit = omit,
per_title_encoding: bool | Omit = omit,
process_low_resolution_input: bool | Omit = omit,
@@ -80,6 +81,7 @@ def create(
text_overlay: Text overlay can be used to brand a video or add a label in the form of text.
animated_gif: Create an animated GIF from a video.
generate_subtitles: 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.
+ transcribe: This will generate the subtitles in the native audio.
mp4_access: Creates `mp4` version for download purpose in case of `MPEG-DASH` or `HLS` delivery format. **Default: `false`**
per_title_encoding: 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: 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`**
@@ -98,6 +100,7 @@ def create(
video_profile = client.video_profiles.create(
name="Gumlet-Profile-1",
format="ABR",
+ transcribe=False,
)
```
"""
@@ -117,6 +120,7 @@ def create(
"text_overlay": text_overlay,
"animated_gif": animated_gif,
"generate_subtitles": generate_subtitles,
+ "transcribe": transcribe,
"mp4_access": mp4_access,
"per_title_encoding": per_title_encoding,
"process_low_resolution_input": process_low_resolution_input,
@@ -193,6 +197,7 @@ def update(
text_overlay: video_profile_update_params.TextOverlay | Omit = omit,
animated_gif: video_profile_update_params.AnimatedGif | Omit = omit,
generate_subtitles: video_profile_update_params.GenerateSubtitles | Omit = omit,
+ transcribe: bool | Omit = omit,
mp4_access: bool | Omit = omit,
per_title_encoding: bool | Omit = omit,
process_low_resolution_input: bool | Omit = omit,
@@ -226,6 +231,7 @@ def update(
text_overlay: Text overlay can be used to brand a video or add a label in the form of text.
animated_gif: Create an animated GIF from a video.
generate_subtitles: 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.
+ transcribe: To generate the subtitles in the native audio.
mp4_access: Creates `mp4` version for download purpose in case of `MPEG-DASH` or `HLS` delivery format. **Default: `false`**
per_title_encoding: 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: 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`**
@@ -248,6 +254,7 @@ def update(
path_profile_id="profileId",
body_profile_id="",
format="ABR",
+ transcribe=False,
vc=["libx264"],
)
```
@@ -271,6 +278,7 @@ def update(
"text_overlay": text_overlay,
"animated_gif": animated_gif,
"generate_subtitles": generate_subtitles,
+ "transcribe": transcribe,
"mp4_access": mp4_access,
"per_title_encoding": per_title_encoding,
"process_low_resolution_input": process_low_resolution_input,
@@ -395,6 +403,7 @@ async def create(
text_overlay: video_profile_create_params.TextOverlay | Omit = omit,
animated_gif: video_profile_create_params.AnimatedGif | Omit = omit,
generate_subtitles: video_profile_create_params.GenerateSubtitles | Omit = omit,
+ transcribe: bool | Omit = omit,
mp4_access: bool | Omit = omit,
per_title_encoding: bool | Omit = omit,
process_low_resolution_input: bool | Omit = omit,
@@ -423,6 +432,7 @@ async def create(
text_overlay: Text overlay can be used to brand a video or add a label in the form of text.
animated_gif: Create an animated GIF from a video.
generate_subtitles: 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.
+ transcribe: This will generate the subtitles in the native audio.
mp4_access: Creates `mp4` version for download purpose in case of `MPEG-DASH` or `HLS` delivery format. **Default: `false`**
per_title_encoding: 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: 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`**
@@ -441,6 +451,7 @@ async def create(
video_profile = await client.video_profiles.create(
name="Gumlet-Profile-1",
format="ABR",
+ transcribe=False,
)
```
"""
@@ -460,6 +471,7 @@ async def create(
"text_overlay": text_overlay,
"animated_gif": animated_gif,
"generate_subtitles": generate_subtitles,
+ "transcribe": transcribe,
"mp4_access": mp4_access,
"per_title_encoding": per_title_encoding,
"process_low_resolution_input": process_low_resolution_input,
@@ -536,6 +548,7 @@ async def update(
text_overlay: video_profile_update_params.TextOverlay | Omit = omit,
animated_gif: video_profile_update_params.AnimatedGif | Omit = omit,
generate_subtitles: video_profile_update_params.GenerateSubtitles | Omit = omit,
+ transcribe: bool | Omit = omit,
mp4_access: bool | Omit = omit,
per_title_encoding: bool | Omit = omit,
process_low_resolution_input: bool | Omit = omit,
@@ -569,6 +582,7 @@ async def update(
text_overlay: Text overlay can be used to brand a video or add a label in the form of text.
animated_gif: Create an animated GIF from a video.
generate_subtitles: 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.
+ transcribe: To generate the subtitles in the native audio.
mp4_access: Creates `mp4` version for download purpose in case of `MPEG-DASH` or `HLS` delivery format. **Default: `false`**
per_title_encoding: 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: 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`**
@@ -591,6 +605,7 @@ async def update(
path_profile_id="profileId",
body_profile_id="",
format="ABR",
+ transcribe=False,
vc=["libx264"],
)
```
@@ -614,6 +629,7 @@ async def update(
"text_overlay": text_overlay,
"animated_gif": animated_gif,
"generate_subtitles": generate_subtitles,
+ "transcribe": transcribe,
"mp4_access": mp4_access,
"per_title_encoding": per_title_encoding,
"process_low_resolution_input": process_low_resolution_input,
diff --git a/src/gumlet/types/video_profile_create_params.py b/src/gumlet/types/video_profile_create_params.py
index bf17c58..475c80a 100644
--- a/src/gumlet/types/video_profile_create_params.py
+++ b/src/gumlet/types/video_profile_create_params.py
@@ -53,6 +53,9 @@ class VideoProfileCreateParams(TypedDict, total=False):
generate_subtitles: GenerateSubtitles
"""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."""
+ transcribe: bool
+ """This will generate the subtitles in the native audio."""
+
mp4_access: bool
"""Creates `mp4` version for download purpose in case of `MPEG-DASH` or `HLS` delivery format. **Default: `false`**"""
@@ -70,9 +73,6 @@ class VideoProfileCreateParams(TypedDict, total=False):
class GenerateSubtitles(TypedDict, total=False):
- transcribe: bool
- """This will generate the subtitles in the native audio."""
-
subtitle_languages: str
"""Array of string of language codes for which subtitle needs to be generated. Maximum four language codes are allowed."""
diff --git a/src/gumlet/types/video_profile_update_params.py b/src/gumlet/types/video_profile_update_params.py
index 4b96079..8107983 100644
--- a/src/gumlet/types/video_profile_update_params.py
+++ b/src/gumlet/types/video_profile_update_params.py
@@ -60,6 +60,9 @@ class VideoProfileUpdateParams(TypedDict, total=False):
generate_subtitles: GenerateSubtitles
"""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."""
+ transcribe: bool
+ """To generate the subtitles in the native audio."""
+
mp4_access: bool
"""Creates `mp4` version for download purpose in case of `MPEG-DASH` or `HLS` delivery format. **Default: `false`**"""
@@ -89,9 +92,6 @@ class GenerateSubtitles(TypedDict, total=False):
subtitle_languages: SequenceNotStr[str]
"""Array of string of language codes for which subtitle needs to be generated. Maximum four language codes are allowed."""
- transcribe: bool
- """This is by default true to generate the subtitles in the native audio."""
-
class AnimatedGif(TypedDict, total=False):
start_offset: str
diff --git a/tests/smoke-test.py b/tests/smoke-test.py
index 6a7801e..238e703 100644
--- a/tests/smoke-test.py
+++ b/tests/smoke-test.py
@@ -448,6 +448,7 @@ def _smoke_case_32() -> None:
video_profile = client.video_profiles.create(
name="Gumlet-Profile-1",
format="ABR",
+ transcribe=False,
)
@@ -486,7 +487,8 @@ def _smoke_case_33() -> None:
"box_border": "",
},
animated_gif={"start_offset": "", "end_offset": "", "width": "", "height": "", "fps": ""},
- generate_subtitles={"transcribe": True, "subtitle_languages": ""},
+ generate_subtitles={"subtitle_languages": ""},
+ transcribe=False,
mp4_access=False,
per_title_encoding=False,
process_low_resolution_input=False,
@@ -511,6 +513,7 @@ def _smoke_case_36() -> None:
path_profile_id="profileId",
body_profile_id="",
format="ABR",
+ transcribe=False,
vc=["libx264"],
)
@@ -552,7 +555,8 @@ def _smoke_case_37() -> None:
"box_border": "",
},
animated_gif={"start_offset": "", "end_offset": "", "width": "", "height": "", "fps": ""},
- generate_subtitles={"subtitle_languages": [""], "transcribe": True},
+ generate_subtitles={"subtitle_languages": [""]},
+ transcribe=False,
mp4_access=False,
per_title_encoding=False,
process_low_resolution_input=False,