bounce12340/josh-video-skills

Enregistrer les opérations sur des pages web publiques (défilement, survol, clic sur liens, mise en évidence, chapitres) et produire une vidéo MP4 verticale 1080x1920 pour des Reels ou des présentations de sites.

Qu'est-ce que josh-video-skills ?

Ce skill permet d'enregistrer une séquence d'interactions sur n'importe quelle page web publique et de la transformer en une vidéo MP4 verticale (1080x1920) prête à être utilisée comme contenu pour les Reels Instagram ou les démos de sites Web. Basé sur Playwright, il exécute un scénario défini dans un fichier JSON : défilement, survol, clic sur des éléments, mise en évidence de zones importantes, et insertion de chapitres. Le skill est strictement limité aux pages publiques (pas de connexion, pas de soumission de formulaires) et applique des protections contre toute tentative d'accès à des sessions authentifiées. Les vidéos produites peuvent être intégrées dans un flux de montage vidéo (stock-footage-reel, OpenMontage) avec les crédits appropriés pour le site source. Il fonctionne avec Node.js, Playwright et l'outil de capture d'écran intégré.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bounce12340/josh-video-skills/tree/HEAD/screen-record

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

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

Documentation

screen-record : Enregistrement d'opérations sur pages web publiques (contenu Reel)

Josh 2026-10-11, approuvé pour l'installation. Son seul but : enregistrer les opérations sur des pages web publiques pour créer des vidéos destinées aux Reels Instagram. Le processus de publication reste inchangé (IG / Threads utilisent la méthode habituelle via le navigateur box), cet outil ne touche pas à la publication.

Règles strictes (à respecter à chaque fois)

  1. Utiliser un navigateur entièrement nouveau, temporaire, en mémoire seulement (chromium.launch() + newContext(), sans userDataDir).
  2. Ne jamais pointer vers le profil de navigateur connecté de box ; ne jamais utiliser --extension, attach, CDP / wsEndpoint pour se connecter au navigateur box ; ne jamais charger de cookies ou storageState ; ne pas utiliser --persistent / --profile.
  3. Ne pas se connecter à un site, ne pas taper de texte, ne pas soumettre de formulaire, ne pas publier, ne pas commenter, ne pas aimer.
  4. Enregistrer uniquement des pages publiques (http/https, pas localhost/réseau interne). IG, Threads, FB peuvent être consultés uniquement en mode non connecté pour les pages publiques ; si un mur de connexion apparaît, changer de source, ne pas essayer de se connecter.
  5. record.mjs inclut une protection intégrée : rejette toute spec contenant storageState / cookies / userDataDir / profile / cdp / extension / login / password / fill / type ; bloque toutes les requêtes POST / PUT / PATCH / DELETE (le log affichera blocked POST ..., c'est normal) ; refuse de cliquer sur les boutons de soumission de formulaire ; rejette les URL non http(s) ou internes.
  6. Ne pas modifier record.mjs pour contourner les protections. Si une page nécessite une connexion, s'arrêter et demander à Josh.

Installé

  • Playwright (bibliothèque Node) 1.64.0 : installé dans node_modules/ (Apache-2.0)
  • Playwright CLI @playwright/cli 0.1.22 : commande globale playwright-cli (~/.local/bin, Apache-2.0). La session par défaut est un profil en mémoire, peut être utilisée temporairement pour voir des pages et faire des captures d'écran ; ne pas ajouter --persistent, --profile, attach --extension.
  • Chromium : npx playwright install chromium (~/.cache/ms-playwright/chromium-1248, chromium_headless_shell-1248)
  • @playwright/mcp n'est pas installé (CLI + ce script suffisent, Microsoft recommande également CLI pour les agents).

Utilisation

cd <SKILLS_DIR>/screen-record
node record.mjs spec.json                 # Sortie dans spec.out
node record.mjs spec.json --out /path/x.mp4
./contact_sheet.sh x.mp4 x_sheet.jpg 4 3  # Mosaïque 4x3 de miniatures, visualisable avec Read

Exemple : examples/playwright-mcp.json (vidéo de test : <VOTRE_ESPACE_DE_TRAVAIL>/media-team/03-drafts/screen-record-test/test.mp4, 19,8 secondes, 4,1 Mo).

spec.json

{
  "url": "https://github.com/microsoft/playwright-mcp",
  "out": "<VOTRE_ESPACE_DE_TRAVAIL>/media-team/03-drafts/<sujet>/work/screen/clip01.mp4",
  "viewport": {"width": 720, "height": 1280},
  "outSize": {"width": 1080, "height": 1920},
  "hide": [".cookie-banner"],
  "steps": [
    {"action": "chapter", "title": "Playwright MCP", "description": "github.com/microsoft/playwright-mcp", "ms": 2200},
    {"action": "scroll", "by": 500, "ms": 2000},
    {"action": "scroll", "role": "heading", "name": "Key Features", "ms": 2000},
    {"action": "highlight", "role": "heading", "name": "Key Features", "label": "Key Features", "ms": 2500},
    {"action": "hover", "text": "Getting started"},
    {"action": "click", "text": "Apache-2.0 license"},
    {"action": "goto", "url": "https://playwright.dev"},
    {"action": "wait", "ms": 1000}
  ]
}
  • Pour trouver un élément, trois possibilités : selector (CSS), role + name (le plus fiable), text (on peut ajouter exact).
  • scroll : by pixels, ou utiliser to / role / text pour faire défiler jusqu'à un élément (offset par défaut à 25% du haut), ms durée du défilement (avec easing).
  • highlight : cadre jaune + étiquette optionnelle, supprimé après ms.
  • chapter : carte de chapitre native Playwright (fond flou + titre).
  • click, hover : incluent les showActions natifs Playwright : curseur animé + contour de la cible + description de l'action ("showActions": false peut être utilisé pour désactiver).
  • Autres options : fps (défaut 30), crf (défaut 23), mobile (simulation mobile), colorScheme, locale, tail, keepWebm.

Dimensions de l'écran

Le screencast Playwright enregistre en pixels CSS (le deviceScaleFactor n'affecte pas la vidéo), donc :

  • Par défaut, enregistrement en 720x1280, puis agrandi à 1080x1920 avec lanczos : mise en page comme un grand téléphone, texte assez grand, qualité légèrement adoucie mais suffisante pour un Reel.
  • Pour une netteté maximale : "viewport": {"width":1080,"height":1920} (mise en page ordinateur, texte plus petit).
  • Pour enregistrer en mode paysage puis recadrer en portrait : "viewport": {"width":1280,"height":720}, "cropTo916": true (on peut ajouter "cropX":200 pour spécifier le point de départ du recadrage), la sortie reste 1080x1920, mais seule une bande centrale est conservée, généralement moins bon que d'utiliser un viewport portrait directement.

Intégration dans le montage final

  • stock-footage-reel : dans le fichier shots.json, pour ce plan, écrire : "pick": {"source":"file","path":"/abs/clip01.mp4","license":"Screen recording of <site>","author":"<propriétaire du site>"}
  • OpenMontage (via openmontage-house) : l'ajouter comme clip local dans la liste des sources, ou comme source d'enregistrement pour le flux screen-demo.
  • Les règles habituelles s'appliquent : portrait 1080x1920, voix off Sarah Explains, sous-titres principaux en chinois traditionnel + petits sous-titres en anglais, couverture Vox, vidéo IG finale de 45 Mo maximum.
  • Ajouter une entrée dans credits.json : {"source":"screen-record","credit":"Screen recording of <site>","url":"<URL>","recorded":"YYYY-MM-DD"} ; le crédit de fin indique "Screen recording of ".
  • Il s'agit de sites web tiers : utiliser uniquement à des fins de présentation / commentaire. Ne pas enregistrer de données personnelles, messages privés ou contenu payant.

Individual skills in this repo

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

bounce12340/josh-video-skills

「名人訪談/演講片段」直式 Reel(Fox Hsiao 式「解說穿插原聲」):配音依語言選聲(中文用「<YOUR_VOICE_NAME>」<YOUR_ELEVENLABS_VOICE_ID>;英文用 Sarah Explains)+繁中主字幕的解說段落,中間穿插 15 到 30 秒的名人原聲片段(16:9 置中、上下模糊底、「原聲 姓名|場合|日期」出處標籤、左上「影片/原頻道」),結尾拋問題給觀眾。一份 JSON spec 一路做到成片、720p 預覽、聯絡表、credits.json、封面。觸發語:「名人訪談」、「演講片段」、「訪談 Reel」、「Fox 式」、「解說加原聲」、「interview reel」。

bounce12340/josh-video-skills

收到「做一支影片/Reel」時先用:判斷影片類型、轉給對應的影片 skill,套用共用本家規則並交給事實編輯。只做草稿,不發文。

bounce12340/josh-video-skills

用 OpenMontage(開源 AI 影片製作流水線,<SKILLS_DIR>/OpenMontage)做 Josh 的影片時的「本家規則」轉接層。適用:長片剪成多支短片(clip-factory)、真實螢幕錄製教學(screen-demo)、翻譯配音(localization-dub)、Podcast 轉影片(podcast-repurpose)、「照這支參考影片做」(reference video 分析)、無旁白紀錄片蒙太奇(documentary-montage),以及幫 stock-footage-reel 加抓 NASA/國會圖書館/NARA/Archive.org 老片。觸發語:「用 OpenMontage」、「長片切短片」、「照這支 Reel 做」、「翻譯配音」、「螢幕教學影片」。

bounce12340/josh-video-skills

「真實素材剪輯」直式短影音(AYi @ayi_ainotes 那種紀錄片風):照口播稿每一句,自動搜尋並下載免費可商用素材(Pexels、Mixkit Free、Wikimedia Commons),加上洋紅調的 1950 到 70 年代 Prelinger 公有領域老片,硬切剪輯,燒上雙語字幕(繁中+英文,重點字金色),左上固定標題,ElevenLabs 配音,暗色合成器配樂,片尾金句卡加出處小字,再用 B 剪報 Vox 樣板出封面。觸發語:「做一支真實素材剪輯」、「stock footage reel」、「AYi 風格」、「素材庫剪輯」。

Skills associés