CLI et SDK
Le client TypeScript @sketchie/sdk et la ligne de commande sketchie sont de fins wrappers typés au-dessus de la même API HTTP. Les deux lisent votre clé depuis SKETCHIE_API_KEY et pointent par défaut vers https://sketchie.ai/api.
Le SDK et la CLI sont livrés dans le toolkit Sketchie. Si votre registre ne résout pas encore le paquet, vous pouvez les exécuter depuis le dépôt Sketchie avec bun. L’API HTTP brute fonctionne depuis n’importe quel langage aujourd’hui.
SDK TypeScript
Créez un client, générez un explicatif avec les champs conviviaux et attendez le rendu.
import { SketchieClient } from '@sketchie/sdk';
const client = new SketchieClient({
apiKey: process.env.SKETCHIE_API_KEY, // Bearer sk_...
// baseUrl defaults to https://sketchie.ai/api
});
// Friendly fields: input (the topic) and length ("M:SS", a multiple of 30).
const created = await client.createExplainer({
input: 'Explain how DNS resolves a domain name',
length: '0:30',
aspect: '16:9',
});
// Poll until the render finishes (or fails).
const done = await client.waitForExplainer(created.id, {
onUpdate: (e) => console.log(e.status),
});
console.log(done.videoUrl); // the rendered MP4
console.log(done.sceneGraph); // the editable scene graph La boucle de modification et re-rendu
Le levier de modifiabilité : un explicatif fini renvoie son sceneGraph. Validez-le avec editExplainerGraph pour ajouter une version sans consommer un autre créneau de création de vidéo gratuite, ou envoyez une instruction en langage naturel. Le premier re-rendu de chaque vidéo est gratuit. Les suivants utilisent les minutes du forfait payant.
// After a video is ready you get back its editable sceneGraph.
// Edit it, then append a new version to the existing explainer.
const edited = editScenes(done.sceneGraph!); // your UI edits the graph
const rerender = await client.editExplainerGraph(done.id, edited);
await client.waitForVersion(done.id, rerender.id);
// Or apply a plain-language instruction (a targeted re-render):
const version = await client.editExplainer(done.id, 'make scene 2 shorter');
await client.waitForVersion(done.id, version.id); Lister les voix
const voices = await client.listVoices();
// [{ id: 'sketchie:sulafat', name: 'Nora', isDefault: true, preview_url, ... }] Autres méthodes : getExplainer, listExplainers, revertExplainer, duplicateExplainer et deleteExplainer.
Ligne de commande
# Discover voices
sketchie voices
# Generate (returns the queued record immediately)
sketchie generate "Explain how DNS resolves a domain name" --length 0:30 --aspect 16:9
# Generate and wait for the finished render
sketchie generate "Explain how DNS resolves" --length 1:00 --wait
# Status of an existing explainer
sketchie status <id>
# Conversational edit (a targeted re-render)
sketchie edit <id> "make the title scene shorter" --wait
# List your explainers
sketchie list --limit 20 Flags et environnement
| Flag | Signification |
|---|---|
--length <M:SS|sec> | Durée cible, p. ex. 0:30, 1:00 ou secondes. Un multiple positif de 30. Omettez pour auto. |
--aspect <ratio> | 16:9 (défaut), 9:16 ou 1:1. |
--voice <ref> | Une ref de voix (voir sketchie voices). Optionnel ; défaut Nora. |
--limit <n> | Lignes max pour list, 1 à 100 (défaut 50). |
--wait | Interroge jusqu’à ce que le rendu finisse ou échoue. |
--json | Sortie lisible par machine sur stdout. |
--api-url <url> | URL de base de l’API avec le préfixe /api. Env : SKETCHIE_API_URL. |
--api-key <key> | Votre clé API. Env : SKETCHIE_API_KEY. Jamais affichée dans la sortie. |