@contractspec/lib.video-gen 1.45.0 → 1.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -0
- package/dist/browser/docs/rendering.docblock.js +4 -4
- package/dist/browser/docs/video-gen.docblock.js +1 -1
- package/dist/browser/generators/index.js +601 -192
- package/dist/browser/generators/scene-planner.js +527 -23
- package/dist/browser/generators/script-generator.js +528 -18
- package/dist/browser/generators/video-generator.js +601 -191
- package/dist/browser/i18n/catalogs/en.js +160 -0
- package/dist/browser/i18n/catalogs/es.js +160 -0
- package/dist/browser/i18n/catalogs/fr.js +160 -0
- package/dist/browser/i18n/catalogs/index.js +462 -0
- package/dist/browser/i18n/index.js +534 -0
- package/dist/browser/i18n/keys.js +54 -0
- package/dist/browser/i18n/locale.js +21 -0
- package/dist/browser/i18n/messages.js +474 -0
- package/dist/browser/index.js +601 -192
- package/dist/docs/rendering.docblock.js +4 -4
- package/dist/docs/video-gen.docblock.js +1 -1
- package/dist/generators/index.d.ts +0 -2
- package/dist/generators/index.js +601 -192
- package/dist/generators/scene-planner.d.ts +2 -0
- package/dist/generators/scene-planner.js +527 -23
- package/dist/generators/script-generator.d.ts +2 -0
- package/dist/generators/script-generator.js +528 -18
- package/dist/generators/video-generator.d.ts +6 -5
- package/dist/generators/video-generator.js +601 -191
- package/dist/i18n/catalogs/en.d.ts +8 -0
- package/dist/i18n/catalogs/en.js +155 -0
- package/dist/i18n/catalogs/es.d.ts +6 -0
- package/dist/i18n/catalogs/es.js +155 -0
- package/dist/i18n/catalogs/fr.d.ts +6 -0
- package/dist/i18n/catalogs/fr.js +155 -0
- package/dist/i18n/catalogs/index.d.ts +8 -0
- package/dist/i18n/catalogs/index.js +457 -0
- package/dist/i18n/i18n.test.d.ts +1 -0
- package/dist/i18n/index.d.ts +22 -0
- package/dist/i18n/index.js +529 -0
- package/dist/i18n/keys.d.ts +116 -0
- package/dist/i18n/keys.js +49 -0
- package/dist/i18n/locale.d.ts +8 -0
- package/dist/i18n/locale.js +16 -0
- package/dist/i18n/messages.d.ts +14 -0
- package/dist/i18n/messages.js +469 -0
- package/dist/index.js +601 -192
- package/dist/node/docs/rendering.docblock.js +4 -4
- package/dist/node/docs/video-gen.docblock.js +1 -1
- package/dist/node/generators/index.js +601 -192
- package/dist/node/generators/scene-planner.js +527 -23
- package/dist/node/generators/script-generator.js +528 -18
- package/dist/node/generators/video-generator.js +601 -191
- package/dist/node/i18n/catalogs/en.js +155 -0
- package/dist/node/i18n/catalogs/es.js +155 -0
- package/dist/node/i18n/catalogs/fr.js +155 -0
- package/dist/node/i18n/catalogs/index.js +457 -0
- package/dist/node/i18n/index.js +529 -0
- package/dist/node/i18n/keys.js +49 -0
- package/dist/node/i18n/locale.js +16 -0
- package/dist/node/i18n/messages.js +469 -0
- package/dist/node/index.js +601 -192
- package/dist/types.d.ts +14 -3
- package/package.json +150 -7
package/README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# @contractspec/lib.video-gen
|
|
2
|
+
|
|
3
|
+
Website: https://contractspec.io/
|
|
4
|
+
|
|
5
|
+
Programmatic video generation using Remotion. Follows the same generator pattern as `@contractspec/lib.content-gen` and consumes contracts from video provider integrations. All generators work deterministically by default -- LLM integration is optional and enhances output when available.
|
|
6
|
+
|
|
7
|
+
## Modules
|
|
8
|
+
|
|
9
|
+
- **Types** -- `VideoBrief`, `VideoGeneratorOptions`, `GeneratedVideo`, `ScenePlan`, `PlannedScene`, plus re-exported contract types (`VideoProject`, `RenderConfig`, `VideoFormat`)
|
|
10
|
+
- **Design** -- Video-specific design tokens extending the design system: color tokens, motion/easing curves, typography scale (1920x1080), and layout safe zones with format variants (landscape/square/portrait)
|
|
11
|
+
- **Compositions** -- Remotion compositions for rendering video scenes:
|
|
12
|
+
- **Primitives**: `AnimatedText`, `BrandFrame`, `CodeBlock`, `ProgressBar`, `Terminal`, `SceneTransitionWrapper`
|
|
13
|
+
- **Full**: `ApiOverview` (spec to API surface visualization), `SocialClip` (marketing content, adaptive formats), `TerminalDemo` (CLI walkthrough)
|
|
14
|
+
- **Generators** -- `VideoGenerator` (main orchestrator), `ScenePlanner` (breaks briefs into scenes), `ScriptGenerator` (narration with professional/casual/technical styles)
|
|
15
|
+
- **Renderers** -- `LocalRenderer` wrapping `@remotion/renderer` with quality presets (draft/standard/high)
|
|
16
|
+
- **Player** -- `DemoPlayer` component for embedding in React apps via `@remotion/player`
|
|
17
|
+
|
|
18
|
+
Deterministic by default: every generator produces consistent output without an LLM. When an LLM is provided via the constructor, generators produce richer, more varied content. On LLM failure, the system falls back to deterministic output automatically.
|
|
19
|
+
|
|
20
|
+
## Quickstart
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
import { VideoGenerator } from "@contractspec/lib.video-gen/generators";
|
|
24
|
+
import type { VideoBrief } from "@contractspec/lib.video-gen/types";
|
|
25
|
+
|
|
26
|
+
const generator = new VideoGenerator(); // no LLM needed
|
|
27
|
+
|
|
28
|
+
const brief: VideoBrief = {
|
|
29
|
+
title: "Ship APIs 10x Faster",
|
|
30
|
+
summary: "See how ContractSpec generates production-ready APIs from specs.",
|
|
31
|
+
format: "landscape",
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const project = await generator.generate(brief);
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Compositions are pure React components -- same props always produce the same visual output, with frame-based timing and no side effects.
|
|
@@ -23,7 +23,7 @@ The rendering layer wraps \`@remotion/renderer\` for MP4/WebM output and \`@remo
|
|
|
23
23
|
|
|
24
24
|
## LocalRenderer
|
|
25
25
|
|
|
26
|
-
Renders a \`VideoProject\` to a video file using the local Remotion renderer.
|
|
26
|
+
Renders a \`VideoProject\` to a video file using the local Remotion renderer. Works with **Node.js** and **Bun** (via \`remotionb\`). Bun caveat: SSR scripts may not auto-quit (see [Remotion Bun docs](https://www.remotion.dev/docs/bun)).
|
|
27
27
|
|
|
28
28
|
\`\`\`ts
|
|
29
29
|
import { LocalRenderer } from "@contractspec/lib.video-gen/renderers/local";
|
|
@@ -45,7 +45,7 @@ result.fileSizeBytes; // file size
|
|
|
45
45
|
result.dimensions; // { width: 1920, height: 1080 }
|
|
46
46
|
\`\`\`
|
|
47
47
|
|
|
48
|
-
> **Important**: Import \`LocalRenderer\` from the \`/renderers/local\` subpath, not from the main entry. It dynamically imports \`@remotion/bundler\` and \`@remotion/renderer\`
|
|
48
|
+
> **Important**: Import \`LocalRenderer\` from the \`/renderers/local\` subpath, not from the main entry. It dynamically imports \`@remotion/bundler\` and \`@remotion/renderer\` to avoid bundling them in browser builds.
|
|
49
49
|
|
|
50
50
|
### Auto-Variants
|
|
51
51
|
|
|
@@ -167,7 +167,7 @@ The \`@contractspec/app.video-studio\` package provides a Remotion Studio entry
|
|
|
167
167
|
bun run dev:video
|
|
168
168
|
|
|
169
169
|
# Render a specific composition
|
|
170
|
-
|
|
170
|
+
bunx remotionb render src/index.ts ApiOverview out/api-overview.mp4
|
|
171
171
|
|
|
172
172
|
# Render all compositions
|
|
173
173
|
bun run render:all
|
|
@@ -187,7 +187,7 @@ All compositions run at 30fps.
|
|
|
187
187
|
|
|
188
188
|
## Guardrails
|
|
189
189
|
|
|
190
|
-
- \`LocalRenderer\` requires Node.js -- do not attempt to use it in browser
|
|
190
|
+
- \`LocalRenderer\` requires Node.js or Bun -- do not attempt to use it in browser environments. On Bun, SSR scripts may not auto-quit (see [Remotion Bun docs](https://www.remotion.dev/docs/bun)).
|
|
191
191
|
- Import \`LocalRenderer\` from the \`/renderers/local\` subpath to avoid bundling \`@remotion/renderer\` in browser builds.
|
|
192
192
|
- The \`remotion\` entry point (\`@contractspec/lib.video-gen/remotion\`) is a **side-effect module** that calls \`registerRoot()\`. Only import it from Remotion Studio or render scripts.
|
|
193
193
|
- Use quality presets for consistency: \`draft\` for development, \`standard\` for CI, \`high\` for releases.
|
|
@@ -133,7 +133,7 @@ This matches the content-gen pattern: \`constructor({ llm? })\` -> \`generate(br
|
|
|
133
133
|
|
|
134
134
|
- Compositions must be **deterministic**: same props = same visual output.
|
|
135
135
|
- Design tokens bridge from \`@contractspec/lib.design-system\` -- do not duplicate brand values.
|
|
136
|
-
- \`LocalRenderer\`
|
|
136
|
+
- \`LocalRenderer\` works with Node.js and Bun. On Bun, SSR scripts may not auto-quit (see [Remotion Bun docs](https://www.remotion.dev/docs/bun)).
|
|
137
137
|
- The \`remotion\` entry point is a side-effect module (calls \`registerRoot\`) -- import it only from Remotion Studio or render scripts.
|
|
138
138
|
`
|
|
139
139
|
}
|