Communitygithub.com

Enregistrement d'écran et démos

Enregistrez des démos propres de produits et d'applications web - enregistrement scripté de navigateur avec Playwright, polish du curseur et du zoom, accélérations, suppression des temps morts et synchronisation avec la narration. Utilisez-le lorsque l'utilisateur souhaite une visite guidée, un tutoriel, une vidéo de démonstration ou de version d'une application web, ou un enregistrement reproductible.

Qu'est-ce que Enregistrement d'écran et démos ?

Cette compétence permet de créer des enregistrements d'écran scriptés et reproductibles pour des démos, tutoriels et vidéos de version d'applications web. Elle est particulièrement utile car, contrairement à un enregistrement manuel, un script peut être réexécuté lorsque l'interface utilisateur change, garantissant ainsi une mise à jour facile. Elle prend en charge diverses méthodes selon la situation : Playwright pour les applications web, des enregistreurs OS comme OBS Studio pour les applications de bureau, Remotion pour des résultats polis sans glitch, et des enregistreurs de terminal pour les CLI. La compétence fournit des exemples de code Python pour Playwright, des conseils de post-production avec ffmpeg (découpage, accélération, zoom), et des bonnes pratiques pour améliorer la qualité : données de démonstration réalistes, vue fixe 1920x1080, pauses délibérées, curseur visible, et synchronisation avec la narration. Elle insiste sur la sécurité en recommandant de masquer les données sensibles et de ne jamais enregistrer de vraies données clients.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/iamaanahmad/agents-video-editing-skills/tree/HEAD/skills/screen-recording-demos

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 Enregistrement d'écran et démos ?

Un enregistrement scripté est reproductible. Lorsque l'interface utilisateur change, vous réexécutez le script au lieu de réenregistrer manuellement.

Choisissez la méthode

SituationMéthode
Application web accessible dans un navigateurEnregistrement scripté avec Playwright
Application de bureau ou workflow plein écranEnregistreur OS (OBS Studio, Windows Game Bar, capture d'écran macOS)
Le code source de l'application est disponible et un résultat poli sans glitch est souhaitéReconstruire les écrans en tant que composants statiques dans Remotion (voir remotion-programmatic-video)
CLIEnregistreur de terminal (asciinema, VHS) ou un composant de terminal animé

Enregistrement Playwright (Python)

pip install playwright && playwright install chromium
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    ctx = browser.new_context(
        viewport={"largeur": 1920, "hauteur": 1080},
        record_video_dir="enregistrements/",
        record_video_size={"largeur": 1920, "hauteur": 1080},
    )
    page = ctx.new_page()
    page.goto("https://example.com")
    page.wait_for_load_state("networkidle")
    page.wait_for_timeout(800)                       # laisser le spectateur lire
    page.get_by_role("button", name="Se connecter").click()
    page.get_by_label("Email").type("[email protected]", delay=60)   # frappe visible
    page.wait_for_timeout(1200)
    ctx.close()                                      # la vidéo est finalisée à la fermeture
    browser.close()

La sortie est en WebM. Convertissez :

ffmpeg -i enregistrements/xyz.webm -c:v libx264 -crf 18 -pix_fmt yuv420p -r 30 out/demo.mp4

Améliorez l'aspect

  • Données de démonstration : utilisez un compte de démonstration prérempli avec des données réalistes et non sensibles. N'enregistrez jamais de vraies données clients, jetons ou e-mails.
  • Fenêtre : fenêtre fixe 1920x1080, masquez les barres de favoris et notifications, zoom léger (110 à 125 pour cent) pour que le texte soit lisible sur un téléphone.
  • Rythme : pause de 0,5 à 1 s après chaque action. Tapez avec un délai. Évitez les sauts instantanés.
  • Curseur : Playwright ne dessine pas de curseur. Injectez un petit curseur DOM, ou ajoutez-en un en post-production (Remotion ou une superposition).
  • Déterminisme : attendez avec expect(locator).to_be_visible() plutôt que des attentes fixes, puis ajoutez des pauses délibérées pour les spectateurs.
  • Secrets : floutez ou masquez les champs dans le script de la page (page.add_style_tag) avant l'enregistrement.

Post-production

# Couper le temps mort : garder de 12 s à 41 s
ffmpeg -ss 12 -i demo.mp4 -t 29 -c:v libx264 -crf 18 out/trimmed.mp4

# Accélérer les attentes ennuyeuses (par ex. 4x de 20 s à 30 s) nécessite une division ; le plus simple est de couper, accélérer, réassembler
# Zoomer sur une région : recadrer puis redimensionner (x:y:w:h en pixels source)
ffmpeg -i demo.mp4 -vf "crop=960:540:480:270,scale=1920:1080" out/zoom.mp4

Pour un zoom/panoramique animé fluide suivant le curseur, utilisez Remotion (interpolate sur scale et translate).

Synchronisation avec la narration

  1. Écrivez d'abord le script (video-planning), enregistrez la voix off (voiceover-tts).
  2. Enregistrez l'écran, puis ajustez la vitesse par scène pour que chaque action tombe sur sa phrase. Calculez vitesse = secondes_enregistrées / secondes_de_narration.
  3. Utilisez les recettes de vitesse de ffmpeg-essentials, ou retemporalisez dans la composition.

Liste de vérification

  • Aucune donnée personnelle, clé API ou URL interne visible.
  • Texte lisible en 1080p redimensionné sur un écran de téléphone.
  • Aucun spinner de chargement de plus d'une seconde restant.
  • Audio de la machine désactivé sauf si souhaité.

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

iamaanahmad/captions-subtitles

Create, edit, translate and burn in captions and subtitles - transcribe speech with Whisper, write SRT/VTT/ASS files, style them, and hard-burn word-highlight captions for Shorts, Reels and TikTok. Use for any captioning, subtitle, transcript or accessibility request.

iamaanahmad/ffmpeg-essentials

Core FFmpeg and ffprobe recipes for trimming, joining, converting, resizing, compressing, speed changes, fades, audio extraction and GIF conversion. Use for any direct media transformation task, or when a video will not play, has odd dimensions, or is out of sync.

iamaanahmad/motion-design-craft

Motion design rules for programmatic and edited video - durations, easing, springs, staggering, read time for on-screen text, beat grids, transitions and visual hierarchy, plus the defaults that make a video look AI-generated. Use when animating scenes, choosing timings, or reviewing a video that feels off.

iamaanahmad/moviepy-python-video

Compose and edit video in pure Python with moviepy 2.x - overlay text, lower thirds and captions on footage, cut and join clips, add audio, build short single-file build.py videos without Node. Use when the user wants Python-based video editing or deterministic text over AI-generated video.

iamaanahmad/remotion-programmatic-video

Build videos as React code with Remotion - compositions, sequences, springs, interpolation, audio sync, data-driven props, studio preview and rendering to MP4. Use for explainers, product demos, release notes, data charts, branded templates, or any video that should be reproducible from code.

iamaanahmad/voiceover-tts

Generate and time narration with text-to-speech (ElevenLabs, OpenAI TTS, Kokoro, Piper) or prepare a recorded voice - script prep, per-scene audio files, pacing, pronunciation, cleanup and loudness. Use when the user needs a voiceover, narration, dubbing, or voice cloning guidance.

Skills associés