Skip to main content

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

🧠 Brainrot Content

Educational and entertainment content with character dialogues

📰 Breaking News

SpongeBob-style breaking news videos

💬 Text Messages

iPhone-style message conversation videos

📖 Reddit Stories

Narrated Reddit posts with background gameplay

🎬 Transform Videos

Modify existing videos to bypass duplicate detection

Quick Comparison

Render TypeUse CaseDurationComplexityBest For
Educational BrainrotTeaching concepts1-3 minMediumEducational content, tutorials
Breaking NewsViral announcements30-60sLowNews, announcements, memes
Text MessagesConversations1-2 minLowDrama, stories, entertainment
Reddit StoryStory narration2-5 minMediumStorytelling, drama content
TransformContent recyclingAnyLowRepurposing existing videos

Template-Based API

GigaReels uses a template-based API structure for better organization and type safety:
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

Background Video Packs

  • minecraft-parkour: Minecraft parkour gameplay - subway-surfers: Subway Surfers endless runner - gta-driving: GTA driving gameplay - fortnite-clips: Fortnite battle royale clips

Response Format

All render methods return a standardized Task object:
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)

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)

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

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

Always use webhook URLs in production to avoid blocking your application:
const task = await client.templates.brainrot.educational({
  // ... your parameters
  webhookUrl: "https://your-app.com/webhook"
});
For multiple videos, start them all at once and process completions asynchronously:
const tasks = await Promise.all([
  client.templates.brainrot.educational({ ... }),
  client.templates.brainrot.iMessage({ ... }),
  client.templates.brainrot.redditStory({ ... })
]);
  • 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:
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.