> ## 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.

# Text Messages

> Create iPhone-style text conversation videos

# Text Message Videos

Generate engaging iPhone-style text conversation videos perfect for storytelling, drama, and entertainment content.

## Overview

Text Message videos recreate the familiar iPhone Messages interface with:

* **Realistic iPhone message bubbles**
* **Character voices for each participant**
* **Background gameplay footage**
* **Perfect for viral storytelling and drama content**

## Basic Usage

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

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

const task = await client.templates.brainrot.iMessage({
	prompt:
		"Create a conversation between two roommates where one discovers the other has been eating their leftover pizza",
	characterPack: "family-guy",
	backgroundVideoPack: "subway-surfers",
	enableImages: true,
	webhookUrl: "https://your-app.com/webhook",
});

console.log("Text message video started:", task.taskId);
```

## Parameters

**prompt** `string` *required*

Description of the conversation scenario you want to create (10-1000 characters)

**characterPack** `string` *required*

Character pack for the conversation voices

**backgroundVideoPack** `string` *required*

Background video to play behind the messages

**enableImages** `boolean` (default: false)

Whether to include reaction images/GIFs in messages

**webhookUrl** `string`

URL to receive completion notification

## Content Types

### Drama & Relationships

Perfect for relationship drama and interpersonal conflicts:

> [tab] Relationship Drama
>
> ```javascript theme={null}
> await client.templates.brainrot.iMessage({
>   prompt: "A conversation where someone finds out their best friend is dating their ex-boyfriend behind their back",
>   characterPack: "drama-voices",
>   backgroundVideoPack: "minecraft-parkour"
> });
>
> await client.templates.brainrot.iMessage({
>   prompt: "Text exchange between two people who matched on a dating app but then realize they work together",
>   characterPack: "young-adults",
>   backgroundVideoPack: "subway-surfers"
> });
> ```

> [tab] Family Drama
>
> ```javascript theme={null}
> await client.templates.brainrot.iMessage({
>   prompt: "Teen texting their parent asking to stay out late, getting increasingly creative with excuses",
>   characterPack: "family-voices",
>   backgroundVideoPack: "satisfying-videos"
> });
>
> await client.templates.brainrot.iMessage({
>   prompt: "Siblings fighting over who has to tell their parents they broke the expensive vase",
>   characterPack: "family-guy",
>   backgroundVideoPack: "minecraft-parkour"
> });
> ```

> [tab] Friend Group Drama
>
> ```javascript theme={null}
> await client.templates.brainrot.iMessage({
>   prompt: "Group chat where friends discover one person has been lying about their weekend plans",
>   characterPack: "young-adults",
>   backgroundVideoPack: "subway-surfers",
>   enableImages: true
> });
> ```

### Comedy & Humor

Create funny conversations and awkward situations:

> [tab] Roommate Comedy
>
> ```javascript theme={null}
> await client.templates.brainrot.iMessage({
>   prompt: "Roommates texting about who ate the last slice of pizza, escalating into a full investigation",
>   characterPack: "comedy-duo",
>   backgroundVideoPack: "satisfying-videos"
> });
>
> await client.templates.brainrot.iMessage({
>   prompt: "Text conversation about weird noises coming from the apartment upstairs at 3 AM",
>   characterPack: "family-guy", 
>   backgroundVideoPack: "minecraft-parkour"
> });
> ```

> [tab] Work Humor
>
> ```javascript theme={null}
> await client.templates.brainrot.iMessage({
>   prompt: "Coworkers texting about their boss's weird habits during Zoom meetings",
>   characterPack: "office-workers",
>   backgroundVideoPack: "subway-surfers"
> });
>
> await client.templates.brainrot.iMessage({
>   prompt: "Employee accidentally sends a message complaining about work to their boss instead of their friend",
>   characterPack: "comedy-voices",
>   backgroundVideoPack: "satisfying-videos"
> });
> ```

> [tab] Dating Humor
>
> ```javascript theme={null}
> await client.templates.brainrot.iMessage({
>   prompt: "Person texting their friend for advice during a disastrous first date that's happening in real-time",
>   characterPack: "young-adults",
>   backgroundVideoPack: "minecraft-parkour",
>   enableImages: true
> });
> ```

### Educational & Informative

Use conversations to teach or explain concepts:

> [tab] Student Life
>
> ```javascript theme={null}
> await client.templates.brainrot.iMessage({
>   prompt: "Student texting their friend explaining why they can't come to study group because of increasingly absurd excuses",
>   characterPack: "student-voices",
>   backgroundVideoPack: "minecraft-parkour"
> });
> ```

> [tab] Life Lessons
>
> ```javascript theme={null}
> await client.templates.brainrot.iMessage({
>   prompt: "Conversation where an older sibling gives advice about handling a difficult situation in college",
>   characterPack: "family-voices",
>   backgroundVideoPack: "satisfying-videos"
> });
> ```

## Best Practices

### Conversation Writing

> [accordion] Make it Authentic
>
> Write conversations that feel like real text exchanges:
>
> ✅ **Good**:
>
> * Use abbreviations and emojis naturally
> * Include typos and autocorrect fails
> * Show realistic timing and response patterns
> * Include "typing..." indicators conceptually
>
> ❌ **Avoid**:
>
> * Perfect grammar and spelling
> * Unrealistic long responses
> * Formal language that doesn't match texting style

&#x20;

> [accordion] Build Tension and Release
>
> Structure conversations with dramatic arcs: 1. **Setup**: Establish the situation 2. **Rising
> Action**: Build tension or confusion 3. **Climax**: Peak moment of drama/comedy 4. **Resolution**:
> Satisfying conclusion or cliffhanger Example flow: - Normal conversation starts - Misunderstanding
> occurs - Escalation and drama - Truth revealed or funny resolution

> [accordion] Use Visual Elements
>
> When `enableImages` is true, conversations become more engaging:
>
> * Reaction GIFs at key moments
> * Emoji reactions to messages
> * Images that support the story
> * Screenshots or memes referenced in conversation

### Character Voice Selection

> [card] 🎭 Drama Voices
>
> **Best for**: Serious conversations, relationship drama, family conflicts **Character Packs**:
> `drama-voices`, `young-adults`, `family-voices` **Voice Style**: Emotional, authentic, relatable

> [card] 😂 Comedy Voices
>
> **Best for**: Funny situations, awkward moments, absurd conversations **Character Packs**:
> `family-guy`, `comedy-duo`, `rick-and-morty` **Voice Style**: Comedic timing, exaggerated
> reactions

> [card] 👨‍👩‍👧‍👦 Family Voices
>
> **Best for**: Parent-child conversations, sibling interactions **Character Packs**:
> `family-voices`, `parent-teen`, `siblings` **Voice Style**: Age-appropriate, realistic family
> dynamics

> [card] 🎓 Student Voices
>
> **Best for**: School/college scenarios, friend groups, young adult issues **Character Packs**:
> `student-voices`, `young-adults`, `college-friends` **Voice Style**: Casual, modern slang,
> peer-to-peer

## Advanced Examples

### Multi-Character Group Chat

```javascript theme={null}
async function createGroupChatDrama() {
	const task = await client.templates.brainrot.iMessage({
		prompt: `Create a group chat conversation with 4 friends planning a surprise party. 
    One person accidentally invites the birthday person to the planning chat. 
    Show the panic, quick thinking, and cover-up attempts that follow.`,
		characterPack: "young-adults",
		backgroundVideoPack: "subway-surfers",
		enableImages: true,
	});

	return task;
}
```

### Escalating Conversation

```javascript theme={null}
async function createEscalatingDrama() {
	const task = await client.templates.brainrot.iMessage({
		prompt: `Two roommates start with a simple text about who should buy groceries. 
    It escalates through passive-aggressive comments, bringing up old grievances, 
    and eventually someone threatens to move out. 
    End with a funny resolution when they realize they're arguing over a $3 gallon of milk.`,
		characterPack: "comedy-duo",
		backgroundVideoPack: "minecraft-parkour",
	});

	return task;
}
```

### Mystery/Suspense Format

```javascript theme={null}
async function createMysteryConversation() {
	const task = await client.templates.brainrot.iMessage({
		prompt: `Person texts their friend about weird things happening in their apartment: 
    food disappearing, furniture moved, strange sounds. 
    Friend helps them investigate through text, considering everything from ghosts to break-ins. 
    Plot twist: it's their sleepwalking roommate who's been doing everything.`,
		characterPack: "drama-voices",
		backgroundVideoPack: "satisfying-videos",
		enableImages: true,
	});

	return task;
}
```

### Batch Story Series

Create a series of connected conversations:

```javascript theme={null}
async function createStoryArc() {
	const episodePrompts = [
		"Episode 1: Two friends make plans to start a business selling cookies",
		"Episode 2: Their first day of business goes terribly wrong with burnt cookies and angry customers",
		"Episode 3: They pivot to selling the story of their failed business and accidentally go viral",
		"Episode 4: Fame goes to their heads and they start fighting over creative control",
		"Episode 5: They reconcile and decide to just be friends who occasionally bake together",
	];

	const tasks = await Promise.all(
		episodePrompts.map(prompt =>
			client.templates.brainrot.iMessage({
				prompt,
				characterPack: "young-adults",
				backgroundVideoPack: "minecraft-parkour",
				enableImages: true,
				webhookUrl: "https://your-app.com/webhook",
			})
		)
	);

	console.log(`📱 Created ${tasks.length} episodes of the story arc`);
	return tasks;
}
```

## Platform Optimization

### TikTok & Instagram Reels

Optimize for short-form vertical content:

```javascript theme={null}
async function createTikTokConversation() {
	const task = await client.templates.brainrot.iMessage({
		prompt:
			"Quick, punchy conversation: Person asking their friend to lie to their parents about where they are, but the friend is terrible at lying and makes it obvious",
		characterPack: "young-adults",
		backgroundVideoPack: "subway-surfers",
	});

	// Auto-upload with TikTok-optimized title
	if (task.outputUrl) {
		await client.socialMedia.uploadToTikTok({
			videoUrl: task.outputUrl,
			title: "When your friend is the worst liar 😭 #texting #friends #drama #relatable",
			username: "your_user_id",
			privacy_level: "PUBLIC_TO_EVERYONE",
		});
	}
}
```

### YouTube Shorts

For slightly longer-form content:

```javascript theme={null}
async function createYouTubeConversation() {
	const task = await client.templates.brainrot.iMessage({
		prompt:
			"Longer conversation: College student trying to convince their parents they need more money for 'textbooks' but parent is getting suspicious and starts asking detailed questions",
		characterPack: "family-voices",
		backgroundVideoPack: "minecraft-parkour",
		enableImages: true,
	});

	return task;
}
```

## Error Handling & Validation

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

async function safeConversationGeneration(conversationPrompt) {
	try {
		// Validate prompt
		if (conversationPrompt.length < 20) {
			throw new Error("Conversation prompt too short - needs more context");
		}

		if (!conversationPrompt.includes("conversation") && !conversationPrompt.includes("text")) {
			console.warn(
				"⚠️  Consider adding 'conversation' or 'text' to your prompt for better results"
			);
		}

		const task = await client.templates.brainrot.iMessage({
			prompt: conversationPrompt,
			characterPack: "young-adults",
			backgroundVideoPack: "subway-surfers",
			enableImages: true,
		});

		console.log("✅ Text conversation video started:", task.taskId);
		return task;
	} catch (error) {
		if (error instanceof ValidationError) {
			console.error("❌ Validation failed:", error.message);
		} else {
			console.error("❌ Generation failed:", error.message);
		}
		throw error;
	}
}
```

## Content Ideas Generator

```javascript theme={null}
const conversationTemplates = {
	drama: [
		"Two friends arguing over [topic] that reveals deeper friendship issues",
		"Someone discovers their [relationship] has been [betrayal] through text evidence",
		"Group chat where [secret] gets accidentally revealed",
		"Conversation where someone has to deliver [bad news] to [person]",
	],

	comedy: [
		"Roommates texting about [everyday situation] that gets absurdly complicated",
		"Person trying to [excuse] but their friend won't let them off the hook",
		"Two people having completely different conversations without realizing it",
		"Someone autocorrects into an embarrassing situation with [person]",
	],

	relatable: [
		"Student texting parent about [college situation] while trying to sound responsible",
		"Friends planning [event] but everything goes wrong in the planning stage",
		"Person asking for advice about [situation] and getting terrible suggestions",
		"Conversation about [modern life problem] that everyone can relate to",
	],
};

function generateConversationIdea(category) {
	const templates = conversationTemplates[category] || conversationTemplates.comedy;
	const template = templates[Math.floor(Math.random() * templates.length)];

	// Add specific details to make it more engaging
	const topics = {
		"[topic]": ["who should pay for dinner", "which movie to watch", "whose turn to clean"],
		"[relationship]": ["best friend", "romantic partner", "sibling"],
		"[betrayal]": ["talking behind their back", "stealing their ideas", "dating their ex"],
		"[secret]": ["surprise party plans", "crush information", "embarrassing story"],
		"[bad news]": ["test failure", "job rejection", "relationship breakup"],
		"[person]": ["parent", "boss", "crush", "ex"],
		"[everyday situation]": ["missing food", "loud neighbors", "WiFi problems"],
		"[excuse]": ["skip work", "avoid plans", "get out of trouble"],
		"[college situation]": ["needing money", "failing a class", "party gone wrong"],
		"[event]": ["road trip", "birthday party", "study session"],
		"[modern life problem]": [
			"social media drama",
			"dating app confusion",
			"work from home issues",
		],
	};

	let filledTemplate = template;
	Object.entries(topics).forEach(([placeholder, options]) => {
		if (filledTemplate.includes(placeholder)) {
			const choice = options[Math.floor(Math.random() * options.length)];
			filledTemplate = filledTemplate.replace(placeholder, choice);
		}
	});

	return filledTemplate;
}

// Usage
const idea = generateConversationIdea("drama");
console.log("💡 Conversation idea:", idea);
```

## Use Cases

> [tab] Content Creators
>
> ```javascript theme={null}
> // Daily drama series
> const dailyDrama = await client.templates.brainrot.iMessage({
>   prompt: "Person discovers their roommate has been using their Netflix account to watch exclusively cooking shows and now their algorithm is ruined",
>   characterPack: "young-adults",
>   backgroundVideoPack: "subway-surfers"
> });
>
> // Relatable content
> const relatable = await client.templates.brainrot.iMessage({
>   prompt: "College student texting their parent asking for money for 'textbooks' but the parent starts asking for ISBN numbers and receipts",
>   characterPack: "family-voices",
>   backgroundVideoPack: "minecraft-parkour"
> });
> ```

> [tab] Brand Marketing
>
> ```javascript theme={null}
> // Customer service humor
> const customerService = await client.templates.brainrot.iMessage({
>   prompt: "Customer texting support about their order, but the support responses keep getting more absurd and unhelpful",
>   characterPack: "comedy-voices",
>   backgroundVideoPack: "satisfying-videos"
> });
>
> // Product placement (subtle)
> const productPlacement = await client.templates.brainrot.iMessage({
>   prompt: "Friends debating which food delivery app to use, with increasingly dramatic arguments about delivery fees",
>   characterPack: "young-adults",
>   backgroundVideoPack: "subway-surfers"
> });
> ```

> [tab] Educational Content
>
> ```javascript theme={null}
> // Social skills
> const socialSkills = await client.templates.brainrot.iMessage({
>   prompt: "Conversation showing how to politely decline plans without hurting feelings, with examples of what not to say",
>   characterPack: "young-adults",
>   backgroundVideoPack: "minecraft-parkour"
> });
>
> // Life lessons
> const lifeLesson = await client.templates.brainrot.iMessage({
>   prompt: "Older sibling giving advice to younger sibling about handling high school drama through text messages",
>   characterPack: "family-voices",
>   backgroundVideoPack: "satisfying-videos"
> });
> ```

## Next Steps

**1. Plan Your Conversations**

Outline the dramatic arc and key moments of your conversation

**2. Choose Appropriate Voices**

Select character packs that match your content tone and audience

**3. Test Different Scenarios**

Try various conversation types to see what resonates with your audience

**4. Optimize for Platforms**

Adjust conversation length and style for each social media platform

> [card] Start Creating Conversations
>
> Generate your first text message video and explore other [render types](https://gigareels.mintlify.site/render-types/overview.md)
> for more content options.

&#x20;


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