Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "3.17.0"
".": "3.18.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 12
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runwayml%2Frunwayml-5279ac8612298fef5ba10f698044c50e5368533d98f7e0635e695fd6458f6407.yml
openapi_spec_hash: 73de6c32984fca19cbe5208c79aa2194
config_hash: 9b8b1d9b0dd858cbb4ee228caed13ee6
configured_endpoints: 14
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runwayml%2Frunwayml-62779ce32ca8a091219b84d943b97a799daaccb6c5792a191b68be4cdd9117e1.yml
openapi_spec_hash: 42e41b0bec15ce4f46ff797748062484
config_hash: ef699c0a3936550275ab6d77894a2c72
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## 3.18.0 (2025-10-14)

Full Changelog: [v3.17.0...v3.18.0](https://github.com/runwayml/sdk-python/compare/v3.17.0...v3.18.0)

### Features

* **api:** Voice dubbing and isolation ([0bdaaed](https://github.com/runwayml/sdk-python/commit/0bdaaedf44a1cd2231d229db9f9a4647caf58ad9))


### Chores

* **internal:** detect missing future annotations with ruff ([b85be28](https://github.com/runwayml/sdk-python/commit/b85be28503c3ae03eea12945814a78af83030740))

## 3.17.0 (2025-10-09)

Full Changelog: [v3.16.0...v3.17.0](https://github.com/runwayml/sdk-python/compare/v3.16.0...v3.17.0)
Expand Down
24 changes: 24 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,30 @@ Methods:

- <code title="post /v1/sound_effect">client.sound_effect.<a href="./src/runwayml/resources/sound_effect.py">create</a>(\*\*<a href="src/runwayml/types/sound_effect_create_params.py">params</a>) -> <a href="./src/runwayml/types/sound_effect_create_response.py">SoundEffectCreateResponse</a></code>

# VoiceIsolation

Types:

```python
from runwayml.types import VoiceIsolationCreateResponse
```

Methods:

- <code title="post /v1/voice_isolation">client.voice_isolation.<a href="./src/runwayml/resources/voice_isolation.py">create</a>(\*\*<a href="src/runwayml/types/voice_isolation_create_params.py">params</a>) -> <a href="./src/runwayml/types/voice_isolation_create_response.py">VoiceIsolationCreateResponse</a></code>

# VoiceDubbing

Types:

```python
from runwayml.types import VoiceDubbingCreateResponse
```

Methods:

- <code title="post /v1/voice_dubbing">client.voice_dubbing.<a href="./src/runwayml/resources/voice_dubbing.py">create</a>(\*\*<a href="src/runwayml/types/voice_dubbing_create_params.py">params</a>) -> <a href="./src/runwayml/types/voice_dubbing_create_response.py">VoiceDubbingCreateResponse</a></code>

# Organization

Types:
Expand Down
6 changes: 5 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "runwayml"
version = "3.17.0"
version = "3.18.0"
description = "The official Python library for the runwayml API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down Expand Up @@ -224,6 +224,8 @@ select = [
"B",
# remove unused imports
"F401",
# check for missing future annotations
"FA102",
# bare except statements
"E722",
# unused arguments
Expand All @@ -246,6 +248,8 @@ unfixable = [
"T203",
]

extend-safe-fixes = ["FA102"]

[tool.ruff.lint.flake8-tidy-imports.banned-api]
"functools.lru_cache".msg = "This function does not retain type information for the wrapped function's arguments; The `lru_cache` function from `_utils` should be used instead"

Expand Down
18 changes: 18 additions & 0 deletions src/runwayml/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,11 @@
text_to_image,
text_to_video,
video_upscale,
voice_dubbing,
image_to_video,
text_to_speech,
video_to_video,
voice_isolation,
character_performance,
)
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
Expand Down Expand Up @@ -63,6 +65,8 @@ class RunwayML(SyncAPIClient):
character_performance: character_performance.CharacterPerformanceResource
text_to_speech: text_to_speech.TextToSpeechResource
sound_effect: sound_effect.SoundEffectResource
voice_isolation: voice_isolation.VoiceIsolationResource
voice_dubbing: voice_dubbing.VoiceDubbingResource
organization: organization.OrganizationResource
with_raw_response: RunwayMLWithRawResponse
with_streaming_response: RunwayMLWithStreamedResponse
Expand Down Expand Up @@ -136,6 +140,8 @@ def __init__(
self.character_performance = character_performance.CharacterPerformanceResource(self)
self.text_to_speech = text_to_speech.TextToSpeechResource(self)
self.sound_effect = sound_effect.SoundEffectResource(self)
self.voice_isolation = voice_isolation.VoiceIsolationResource(self)
self.voice_dubbing = voice_dubbing.VoiceDubbingResource(self)
self.organization = organization.OrganizationResource(self)
self.with_raw_response = RunwayMLWithRawResponse(self)
self.with_streaming_response = RunwayMLWithStreamedResponse(self)
Expand Down Expand Up @@ -258,6 +264,8 @@ class AsyncRunwayML(AsyncAPIClient):
character_performance: character_performance.AsyncCharacterPerformanceResource
text_to_speech: text_to_speech.AsyncTextToSpeechResource
sound_effect: sound_effect.AsyncSoundEffectResource
voice_isolation: voice_isolation.AsyncVoiceIsolationResource
voice_dubbing: voice_dubbing.AsyncVoiceDubbingResource
organization: organization.AsyncOrganizationResource
with_raw_response: AsyncRunwayMLWithRawResponse
with_streaming_response: AsyncRunwayMLWithStreamedResponse
Expand Down Expand Up @@ -331,6 +339,8 @@ def __init__(
self.character_performance = character_performance.AsyncCharacterPerformanceResource(self)
self.text_to_speech = text_to_speech.AsyncTextToSpeechResource(self)
self.sound_effect = sound_effect.AsyncSoundEffectResource(self)
self.voice_isolation = voice_isolation.AsyncVoiceIsolationResource(self)
self.voice_dubbing = voice_dubbing.AsyncVoiceDubbingResource(self)
self.organization = organization.AsyncOrganizationResource(self)
self.with_raw_response = AsyncRunwayMLWithRawResponse(self)
self.with_streaming_response = AsyncRunwayMLWithStreamedResponse(self)
Expand Down Expand Up @@ -456,6 +466,8 @@ def __init__(self, client: RunwayML) -> None:
)
self.text_to_speech = text_to_speech.TextToSpeechResourceWithRawResponse(client.text_to_speech)
self.sound_effect = sound_effect.SoundEffectResourceWithRawResponse(client.sound_effect)
self.voice_isolation = voice_isolation.VoiceIsolationResourceWithRawResponse(client.voice_isolation)
self.voice_dubbing = voice_dubbing.VoiceDubbingResourceWithRawResponse(client.voice_dubbing)
self.organization = organization.OrganizationResourceWithRawResponse(client.organization)


Expand All @@ -472,6 +484,8 @@ def __init__(self, client: AsyncRunwayML) -> None:
)
self.text_to_speech = text_to_speech.AsyncTextToSpeechResourceWithRawResponse(client.text_to_speech)
self.sound_effect = sound_effect.AsyncSoundEffectResourceWithRawResponse(client.sound_effect)
self.voice_isolation = voice_isolation.AsyncVoiceIsolationResourceWithRawResponse(client.voice_isolation)
self.voice_dubbing = voice_dubbing.AsyncVoiceDubbingResourceWithRawResponse(client.voice_dubbing)
self.organization = organization.AsyncOrganizationResourceWithRawResponse(client.organization)


Expand All @@ -488,6 +502,8 @@ def __init__(self, client: RunwayML) -> None:
)
self.text_to_speech = text_to_speech.TextToSpeechResourceWithStreamingResponse(client.text_to_speech)
self.sound_effect = sound_effect.SoundEffectResourceWithStreamingResponse(client.sound_effect)
self.voice_isolation = voice_isolation.VoiceIsolationResourceWithStreamingResponse(client.voice_isolation)
self.voice_dubbing = voice_dubbing.VoiceDubbingResourceWithStreamingResponse(client.voice_dubbing)
self.organization = organization.OrganizationResourceWithStreamingResponse(client.organization)


Expand All @@ -504,6 +520,8 @@ def __init__(self, client: AsyncRunwayML) -> None:
)
self.text_to_speech = text_to_speech.AsyncTextToSpeechResourceWithStreamingResponse(client.text_to_speech)
self.sound_effect = sound_effect.AsyncSoundEffectResourceWithStreamingResponse(client.sound_effect)
self.voice_isolation = voice_isolation.AsyncVoiceIsolationResourceWithStreamingResponse(client.voice_isolation)
self.voice_dubbing = voice_dubbing.AsyncVoiceDubbingResourceWithStreamingResponse(client.voice_dubbing)
self.organization = organization.AsyncOrganizationResourceWithStreamingResponse(client.organization)


Expand Down
2 changes: 1 addition & 1 deletion src/runwayml/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "runwayml"
__version__ = "3.17.0" # x-release-please-version
__version__ = "3.18.0" # x-release-please-version
28 changes: 28 additions & 0 deletions src/runwayml/resources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,14 @@
VideoUpscaleResourceWithStreamingResponse,
AsyncVideoUpscaleResourceWithStreamingResponse,
)
from .voice_dubbing import (
VoiceDubbingResource,
AsyncVoiceDubbingResource,
VoiceDubbingResourceWithRawResponse,
AsyncVoiceDubbingResourceWithRawResponse,
VoiceDubbingResourceWithStreamingResponse,
AsyncVoiceDubbingResourceWithStreamingResponse,
)
from .image_to_video import (
ImageToVideoResource,
AsyncImageToVideoResource,
Expand All @@ -72,6 +80,14 @@
VideoToVideoResourceWithStreamingResponse,
AsyncVideoToVideoResourceWithStreamingResponse,
)
from .voice_isolation import (
VoiceIsolationResource,
AsyncVoiceIsolationResource,
VoiceIsolationResourceWithRawResponse,
AsyncVoiceIsolationResourceWithRawResponse,
VoiceIsolationResourceWithStreamingResponse,
AsyncVoiceIsolationResourceWithStreamingResponse,
)
from .character_performance import (
CharacterPerformanceResource,
AsyncCharacterPerformanceResource,
Expand Down Expand Up @@ -136,6 +152,18 @@
"AsyncSoundEffectResourceWithRawResponse",
"SoundEffectResourceWithStreamingResponse",
"AsyncSoundEffectResourceWithStreamingResponse",
"VoiceIsolationResource",
"AsyncVoiceIsolationResource",
"VoiceIsolationResourceWithRawResponse",
"AsyncVoiceIsolationResourceWithRawResponse",
"VoiceIsolationResourceWithStreamingResponse",
"AsyncVoiceIsolationResourceWithStreamingResponse",
"VoiceDubbingResource",
"AsyncVoiceDubbingResource",
"VoiceDubbingResourceWithRawResponse",
"AsyncVoiceDubbingResourceWithRawResponse",
"VoiceDubbingResourceWithStreamingResponse",
"AsyncVoiceDubbingResourceWithStreamingResponse",
"OrganizationResource",
"AsyncOrganizationResource",
"OrganizationResourceWithRawResponse",
Expand Down
Loading