{"id":21473197,"url":"https://github.com/johan-perso/screenshothtml","last_synced_at":"2026-05-19T17:11:33.514Z","repository":{"id":165320048,"uuid":"484502445","full_name":"johan-perso/screenshothtml","owner":"johan-perso","description":"Screenshot HTML code, from your NodeJS Code","archived":false,"fork":false,"pushed_at":"2023-09-09T14:00:12.000Z","size":50,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T07:25:46.447Z","etag":null,"topics":["puppeteer","scrapping-nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johan-perso.png","metadata":{"files":{"readme":"README.fr.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-22T16:33:37.000Z","updated_at":"2022-07-25T23:43:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"f86ce16d-3c7a-46de-b1f0-9f37489357a2","html_url":"https://github.com/johan-perso/screenshothtml","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/johan-perso/screenshothtml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan-perso%2Fscreenshothtml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan-perso%2Fscreenshothtml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan-perso%2Fscreenshothtml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan-perso%2Fscreenshothtml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johan-perso","download_url":"https://codeload.github.com/johan-perso/screenshothtml/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johan-perso%2Fscreenshothtml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33225418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T15:49:41.270Z","status":"ssl_error","status_checked_at":"2026-05-19T15:49:22.917Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["puppeteer","scrapping-nodejs"],"created_at":"2024-11-23T10:15:22.474Z","updated_at":"2026-05-19T17:11:33.484Z","avatar_url":"https://github.com/johan-perso.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"###### English version [here](https://github.com/johan-perso/screenshothtml/blob/main/README.md).\n\n# ScreenshotHTML\n\nScreenshotHTML permet de faire des captures d'écran d'un code HTML, en utilisant [Puppeteer](https://github.com/puppeteer/puppeteer) (un navigateur basé sur Chromium).\n\n⚠️ Aucune fenêtre de navigateur Puppeteer ne seront visibles en tant qu'application avec interface sur votre appareil.\n\n\n## Installation\n\nNodeJS 14 *(ou plus récent)* est requis.\n\n```bash\n# Avec npm\nnpm i screenshothtml\n\n# Ou avec yarn\nyarn add screenshothtml\n\n# Ou avec pnpm\npnpm i screenshothtml\n```\n\nCette librairie ne supporte pas les navigateurs, vous pouvez utiliser [html2canvas](https://html2canvas.hertzen.com/) et [canvas2image](https://github.com/hongru/canvas2image) pour obtenir un résultat similaire.\n\n\n## Options\n\n```js\nvar image = await screenshot({ \u003cles options\u003e })\n```\n\n| Option             | Type    | Exemple                 | Description                                                                         |\n|--------------------|---------|-------------------------|-------------------------------------------------------------------------------------|\n| html               | string  | `\u003ch1\u003eHello world!\u003c/h1\u003e` | Code HTML à capturer                                                                |\n| maxTimeout         | int     | `15000                ` | Temps maximum (en ms) à attendre avant que la page finisse de charger               |\n| viewportWidth      | int     | `1600                 ` | Largeur du viewport                                                                 |\n| viewportHeight     | int     | `900                  ` | Hauteur du viewport                                                                 |\n| autoCloseAfter     | int     | `100000               ` | Modifie le temps (en ms) requis avant de fermer le navigateur après une capture     |\n| puppeteerArguments | object  | `{headless: false}    ` | Indique des arguments à la [librarie Puppeteer](https://github.com/puppeteer/puppeteer/blob/v13.7.0/docs/api.md#puppeteerlaunchoptions)     |\n| waitForDomLoaded   | boolean | `false                ` | Attend que le DOM finisse de charger avant de prendre une capture, [plus d'infos ici](#options-waitfordomloaded) |\n\n\n## APIs\n\n```js\nconst screenshot = require('screenshothtml')\n```\n\n**Principale :**\n\n`screenshot()`\n\nEffectue une capture d'écran, élement principale de la librairie.\n\n[Options disponibles ici](#options).\n\n\n**Fermer le navigateur :**\n\n`await screenshot.close()`\n\nFerme le navigateur manuellement.\n\n\n**Accéder au navigateur :**\n\n`screenshot.browser`\n\nRetourne le navigateur Puppeteer, tel qu'il est utilisé.\n\n\n**Dernière capture d'écran :**\n\n`screenshot.browserLastUse`\n\nRetourne la date correspondant à la dernière capture d'écran.\n\n\n**Arguments Puppeteer :**\n\n`screenshot.puppeteerArgs`\n\nRetourne la liste des arguments passé à Chromium lors de son démarrage, à ne pas confondre avec l'option `puppeteerArguments` qu'est différente.\n\n\n**Version de ScreenshotHTML :**\n\n`screenshot.version`\n\nRetourne la version utilisée de ScreenshotHTML.\n\n\n## Exemple\n\nVous pouvez retrouver des exemple dans le dossier `example` du repo.\n\n\n## Vitesse\n\nLorsque la variable d'environnement `SCREENSHOTHTML_SHOW_STATISTICS` est définie, des statistiques de vitesses sont affichés dans le terminal.\n\n\u003e Quelques résultats sur les exemples présents dans ce repo, réalisé sur [mon ordinateur](https://consumer.huawei.com/fr/laptops/matebook-d-15/) (pas vraiment dans les meilleurs moments).\n\nAvec l'option `waitForDomLoaded` sur `false` :\n* browserOpen: ~330ms\n* pageOpen: ~115ms\n* gotoPage: ~990ms\n* screenshot: ~310ms\n* closePage: ~3ms\n\nAvec l'option `waitForDomLoaded` sur `true` :\n* browserOpen: ~220ms\n* pageOpen: ~120ms\n* gotoPage: ~20ms\n* screenshot: ~480ms\n* closePage: ~4ms\n\n\n## Charger une URL plutôt que du code\n\nAu lieu d'insérer du code HTML, vous pouvez charger une URL en remplacant le code par `url:\u003cl'url du site\u003e`. Ceci fonctionne également avec localhost.\n\n\n## Fermeture du navigateur\n\nAprès une capture, le navigateur est automatiquement fermé après 60 secondes, le temps peut être modifié avec l'option `autoCloseAfter` (tout nombre négatif annule la fermeture automatique, et `0` ferme sans attendre).\n\nLe navigateur peut aussi être fermé manuellement avec `close()`.\n\n\n## Options `waitForDomLoaded`\n\nL'option `waitForDomLoaded` (boolean) permet de décider si le navigateur doit attendre que le DOM soit chargé avant de prendre une capture. Si la valeur est défini sur `false` (ou n'est pas défini), le navigateur utilisera `networkidle0`. Lorsque l'option est activé (`true`), les captures d'écrans sont plus rapides, mais l'importation de certains élements et l'exécutions de certains scripts peuvent être annulés, cela peut être pratique lors d'un chargement de page ne contenant qu'un simple code HTML.\n\n\n## Licence\n\nMIT © [Johan](https://johanstick.fr)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohan-perso%2Fscreenshothtml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohan-perso%2Fscreenshothtml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohan-perso%2Fscreenshothtml/lists"}