UNPKG

seedance-video-sdk

Version:

Seedance AI Video Generation SDK - Create professional videos from text and images using ByteDance's advanced AI technology

264 lines (203 loc) 6.86 kB
# seedance-video-sdk [![npm version](https://badge.fury.io/js/seedance-video-sdk.svg)](https://badge.fury.io/js/seedance-video-sdk) [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Downloads](https://img.shields.io/npm/dm/seedance-video-sdk.svg)](https://www.npmjs.com/package/seedance-video-sdk) Official Seedance AI Video Generation SDK - Create professional videos from text and images using ByteDance's advanced AI technology. ## 🚀 Features - **Text-to-Video Generation** - Create videos from text prompts - **Image-to-Video Generation** - Transform images into dynamic videos - **Multi-Shot Narrative** - Generate coherent multi-scene videos - **Professional Quality** - Cinematic quality with natural motion - **TypeScript Support** - Full type safety and IntelliSense - **React Components** - Pre-built UI components for easy integration - **Real-time Progress** - Track generation progress with webhooks or polling - **Flexible Configuration** - Customize resolution, style, duration, and more ## 🎬 Live Demo Try Seedance AI Video Generator: [https://seedance.studio](https://seedance.studio) ## 📦 Installation ```bash npm install seedance-video-sdk ``` ```bash yarn add seedance-video-sdk ``` ```bash pnpm add seedance-video-sdk ``` ## 🔑 Getting Started ### 1. Get Your API Key Sign up at [Seedance Studio](https://seedance.studio) to get your API key. ### 2. Basic Usage ```typescript import { SeedanceClient } from 'seedance-video-sdk'; const client = new SeedanceClient({ apiKey: 'your-api-key' }); // Generate video from text const task = await client.generateVideo({ prompt: 'A beautiful sunset over the ocean with gentle waves', duration: 5, resolution: '1080p', style: 'cinematic' }); // Wait for completion const completedTask = await client.waitForCompletion(task.taskId, { onProgress: (task) => console.log(`Progress: ${task.progress}%`) }); console.log('Video URL:', completedTask.videoUrl); ``` ### 3. Image-to-Video Generation ```typescript // From file upload const fileInput = document.querySelector('input[type="file"]'); const file = fileInput.files[0]; const task = await client.generateVideo({ prompt: 'Make this image come alive with gentle movement', image: file, duration: 5, resolution: '1080p' }); // From URL const task2 = await client.generateVideo({ prompt: 'Add dynamic motion to this scene', image: 'https://example.com/image.jpg', duration: 5 }); ``` ## ⚛️ React Components ### VideoPlayer ```tsx import { VideoPlayer } from 'seedance-video-sdk/react'; function MyComponent() { return ( <VideoPlayer src="https://example.com/video.mp4" poster="https://example.com/thumbnail.jpg" controls autoplay onLoadedData={() => console.log('Video loaded')} onError={(error) => console.error('Video error:', error)} /> ); } ``` ### ProgressIndicator ```tsx import { ProgressIndicator } from 'seedance-video-sdk/react'; function GenerationStatus({ task }) { return ( <ProgressIndicator progress={task.progress} status={task.status} estimatedTime={task.estimatedTime} showPercentage showStatus /> ); } ``` ## 🛠️ Advanced Usage ### Custom Configuration ```typescript const client = new SeedanceClient({ apiKey: 'your-api-key', baseURL: 'https://api.seedance.studio/v1', // Custom endpoint timeout: 60000, // 60 seconds debug: true // Enable debug logging }); ``` ### Webhook Integration ```typescript // Configure webhook for real-time notifications await client.configureWebhook({ url: 'https://your-app.com/webhooks/seedance', events: ['task.completed', 'task.failed'], secret: 'your-webhook-secret' }); ``` ### Batch Processing ```typescript // Generate multiple videos const prompts = [ 'A cat playing in a garden', 'City skyline at night', 'Ocean waves crashing on rocks' ]; const tasks = await Promise.all( prompts.map(prompt => client.generateVideo({ prompt, duration: 5, resolution: '720p' }) ) ); // Wait for all to complete const results = await Promise.all( tasks.map(task => client.waitForCompletion(task.taskId)) ); ``` ### Error Handling ```typescript try { const task = await client.generateVideo({ prompt: 'A beautiful landscape', duration: 5 }); } catch (error) { if (error.code === 'QUOTA_EXCEEDED') { console.log('Please upgrade your plan'); } else if (error.code === 'INVALID_PROMPT') { console.log('Please provide a valid prompt'); } else { console.error('Generation failed:', error.message); } } ``` ## 📚 API Reference ### SeedanceClient #### Methods - `generateVideo(request)` - Generate a video from text/image - `getTask(taskId)` - Get task status and details - `listTasks(options)` - List user's video tasks - `cancelTask(taskId)` - Cancel a pending task - `deleteTask(taskId)` - Delete a completed task - `uploadImage(image)` - Upload image for later use - `getQuota()` - Get user quota information - `waitForCompletion(taskId, options)` - Wait for task completion ### Types ```typescript interface VideoGenerationRequest { prompt: string; image?: File | string | Buffer; duration?: number; // 1-30 seconds resolution?: '480p' | '720p' | '1080p' | '4K'; style?: 'realistic' | 'anime' | 'cartoon' | 'cinematic' | 'artistic'; aspectRatio?: '16:9' | '9:16' | '1:1' | '4:3' | '3:4'; frameRate?: number; // 12-60 fps parameters?: GenerationParameters; } ``` ## 🎨 Examples Check out our [examples directory](./examples) for complete implementation examples: - [Basic Text-to-Video](./examples/basic-text-to-video) - [Image-to-Video with React](./examples/react-image-to-video) - [Batch Processing](./examples/batch-processing) - [Webhook Integration](./examples/webhook-integration) - [Next.js Integration](./examples/nextjs-integration) ## 🔗 Links - **Website**: [https://seedance.studio](https://seedance.studio) - **Documentation**: [https://docs.seedance.studio](https://docs.seedance.studio) - **GitHub**: [https://github.com/saasfly/saasfly](https://github.com/saasfly/saasfly) - **Support**: [contact@seedance.studio](mailto:contact@seedance.studio) ## 📄 License MIT License - see the [LICENSE](LICENSE) file for details. ## 🤝 Contributing We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details. ## 💬 Support - 📧 Email: [contact@seedance.studio](mailto:contact@seedance.studio) - 💬 Discord: [Join our community](https://discord.gg/seedance) - 📖 Documentation: [docs.seedance.studio](https://docs.seedance.studio) --- Made with ❤️ by [Seedance Studio](https://seedance.studio)