google-veo3-1-mcp-server 1.0.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.
Files changed (52) hide show
  1. package/README.md +257 -0
  2. package/dist/cli/batch.d.ts +8 -0
  3. package/dist/cli/batch.d.ts.map +1 -0
  4. package/dist/cli/batch.js +289 -0
  5. package/dist/cli/batch.js.map +1 -0
  6. package/dist/index.d.ts +12 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +372 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/tools/extend.d.ts +14 -0
  11. package/dist/tools/extend.d.ts.map +1 -0
  12. package/dist/tools/extend.js +153 -0
  13. package/dist/tools/extend.js.map +1 -0
  14. package/dist/tools/generate.d.ts +10 -0
  15. package/dist/tools/generate.d.ts.map +1 -0
  16. package/dist/tools/generate.js +210 -0
  17. package/dist/tools/generate.js.map +1 -0
  18. package/dist/tools/interpolate.d.ts +12 -0
  19. package/dist/tools/interpolate.d.ts.map +1 -0
  20. package/dist/tools/interpolate.js +170 -0
  21. package/dist/tools/interpolate.js.map +1 -0
  22. package/dist/types/batch.d.ts +121 -0
  23. package/dist/types/batch.d.ts.map +1 -0
  24. package/dist/types/batch.js +37 -0
  25. package/dist/types/batch.js.map +1 -0
  26. package/dist/types/tools.d.ts +154 -0
  27. package/dist/types/tools.d.ts.map +1 -0
  28. package/dist/types/tools.js +134 -0
  29. package/dist/types/tools.js.map +1 -0
  30. package/dist/utils/batch-config.d.ts +26 -0
  31. package/dist/utils/batch-config.d.ts.map +1 -0
  32. package/dist/utils/batch-config.js +283 -0
  33. package/dist/utils/batch-config.js.map +1 -0
  34. package/dist/utils/batch-manager.d.ts +43 -0
  35. package/dist/utils/batch-manager.d.ts.map +1 -0
  36. package/dist/utils/batch-manager.js +310 -0
  37. package/dist/utils/batch-manager.js.map +1 -0
  38. package/dist/utils/debug.d.ts +16 -0
  39. package/dist/utils/debug.d.ts.map +1 -0
  40. package/dist/utils/debug.js +44 -0
  41. package/dist/utils/debug.js.map +1 -0
  42. package/dist/utils/path.d.ts +36 -0
  43. package/dist/utils/path.d.ts.map +1 -0
  44. package/dist/utils/path.js +97 -0
  45. package/dist/utils/path.js.map +1 -0
  46. package/dist/utils/video.d.ts +44 -0
  47. package/dist/utils/video.d.ts.map +1 -0
  48. package/dist/utils/video.js +261 -0
  49. package/dist/utils/video.js.map +1 -0
  50. package/docs/GOOGLE_VEO_3.1_API_SPECIFICATION.md +392 -0
  51. package/examples/batch-config.json +44 -0
  52. package/package.json +48 -0
package/README.md ADDED
@@ -0,0 +1,257 @@
1
+ # Google Veo 3.1 MCP Server
2
+
3
+ MCP Server and CLI batch tool for Google Veo 3.1 Video Generation API.
4
+
5
+ ## Features
6
+
7
+ - **MCP Server** for integration with Claude Desktop and other MCP clients
8
+ - **Batch CLI Tool** for processing multiple video generation jobs
9
+ - **Text-to-Video**: Generate videos from text prompts
10
+ - **Image-to-Video**: Animate static images
11
+ - **Reference Images**: Use up to 3 images for character/style consistency
12
+ - **Video Extension**: Extend existing videos by 7 seconds
13
+ - **Frame Interpolation**: Generate video between two keyframes
14
+ - **Cost Estimation**: Calculate costs before execution
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install
20
+ npm run build
21
+ ```
22
+
23
+ ## Setup
24
+
25
+ 1. Get your Google API key from [Google AI Studio](https://aistudio.google.com/app/apikey)
26
+
27
+ 2. Create a `.env` file:
28
+ ```env
29
+ GOOGLE_API_KEY=your_api_key_here
30
+ ```
31
+
32
+ Or set the environment variable directly:
33
+ ```bash
34
+ export GOOGLE_API_KEY=your_api_key_here
35
+ ```
36
+
37
+ ## MCP Server Usage
38
+
39
+ ### Claude Desktop Configuration
40
+
41
+ Add to your Claude Desktop configuration (`%APPDATA%\Claude\claude_desktop_config.json` on Windows):
42
+
43
+ ```json
44
+ {
45
+ "mcpServers": {
46
+ "veo3": {
47
+ "command": "node",
48
+ "args": ["C:/path/to/google-veo3-1-mcp-server/dist/index.js"],
49
+ "env": {
50
+ "GOOGLE_API_KEY": "your_api_key_here"
51
+ }
52
+ }
53
+ }
54
+ }
55
+ ```
56
+
57
+ Or using npx after publishing:
58
+ ```json
59
+ {
60
+ "mcpServers": {
61
+ "veo3": {
62
+ "command": "npx",
63
+ "args": ["google-veo3-1-mcp-server"],
64
+ "env": {
65
+ "GOOGLE_API_KEY": "your_api_key_here"
66
+ }
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ ### Available Tools
73
+
74
+ #### generate_video
75
+ Generate video from text prompt or image.
76
+
77
+ ```json
78
+ {
79
+ "prompt": "A golden retriever running through autumn leaves",
80
+ "model": "veo-3.1-generate-preview",
81
+ "resolution": "1080p",
82
+ "duration_seconds": 8,
83
+ "generate_audio": true,
84
+ "output_path": "./output/video.mp4"
85
+ }
86
+ ```
87
+
88
+ **Parameters:**
89
+ - `prompt`: Text description of the video (required unless image provided)
90
+ - `model`: `veo-3.1-generate-preview` (default) or `veo-3.1-fast-generate-preview`
91
+ - `aspect_ratio`: `16:9` (default) or `9:16`
92
+ - `resolution`: `720p` (default), `1080p`, or `4k` (4k only for standard model)
93
+ - `duration_seconds`: `4`, `6`, or `8` (default: 8)
94
+ - `generate_audio`: Whether to generate audio (default: true)
95
+ - `negative_prompt`: Elements to avoid
96
+ - `image`: Image for Image-to-Video mode
97
+ - `reference_images`: Array of reference images for consistency
98
+ - `output_path`: Path to save the video
99
+
100
+ #### extend_video
101
+ Extend an existing video by 7 seconds.
102
+
103
+ ```json
104
+ {
105
+ "video": "./input/video.mp4",
106
+ "prompt": "Continue with the character walking forward",
107
+ "output_path": "./output/extended.mp4"
108
+ }
109
+ ```
110
+
111
+ **Requirements:**
112
+ - Input video: 1-30 seconds, 24fps, 720p or 1080p
113
+ - Output: 7 seconds at 720p
114
+
115
+ #### interpolate_frames
116
+ Generate video transitioning between two keyframes.
117
+
118
+ ```json
119
+ {
120
+ "first_frame": "./images/start.jpg",
121
+ "last_frame": "./images/end.jpg",
122
+ "prompt": "Smooth camera pan",
123
+ "duration_seconds": 8,
124
+ "generate_audio": true,
125
+ "output_path": "./output/interpolated.mp4"
126
+ }
127
+ ```
128
+
129
+ #### get_video_status
130
+ Check the status of a video generation operation.
131
+
132
+ ```json
133
+ {
134
+ "operation_name": "models/veo-3.1-generate-preview/operations/abc123"
135
+ }
136
+ ```
137
+
138
+ ## Batch CLI Usage
139
+
140
+ ```bash
141
+ # Estimate costs only
142
+ veo3-batch config.json --estimate-only
143
+
144
+ # Execute batch
145
+ veo3-batch config.json --output-dir ./output
146
+
147
+ # With options
148
+ veo3-batch config.json --max-concurrent 3 --no-audio --format json
149
+ ```
150
+
151
+ ### CLI Options
152
+
153
+ | Option | Description |
154
+ |--------|-------------|
155
+ | `-o, --output-dir <path>` | Output directory for videos |
156
+ | `-f, --format <text\|json>` | Output format (default: text) |
157
+ | `-c, --max-concurrent <n>` | Parallel jobs (1-5, default: 2) |
158
+ | `-p, --poll-interval <ms>` | Polling interval |
159
+ | `-t, --timeout <ms>` | Total batch timeout |
160
+ | `-e, --estimate-only` | Only estimate costs |
161
+ | `--no-audio` | Generate without audio (reduces cost) |
162
+ | `--allow-any-path` | Allow absolute output paths |
163
+
164
+ ### Batch Configuration Format
165
+
166
+ ```json
167
+ {
168
+ "jobs": [
169
+ {
170
+ "prompt": "A cat playing piano",
171
+ "duration_seconds": 8,
172
+ "resolution": "1080p",
173
+ "generate_audio": true
174
+ },
175
+ {
176
+ "type": "extend",
177
+ "video": "./videos/source.mp4",
178
+ "prompt": "Continue the scene"
179
+ },
180
+ {
181
+ "type": "interpolate",
182
+ "first_frame": "./images/start.jpg",
183
+ "last_frame": "./images/end.jpg"
184
+ }
185
+ ],
186
+ "output_dir": "./output",
187
+ "max_concurrent": 2,
188
+ "default_model": "veo-3.1-generate-preview"
189
+ }
190
+ ```
191
+
192
+ ## Pricing
193
+
194
+ | Feature | Resolution | With Audio | Video Only |
195
+ |---------|------------|------------|------------|
196
+ | Standard Model | 720p/1080p | $0.40/sec | $0.20/sec |
197
+ | Standard Model | 4K | $0.60/sec | $0.40/sec |
198
+ | Fast Model | 720p/1080p | $0.20/sec | $0.10/sec |
199
+
200
+ > **Note:** Gemini API preview models always generate audio. The `generate_audio` parameter is not currently supported. Use Vertex AI for audio control.
201
+
202
+ ### Cost Examples
203
+
204
+ | Video Type | Resolution | Duration | Audio | Cost |
205
+ |------------|------------|----------|-------|------|
206
+ | Text-to-Video | 1080p | 8 sec | Yes | $3.20 |
207
+ | Text-to-Video | 1080p | 8 sec | No | $1.60 |
208
+ | Image-to-Video (Fast) | 720p | 4 sec | Yes | $0.80 |
209
+ | Video Extension | 720p | 7 sec | No | $1.40 |
210
+ | Frame Interpolation | 1080p | 8 sec | Yes | $3.20 |
211
+
212
+ ## Models
213
+
214
+ | Model | Description | Resolutions | Speed |
215
+ |-------|-------------|-------------|-------|
216
+ | `veo-3.1-generate-preview` | High quality | 720p, 1080p, 4K | Standard |
217
+ | `veo-3.1-fast-generate-preview` | Faster generation | 720p, 1080p | Fast |
218
+
219
+ ## Reference Images
220
+
221
+ Use reference images to maintain consistency:
222
+
223
+ ```json
224
+ {
225
+ "prompt": "The character walks through a forest",
226
+ "reference_images": [
227
+ {
228
+ "image": "./character.jpg",
229
+ "reference_type": "asset"
230
+ }
231
+ ]
232
+ }
233
+ ```
234
+
235
+ - `asset`: For characters/objects (max 3 images)
236
+ - `style`: For visual style (max 1 image)
237
+
238
+ ## Environment Variables
239
+
240
+ | Variable | Description | Default |
241
+ |----------|-------------|---------|
242
+ | `GOOGLE_API_KEY` | Google API key (required) | - |
243
+ | `OUTPUT_DIR` | Default output directory | `./output` |
244
+ | `DEBUG` | Enable debug logging | `false` |
245
+ | `VIDEO_POLL_INTERVAL` | Polling interval (ms) | `15000` |
246
+ | `VIDEO_MAX_POLL_ATTEMPTS` | Max polling attempts | `120` |
247
+
248
+ ## API Documentation
249
+
250
+ For detailed API specifications, see:
251
+ - [Google Veo 3.1 API Specification](./docs/GOOGLE_VEO_3.1_API_SPECIFICATION.md)
252
+ - [Gemini API Video Generation](https://ai.google.dev/gemini-api/docs/video)
253
+ - [Vertex AI Veo Documentation](https://cloud.google.com/vertex-ai/generative-ai/docs/models/veo)
254
+
255
+ ## License
256
+
257
+ MIT
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Google Veo 3.1 Batch CLI Tool
4
+ *
5
+ * Execute multiple video generation jobs from a configuration file
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/cli/batch.ts"],"names":[],"mappings":";AAEA;;;;GAIG"}
@@ -0,0 +1,289 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Google Veo 3.1 Batch CLI Tool
4
+ *
5
+ * Execute multiple video generation jobs from a configuration file
6
+ */
7
+ import * as path from 'path';
8
+ import { config } from 'dotenv';
9
+ import { loadBatchConfig, validateBatchConfig, mergeBatchConfig } from '../utils/batch-config.js';
10
+ import { BatchManager } from '../utils/batch-manager.js';
11
+ import { getApiKey } from '../utils/video.js';
12
+ import { errorLog, infoLog } from '../utils/debug.js';
13
+ // Load environment variables
14
+ config();
15
+ function parseArgs(args) {
16
+ const result = {
17
+ configPath: '',
18
+ format: 'text',
19
+ estimateOnly: false,
20
+ noAudio: false,
21
+ allowAnyPath: false,
22
+ help: false
23
+ };
24
+ let i = 0;
25
+ while (i < args.length) {
26
+ const arg = args[i];
27
+ switch (arg) {
28
+ case '-h':
29
+ case '--help':
30
+ result.help = true;
31
+ break;
32
+ case '-o':
33
+ case '--output-dir':
34
+ result.outputDir = args[++i];
35
+ break;
36
+ case '-f':
37
+ case '--format':
38
+ const format = args[++i];
39
+ if (format === 'text' || format === 'json') {
40
+ result.format = format;
41
+ }
42
+ else {
43
+ throw new Error(`Invalid format: ${format}. Must be "text" or "json"`);
44
+ }
45
+ break;
46
+ case '-c':
47
+ case '--max-concurrent':
48
+ result.maxConcurrent = parseInt(args[++i], 10);
49
+ if (isNaN(result.maxConcurrent) || result.maxConcurrent < 1 || result.maxConcurrent > 5) {
50
+ throw new Error('max-concurrent must be between 1 and 5');
51
+ }
52
+ break;
53
+ case '-p':
54
+ case '--poll-interval':
55
+ result.pollInterval = parseInt(args[++i], 10);
56
+ if (isNaN(result.pollInterval)) {
57
+ throw new Error('poll-interval must be a number');
58
+ }
59
+ break;
60
+ case '-t':
61
+ case '--timeout':
62
+ result.timeout = parseInt(args[++i], 10);
63
+ if (isNaN(result.timeout)) {
64
+ throw new Error('timeout must be a number');
65
+ }
66
+ break;
67
+ case '-e':
68
+ case '--estimate-only':
69
+ result.estimateOnly = true;
70
+ break;
71
+ case '--no-audio':
72
+ result.noAudio = true;
73
+ break;
74
+ case '--allow-any-path':
75
+ result.allowAnyPath = true;
76
+ break;
77
+ default:
78
+ if (arg.startsWith('-')) {
79
+ throw new Error(`Unknown option: ${arg}`);
80
+ }
81
+ if (!result.configPath) {
82
+ result.configPath = arg;
83
+ }
84
+ break;
85
+ }
86
+ i++;
87
+ }
88
+ return result;
89
+ }
90
+ function printUsage() {
91
+ console.log(`
92
+ Google Veo 3.1 Batch Video Generation Tool
93
+
94
+ Usage: veo3-batch <config.json> [options]
95
+
96
+ Options:
97
+ -o, --output-dir <path> Output directory for generated videos
98
+ -f, --format <text|json> Output format (default: text)
99
+ -c, --max-concurrent <n> Maximum concurrent jobs (1-5, default: 2)
100
+ -p, --poll-interval <ms> Polling interval in milliseconds
101
+ -t, --timeout <ms> Total batch timeout in milliseconds
102
+ -e, --estimate-only Only estimate costs, don't execute
103
+ --no-audio Generate videos without audio (reduces cost)
104
+ --allow-any-path Allow absolute output paths outside output_dir
105
+ -h, --help Show this help message
106
+
107
+ Environment Variables:
108
+ GOOGLE_API_KEY Required: Google API key for Veo 3.1
109
+ OUTPUT_DIR Default output directory
110
+ DEBUG Set to "true" for debug logging
111
+
112
+ Example:
113
+ veo3-batch batch-config.json --output-dir ./output --estimate-only
114
+ veo3-batch batch-config.json --max-concurrent 3 --no-audio
115
+
116
+ Configuration File Format:
117
+ {
118
+ "jobs": [
119
+ {
120
+ "prompt": "A cat playing piano",
121
+ "duration_seconds": 8,
122
+ "resolution": "1080p",
123
+ "generate_audio": true
124
+ },
125
+ {
126
+ "type": "interpolate",
127
+ "first_frame": "./images/start.jpg",
128
+ "last_frame": "./images/end.jpg"
129
+ }
130
+ ],
131
+ "output_dir": "./output",
132
+ "max_concurrent": 2,
133
+ "default_model": "veo-3.1-generate-preview"
134
+ }
135
+ `);
136
+ }
137
+ // =============================================================================
138
+ // Output Formatting
139
+ // =============================================================================
140
+ function formatCostEstimate(estimate, format) {
141
+ if (format === 'json') {
142
+ return JSON.stringify(estimate, null, 2);
143
+ }
144
+ const lines = [
145
+ '',
146
+ '=== Cost Estimate ===',
147
+ ''
148
+ ];
149
+ estimate.jobs.forEach((job, index) => {
150
+ lines.push(`Job ${index + 1}:`);
151
+ lines.push(` Type: ${job.job_type}`);
152
+ lines.push(` Model: ${job.model}`);
153
+ lines.push(` Resolution: ${job.resolution}`);
154
+ lines.push(` Duration: ${job.duration_seconds}s`);
155
+ lines.push(` Audio: ${job.generate_audio ? 'Yes' : 'No'}`);
156
+ lines.push(` Cost: $${job.estimated_cost.toFixed(2)}`);
157
+ lines.push('');
158
+ });
159
+ lines.push('---');
160
+ lines.push(`Total Jobs: ${estimate.jobs.length}`);
161
+ lines.push(`Total Duration: ${estimate.total_duration_seconds}s`);
162
+ lines.push(`Total Estimated Cost: $${estimate.total_estimated_cost.toFixed(2)}`);
163
+ lines.push('');
164
+ return lines.join('\n');
165
+ }
166
+ function formatBatchResult(result, format) {
167
+ if (format === 'json') {
168
+ return JSON.stringify(result, null, 2);
169
+ }
170
+ const lines = [
171
+ '',
172
+ '=== Batch Execution Results ===',
173
+ ''
174
+ ];
175
+ result.jobs.forEach((job) => {
176
+ if (!job) {
177
+ lines.push(`Job (cancelled)`);
178
+ lines.push('');
179
+ return;
180
+ }
181
+ lines.push(`Job ${job.index + 1}:`);
182
+ lines.push(` Status: ${job.success ? 'SUCCESS' : 'FAILED'}`);
183
+ if (job.success) {
184
+ if (job.video_path) {
185
+ lines.push(` Output: ${job.video_path}`);
186
+ }
187
+ if (job.video_url) {
188
+ lines.push(` URL: ${job.video_url}`);
189
+ }
190
+ if (job.estimated_cost !== undefined) {
191
+ lines.push(` Cost: $${job.estimated_cost.toFixed(2)}`);
192
+ }
193
+ }
194
+ else {
195
+ lines.push(` Error: ${job.error || 'Unknown error'}`);
196
+ if (job.failure_reason) {
197
+ lines.push(` Reason: ${job.failure_reason}`);
198
+ }
199
+ }
200
+ if (job.duration_ms) {
201
+ lines.push(` Duration: ${(job.duration_ms / 1000).toFixed(1)}s`);
202
+ }
203
+ if (job.retries && job.retries > 0) {
204
+ lines.push(` Retries: ${job.retries}`);
205
+ }
206
+ lines.push('');
207
+ });
208
+ lines.push('---');
209
+ lines.push(`Total Jobs: ${result.total_jobs}`);
210
+ lines.push(`Successful: ${result.successful}`);
211
+ lines.push(`Failed: ${result.failed}`);
212
+ if (result.cancelled > 0) {
213
+ lines.push(`Cancelled: ${result.cancelled}`);
214
+ }
215
+ lines.push(`Total Cost: $${result.total_estimated_cost.toFixed(2)}`);
216
+ lines.push(`Total Duration: ${(result.duration_ms / 1000).toFixed(1)}s`);
217
+ lines.push('');
218
+ return lines.join('\n');
219
+ }
220
+ // =============================================================================
221
+ // Main
222
+ // =============================================================================
223
+ async function main() {
224
+ try {
225
+ // Parse command line arguments
226
+ const args = parseArgs(process.argv.slice(2));
227
+ if (args.help || !args.configPath) {
228
+ printUsage();
229
+ process.exit(args.help ? 0 : 1);
230
+ }
231
+ // Verify API key
232
+ try {
233
+ getApiKey();
234
+ }
235
+ catch (error) {
236
+ errorLog('GOOGLE_API_KEY environment variable is not set');
237
+ process.exit(1);
238
+ }
239
+ // Load and validate configuration
240
+ infoLog(`Loading configuration from: ${args.configPath}`);
241
+ const batchConfig = loadBatchConfig(args.configPath);
242
+ const validationErrors = validateBatchConfig(batchConfig);
243
+ if (validationErrors.length > 0) {
244
+ errorLog('Configuration validation failed:');
245
+ validationErrors.forEach(err => console.error(` - ${err}`));
246
+ process.exit(1);
247
+ }
248
+ // Merge options
249
+ const cliOptions = {};
250
+ if (args.outputDir)
251
+ cliOptions.outputDir = args.outputDir;
252
+ if (args.maxConcurrent)
253
+ cliOptions.maxConcurrent = args.maxConcurrent;
254
+ if (args.pollInterval)
255
+ cliOptions.pollInterval = args.pollInterval;
256
+ if (args.timeout)
257
+ cliOptions.timeout = args.timeout;
258
+ cliOptions.estimateOnly = args.estimateOnly;
259
+ cliOptions.format = args.format;
260
+ cliOptions.noAudio = args.noAudio;
261
+ cliOptions.allowAnyPath = args.allowAnyPath;
262
+ const options = mergeBatchConfig(batchConfig, cliOptions);
263
+ const configDir = path.dirname(path.resolve(args.configPath));
264
+ // Create batch manager
265
+ const manager = new BatchManager(batchConfig, options, configDir);
266
+ if (args.estimateOnly) {
267
+ // Cost estimation only
268
+ infoLog('Estimating costs...');
269
+ const estimate = manager.estimateBatchCost();
270
+ console.log(formatCostEstimate(estimate, args.format));
271
+ process.exit(0);
272
+ }
273
+ // Execute batch
274
+ infoLog('Starting batch execution...');
275
+ const result = await manager.executeBatch();
276
+ console.log(formatBatchResult(result, args.format));
277
+ // Exit with error code if any jobs failed
278
+ if (result.failed > 0 || result.cancelled > 0) {
279
+ process.exit(1);
280
+ }
281
+ process.exit(0);
282
+ }
283
+ catch (error) {
284
+ errorLog('Batch execution failed', error);
285
+ process.exit(1);
286
+ }
287
+ }
288
+ main();
289
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/cli/batch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Google Veo 3.1 MCP Server
4
+ *
5
+ * Provides tools for video generation using Google's Veo 3.1 API:
6
+ * - generate_video: Text-to-Video and Image-to-Video with reference images
7
+ * - extend_video: Extend existing videos by 7 seconds
8
+ * - interpolate_frames: Generate video between first and last frames
9
+ * - get_video_status: Check status of video generation operations
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}