JavaScript-SDK
Markieren Sie KI-Bilder, -Songs und -Clips aus JavaScript oder TypeScript mit einem Aufruf: Node.js 20 oder neuer, Next.js, Bun, Deno und Edge-Runtimes. Mit Typen, ohne Abhängigkeiten, unter MIT-Lizenz.
Installation
npm install @kennmarq/sdkDas SDK liest Ihren Schlüssel aus KENNMARQ_API_KEY oder nimmt ihn über apiKey entgegen. Bewahren Sie ihn auf dem Server auf, nie im Browser.
Datei markieren
import { writeFile } from "node:fs/promises";
import { Kennmarq } from "@kennmarq/sdk";
const kennmarq = new Kennmarq();
const marked = await kennmarq.mark("render.png", {
provider: "Acme Inc.",
appName: "Acme Studio",
appVersion: "2.1",
model: "FLUX.1 schnell",
markets: ["eu", "us-ca"],
});
await writeFile("render.marked.png", marked.data);
console.log(marked.markId, marked.watermarkId, marked.marksUsed);mark() nimmt einen Pfad, ein Blob oder File, einen ArrayBuffer oder ein Uint8Array entgegen und sendet eine Datei über 4 MB selbstständig über einen Upload. Seine Optionen sind die von POST /v1/mark, in camelCase: source, provider, appName, appVersion, model, markets, check, outputFormat, input sowie für die sichtbare Kennzeichnung label, deepfake und labelLanguage, labelPosition, labelSize, labelStyle.
In einer Next.js-Route
import { generateImage } from "ai";
import { Kennmarq } from "@kennmarq/sdk";
const kennmarq = new Kennmarq();
export async function POST(request: Request) {
const { prompt } = await request.json();
const { image } = await generateImage({ model: "bfl/flux-3-image", prompt });
const marked = await kennmarq.mark(image.uint8Array, { appName: "Acme Studio", markets: ["eu", "us-ca"] });
return new Response(marked.data, { headers: { "Content-Type": marked.contentType } });
}Mehr dazu in den Anleitungen für Next.js und das Vercel AI SDK.
Songs und Clips
const song = await kennmarq.mark("track.mp3"); // five marks per started minute
const clip = await kennmarq.mark("clip.mp4", { check: "ai-act" }); // a job: waits, then downloads
const job = await kennmarq.mark("long.mp4", { wait: false }); // or start it now…
const done = await kennmarq.waitFor(job.markId!); // …and fetch it laterSicherheitsprüfung, Verifizierung, Nachweise und Nutzung
const answer = await kennmarq.check("render.png", "ai-act"); // the safety check: two marks
const report = await kennmarq.verify(marked.data); // free; an image up to 4 MB needs no key
const receipt = await kennmarq.receipt(marked.markId!); // for marks made with markets
const usage = await kennmarq.usage();Fehler
Bei API-Fehlern wirft das SDK KennmarqError mit dem code der API, dem HTTP-status und der requestId (Fehler). Eine Blockierung durch die Sicherheitsprüfung wirft ContentBlocked, mit der Antwort der Prüfung in safety; dann wird nichts markiert oder gezählt. Auf ein 429, das nur um einen kurzen Moment Geduld bittet, wartet das SDK selbst.
Der Quellcode liegt auf GitHub.