Bump cookbook recipes to SDK 4.x + migrate the 4.x breaking changes - #6
Merged
1 commit merged intoSep 8, 2026
Conversation
Move every SDK recipe to the latest published SDK (@speechify/api 4.0.1, speechify-api 4.0.0) via the pnpm catalog and the Python pyproject floors, and fix the two API-surface changes the major bump introduced: - streaming (TS): audio.stream now takes the request under `body` - voice cloning (TS + Py): the `consent` JSON field is replaced by verified consent — create a consent challenge, have the speaker read the returned phrase, and send consent_challenge_id + consent_recording. Recipes now cache the single-use challenge between runs and are bring-your-own-audio (the consent recording must be the same speaker as the sample), so the bundled sample is removed. Python streaming and the speech recipes are unchanged on 4.x. Lockfiles refreshed; TS typechecks, Python recipes compile and the consent surface is verified against the installed 4.0.0.
ghost
marked this pull request as ready for review
September 8, 2026 13:54
ghost
pushed a commit
that referenced
this pull request
Sep 8, 2026
Adds runnable recipes for API surfaces the cookbook didn't cover yet, each in every applicable lane (TypeScript SDK/native, Python SDK/native, Bash): - list-models, list-voices, voice-language-model-support - version-pinning-and-idempotency, error-handling - multilingual (language param + simba-3.0), output-formats (telephony/bitrate) - watermark detect/verify (REST-only — not in the SDKs) Update the README index and COVERAGE matrix; ignore pcm/ulaw artifacts and agent worktrees. Also reformats five voice-cloning files that had drifted from Prettier on main, so format:check stays green. The v4 SDK bump and verified-consent voice cloning already landed (#6, #7); this builds on them. Verified end-to-end against the live API on every lane.
This pull request was closed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves every SDK recipe to the latest published SDK —
@speechify/api4.0.1 (via the pnpm catalog) andspeechify-api4.0.0 (Python pyproject floors + refreshed uv locks) — and fixes the two API-surface changes the 3→4 major bump introduced. Found by an SDK-example audit; the surface was otherwise correct, but the major bump broke two recipes at compile time.Breaking changes migrated
audio.stream(...)now takes the request underbody: { input, voice_id, model }(was flat). Pythonstream(...)stays flat and is unchanged.consentJSON field (fullName+email) is gone, replaced by verified consent: create a consent challenge, have the speaker read the returned phrase, and sendconsent_challenge_id+consent_recording. Both recipes now:.consent-challenge.jsonbetween runs),Unchanged on 4.x
speechrecipes (quickstart, speech-marks, ssml-emotion) and Python streaming — verified by typecheck (TS) and by checking the consent surface against the installed 4.0.0 (Python).Verified
pnpm typecheckpasses across all TS recipes on 4.0.1.speechify-api4.0.0; the consent-challenge surface exists on the installed package.Not included (flagged separately)
The native (raw-HTTP) voice-cloning recipes — TS, Python, Bash — still send the deprecated
consentform field. They work today but need migrating to the consent-challenge flow +Speechify-Version: 2026-09-13. Different axis (REST API deprecation, not SDK version) — tracked as a follow-up.DRG-475