{
  "$schema": "https://wouldliker.com/data/schemas/video-template-packs.schema.json",
  "site": "wouldliker",
  "type": "video_template_packs",
  "updated_at": "2026-05-27",
  "description": "Reusable short-form video prompt and shot-pattern templates for AI-video agents. These packs sit on top of Wouldliker sound routes and sound_behavior profiles; they do not redistribute audio.",
  "selection_notes": "Pick a template by sound_slug first, then by topic keywords and duration. If no exact theme matches, use the route default.",
  "templates": [
    {
      "template_id": "vlog_outfit_recap_30s",
      "route": "Vlog",
      "sound_slug": "vlog",
      "title": "Fashion / outfit recap",
      "use_when": "Fashion, fit check, GRWM, Arab fashion, daily outfit, creator identity clips.",
      "avoid_when": "Hard product demo, price claim, or dramatic before-after reveal.",
      "duration_s": 30,
      "inputs": [
        "brand_name",
        "product_name",
        "creator_style",
        "location"
      ],
      "prompt_template": "Create a 30s TikTok lifestyle outfit recap for {brand_name}. Show {product_name} in natural movement, subject visible from the first frame, soft captions, no forced reveal, warm creator-native pacing.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 2500,
          "shot": "Subject already in frame, full or half-body outfit visible.",
          "overlay": "{product_name} today"
        },
        {
          "start_ms": 2500,
          "end_ms": 9000,
          "shot": "Close details: fabric, accessories, hand movement, mirror angle."
        },
        {
          "start_ms": 9000,
          "end_ms": 18000,
          "shot": "Movement in {location}; walking, turn, or natural adjustment."
        },
        {
          "start_ms": 18000,
          "end_ms": 26000,
          "shot": "Second angle or second look; keep the sound as background bed."
        },
        {
          "start_ms": 26000,
          "end_ms": 30000,
          "shot": "Clean end frame with outfit readable.",
          "overlay": "{brand_name}"
        }
      ],
      "caption_template": "{product_name} for {use_case}. {brand_name} #ootd #fitcheck #wouldliker",
      "cover_frame_guidance": "Pick a frame where the outfit/product is fully visible, not a transition blur.",
      "selection_keywords": [
        "fashion",
        "outfit",
        "fit",
        "ootd",
        "grwm",
        "style",
        "arab fashion",
        "clothes"
      ],
      "sound_behavior_role": "background_bed",
      "payoff_required": false
    },
    {
      "template_id": "vlog_morning_routine_30s",
      "route": "Vlog",
      "sound_slug": "vlog",
      "title": "Morning routine",
      "use_when": "Lifestyle, skincare, coffee, home, wellness, breakfast, daily life.",
      "avoid_when": "Tutorial where speech is the main content; use Presentation instead.",
      "duration_s": 30,
      "inputs": [
        "creator_name",
        "routine_topic",
        "location"
      ],
      "prompt_template": "Create a 30s TikTok morning routine about {routine_topic}. Start with the subject or action already visible. Use soft, steady cuts and let the Vlog sound behave as a background bed.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 3000,
          "shot": "Action already happening: coffee pour, skincare, breakfast, or room detail."
        },
        {
          "start_ms": 3000,
          "end_ms": 10000,
          "shot": "Two close-up details with calm motion."
        },
        {
          "start_ms": 10000,
          "end_ms": 20000,
          "shot": "Wider frame showing context in {location}."
        },
        {
          "start_ms": 20000,
          "end_ms": 30000,
          "shot": "Simple end action that loops visually into the start."
        }
      ],
      "caption_template": "{routine_topic} morning with {creator_name}. #morningroutine #vlog #wouldliker",
      "cover_frame_guidance": "Use a bright frame with the routine object visible.",
      "selection_keywords": [
        "morning",
        "routine",
        "coffee",
        "breakfast",
        "daily",
        "home",
        "skincare"
      ],
      "sound_behavior_role": "background_bed",
      "payoff_required": false
    },
    {
      "template_id": "vlog_food_day_30s",
      "route": "Vlog",
      "sound_slug": "vlog",
      "title": "Food day / recipe lifestyle",
      "use_when": "Food creator clips where the food is part of daily life, not a formal tutorial.",
      "avoid_when": "Step-by-step spoken recipe; use Presentation instead.",
      "duration_s": 30,
      "inputs": [
        "dish_name",
        "creator_style",
        "location"
      ],
      "prompt_template": "Create a 30s TikTok food lifestyle clip for {dish_name}. Start with the food already visible, use warm close-ups, and keep the sound as a steady background bed.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 2500,
          "shot": "{dish_name} visible immediately; steam, plate, or first bite."
        },
        {
          "start_ms": 2500,
          "end_ms": 9000,
          "shot": "Ingredient or texture close-ups."
        },
        {
          "start_ms": 9000,
          "end_ms": 18000,
          "shot": "Hand movement, serving, or plating."
        },
        {
          "start_ms": 18000,
          "end_ms": 26000,
          "shot": "Taste or table context."
        },
        {
          "start_ms": 26000,
          "end_ms": 30000,
          "shot": "Loopable food beauty frame."
        }
      ],
      "caption_template": "{dish_name} today. {creator_note} #foodtok #vlog #wouldliker",
      "cover_frame_guidance": "Pick the most appetizing finished-food frame.",
      "selection_keywords": [
        "food",
        "recipe",
        "cooking",
        "dish",
        "breakfast",
        "lunch",
        "dinner",
        "restaurant"
      ],
      "sound_behavior_role": "background_bed",
      "payoff_required": false
    },
    {
      "template_id": "vlog_travel_day_60s",
      "route": "Vlog",
      "sound_slug": "vlog",
      "title": "Travel day recap",
      "use_when": "Travel, city walks, airport, beach, trip recap, day-in-the-life montage.",
      "avoid_when": "Sports payoff or hard product reveal.",
      "duration_s": 60,
      "inputs": [
        "destination",
        "travel_style",
        "creator_name"
      ],
      "prompt_template": "Create a 60s TikTok travel day recap in {destination}. Use the Vlog sound as a loop-friendly background bed with readable chapters and soft motion.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 5000,
          "shot": "Destination signal immediately: street, landmark, hotel, beach, airport."
        },
        {
          "start_ms": 5000,
          "end_ms": 18000,
          "shot": "Travel movement sequence: walking, transit, map, window view."
        },
        {
          "start_ms": 18000,
          "end_ms": 34000,
          "shot": "Food, people, or environment details."
        },
        {
          "start_ms": 34000,
          "end_ms": 50000,
          "shot": "Second location or activity chapter."
        },
        {
          "start_ms": 50000,
          "end_ms": 60000,
          "shot": "Calm end frame that feels complete."
        }
      ],
      "caption_template": "{destination} day with {creator_name}. #travelvlog #dayinthelife #wouldliker",
      "cover_frame_guidance": "Use a destination-identifiable frame.",
      "selection_keywords": [
        "travel",
        "trip",
        "city",
        "beach",
        "vacation",
        "airport",
        "hotel",
        "destination"
      ],
      "sound_behavior_role": "background_bed",
      "payoff_required": false
    },
    {
      "template_id": "product_reveal_ecommerce_30s",
      "route": "Product Reveal",
      "sound_slug": "product-reveal",
      "title": "Ecommerce product reveal",
      "use_when": "Object, package, product, offer, unboxing, before-after, texture, demo payoff.",
      "avoid_when": "Pure lifestyle montage with no reveal moment.",
      "duration_s": 30,
      "inputs": [
        "brand_name",
        "product_name",
        "payoff_object",
        "use_case"
      ],
      "prompt_template": "Create a 30s TikTok product reveal for {brand_name}. Build toward revealing {payoff_object} around 18s. Keep hook text visible from 0ms and show {product_name} clearly after the reveal.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 3000,
          "shot": "Hook text plus product hidden, boxed, blurred, or teased.",
          "overlay": "{product_name} reveal"
        },
        {
          "start_ms": 3000,
          "end_ms": 11000,
          "shot": "Hands, package, close details, texture, or setup."
        },
        {
          "start_ms": 11000,
          "end_ms": 18000,
          "shot": "Tension hold; slow movement toward the reveal."
        },
        {
          "start_ms": 18000,
          "end_ms": 22000,
          "shot": "Reveal {payoff_object}; make the object readable.",
          "overlay": "{brand_name}"
        },
        {
          "start_ms": 22000,
          "end_ms": 30000,
          "shot": "Proof of use, final detail, or customer-style reaction."
        }
      ],
      "caption_template": "{product_name} reveal from {brand_name}. {reaction_line} #productreveal #wouldliker",
      "cover_frame_guidance": "Use the payoff frame after the reveal, not the hidden setup.",
      "selection_keywords": [
        "product",
        "reveal",
        "unboxing",
        "ecommerce",
        "package",
        "demo",
        "shop",
        "brand"
      ],
      "sound_behavior_role": "reveal_support",
      "payoff_required": true
    },
    {
      "template_id": "product_reveal_sports_card_30s",
      "route": "Product Reveal",
      "sound_slug": "product-reveal",
      "title": "Sports trading card reveal",
      "use_when": "Trading cards, collectibles, pack pulls, graded card reveals, sports object payoff.",
      "avoid_when": "Match highlight montage where no object is revealed.",
      "duration_s": 30,
      "inputs": [
        "card_name",
        "pack_name",
        "sport",
        "reaction_line"
      ],
      "prompt_template": "Create a 30s TikTok sports trading card reveal. Start with the sealed pack or card back in frame. Build toward the face-up card reveal around 18s. Hold the payoff card clearly after the reveal.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 3000,
          "shot": "Tight on sealed pack or card back; hands enter frame.",
          "overlay": "last pack?"
        },
        {
          "start_ms": 3000,
          "end_ms": 12000,
          "shot": "Slow pack tear, card backs visible, no reveal yet."
        },
        {
          "start_ms": 12000,
          "end_ms": 18000,
          "shot": "Fan cards or hover on final card back."
        },
        {
          "start_ms": 18000,
          "end_ms": 22000,
          "shot": "Flip {card_name} face-up; hold steady.",
          "overlay": "{card_name}"
        },
        {
          "start_ms": 22000,
          "end_ms": 30000,
          "shot": "Reaction, zoom on card, or value context."
        }
      ],
      "caption_template": "Pulled {card_name} from {pack_name}. {reaction_line} #sportscards #cardtok #wouldliker",
      "cover_frame_guidance": "Use the face-up card frame around 19.5s.",
      "selection_keywords": [
        "sports card",
        "card",
        "trading card",
        "pack",
        "pull",
        "graded",
        "collectible"
      ],
      "sound_behavior_role": "reveal_support",
      "payoff_required": true
    },
    {
      "template_id": "product_reveal_electronics_30s",
      "route": "Product Reveal",
      "sound_slug": "product-reveal",
      "title": "Electronics feature reveal",
      "use_when": "Phone, gadget, appliance, camera, tech product, electronics brand feature reveal.",
      "avoid_when": "Long review with voiceover; use Presentation instead.",
      "duration_s": 30,
      "inputs": [
        "brand_name",
        "product_name",
        "feature_name"
      ],
      "prompt_template": "Create a 30s TikTok electronics reveal for {brand_name}. Tease {product_name}, reveal {feature_name} around 18s, and use clean product close-ups after the payoff.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 3000,
          "shot": "Product silhouette or close-up with hook text.",
          "overlay": "{feature_name}"
        },
        {
          "start_ms": 3000,
          "end_ms": 10000,
          "shot": "Hands, ports, screen, packaging, or detail sequence."
        },
        {
          "start_ms": 10000,
          "end_ms": 18000,
          "shot": "Build toward active feature demonstration."
        },
        {
          "start_ms": 18000,
          "end_ms": 23000,
          "shot": "Reveal {feature_name} clearly."
        },
        {
          "start_ms": 23000,
          "end_ms": 30000,
          "shot": "Use case and clean end frame."
        }
      ],
      "caption_template": "{product_name} with {feature_name}. {brand_name} #techtok #productreveal #wouldliker",
      "cover_frame_guidance": "Use the frame where the feature is visible, not just the box.",
      "selection_keywords": [
        "electronics",
        "phone",
        "gadget",
        "tech",
        "camera",
        "feature",
        "device",
        "appliance"
      ],
      "sound_behavior_role": "reveal_support",
      "payoff_required": true
    },
    {
      "template_id": "product_reveal_food_package_15s",
      "route": "Product Reveal",
      "sound_slug": "product-reveal",
      "title": "Food package / dish reveal",
      "use_when": "Restaurant item, packaged food, new menu item, food object reveal.",
      "avoid_when": "Slow recipe or spoken review; use Vlog or Presentation.",
      "duration_s": 15,
      "inputs": [
        "brand_name",
        "dish_name",
        "payoff_detail"
      ],
      "prompt_template": "Create a 15s TikTok food reveal for {dish_name}. Start with packaging or covered plate, reveal {payoff_detail} around 8s, then hold the best food frame.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 2000,
          "shot": "Covered plate, box, bag, or close tease.",
          "overlay": "{dish_name}"
        },
        {
          "start_ms": 2000,
          "end_ms": 8000,
          "shot": "Hands open, unwrap, lift lid, or cut into food."
        },
        {
          "start_ms": 8000,
          "end_ms": 12000,
          "shot": "Reveal {payoff_detail}; hold food texture."
        },
        {
          "start_ms": 12000,
          "end_ms": 15000,
          "shot": "Bite, sauce pull, or final plate."
        }
      ],
      "caption_template": "{dish_name} from {brand_name}. {reaction_line} #foodtok #productreveal #wouldliker",
      "cover_frame_guidance": "Pick the most textured food frame after the reveal.",
      "selection_keywords": [
        "food reveal",
        "restaurant",
        "dish",
        "menu",
        "package",
        "unwrap",
        "sauce",
        "snack"
      ],
      "sound_behavior_role": "reveal_support",
      "payoff_required": true
    },
    {
      "template_id": "presentation_tutorial_30s",
      "route": "Presentation",
      "sound_slug": "presentation",
      "title": "Tutorial / explainer",
      "use_when": "Step-by-step education, talking-head, captions, voiceover, product explanation.",
      "avoid_when": "Pure fashion/lifestyle montage with no spoken or captioned instruction.",
      "duration_s": 30,
      "inputs": [
        "topic",
        "creator_name",
        "steps_count"
      ],
      "prompt_template": "Create a 30s TikTok tutorial about {topic}. Start on the speaker, object, or result immediately. Keep captions readable and cut on phrases, not drops.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 3000,
          "shot": "Face, object, or final result visible with clear hook text.",
          "overlay": "{topic} in {steps_count} steps"
        },
        {
          "start_ms": 3000,
          "end_ms": 10000,
          "shot": "Step 1 demonstration or first explanation phrase."
        },
        {
          "start_ms": 10000,
          "end_ms": 19000,
          "shot": "Step 2 / proof / close-up."
        },
        {
          "start_ms": 19000,
          "end_ms": 27000,
          "shot": "Step 3 / outcome / mistake to avoid."
        },
        {
          "start_ms": 27000,
          "end_ms": 30000,
          "shot": "Clean final frame with CTA or summary."
        }
      ],
      "caption_template": "{topic} in {steps_count} steps. Save this. #tutorial #learnontiktok #wouldliker",
      "cover_frame_guidance": "Use a frame where the topic text and object/face are readable.",
      "selection_keywords": [
        "tutorial",
        "explainer",
        "how to",
        "step",
        "education",
        "learn",
        "caption",
        "voiceover"
      ],
      "sound_behavior_role": "voice_safe_motion",
      "payoff_required": false
    },
    {
      "template_id": "presentation_food_review_30s",
      "route": "Presentation",
      "sound_slug": "presentation",
      "title": "Food review / tasting notes",
      "use_when": "Food review, restaurant review, shopping review, voiceover-led opinion.",
      "avoid_when": "Pure aesthetic food montage with no review or explanation; use Vlog.",
      "duration_s": 30,
      "inputs": [
        "dish_name",
        "place_name",
        "rating_or_takeaway"
      ],
      "prompt_template": "Create a 30s TikTok food review for {dish_name} at {place_name}. Keep the food visible early, use voiceover/captions, and let Presentation sit under the review.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 2500,
          "shot": "{dish_name} visible immediately.",
          "overlay": "worth it?"
        },
        {
          "start_ms": 2500,
          "end_ms": 9000,
          "shot": "Texture or bite close-up while voiceover starts."
        },
        {
          "start_ms": 9000,
          "end_ms": 18000,
          "shot": "Two proof shots: inside, portion, price, or reaction."
        },
        {
          "start_ms": 18000,
          "end_ms": 26000,
          "shot": "Verdict frame with clear caption."
        },
        {
          "start_ms": 26000,
          "end_ms": 30000,
          "shot": "Final beauty shot or save/share CTA."
        }
      ],
      "caption_template": "{dish_name} at {place_name}: {rating_or_takeaway}. #foodreview #foodtok #wouldliker",
      "cover_frame_guidance": "Use the dish with a short verdict overlay.",
      "selection_keywords": [
        "food review",
        "restaurant review",
        "taste test",
        "verdict",
        "rating"
      ],
      "sound_behavior_role": "voice_safe_motion",
      "payoff_required": false
    },
    {
      "template_id": "presentation_shopping_review_30s",
      "route": "Presentation",
      "sound_slug": "presentation",
      "title": "Shopping review",
      "use_when": "Shopping review, product opinion, haul explanation, trust-led demonstration.",
      "avoid_when": "Pure unboxing reveal with no review; use Product Reveal.",
      "duration_s": 30,
      "inputs": [
        "product_name",
        "store_name",
        "main_takeaway"
      ],
      "prompt_template": "Create a 30s TikTok shopping review for {product_name} from {store_name}. Start with the product visible, use captions or voiceover, and explain {main_takeaway} clearly.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 3000,
          "shot": "Product visible immediately with verdict hook.",
          "overlay": "{main_takeaway}"
        },
        {
          "start_ms": 3000,
          "end_ms": 10000,
          "shot": "Show product in hand or in use."
        },
        {
          "start_ms": 10000,
          "end_ms": 19000,
          "shot": "Detail, flaw, benefit, or comparison."
        },
        {
          "start_ms": 19000,
          "end_ms": 27000,
          "shot": "Final recommendation or who it is for."
        },
        {
          "start_ms": 27000,
          "end_ms": 30000,
          "shot": "Clean product frame with CTA."
        }
      ],
      "caption_template": "{product_name} from {store_name}: {main_takeaway}. #shoppingreview #ugc #wouldliker",
      "cover_frame_guidance": "Use a product-in-hand frame with verdict text.",
      "selection_keywords": [
        "shopping",
        "review",
        "haul",
        "store",
        "bought",
        "purchase",
        "opinion",
        "worth it"
      ],
      "sound_behavior_role": "voice_safe_motion",
      "payoff_required": false
    },
    {
      "template_id": "presentation_app_demo_30s",
      "route": "Presentation",
      "sound_slug": "presentation",
      "title": "App / SaaS demo",
      "use_when": "Software, app, SaaS, screen recording, AI tool, product walkthrough.",
      "avoid_when": "Physical product reveal where the object is the payoff.",
      "duration_s": 30,
      "inputs": [
        "app_name",
        "feature_name",
        "user_goal"
      ],
      "prompt_template": "Create a 30s TikTok app demo for {app_name}. Start with the result or screen state, explain {feature_name}, and keep captions readable.",
      "shot_pattern": [
        {
          "start_ms": 0,
          "end_ms": 3000,
          "shot": "Screen result visible immediately.",
          "overlay": "{user_goal}"
        },
        {
          "start_ms": 3000,
          "end_ms": 9000,
          "shot": "Input or first click/tap."
        },
        {
          "start_ms": 9000,
          "end_ms": 18000,
          "shot": "{feature_name} in action."
        },
        {
          "start_ms": 18000,
          "end_ms": 26000,
          "shot": "Before/after or saved-time proof."
        },
        {
          "start_ms": 26000,
          "end_ms": 30000,
          "shot": "Final screen and CTA."
        }
      ],
      "caption_template": "{app_name} helps with {user_goal}. #aitools #saas #wouldliker",
      "cover_frame_guidance": "Use the clearest screen result, not a loading state.",
      "selection_keywords": [
        "app",
        "saas",
        "software",
        "screen",
        "demo",
        "tool",
        "ai tool",
        "workflow"
      ],
      "sound_behavior_role": "voice_safe_motion",
      "payoff_required": false
    }
  ]
}
