> ## Documentation Index
> Fetch the complete documentation index at: https://gigareels.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Render Types Overview

> Explore all available content types you can generate with GigaReels

# Render Types Overview

GigaReels offers various render types to create different styles of viral content. Each render type is optimized for specific use cases and platforms.

## Content Categories

> [card] [🧠 Brainrot Content](https://gigareels.mintlify.site/render-types/brainrot.md)
>
> Educational and entertainment content with character dialogues

> [card] [📰 Breaking News](https://gigareels.mintlify.site/render-types/breaking-news.md)
>
> SpongeBob-style breaking news videos

> [card] [💬 Text Messages](https://gigareels.mintlify.site/render-types/text-messages.md)
>
> iPhone-style message conversation videos

> [card] [📖 Reddit Stories](https://gigareels.mintlify.site/render-types/reddit-story)
>
> Narrated Reddit posts with background gameplay

> [card] [🎬 Transform Videos](https://gigareels.mintlify.site/render-types/transform)
>
> Modify existing videos to bypass duplicate detection

## Quick Comparison

| Render Type | Use Case | Duration | Complexity | Best For |
| - | - | - | - | - |
| **Educational Brainrot** | Teaching concepts | 1-3 min | Medium | Educational content, tutorials |
| **Breaking News** | Viral announcements | 30-60s | Low | News, announcements, memes |
| **Text Messages** | Conversations | 1-2 min | Low | Drama, stories, entertainment |
| **Reddit Story** | Story narration | 2-5 min | Medium | Storytelling, drama content |
| **Transform** | Content recycling | Any | Low | Repurposing existing videos |

## Template-Based API

GigaReels uses a template-based API structure for better organization and type safety:

```javascript theme={null}
import { GigaReels } from "@gigareels/sdk";

const client = new GigaReels("your-api-key");

// Brainrot templates
await client.templates.brainrot.educational({ ... });
await client.templates.brainrot.iMessage({ ... });
await client.templates.brainrot.redditStory({ ... });
await client.templates.brainrot.newsFish({ ... });

// Utility templates
await client.templates.utilities.text({ ... });
await client.templates.utilities.concat([ ... ]);
await client.templates.utilities.collage({ ... });
```

## Common Parameters

Most render types share these common parameters:

**characterPack** `string` *required*

ID of the character pack for voices (e.g., "rick-and-morty", "family-guy")

**backgroundVideoPack** `string` *required*

Background video template (e.g., "minecraft-parkour", "subway-surfers")

**backgroundMusicPack** `string`

Background music pack (e.g., "upbeat", "calm", "epic")

**webhookUrl** `string`

URL to receive completion notification (recommended for production)

## Available Character Packs

> [tab] Popular Packs
>
> * **rick-and-morty**: Rick Sanchez and Morty Smith voices - **family-guy**: Peter Griffin and
>   other Family Guy characters - **south-park**: South Park character voices - **minecraft**:
>   Minecraft-themed voices

> [tab] Educational
>
> * **professors**: Academic, educational voices - **kids-show**: Child-friendly, educational
>   characters - **science**: Science-focused character personalities

> [tab] Entertainment
>
> * **comedy**: Comedy-focused characters - **drama**: Dramatic, story-telling voices - **anime**:
>   Anime-style character voices

## Background Video Packs

> [tab] Gaming
>
> * **minecraft-parkour**: Minecraft parkour gameplay - **subway-surfers**: Subway Surfers endless
>   runner - **gta-driving**: GTA driving gameplay - **fortnite-clips**: Fortnite battle royale
>   clips

> [tab] Satisfying
>
> * **soap-cutting**: Satisfying soap cutting videos - **slime-videos**: Colorful slime
>   manipulation - **kinetic-sand**: Kinetic sand cutting and shaping - **paint-mixing**: Paint
>   color mixing videos

> [tab] Nature
>
> * **ocean-waves**: Calming ocean wave footage - **forest-walks**: Peaceful forest walking videos
> * **time-lapse**: Nature time-lapse videos

## Response Format

All render methods return a standardized `Task` object:

```typescript theme={null}
interface Task {
	success: boolean;
	taskId: string;
	status: "pending" | "processing" | "rendering" | "completed" | "failed";
	error: string | null;
	createdAt: string;
	updatedAt: string;
	completedAt: string | null;
	type: string;
	progress: number;
	outputUrl: string | null;
	renderProgress: {
		framesRendered: number;
		totalFrames: number;
		percentage: number;
	} | null;
}
```

## Workflow Patterns

### 1. Fire-and-Forget (With Webhook)

```javascript theme={null}
const task = await client.templates.brainrot.educational({
	prompt: "Explain machine learning",
	characterPack: "rick-and-morty",
	backgroundVideoPack: "minecraft-parkour",
	webhookUrl: "https://your-app.com/webhook", // ✅ Non-blocking
});

console.log("Task started:", task.taskId);
// Your webhook will receive the completion notification
```

### 2. Polling (Without Webhook)

```javascript theme={null}
const task = await client.templates.brainrot.educational({
	prompt: "Explain machine learning",
	characterPack: "rick-and-morty",
	backgroundVideoPack: "minecraft-parkour",
	// No webhookUrl = SDK automatically polls for completion
});

console.log("Video completed:", task.outputUrl);
```

### 3. Manual Status Checking

```javascript theme={null}
const task = await client.templates.brainrot.educational({
	prompt: "Explain machine learning",
	characterPack: "rick-and-morty",
	backgroundVideoPack: "minecraft-parkour",
	webhookUrl: "https://your-app.com/webhook",
});

// Later, check status manually
const status = await client.getTaskStatus(task.taskId);
console.log("Current status:", status.status);
```

## Performance Tips

> [accordion] Use Webhooks for Production
>
> Always use webhook URLs in production to avoid blocking your application:
>
> ```javascript theme={null}
> const task = await client.templates.brainrot.educational({
>   // ... your parameters
>   webhookUrl: "https://your-app.com/webhook"
> });
> ```

> [accordion] Batch Processing
>
> For multiple videos, start them all at once and process completions asynchronously:
>
> ```javascript theme={null}
> const tasks = await Promise.all([
>   client.templates.brainrot.educational({ ... }),
>   client.templates.brainrot.iMessage({ ... }),
>   client.templates.brainrot.redditStory({ ... })
> ]);
> ```

> [accordion] Optimize Prompts
>
> * Keep prompts between 50-200 words for best results
> * Be specific about the topic and target audience
> * Include relevant keywords for SEO

## Error Handling

The SDK provides comprehensive error handling with client-side validation:

```javascript theme={null}
import { GigaReels, ValidationError } from "@gigareels/sdk";

try {
	const task = await client.templates.brainrot.educational({
		prompt: "Hi", // Too short - will fail validation
		characterPack: "rick-and-morty",
		backgroundVideoPack: "minecraft-parkour",
	});
} catch (error) {
	if (error instanceof ValidationError) {
		console.log("Validation error:", error.message);
		console.log("Issues:", error.issues);
	} else {
		console.log("API error:", error.message);
	}
}
```

## Next Steps

**1. Choose Your Content Type**

Explore the specific render types to find what fits your use case

**2. Test with Simple Examples**

Start with basic examples before adding complex customizations

**3. Implement Error Handling**

Add proper error handling and validation to your implementation

**4. Add Social Media Integration**

Connect your generated content to social media platforms

Ready to create your first video? Check out the detailed guides for each render type or start with our [Quickstart Guide](https://gigareels.mintlify.site/quickstart.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.