# Virality Rules & Best Practices

## The 15-Second Rule

| Duration | Completion Rate | Algorithm Boost | Best For |
|----------|----------------|-----------------|----------|
| **7-10s** | Very high | Maximum | Simple hooks, memes |
| **10-15s** | High | Strong | Hook + demo (DEFAULT) |
| **15-30s** | Medium | Moderate | Storytelling |
| **30s+** | Low | Minimal | Avoid for virality |

**Always target 10-15 seconds.** Enough time for hook + demo while maintaining near-perfect completion rates.

## The 15-Second Formula

```
Hook clip:    ~5 seconds  (UGC reaction — attention grabber)
Demo clip:    ~10 seconds (app demo — the product showcase)
Total:         15 seconds MAX
```

If hook is shorter (e.g., 3.5s), allocate more time to demo.

## First 1-3 Seconds

The first frames determine if someone stops scrolling:
- **Bold text hook immediately** — upper green zone, TikTok Sans Bold
- **Emotionally charged UGC reaction** — human face grabs attention
- **Movement in frame** — static frames get skipped

## Text Hook Writing Rules

- **3-7 words per line** — short, punchy, scannable
- **Max 3 lines** for hook text — don't overwhelm
- **Lowercase is OK** — feels authentic on TikTok ("i don't hate life")
- **Relatable > clever** — emotion beats wordplay
- **Questions work** — "why do i feel like everyone is moving forward except me?"
- **"When..." format** — "When nothing's wrong but something is wrong"

### Hook Templates

```
"When [relatable situation]..."
"POV: [emotional scenario]"
"[Statistic] people [relatable behavior]"
"Nobody talks about [hidden truth]"
"I wish someone told me [lesson]"
"[Age/role] and still [relatable struggle]"
```

## Caption Writing Rules

- **First line = hook text** (same as video overlay)
- **Body = 1-2 sentences** connecting emotion to product
- **5-8 hashtags** — mix of niche + broad
- **Always include #fyp** for TikTok discoverability

### Caption Formula

```
[Hook text — the emotional line from the video]

[1-2 sentences connecting the emotion to your product/solution]

#hashtag1 #hashtag2 #hashtag3 #hashtag4 #hashtag5 #fyp
```

### Good Hashtag Categories

- Emotion: #overthinking #mentalhealth #anxiety #relatable #selfcare
- Product: #yourappname
- Growth: #fyp #viral #foryou #trending
- Niche: specific to your product's category

## Music Rules

- Use trending sounds when possible (check TikTok's discover page)
- **Volume: 0.6-0.8** — music supports, doesn't overpower
- **Always fade in** (0.5s) and **fade out** (1s before end)
- Match music energy to content emotion (sad music for sad hooks, etc.)
- Analyze tracks with volumedetect in 15s windows to find peak energy segments

## Output Specs

| Spec | Value |
|------|-------|
| Resolution | 1080 x 1920 (9:16) |
| Frame rate | 30 fps |
| Codec | H.264 (libx264) |
| Audio | AAC 128kbps |
| CRF | 18 (high quality) |
| Max file size | 50MB |
| Max duration | 15.0 seconds |
| Pixel format | yuv420p |
| Container | .mp4 with faststart |

## Platform Specs

| Platform | Resolution | Max Duration | Max File Size | Viral Sweet Spot |
|----------|-----------|-------------|--------------|-----------------|
| Instagram Reels | 1080x1920 | 90s | 250MB | **10-15s** |
| TikTok | 1080x1920 | 10min | 287MB | **10-15s** |
| YouTube Shorts | 1080x1920 | 60s | 256MB | **10-15s** |
| Instagram Story | 1080x1920 | 60s | 250MB | **10-15s** |

## Publishing Distribution Rules

- **ONE video per ONE account** — never post the same video to multiple accounts
- Distribute unique videos across accounts (e.g., 5 reels across 2 accounts = 3+2)
- Stagger posting times by 5 minutes between accounts
- Drafts cannot be updated or deleted via API — create new scheduled posts instead

## Winner Identification (24-48h after posting)

| Metric | Good | Great | Viral |
|--------|------|-------|-------|
| Views | 10K+ | 100K+ | 1M+ |
| Like ratio | 5%+ | 10%+ | 15%+ |
| Comment ratio | 0.5%+ | 1%+ | 2%+ |
| Share ratio | 0.3%+ | 1%+ | 3%+ |

## Replicating Winners

When a video performs well:
1. **Same hook emotion** — if shocked reactions work, make more shocked hooks
2. **Same text style** — if 2-line hooks outperform 3-line, stick with 2
3. **Same demo segment** — the product angle that resonated
4. **Same music** — trending sounds compound
5. **Different creator** — use different UGC clips for freshness
6. **Different accounts** — spread the winning format across accounts
