Clipwright

offiziell

Erstelle UGC-ähnliche Videoanzeigen ohne Dreharbeiten. Sag deinem KI-Assistenten, was das Video sagen soll, und Clipwright liefert einen vertikalen Clip eines realistischen Schauspielers, der es sagt – bereit für TikTok, Reels oder Shorts. Teste zehn Hooks für dein Produkt an einem Nachmittag, statt Creator zu engagieren und Drehs zu buchen. Wähle einen fertigen Schauspieler oder beschreibe deinen eigenen, wähle eine Stimme nach Hörproben aus und sieh den Preis, bevor etwas gerendert wird. Funktioniert von Claude, Cursor oder jedem MCP-Client. Du erhältst die Videodatei und entscheidest, wohin sie geht.

Was kann man mit Clipwright MCP machen?

  • Skripte in lippensynchrone Videos verwandeln — Bitte deine KI, ein geschriebenes Skript in ein UGC-Video mit einem ausgewählten Schauspieler, einer Stimme und einem Format zu verwandeln.
  • Benutzerdefinierte KI-Schauspieler erstellen — Beschreibe das Aussehen eines fiktiven Erwachsenen und lasse einen wiederverwendbaren Schauspieler für zukünftige Videos generieren.
  • Preise vor der Generierung prüfen — Fordere einen kostenlosen Kostenvoranschlag für ein Video oder einen Schauspieler an, bevor du Credits einsetzt.
  • Gespeicherte Schauspieler verwalten — Liste vorhandene Schauspieler auf, überprüfe ihre Standardrichtlinien oder lösche nicht mehr benötigte.
  • Video- und Schauspielerläufe verfolgen — Frage den Status eines Generierungsauftrags ab, bis er erfolgreich ist oder fehlschlägt, und rufe die endgültige Video-URL ab.

Dokumentation

Clipwright-API

Eine HTTP-API, die aus einem Skript ein lippensynchrones UGC-Video macht. Sie ist dafür gebaut, von einem Agenten gesteuert zu werden: Jeder Aufruf ist eine einzelne JSON-Anfrage, jede Ablehnung sagt, was als Nächstes zu tun ist, und nichts wird irgendwo veröffentlicht. Jedes Wort dieser Seite ist auch eine Markdown-Datei unter https://clipwright.io/docs.md, und ein kurzer Vertrag für Agenten unter https://clipwright.io/llms.txt.

Authentifizierung

Jeder Aufruf geht an https://api.clipwright.io und trägt den Schlüssel in einem Header:

Authorization: Bearer cw_your_key_here
  • Schlüssel beginnen mit cw_ und werden nur einmal angezeigt, wenn sie ausgestellt werden. Wir speichern nur einen Hash, daher wird ein verlorener Schlüssel ersetzt, nie wiederhergestellt.
  • Schlüssel im Dashboard unter https://app.clipwright.io/api-keys. ausstellen und widerrufen. Die Widerrufung wird mit der nächsten Anfrage wirksam.
  • @clipwright/cli und @clipwright/mcp-server lesen den Schlüssel aus der Umgebungsvariable CLIPWRIGHT_API_KEY; @clipwright/sdk nimmt ihn als Argument entgegen.
  • Ein Aufruf ohne Schlüssel oder mit einem widerrufenen Schlüssel wird mit 401 abgelehnt, bevor etwas berechnet wird.

03

Was es kostet

  • make_ugc aus einem einfachen Skript: 30 Credits für jede Sekunde des fertigen Videos, aufgerundet auf die ganze Sekunde.
  • make_ugc mit Segmenten oder Einfügungen: 10 Credits für jede Sekunde, in der ein Gesicht zu sehen ist, und mindestens 400 Credits für ein geliefertes Video. Sekunden ohne Gesicht kosten nichts, und ein Lauf, der keine Datei liefert, kostet überhaupt nichts, selbst wenn der Anbieter bereits bezahlt wurde. Die Gesichtszeit wird über das gesamte Video summiert und einmal aufgerundet, nicht pro Segment. Diese Felder benötigen eine Langform-Qualifizierung bei der Bereitstellung; wenn sie deaktiviert ist, werden sie namentlich abgelehnt, bevor eine Gebühr anfällt.
  • create_actor bei Qualität medium: 10 Credits für das Porträt und 10 für jedes zusätzliche Format.
  • create_actor bei Qualität high: 20 Credits für das Porträt und 20 für jedes zusätzliche Format.
  • Credits werden in Paketen gekauft: 1000 Credits für 10,00 $, eine Zahlung, kein Abonnement.

Fragen Sie, bevor Sie ausgeben: Der Angebots-Endpunkt beider Fähigkeiten kostet nichts. Was seine Antwort wert ist, unterscheidet sich je nach Fähigkeit.

  • make_ugc: Das Angebot ist eine Schätzung, die aus den Worten des Skripts abgelesen wird. Die Gebühr folgt dem, was im fertigen Video gemessen wurde – seiner Dauer auf dem Einfach-Skript-Messgerät, seinen Gesichtssekunden auf dem Gesichts-Messgerät –, sodass die Rechnung über oder unter dem Angebot liegen kann.
  • create_actor: Das Angebot bepreist jedes Format, das Sie angefordert haben, was das Maximum ist, das Sie zahlen können. Ihnen werden das Porträt und die tatsächlich veröffentlichten Varianten berechnet; ein Format, das nicht erstellt wurde, wird in warnings[] genannt und kostet nichts.

Was ein fehlgeschlagener Lauf kostet, unterscheidet sich ebenfalls je nach Fähigkeit:

  • make_ugc aus einem einfachen Skript: Ein Lauf, der fehlschlug, nachdem die Lieferarbeit den Anbieter erreicht hatte, wird berechnet. Einer, der davor fehlschlug, kostet nichts, ebenso wie einer, den wir gestoppt, verloren oder selbst abgelehnt haben, selbst wenn der Anbieter bereits bezahlt wurde. Auf dem Gesichts-Messgerät wird kein Fehlschlag berechnet.
  • create_actor: Ein fehlgeschlagener Lauf kostet überhaupt nichts, selbst wenn der Anbieter bereits bezahlt wurde, weil kein Actor Sie erreicht hat.

04

Endpunkte

EndpunktKostet CreditsWas er tut
GET /healthneinLebendigkeit der API selbst. Antwortet ohne Schlüssel.
GET /v1/voicesneinStimmen, die Sie in voice oder voice_id nennen können.
GET /v1/accountneinGuthaben, Schulden und Sperren des Kontos hinter dem Schlüssel.
POST /v1/skills/make_ugc/quoteneinBepreist einen make_ugc-Aufruf mit dieser Eingabe. Kostet nichts.
GET /v1/runs/{id}neinZustand eines Laufs jeder Fähigkeit, seine Warnungen und seine Video-URL.
POST /v1/skills/make_ugc/runjaStartet einen Video-Lauf und antwortet sofort mit einer run_id. Pollen Sie den Lauf für das Ergebnis.
GET /v1/public/skillsneinKatalog der Fähigkeiten und ihrer Eingaben, ohne Schlüssel.
GET /v1/actorsneinAuf dem Konto gespeicherte Actors, mit der ID, die make_ugc akzeptiert.
DELETE /v1/actors/{id}neinVergisst einen gespeicherten Actor. Ein Actor, der von einem laufenden Lauf verwendet wird, wird behalten.
GET /v1/actors/{id}/defaultsneinLiest die Standardrichtlinie des gespeicherten Actors für Personen in Einfügungen.
POST /v1/actors/{id}/defaultsneinSetzt die Standardrichtlinie des gespeicherten Actors für Personen in Einfügungen. Ein Lauf kann sie überschreiben.
POST /v1/skills/create_actor/quoteneinBepreist einen create_actor-Aufruf mit dieser Eingabe. Kostet nichts.
POST /v1/skills/create_actor/runjaStartet einen Actor-Lauf und antwortet sofort mit einer run_id. Pollen Sie den Lauf für das Ergebnis.
POST /v1/uploadsneinNimmt Bildbytes entgegen und gibt die https-URL zurück, die make_ugc und create_actor akzeptieren.

Ein Lauf beider Fähigkeiten wird von derselben Stelle gelesen, GET /v1/runs/{id}, und durchläuft diese Zustände: queued, generating, scripting, tts, avatar, compositing, uploading, succeeded, failed.

05

Fähigkeiten und ihre Eingaben

make_ugc. Starten Sie die Generierung eines lippensynchronen UGC-Videos. Geben Sie ein Skript innerhalb des Textlimits des ausgewählten Sprachmodells an; der Actor kommt von actor_id (ein gespeicherter Actor aus list_actors) oder image, andernfalls wird der Standard-Actor verwendet. Format und Auflösung folgen der Anfrage und der Quelle, standardmäßig 1080x1920. Untertitel sind OPT-IN: Fragen Sie zuerst den Benutzer. Felder, die der Renderer noch nicht berücksichtigt, tragen einen NOT HONORED YET-Hinweis in ihrer eigenen Beschreibung – lesen Sie ihn, statt zu raten.

Rufen Sie quote_ugc vor der Generierung auf und zeigen Sie die Kosten. Dies wartet NICHT auf das Video: Es startet den Lauf und gibt SOFORT eine run_id zurück. Sie MÜSSEN dann get_run mit dieser run_id pollen, bis der Zustand 'succeeded' (video_url) oder 'failed' ist. Ein 'failed'-Lauf, dessen bezahlter Anbieterauftrag wir noch halten, kann zu 'queued' zurückkehren und später 'succeeded' erreichen; wann immer das passiert, wird er in warnings[] genannt. Übergeben Sie attempt=2,3,… um absichtlich einen NEUEN Lauf für dieselbe Eingabe zu starten (Wiederholung nach einem Fehlschlag).

FeldErforderlichWas es bedeutet
scriptoptionalDie Worte, die der Actor sagt; erforderlich, es sei denn, segments liefert den gesprochenen Text. Segmente und textverankerte Einfügungen erfordern eine Langform-Qualifizierung auf dem Server. Skriptlimits nach Sprachmodell: eleven_v3: 5000 Zeichen; eleven_flash_v2_5: 10000 Zeichen; eleven_turbo_v2_5: 10000 Zeichen. Die Zählung umfasst Leerzeichen, Audio-Tags und Betonungszeichen; Emojis können als zwei Zeichen zählen. Es gibt kein Wortlimit. Dauer und Preis sind Schätzungen, bis sie gemessen werden. Russische Betonung: Schreiben Sie den betonten Vokal als Großbuchstaben in einem kleingeschriebenen Wort („потОм“, „зАмок“) und eleven_v3 erhält ihn als Betonungszeichen U+0301 („пото́м“); ein direkt eingegebenes Zeichen wird beibehalten. Ein Großbuchstabe am Wortanfang bleibt ein Großbuchstabe, und ein Wort mit einem zweiten Großbuchstaben oder einem großgeschriebenen Konsonanten darin (GANZ IN GROSSBUCHSTABEN, „ВУЗы“) bleibt unverändert. Ein einzelner großgeschriebener Vokal in einem Wort wird immer als Betonung gelesen, schreiben Sie also „Яндекс Еда“, nicht „ЯндексЕда“. Sagen Sie Benutzern, die auf Russisch schreiben, dass sie Betonung auf diese Weise markieren können. eleven_flash_v2_5 und eleven_turbo_v2_5 kosten weniger, lesen aber Betonungszeichen falsch: Großbuchstaben erreichen sie unverändert.
segmentsoptionalGeordnete Actor- und Bildsegmente; erfordert Langform-Qualifizierung auf dem Server, captions=false und 1080p. Bildmedien erfordern explizites broll_policy=anyone.
insertsoptionalTextverankerte Bildeinfügungen über voller Erzählung, jede deckt cover_words gesprochene Wörter von ihrer Verankerung ab; erfordert Langform-Qualifizierung auf dem Server, captions=false, 1080p und explizites broll_policy=anyone.
personoptionalNOT HONORED YET: person wird noch nicht berücksichtigt: Diese Anfrage verwendet den Standard-Actor; wählen Sie actor_id aus list_actors oder geben Sie image an, um ein anderes Gesicht auszuwählen
actor_idoptionalGespeicherte Clipwright-Actor-ID aus list_actors. Wählen Sie actor_id, image oder person; kombinieren Sie sie nicht. Ohne voice oder voice_id folgt die Stimme dem Geschlecht des Actors. Nicht mit actor_gender kombinieren.
imageoptionalÖffentliche https-URL des Fotos des Actors (PNG, JPEG oder WebP, bis zu 10 MB). Eine Datei auf der Festplatte geht zuerst durch upload_image (POST /v1/uploads) – übergeben Sie die URL, die es zurückgibt. Eine Quelle, die wir nicht verwenden können – privater oder Loopback-Host, http, unerreichbar, weiterleitend, über 10 MB oder nicht einer dieser Bildtypen – wird abgelehnt (unusable_source), bevor eine Gebühr anfällt. Wir erkennen das Geschlecht des Gesichts nicht: Übergeben Sie actor_gender oder voice, oder die Standard-Männerstimme wird mit einer Warnung verwendet.
actor_genderoptionalGeschlecht des Gesichts in image: female | male. Nur mit image: wählt die Standardstimme dieses Geschlechts (female: sarah, male: george). Abgelehnt mit actor_id (dessen Geschlecht bekannt ist) und ohne image. Eine explizite voice oder voice_id gewinnt und die Antwort warnt, dass actor_gender nichts geändert hat.
nameoptionalNOT HONORED YET: name wird noch nicht berücksichtigt: Es erreicht den Renderer nicht
broll_policyoptionalNUR GESPEICHERT: Gespeicherte Richtlinie für B-Roll: anyone erlaubt Personen einschließlich des Actors; no_actor schließt den Actor aus; no_people schließt alle Personen aus, einschließlich Hände. Segmentierte Mediengenerierung ist geschlossen. Diese Einstellung wird nur gespeichert und hat keine Wirkung auf Actor-only-Videos. Lauf-Override gewinnt über den Konto-Actor-Standard; andernfalls no_people.
captionsoptionalNOT HONORED YET: Untertitel angefordert, aber in diesem Prototyp (Stufe B) nicht gerendert
caption_styleoptionalNOT HONORED YET: caption_style wird nicht berücksichtigt: Untertitel werden in diesem Prototyp (Stufe B) nicht gerendert
lookoptionalNOT HONORED YET: look wird noch nicht berücksichtigt: Es erreicht den Renderer nicht
aspect_ratiooptionalAusgabeformat: 9:16 | 1:1 | 16:9. Weggelassen bedeutet 9:16, und eine Quelle anderer Form wird mit einer Warnung auf 9:16 zugeschnitten – übergeben Sie es explizit, wann immer Sie image übergeben. Eine Abweichung über 15% zwischen Anfrage und Quelle wird abgelehnt (aspect_conflict), bevor eine Gebühr anfällt.
resolutionoptionalAusgabeauflösung: 720p | 1080p | 4k (kurze Seite 720 / 1080 / 2160 px). Weggelassen bedeutet 1080p.
voiceoptionalStimmname aus list_voices. Kuratierte Voreinstellungen: owner_ru_clone | sarah | george | eric | daria_ru_female (owner_ru_clone ist die russische Klonstimme). Die API lehnt einen Namen ab, den list_voices nicht zurückgibt, bevor eine Gebühr anfällt. Weggelassen bedeutet die Standardstimme für das Geschlecht des Actors: das Geschlecht von actor_id, actor_gender mit image, oder george für den Standard-Actor und für image ohne actor_gender. Gegenseitig ausschließend mit voice_id.
voice_idoptionalRohe Anbieter-Stimm-ID (16–32 Buchstaben und Ziffern) für eine Stimme außerhalb des Katalogs. Lazy geprüft: Eine unbekannte ID lässt den Lauf fehlschlagen, nicht die Anfrage. Gegenseitig ausschließend mit voice.
tts_modeloptionalSprachmodell: eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5. Weggelassen bedeutet das Modell der gewählten Voreinstellung (list_voices zeigt es; jede Voreinstellung spricht eleven_v3) oder eleven_v3 für eine rohe voice_id. eleven_v3 ist das ausdrucksstärkste und das einzige, das Betonungszeichen liest (ein großgeschriebener Vokal in einem russischen Wort, „потОм“, wird zu einem; siehe script); eleven_flash_v2_5 und eleven_turbo_v2_5 sind günstigere Alternativen für andere Sprachen als Russisch. Skriptlimits nach Sprachmodell: eleven_v3: 5000 Zeichen; eleven_flash_v2_5: 10000 Zeichen; eleven_turbo_v2_5: 10000 Zeichen. Die Zählung umfasst Leerzeichen, Audio-Tags und Betonungszeichen; Emojis können als zwei Zeichen zählen. Es gibt kein Wortlimit. Dauer und Preis sind Schätzungen, bis sie gemessen werden.
disclosure_overlayoptionalAkzeptierte Werte: true | false.
backgroundoptionalAkzeptierte Werte: white | blur | contain.

create_actor. Erstellen Sie einen persönlichen Actor für dieses Konto aus Worten, die einen fiktiven Erwachsenen beschreiben: ein 9:16-Porträt mit genau einem Gesicht, plus die anderen angeforderten Formate, die daraus bearbeitet werden. Gibt sofort eine run_id zurück; pollen Sie get_run, bis 'succeeded' (created_actor.actor_id, dann übergeben Sie es als actor_id an make_ugc) oder 'failed'. Jedes veröffentlichte Bild wird zum Preis berechnet, den das Angebot zeigt; abgelehnte Beschreibungen und unbrauchbare Porträts kosten nichts. Wenn die Generierung deaktiviert ist, schlägt der Aufruf mit actor_generation_disabled fehl.

FeldErforderlichBedeutung
descriptionerforderlichWörter, die eine fiktive erwachsene Person beschreiben: Aussehen, Kleidung, Umgebung. Die Nennung einer realen Person oder einer Ähnlichkeit zu einer solchen wird vor jeder Berechnung abgelehnt (actor_prompt_refused).
gendererforderlichfemale | male. Legt das Geschlecht des Actors und die Standardstimme von Videos mit diesem Actor fest.
approximate_ageerforderlichUngefähres Alter in Jahren, 18 bis 90: Actors sind Erwachsene.
nameerforderlichName, der in list_actors angezeigt wird.
aspect_ratiosoptionalZu erstellende Formate: 9:16 | 1:1 | 16:9, immer einschließlich 9:16. Wenn nicht angegeben, werden alle drei erstellt. Formate, die die Identitätsprüfung nicht bestehen, werden nicht berechnet und in Warnungen genannt.
qualityoptionalBildqualität: medium | high. Wenn nicht angegeben, gilt medium. Der Preis pro Bild hängt davon ab; das Angebot zeigt ihn vor jeder Berechnung.

Das Ausgabeformat folgt der Anfrage und der Quelle. Unterstützte Formate sind 9:16, 1:1, 16:9 und Auflösungen 720p, 1080p, 4k; ohne Angabe gilt 1080p in 9:16.

06

Einen Lauf starten

Ein kostenpflichtiger Aufruf trägt neben dem Schlüssel einen zusätzlichen Header: Idempotency-Key. POST /v1/skills/make_ugc/run und POST /v1/skills/create_actor/run erfordern ihn, und ein Aufruf ohne ihn wird mit 400 idempotency_key_required abgelehnt, bevor etwas berechnet wird.

  • Sie wählen den Schlüssel, und er ist das Einzige, das einen erneuten Versuch von einer zweiten Bestellung unterscheidet. Jede eindeutige Zeichenfolge ist geeignet; bewahren Sie ihn auf, solange Sie den Aufruf möglicherweise erneut senden.
  • Derselbe Schlüssel mit demselben Textkörper gibt den bereits gestarteten Lauf zurück und berechnet beim zweiten Mal nichts. Das macht einen gewöhnlichen erneuten Versuch sicher.
  • Derselbe Schlüssel mit einem anderen Textkörper wird mit 409 idempotency_key_reused abgelehnt. Verwenden Sie einen neuen Schlüssel für eine neue Anfrage, anstatt eine Anfrage unter einem bereits verwendeten Schlüssel zu bearbeiten.
  • Um einen bewusst neuen Lauf mit derselben Eingabe zu starten – einen erneuten Versuch nach einem Fehler – senden Sie einen neuen Schlüssel. Der bereits bezahlte Lauf bleibt bestehen.
  • @clipwright/sdk und @clipwright/mcp-server erstellen den Schlüssel für Sie aus dem Client und der Eingabe und verwandeln attempt=2, 3 … in einen neuen. Über einfaches HTTP liegt die Wahl des Schlüssels bei Ihnen.

07

Wenn ein Aufruf fehlschlägt

Jede Ablehnung enthält ein Fehlerobjekt mit einem Code und einer Nachricht. Was damit zu tun ist, ergibt sich aus der Art der Ablehnung, nicht aus dem Text:

AblehnungHTTPDenselben Aufruf wiederholen?Was zu tun ist
rate_limited429ja, nach der WartezeitGegendruck, kein Fehler: Die Antwort nennt die Sekunden, die zu warten sind, in Retry-After und im Textkörper.
server_error500, 502, 503ja, nach der WartezeitDer Fehler liegt auf der Serverseite. Starten Sie keinen zweiten Lauf mit einem neuen Idempotency-Key: Derselbe Aufruf ist der erneute Versuch.
insufficient_credits402nein, es gibt dieselbe AntwortStoppen Sie und teilen Sie der Person den Kontostand und den Preis mit; beide stehen im Textkörper. Wiederholen kann keines von beiden ändern.
debt_outstanding402nein, es gibt dieselbe AntwortStoppen Sie. Der Kauf von Credits begleicht die Schulden, bevor etwas den Kontostand erreicht, und das hebt die Sperre auf.
not_admitted403nein, es gibt dieselbe AntwortStoppen Sie. Das Konto hat keinen Beta-Zugang; weder ein erneuter Versuch noch ein Kauf ändert das. Fragen Sie den Betreiber.
client_error400, 401, 404, 409, 413, 415nein, es gibt dieselbe AntwortStoppen Sie. Die Anfrage selbst wurde abgelehnt: Lesen Sie die Nachricht, korrigieren Sie den Aufruf und senden Sie ihn erneut.

Dies sind alle Codes, die die API in error.code setzt. Ein Code, den Sie noch nicht gesehen haben, folgt dennoch seiner Zeile oben, da die Zeile nach dem Status gewählt wird:

  • account_not_admitted
  • actor_creation_limited
  • actor_format_unavailable
  • actor_generation_disabled
  • actor_in_use
  • actor_storage_unavailable
  • actor_unavailable
  • aspect_conflict
  • debt_outstanding
  • idempotency_key_required
  • idempotency_key_reused
  • insufficient_credits
  • internal_error
  • invalid_image
  • invalid_request
  • malformed_body
  • not_found
  • paid_render_disabled
  • payload_too_large
  • rate_limited
  • rejected_field
  • script_encoding_lost
  • unauthorized
  • unknown_field
  • unsupported_media_type
  • unusable_source
  • upload_cap_exceeded
  • upstream_error

08

Grenzen

  • 60 kostenpflichtige Anfragen und 300 kostenlose pro 60 Sekunden. Das Fenster wird pro Konto gezählt, nicht pro Schlüssel, sodass zusätzliche Schlüssel keinen zusätzlichen Durchsatz bringen.
  • 3 Renderings laufen gleichzeitig pro Konto; der Rest wartet in der Warteschlange und wird nicht abgelehnt.
  • Eine Ablehnung durch Ratenbegrenzung nennt die Sekunden, die zu warten sind, in Retry-After und im Textkörper. Befolgen Sie den größeren der beiden Werte.
  • 49 Einfügungen pro Clip und höchstens 6 Auftritte des Actors zwischen ihnen. Beide werden anhand der von Ihnen gesendeten Wortindizes gezählt, sodass eine Eingabe, die mehr verlangt, abgelehnt wird, bevor etwas bezahlt wird.
  • cover_words gibt an, wie viele gesprochene Wörter eine Einfügung abdeckt, gezählt ab dem ersten Wort ihres Ankers. Die Einfügung endet dort, wo das erste nicht abgedeckte Wort beginnt, sodass zwei Einfügungen, deren Abdeckungen sich treffen, nebeneinander liegen und keinen Actor-Auftritt zwischen sich lassen.
  • Der Anteil der Wörter, die Sie nicht abdecken, bestimmt den Anteil des Clips, der ein Gesicht zeigt, und er verschiebt sich nicht mit der Geschwindigkeit der Stimme. Die Wortlänge variiert jedoch: Bei einem Skript mit 560 Wörtern ergab die Anforderung von 19 % in neunhundert-siebenundneunzig von tausend simulierten Läufen 16 bis 22 und blieb in fünfzigtausend innerhalb von 15 bis 24. Diese Zahlen wurden mit der Stimme dieses Profils und bei dieser Länge gemessen; ein kürzeres Skript streut weiter, und eine andere Stimme verschiebt sie.
  • Zwei Ein-Wort-Entscheidungen ändern den Preis, nicht nur das Aussehen. Eine Einfügung, die bei Wort 0 verankert ist, besitzt die Stille vor dem ersten Wort; bei Wort 1 verankert, hinterlässt sie einen zusätzlichen Auftritt des Actors, und jeder Auftritt ist ein separater kostenpflichtiger Auftrag. Eine Abdeckung, die das letzte Wort erreicht, führt den Clip bis zum Ende und entfernt den abschließenden Auftritt auf dieselbe Weise.
  • Ein Angebot meldet den Anteil als estimatedFaceWordShare. Lesen Sie dieses Feld; teilen Sie nicht estimatedFaceSeconds durch estimatedTotalDurationSec. Diese beiden beantworten unterschiedliche Fragen – die erste ist die Reserve, die wir am langsamen Ende des Sprechbereichs halten, die zweite, wie lange der Clip voraussichtlich läuft – und ihr Verhältnis ist nicht der Anteil von irgendetwas.

09

Was diese API niemals tun wird

  • Etwas veröffentlichen. Wir geben eine Datei und einen signierten Link zurück; wohin sie geht, entscheiden Sie.
  • Einen gestarteten Lauf abbrechen. Es gibt keinen Endpunkt dafür: Sobald der Anbieter die Arbeit hat, würde ein Stopp auf unserer Seite sie nicht unbezahlt machen.
  • Diese Felder akzeptieren: character, broll_url, webhook_url. Sie werden namentlich vor jeder Berechnung abgelehnt, nicht akzeptiert und still ignoriert.
  • Das Format oder die Auflösung ändern, die Sie angefordert haben, ohne es zu sagen. Eine Abweichung wird entweder mit einer Warnung angepasst oder vor dem kostenpflichtigen Aufruf abgelehnt.
  • Sie zurückrufen. Es gibt keine Webhooks: Lesen Sie den Lauf mit GET /v1/runs/{id}.
  • Einen Schlüssel ein zweites Mal anzeigen oder einen aus einem Backup wiederherstellen.

10

Auch wissenswert

  • Warnungen, keine Stille. Alles, was wir nicht erfüllen konnten, kommt in warnings[] auf demselben Lauf zurück, benannt. Ein Parameter verschwindet nie ohne eine Zeile darüber.
  • Ein MCP-Server. @clipwright/mcp-server stellt denselben Vertrag als Tools bereit, und sein tools/list ist die maschinenlesbare Form dieser Seite.