Communitygithub.com

karmazin/simreel

Transformez un enregistrement réel de votre application dans le simulateur iOS en une vidéo promotionnelle 9:16 et une preview App Store. Utilisez-le lorsque l'utilisateur demande une vidéo de lancement, une bande-annonce, une démo ou une preview App Store de son application iOS.

Qu'est-ce que simreel ?

SimReel est un outil local qui enregistre l'écran du simulateur iOS et produit deux vidéos prêtes à l'emploi : une vidéo verticale 9:16 encadrée dans un téléphone avec dégradé, légendes par scène et carte de fin (idéale pour X, Reels, TikTok, Product Hunt), et une preview App Store au format 886x1920 conforme aux spécifications Apple. L'outil fonctionne entièrement en local avec Xcode et ffmpeg, sans compte ni API payant. Le flux de travail est structuré en plusieurs étapes : identifier le simulateur, parcourir l'application sans enregistrement, réaliser une prise unique, analyser les frames via un contact-sheet, écrire un storyboard JSON décrivant les scènes (début, fin, légende, vitesse, hold), puis lancer le rendu. SimReel est conçu pour des démonstrations authentiques : les légendes doivent décrire ce qui est visible à l'écran, les données privées doivent être exclues, et les scènes doivent durer entre 15 et 30 secondes pour être acceptées par App Store Connect. L'outil gère automatiquement le statut bar (9:41, batterie et signal pleins) et produit une piste audio silencieuse, laissant la liberté d'ajouter musique ou voix off ultérieurement.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/karmazin/simreel/tree/HEAD/skills/simreel

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait simreel ?

Enregistrez l'application réelle de l'utilisateur dans le simulateur iOS et découpez-la en deux fichiers :

  • reel-1080x1920.mp4 : l'enregistrement à l'intérieur d'un téléphone sur un fond dégradé, une légende par scène, une carte de fin. Pour X, Reels, TikTok, Product Hunt.
  • appstore-preview-886x1920.mp4 : l'enregistrement brut, dimensionné et encodé pour App Store Connect.

Tout s'exécute localement avec Xcode et ffmpeg. Pas de comptes, pas d'API payantes.

Règles

  • Montrez uniquement ce que l'application fait réellement. Les légendes décrivent ce qui est à l'écran ; n'ajoutez jamais d'affirmations, de chiffres ou d'avis que la séquence ne montre pas.
  • Gardez les données privées hors du cadre. Utilisez un simulateur neuf ou des données de démonstration, et examinez les images avant de livrer.
  • Ne touchez qu'au simulateur que vous avez reçu l'ordre d'utiliser. D'autres simulateurs démarrés peuvent appartenir au travail de quelqu'un d'autre ; ne passez jamais booted quand plus d'un simulateur est en cours d'exécution.
  • Refusez les invites de suivi et de cookies pendant l'enregistrement, sauf si l'utilisateur dit le contraire.

Étapes

  1. Trouver le simulateur. xcrun simctl list devices booted. Si l'application n'est pas installée, compilez-la et installez-la avec les outils de l'utilisateur.
  2. Parcourez l'application une fois sans enregistrer. Choisissez 3 à 5 moments qui montrent les principales fonctionnalités. Effacez les dialogues d'onboarding, d'autorisation et de cookies maintenant afin qu'ils restent hors de la prise.
  3. Enregistrez une seule prise.
    scripts/record.sh start work/raw.mp4 <UDID>
    # pilotez l'application : votre outil de simulateur, un XCUITest dans le projet, ou demandez à l'utilisateur de tapoter
    scripts/record.sh stop <UDID>
    
    Faites une pause d'environ une seconde sur chaque écran que vous souhaitez conserver. Si les tapotements échouent juste après le démarrage du simulateur, attendez 20 secondes et réessayez.
  4. Lisez la prise. Le fichier se termine au dernier changement d'écran, donc un écran final fixe est coupé et une prise d'un écran qui ne change jamais est presque vide. Chronométrez les scènes à partir du fichier, pas de mémoire.
    python3 scripts/compose.py frames work/raw.mp4 work
    
    Ouvrez work/contact-sheet.png : 8 vignettes par ligne, la vignette N correspond à la seconde N.
  5. Écrivez storyboard.json.
    {
      "app_name": "MyApp",
      "background": ["#0B1020", "#3B2AA8"],
      "scenes": [
        {"start": 0.3, "end": 5.8, "caption": "Ce que fait cet écran"},
        {"start": 8.0, "end": 10.0, "speed": 0.8, "caption": "Étape suivante"}
      ],
      "end_card": {"title": "MyApp", "subtitle": "Le slogan de l'application"}
    }
    
    start/end sont les secondes dans l'enregistrement. speed en dessous de 1 ralentit une scène, au-dessus de 1 l'accélère. hold fige la dernière image de la scène pendant ce nombre de secondes, ce qui permet de s'attarder sur un écran de résultat. background prend une couleur ou un dégradé du haut vers le bas ; text_color et caption_size sont facultatifs. Laissez end_card de côté pour terminer sur la dernière scène. Coupez les indicateurs de chargement. Les scènes doivent totaliser 15 à 30 secondes, sinon App Store Connect rejette la preview.
  6. Rendu.
    python3 scripts/compose.py render work/raw.mp4 storyboard.json out
    
    Cela imprime out/report.json et prévient lorsque la durée de la preview est hors limites.
  7. Vérifiez avant de remettre. Extrayez une image de chaque scène (ffmpeg -ss <t> -i out/reel-1080x1920.mp4 -frames:v 1 f.png) et examinez-la : la légende correspond à l'écran, rien de privé, rien de coupé.

Remarques

  • Prérequis : macOS, Xcode (pour simctl et swift), ffmpeg, python3.
  • record.sh règle la barre d'état à 9:41 avec batterie et signal pleins. Effacez-la ensuite avec xcrun simctl status_bar <UDID> clear.
  • Les chiffres de preview App Store utilisés ici (886x1920, 15-30 s, 30 fps, H.264 High 4.0, AAC stéréo) proviennent des spécifications des previews d'applications d'Apple. Consultez cette page si un téléchargement est rejeté.
  • La piste audio est silencieuse. Ajoutez de la musique ou une voix off dans un éditeur si vous souhaitez du son.

Skills associés