From 1a8da58196105bce858d99c114fd22dac65a25d2 Mon Sep 17 00:00:00 2001 From: scalarbot Date: Wed, 21 Oct 2026 08:07:08 +0000 Subject: [PATCH 1/4] chore(api): regenerate SDK - Regenerated with generator `0.36.8` (previously `0.36.5`). Build: kriPLDhJNbr5aQDOXnnZE --- scalar-sdk.manifest.json | 2 +- src/gumlet/_version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scalar-sdk.manifest.json b/scalar-sdk.manifest.json index 11e92de..6e913c7 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" ], diff --git a/src/gumlet/_version.py b/src/gumlet/_version.py index c821d8d..d522dc3 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.1" # x-release-please-version +__version__ = "1.2.2" # x-release-please-version From 9a8ed3037ae51f25fa0b56702a16591e0c98a3e2 Mon Sep 17 00:00:00 2001 From: scalarbot Date: Wed, 21 Oct 2026 08:25:40 +0000 Subject: [PATCH 2/4] chore(api): update generated SDK content 5 generated files changed with no detected API surface change (documentation, examples, or file content). Build: iheN1PPlzKZYEcpCm8J0l --- api.md | 7 +++---- src/gumlet/resources/audio_upload.py | 6 ++---- src/gumlet/resources/image_sources.py | 4 ++-- src/gumlet/resources/video_analytics.py | 4 ++-- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/api.md b/api.md index 0cdcbba..5ad72a8 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 | | --- | --- | @@ -916,7 +915,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 +1452,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/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. From 6961ef96b644410a435993e13b0d6e93a111d850 Mon Sep 17 00:00:00 2001 From: scalarbot Date: Thu, 22 Oct 2026 17:21:46 +0000 Subject: [PATCH 3/4] feat(api): update SDK surface (2 changes) - Added optional body field `transcribe` to `videoProfiles.create`. - Added optional body field `transcribe` to `videoProfiles.update`. Build: iUpUxznJvMzWTIj1KBCVE --- api.md | 2 ++ scalar-sdk.manifest.json | 12 ++++++++++++ src/gumlet/resources/video_profiles.py | 16 ++++++++++++++++ src/gumlet/types/video_profile_create_params.py | 6 +++--- src/gumlet/types/video_profile_update_params.py | 6 +++--- tests/smoke-test.py | 8 ++++++-- 6 files changed, 42 insertions(+), 8 deletions(-) diff --git a/api.md b/api.md index 5ad72a8..23046d0 100644 --- a/api.md +++ b/api.md @@ -565,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, ) ``` @@ -595,6 +596,7 @@ video_profile = client.video_profiles.update( path_profile_id="profileId", body_profile_id="", format="ABR", + transcribe=False, vc=["libx264"], ) ``` diff --git a/scalar-sdk.manifest.json b/scalar-sdk.manifest.json index 6e913c7..ccc1231 100644 --- a/scalar-sdk.manifest.json +++ b/scalar-sdk.manifest.json @@ -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/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, From 4708a37890239424c9f6e8cceb2132d9274b9ac5 Mon Sep 17 00:00:00 2001 From: "scalar-docs[bot]" <148485328+scalar-docs[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 17:22:11 +0000 Subject: [PATCH 4/4] release: 1.3.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 13 +++++++++++++ pyproject.toml | 2 +- src/gumlet/_version.py | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) 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/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/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