diff --git a/README.md b/README.md index c5f3ef6..6ca61d9 100644 --- a/README.md +++ b/README.md @@ -390,8 +390,9 @@ Async-only; use `submit()` plus `client.dubbing` dubs one video into one or more target languages in a single async call. Pass exactly one of `video` / `video_url` (`video_url` must be **https**), plus optional `languages` — it defaults server-side to -`["zh_cn", "es", "fr"]`; supported codes are `en, zh_cn, ja, ko, pt, es, de, -fr, it, ru`. The optional `ducking` boolean (default off, free) ducks the +`["zh_cn", "es", "fr"]`; supported codes are `en, zh_cn, ja, ko, pt, pt_br, +es, es_419, de, fr, it, ru, th` (`pt_br` is Brazilian Portuguese and `es_419` +Latin American Spanish; plain `pt` and `es` stay unqualified). The optional `ducking` boolean (default off, free) ducks the background music/effects bed under the dubbed voice while it speaks; when off the bed is kept at a constant level. (Every endpoint's `ducking` defaults off, so this one is no exception.) Source videos may be diff --git a/context7.json b/context7.json index 4d4fdf7..7cdb984 100644 --- a/context7.json +++ b/context7.json @@ -30,7 +30,7 @@ "Self-serve accounts start with free runs per endpoint (2 each for text-to-music, text-to-sfx, audio-ducking, video-analysis; 1 each for other video endpoints; none for dubbing), then bill normally. A first call succeeding is not proof billing works.", "Before a paid call, read client.account.services().get(\"trial\", {}) and degrade gracefully when a service's remaining is 0: that call raises TrialExhaustedError (402 trial_exhausted), which no retry fixes \u2014 ask for a payment method. trial may be absent.", "client.audio_ducking ducks an EXISTING music bed under an EXISTING voice track; nothing is generated. One of voice/voice_url, one of music/music_url. Voice may be audio or video (video returns a .mp4); music must be audio. Result: output_url, no stems.", - "client.dubbing dubs one video into several languages in a single async call. languages is a list of codes (en, zh_cn, ja, ko, pt, es, de, fr, it, ru); omit it for the default [\"zh_cn\", \"es\", \"fr\"]. You are billed per language, with no free trial runs.", + "client.dubbing dubs one video into several languages in one async call. languages is a list of codes (en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, it, ru, th); omit for the default [\"zh_cn\", \"es\", \"fr\"]. Billed per language; no free trial runs.", "A DubbingResult has no audio/video/output_url. Its results live in result.outputs, a map of language code to dubbed .mp4 URL: use result.save(lang, path) or result.save_all(dir). dubbing's video_url must be https.", "client.video_analysis returns a creative BRIEF, not media: the method is analyze() (not generate()) and VideoAnalysisResult has no save(). Read result.segments (start/end/label/prompt) and result.variations[i].prompt.", "Pass a video_analysis variation's prompt straight to video_to_music / video_to_sfx / video_to_sound as their prompt. It takes one of video/video_url plus optional prompt and variants_num (1-5, billed per brief); max 360s, 10s billing floor." diff --git a/sonilo-cli/README.md b/sonilo-cli/README.md index 4e8ef24..e406ead 100644 --- a/sonilo-cli/README.md +++ b/sonilo-cli/README.md @@ -273,7 +273,9 @@ command that produces no media file — nothing is generated: # writes dubbed.es.mp4 and dubbed.fr.mp4 - `--languages` is comma-separated; omit it to use the server default `zh_cn,es,fr`. Supported - codes: `en, zh_cn, ja, ko, pt, es, de, fr, it, ru`. + codes: `en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, it, ru, th` + (`pt_br` is Brazilian Portuguese and `es_419` Latin American Spanish; plain + `pt` and `es` stay unqualified). - Source videos may be at most 300 seconds long. - `--output` is a filename template, not a single destination: a dubbing task returns one video per language, so `--output clip.mp4` writes `clip.es.mp4`, `clip.fr.mp4`, etc. diff --git a/sonilo-cli/src/sonilo_cli/__main__.py b/sonilo-cli/src/sonilo_cli/__main__.py index c39b406..0288bfc 100644 --- a/sonilo-cli/src/sonilo_cli/__main__.py +++ b/sonilo-cli/src/sonilo_cli/__main__.py @@ -1005,7 +1005,9 @@ def build_parser() -> argparse.ArgumentParser: p_dub.add_argument( "--languages", default=None, help="Comma-separated target languages. Default: zh_cn,es,fr. " - "Supported: en, zh_cn, ja, ko, pt, es, de, fr, it, ru", + "Supported: en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, " + "it, ru, th. pt_br is Brazilian Portuguese and es_419 Latin " + "American Spanish; plain pt and es stay unqualified.", ) p_dub.add_argument( "--output", default=None,