# Reels Scripting > Convierte un Reel de referencia en un guion propio: lo transcribe y analiza con Gemini 2.5 Flash, y reescribe el patrón con el tema de la newsletter del usuario en su voz. Fuente: https://skillsagentes.com/skills/charlie947/social-media-skills/reels-scripting Markdown: https://skillsagentes.com/skills/charlie947/social-media-skills/reels-scripting.md Repositorio: https://github.com/charlie947/social-media-skills Autor: charlie947 Licencia: MIT Actualizado: hace 4 meses Coste de contexto: 153 tok instalada, 1.7k tok al activarse, 1.7k tok con todos los archivos del bundle Bundle: 1 archivo, 7 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add charlie947/social-media-skills --skill reels-scripting --agent claude-code # Cursor npx -y skills add charlie947/social-media-skills --skill reels-scripting --agent cursor # Codex npx -y skills add charlie947/social-media-skills --skill reels-scripting --agent codex # Gemini CLI npx -y skills add charlie947/social-media-skills --skill reels-scripting --agent gemini # Windsurf npx -y skills add charlie947/social-media-skills --skill reels-scripting --agent windsurf # Cline npx -y skills add charlie947/social-media-skills --skill reels-scripting --agent cline ``` ## Qué hace - Descarga un Reel de referencia vía Apify y lo analiza con Gemini 2.5 Flash: transcripción completa, hook, estructura y patrones de lenguaje - Aplica esos patrones a un tema de la newsletter del usuario para escribir un guion de Reel propio - Corre un ciclo de control de calidad contra reglas fijas (nunca abrir con 'yo', 2 puntos máximo, gatillo de comentario de una palabra) hasta llegar a 95/100 - Entrega guion, caption y gatillo de comentario juntos, nunca solo el guion ## Cuándo usarla - El usuario dice 'guioniza un reel', 'reels scripting', 'convierte esto en un reel' o pega una URL de Instagram Reel ## Cuándo no - No están configuradas las variables APIFY_API_TOKEN y GOOGLE_AI_API_KEY ## Qué la activa - "Guioniza este Reel de referencia con mi tema de newsletter" - "Convierte esta sección de mi newsletter en un guion de Reel" ## Antes de instalar - Requiere las variables de entorno APIFY_API_TOKEN y GOOGLE_AI_API_KEY, Node.js 18+ y los paquetes apify-client y @google/generative-ai. ## Archivos - SKILL.md — 7 KB ## SKILL.md Reproducido tal cual desde charlie947/social-media-skills bajo MIT. Esta sección es el documento original y está en inglés. # Reels Scripting ## CRITICAL: Auto-start on load When this skill triggers, go straight to Step 1. Do not summarise. ## Prerequisites This skill needs: - `APIFY_API_TOKEN` environment variable (Instagram scraping) - `GOOGLE_AI_API_KEY` environment variable (Gemini 2.5 Flash video analysis) - Node.js 18+ and the `apify-client` and `@google/generative-ai` packages If either env var is missing, tell the user to run: ``` ! export APIFY_API_TOKEN=your_token ! export GOOGLE_AI_API_KEY=your_key ``` Then stop until both are set. ## Step 1. Get the reference Ask: > Paste the reference Reel URL or Notion link. This is the outlier Reel you want to reverse-engineer the format from. Wait for the URL. If the user pastes a Notion link, follow it via WebFetch, locate the Instagram Reel URL on the page, and extract it. If no Reel URL is found on the Notion page, ask the user to paste the Reel URL directly. ## Step 2. Get the newsletter topic Ask: > What's the topic from your newsletter you want to repurpose into this Reel? Paste the relevant newsletter section, or type the core idea in a sentence. Wait for the topic. Read newsletter-voice.md, voice.md, and about-me.md from the project if they exist, so the script matches the user's voice. ## Step 3. Scrape and download the Reel Create `~/Desktop/Reels/` if it does not exist. Write a Node.js script at `~/Desktop/Reels/analyse-reel.js` that: 1. Uses `apify-client` to call `apify/instagram-reel-scraper` with `{ directUrls: [reelUrl], resultsLimit: 1 }`. If that returns no items, fall back to `{ urls: [reelUrl], resultsLimit: 1 }`, then `apify/instagram-scraper` with `{ directUrls: [reelUrl], resultsType: 'posts', resultsLimit: 1 }`. 2. Extracts `videoUrl` from the returned item. 3. Downloads the video to `~/Desktop/Reels/downloads/{username}_{shortCode}.mp4`. 4. Saves raw scrape data to `~/Desktop/Reels/reel_data_{shortCode}.json`. Run the script. Confirm file size and metadata (views, likes, comments, caption first 200 chars) before continuing. ## Step 4. Analyse with Gemini 2.5 Flash Extend the Node script (or run a second pass) that: 1. Reads the downloaded `.mp4` as base64. 2. Calls `genAI.getGenerativeModel({ model: 'gemini-2.5-flash' })`. 3. Sends the video with this exact prompt: ``` I'm studying this Reel to write my own script in a similar style for my audience of [AUDIENCE FROM about-me.md]. ## Full Transcript - Transcribe EVERY word with timestamps ## Hook - Exact first words spoken - Word count of the hook - What makes it stop the scroll? ## Language Patterns - Average sentence length - You/your vs I/me ratio - Transitions between points - Where are the 'just' minimisers? ## Structure - Total duration - Section breakdown with timings - What's the before/after moment? - What's the CTA? ## One key insight - The single most important technique to learn from this Reel ``` Save the analysis to `~/Desktop/Reels/analysis_reference_{shortCode}.md`. ## Step 5. Write the new Reel script Using the analysis from Step 4, the newsletter topic from Step 2, and the user's voice files, write a new Reel script to `~/Desktop/Reels/reel-[slug].md`. Apply these rules (non-negotiable): ### Hook - Never open with "I". Use "this", "you", a fact, or a name drop. - Proven formats: "This changed... forever" / negative flip ("X is useless unless...") / capability statement. - Hook creates curiosity or pattern interrupt within 3 seconds. - Mirror the hook's word count and structure from the reference analysis. ### Body - British English. Short sentences. No em dashes, no semicolons. - Use "you" and "just" conversationally ("you just drop in..."). - Never merge three or more staccato fragments. Combine into one flowing sentence. - Never state the conclusion. Let the facts do the work. - No "link in bio". Use comment automation. ### Comment trigger - Single caps word only (SCRIPT, WIKI, PROMPTS, VIDEO). - Must directly relate to what is being promised. - No quotes, no "below", no trailing punctuation. ### CTA - "Comment [WORD] and I'll send you [specific thing]" - Short. No "the link to my full" padding. ### Duration and structure - Target 30 to 45 seconds total. - 2 key points maximum, not 3. - Caption mirrors the script. Update both together. ### Script file structure ``` # Reel: [title] ## Reference analysis - URL: [reel url] - Views: [number] - Key technique: [from Gemini analysis] ## Duration target 30-45 seconds ## Hook (0-3s) [Exact words] ## Point 1 ([start]-[end]s) [Exact words] ## Point 2 ([start]-[end]s) [Exact words] ## CTA ([start]-[end]s) [Exact words including "Comment [WORD]"] --- ## Caption [Mirror the script, formatted for Instagram] ## Comment trigger [WORD] ## Deliverable [What the comment trigger unlocks] --- ## Visual notes [Cuts, B-roll ideas, text overlays] ``` ## Step 6. QA loop Score the script against the rules in Step 5. Every violation must be fixed. Re-score until the script hits 95/100. Never show the user anything below 95. Common violations to check: - Opens with "I" - Staccato fragments of three or more - States the conclusion - Multi-word or stylised comment trigger - Duration over 45 seconds when read aloud - 3 points instead of 2 - Caption does not mirror script ## Step 7. Offer the pipeline After the script is approved, offer: > Two paths from here: > > 1. Record it yourself. > 2. Auto-generate with ElevenLabs (voice) + HeyGen (avatar) + Remotion (motion graphics). If you have the my-video project configured, run `npm run pipeline:claude-routines` with this script config. ## Rules - Never skip the 95/100 QA gate. - Always read voice.md and about-me.md before writing. Voice match is non-negotiable. - Never invent metrics from the reference Reel. Use only what Apify returns. - British English. No em dashes. No semicolons. - Every script deliverable includes the exact caption and comment trigger alongside the script. Never deliver just the script. - If the reference Reel scrape fails across all three actor variants, report the failure and stop. Do not fabricate analysis. - Gemini 2.5 Flash is the model. Do not substitute without the user's approval. ## Dónde encaja - Categoría: [Redes sociales](https://skillsagentes.com/categorias/redes-sociales.md) — Escribe, califica y programa posts para Instagram, LinkedIn, X/Twitter y TikTok. - Creador: [charlie947](https://skillsagentes.com/creators/charlie947.md) — 17 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Content Matrix](https://skillsagentes.com/skills/charlie947/social-media-skills/content-matrix.md): Genera 32 o más ideas de post de LinkedIn en una sola tabla, cruzando los pilares de contenido del usuario con 8 formatos probados, según el content matrix de Justin Welsh. - [Gemini Carousel](https://skillsagentes.com/skills/charlie947/social-media-skills/gemini-carousel.md): Genera un carrusel de LinkedIn con marca propia usando Gemini: brief de diseño diapositiva por diapositiva, aprobación del usuario y prompts de imagen listos para pegar, en formato vertical 1080x1350. - [Gemini Infographic](https://skillsagentes.com/skills/charlie947/social-media-skills/gemini-infographic.md): Genera el prompt de una infografía estilo pizarra dibujada a mano a partir de un texto fuente, con brief aprobado por el usuario antes de generar la imagen en Gemini. - [Newsletter Voice](https://skillsagentes.com/skills/charlie947/social-media-skills/newsletter-voice.md): Construye instrucciones de escritura de newsletter dentro de un proyecto de Cowork, a partir de ediciones pasadas o de 6 arquetipos, para que Claude redacte futuras ediciones en la voz del usuario. - [Analytics Dashboard](https://skillsagentes.com/skills/charlie947/social-media-skills/analytics-dashboard.md): Convierte un export de LinkedIn Analytics en un dashboard React interactivo de tema oscuro más un análisis estratégico con 5 recomendaciones de contenido basadas en los datos. ## Skills relacionadas - [X Mastery Mentor](https://skillsagentes.com/skills/alchaincyf/nuwa-skill/x-mastery-mentor.md): Mentor de operación en X/Twitter de nivel experto, basado en las metodologías de seis creadores top y en el algoritmo abierto de X, con manual completo de selección de tema, escritura y crecimiento. - [Analytics Dashboard](https://skillsagentes.com/skills/charlie947/social-media-skills/analytics-dashboard.md): Convierte un export de LinkedIn Analytics en un dashboard React interactivo de tema oscuro más un análisis estratégico con 5 recomendaciones de contenido basadas en los datos. - [Content Matrix](https://skillsagentes.com/skills/charlie947/social-media-skills/content-matrix.md): Genera 32 o más ideas de post de LinkedIn en una sola tabla, cruzando los pilares de contenido del usuario con 8 formatos probados, según el content matrix de Justin Welsh. - [Gemini Carousel](https://skillsagentes.com/skills/charlie947/social-media-skills/gemini-carousel.md): Genera un carrusel de LinkedIn con marca propia usando Gemini: brief de diseño diapositiva por diapositiva, aprobación del usuario y prompts de imagen listos para pegar, en formato vertical 1080x1350. - [Gemini Infographic](https://skillsagentes.com/skills/charlie947/social-media-skills/gemini-infographic.md): Genera el prompt de una infografía estilo pizarra dibujada a mano a partir de un texto fuente, con brief aprobado por el usuario antes de generar la imagen en Gemini. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)