@clipwright/sdk 0.22.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +83 -0
- package/README.md +9 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,89 @@ a customer reading it should not miss what appeared in the product. Like *Server
|
|
|
16
16
|
they are live from the day the web app was deployed, not from the package release they are
|
|
17
17
|
listed under.
|
|
18
18
|
|
|
19
|
+
## [0.24.0] - 2026-10-03
|
|
20
|
+
|
|
21
|
+
A second speech model, `gemini-3.8-flash-tts`, with thirty voices of its own and a sample of each in English and
|
|
22
|
+
Russian. Nothing changes unless you name the model or one of its voices. The CLI and the MCP server accept the new
|
|
23
|
+
`tts_model` value from this release on.
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- `tts_model` accepts `gemini-3.8-flash-tts`, a speech model of a second vendor. Nothing changes unless you name it:
|
|
28
|
+
every default stays as it was, and Russian speech without `tts_model` still uses `eleven_v4`. The model speaks only
|
|
29
|
+
its own voices: without `voice`, `kore` for a female actor and `charon` otherwise. It reads Russian stress marks,
|
|
30
|
+
and it gets the text with `<break time="…" />` tags cut, which the response names in a warning. Its script limit is
|
|
31
|
+
5,000 characters. The price per finished second is the same as on every other model. (clipwright#453)
|
|
32
|
+
- `voice` accepts the thirty voices of `gemini-3.8-flash-tts` by name: `kore`, `puck`, `zephyr` and the rest, as
|
|
33
|
+
`list_voices` returns them. Naming one selects that model without `tts_model`, and the quote names the model.
|
|
34
|
+
`clipwright voices` prints the model on the line of such a voice. (clipwright#453)
|
|
35
|
+
- *Server-side:* `list_voices` returns those thirty voices after the presets as entries of kind `model_voice`. Each
|
|
36
|
+
names one model in `model` and `supported_models`, has no `language`, and carries `gender` only where it is known:
|
|
37
|
+
`kore` is female and `charon` is male. The filters `model=gemini-3.8-flash-tts`, `language=ru` and `language=en`
|
|
38
|
+
find them; any other language does not. (clipwright#453)
|
|
39
|
+
- *Server-side:* each of those thirty voices carries `preview_url`, a short sample spoken by that voice on its model.
|
|
40
|
+
The sample is in English; a request filtered by `language=ru` gets the Russian one. `clipwright voices` prints the
|
|
41
|
+
link under the voice, as it does for every other voice with a sample. (clipwright#453)
|
|
42
|
+
- *Server-side:* with `gemini-3.8-flash-tts` the API refuses a preset or catalog `voice`, `voice_id`, `captions=true`,
|
|
43
|
+
`segments` and `inserts` before any charge: the model does not speak the preset and catalog voices and returns no
|
|
44
|
+
word timings. It refuses the same when a voice names the model instead of `tts_model`, and it refuses one of the
|
|
45
|
+
model's voices next to any other `tts_model`. Each refusal names what to pass instead. `list_voices` lists the
|
|
46
|
+
model in `models[]` with the languages `en` and `ru`; no preset or catalog voice names it in `supported_models`.
|
|
47
|
+
(clipwright#453)
|
|
48
|
+
- *Server-side:* a warning about stress marks on `eleven_flash_v2_5` or `eleven_turbo_v2_5` names only the models
|
|
49
|
+
that speak the voice of the run: with an explicit `voice` or `voice_id` these are `eleven_v3` and `eleven_v4`.
|
|
50
|
+
(clipwright#453)
|
|
51
|
+
- *Server-side:* the quote and the reserve for a Russian script on `gemini-3.8-flash-tts` assume 2.2 words per second,
|
|
52
|
+
the pace measured on its two default voices: 153 Russian words are quoted at 70 seconds and 2,100 credits. A script
|
|
53
|
+
in Latin letters on this model is quoted at 2.6 words per second, as on every other model. The charge follows the
|
|
54
|
+
measured duration. (clipwright#453)
|
|
55
|
+
- *Dashboard:* the Privacy Policy, the Cookie Policy and the AI disclosure page name the speech provider of a run
|
|
56
|
+
that chooses this model. (clipwright#453)
|
|
57
|
+
|
|
58
|
+
## [0.23.0] - 2026-10-02
|
|
59
|
+
|
|
60
|
+
Russian speech moves to `eleven_v4`: the server names it by default, and the client texts say which voices speak it.
|
|
61
|
+
Clients older than 0.22.0 fail on the new model name.
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
|
|
65
|
+
- **Breaking:** *Server-side:* Russian speech uses `eleven_v4` when you name no `tts_model`. That covers the presets
|
|
66
|
+
`owner_ru_clone` and `daria_ru_female`, the catalog voices named `ru_*`, and a raw `voice_id` whose script is mostly
|
|
67
|
+
Cyrillic. Every other voice stays on `eleven_v3`, and an explicit `tts_model` always wins. Clients older than 0.22.0
|
|
68
|
+
read the model as one of three fixed values and fail on a response that names `eleven_v4`: `list_voices` fails
|
|
69
|
+
whenever the listing holds a Russian voice, as the unfiltered one always does, and `quote` fails for those Russian
|
|
70
|
+
voices. Upgrade to 0.22.0 or later. The contract version is `2026-10-02`. (clipwright#452)
|
|
71
|
+
- **Breaking:** `resolveTtsModel` in `@clipwright/core` requires `script`, the whole spoken text of the run: a raw
|
|
72
|
+
`voice_id` takes its model from it. (clipwright#452)
|
|
73
|
+
- *Server-side:* a script, or the line of one actor segment, that holds nothing but `<break time="…" />` tags is
|
|
74
|
+
refused before any charge on `eleven_v4`. The model gets the text with those tags cut, and nothing would be left
|
|
75
|
+
to say. (clipwright#452)
|
|
76
|
+
- *Server-side:* the warnings for a model that misreads stress marks name both models that read them, `eleven_v4`
|
|
77
|
+
and `eleven_v3`, instead of advising `eleven_v3` alone. (clipwright#452)
|
|
78
|
+
- *Server-side:* the quote and the reserve for a Russian script on `eleven_v4` assume 2.18 words per second, the
|
|
79
|
+
measured pace, instead of 2.3. `duration_estimate_sec` and `credits_estimate` come out about 5% higher: 153 Russian
|
|
80
|
+
words are quoted at 70 seconds and 2,100 credits instead of 67 seconds and 2,010. The charge still follows the
|
|
81
|
+
measured duration. A Russian script on an explicit `eleven_v3` and every other language are quoted as before.
|
|
82
|
+
(clipwright#452)
|
|
83
|
+
- *Server-side:* the long-form qualification ceiling (`segments` or `inserts`) moves from 300 to 327 seconds of
|
|
84
|
+
estimated output, for every run. A Russian script on an `eleven_v4` voice passes up to 713 words, against the 691
|
|
85
|
+
that passed while Russian voices spoke `eleven_v3`. A Russian script on an explicit `eleven_v3` passes up to 753
|
|
86
|
+
words and an English one up to 851. A longer script is refused before any charge. (clipwright#452)
|
|
87
|
+
- The `tts_model` and `script` descriptions say which voices speak `eleven_v4` by default, name both models that read
|
|
88
|
+
stress marks, and say that break tags are not counted toward the `eleven_v4` script limit. (clipwright#452)
|
|
89
|
+
|
|
90
|
+
### Fixed
|
|
91
|
+
|
|
92
|
+
- `SKILL.md` and the CLI README no longer say that every preset and catalog voice speaks `eleven_v3`, and no longer
|
|
93
|
+
advise keeping Russian scripts on `eleven_v3`. They name the voices that speak `eleven_v4` when you name no model:
|
|
94
|
+
the presets `owner_ru_clone` and `daria_ru_female`, the catalog voices named `ru_*`, and a raw `voice_id` with a
|
|
95
|
+
mostly Cyrillic script. They name both models that read stress marks, `eleven_v4` and `eleven_v3`, and say that
|
|
96
|
+
`eleven_v4` gives no pause for a `<break time="…" />` tag and gets the text with the tag cut. `SKILL.md` lists the
|
|
97
|
+
5,000-character script limit of `eleven_v4`. The behavior is the one the entries above describe; only these texts
|
|
98
|
+
were out of date. (clipwright#452)
|
|
99
|
+
- The `--tts-model` help of `clipwright make` says that an omitted flag means the voice's default model. It said
|
|
100
|
+
"the preset's model", which was wrong for a catalog voice and for `--voice-id`. (clipwright#452)
|
|
101
|
+
|
|
19
102
|
## [0.22.0] - 2026-10-01
|
|
20
103
|
|
|
21
104
|
A new speech model: `tts_model` accepts `eleven_v4`, and the clients no longer fail on a model they do not know.
|
package/README.md
CHANGED
|
@@ -32,11 +32,19 @@ refuse a mismatched `script`/`brief` before sending anything.
|
|
|
32
32
|
`preview_url` that expires in an hour. Pass a voice's `name` as `voice`;
|
|
33
33
|
`language` is a filter only, since any voice speaks any supported language.
|
|
34
34
|
|
|
35
|
+
The list holds the presets, the thirty voices of the speech model
|
|
36
|
+
`gemini-3.8-flash-tts` (`kind: "model_voice"`) and the catalog. A `model_voice`
|
|
37
|
+
voice has no language of its own: `language: "en"` and `language: "ru"` find it,
|
|
38
|
+
and its sample is in English unless you ask for `language: "ru"`. Naming such a
|
|
39
|
+
voice makes the run speak `gemini-3.8-flash-tts` without `tts_model`. That model
|
|
40
|
+
speaks only its own voices and refuses `captions: true` before any charge.
|
|
41
|
+
|
|
35
42
|
Without `voice` or `voice_id`, the voice follows the actor's gender: `sarah` for
|
|
36
43
|
a woman, `george` for a man. `actor_id` brings its catalog gender; with `image`,
|
|
37
44
|
pass `actor_gender` (`"female"` or `"male"`). An `image` without `actor_gender`
|
|
38
45
|
gets `george` and a warning. `actor_gender` next to `actor_id` or without
|
|
39
|
-
`image` is refused before any charge.
|
|
46
|
+
`image` is refused before any charge. With `tts_model: "gemini-3.8-flash-tts"`
|
|
47
|
+
the defaults are `kore` for a woman and `charon` otherwise.
|
|
40
48
|
|
|
41
49
|
Requires `CLIPWRIGHT_CLIENT_ID`, or a writable `~/.clipwright/` for the SDK to
|
|
42
50
|
create one on first use. It fails loudly rather than generating a throwaway id,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clipwright/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "TypeScript client for the Clipwright UGC video API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Dimantika Sp. z o.o.",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"zod": "^4.4.3",
|
|
27
|
-
"@clipwright/core": "0.
|
|
27
|
+
"@clipwright/core": "0.24.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "^26.1.1"
|