{"id":15285274,"url":"https://github.com/yarnaimo/vanilla-clipper","last_synced_at":"2025-05-07T12:24:53.718Z","repository":{"id":56491621,"uuid":"146829600","full_name":"yarnaimo/vanilla-clipper","owner":"yarnaimo","description":"📃 Webページをそのままの状態でアーカイブするツール","archived":false,"fork":false,"pushed_at":"2020-11-04T10:03:45.000Z","size":787,"stargazers_count":163,"open_issues_count":4,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-31T10:03:54.815Z","etag":null,"topics":["nodejs","puppeteer"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/yarnaimo.png","metadata":{"files":{"readme":"README.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}},"created_at":"2018-08-31T02:12:47.000Z","updated_at":"2024-03-15T03:50:24.000Z","dependencies_parsed_at":"2022-08-15T19:50:11.689Z","dependency_job_id":null,"html_url":"https://github.com/yarnaimo/vanilla-clipper","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yarnaimo%2Fvanilla-clipper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yarnaimo%2Fvanilla-clipper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yarnaimo%2Fvanilla-clipper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yarnaimo%2Fvanilla-clipper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yarnaimo","download_url":"https://codeload.github.com/yarnaimo/vanilla-clipper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252458876,"owners_count":21751124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["nodejs","puppeteer"],"created_at":"2024-09-30T15:04:00.152Z","updated_at":"2025-05-07T12:24:53.695Z","avatar_url":"https://github.com/yarnaimo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📃 Vanilla Clipper\n\n![](https://img.shields.io/npm/v/vanilla-clipper.svg?style=for-the-badge)\n![](https://img.shields.io/bundlephobia/minzip/vanilla-clipper.svg?style=for-the-badge)\n\n[日本語 (Qiita)](https://qiita.com/yarnaimo/items/66f3b71077d15a22699d)\n\nVanilla Clipper is a Node.js library to _completely_ save a webpage to local with Puppeteer. You can save all the contents in the page such as **images, videos, CSS, web fonts, iframes, and Shadow DOMs** with one command.\n\n## Dependencies\n\n-   Node.js (\u003e= 8.10)\n-   Chrome or Chromium (Latest version)\n\n## Installation\n\n```sh\nyarn global add vanilla-clipper\n# or\nnpm i -g vanilla-clipper\n```\n\n## Usage\n\n### CLI\n\nNote: If it fails to launch, try adding `--no-sandbox` (`-n`) option.\n\n-   Save https://example.com:\n\n    ```sh\n    vanilla-clipper https://example.com\n    ```\n\n-   Save `.timeline` element in https://example.com to `tech` directory (Set browser language to Japanese):\n\n    ```sh\n    vanilla-clipper -d tech -s .timeline -l ja-JP https://example.com\n    ```\n\n-   Login with `sub` account in the config file:\n\n    ```sh\n    vanilla-clipper -a sub https://example.com\n    ```\n\nSee [here](/src/bin/clip.ts) for details of the options.\n\n## 📂 Directory structure in ~/.vanilla-clipper\n\n```\n📂 .vanilla-clipper\n   📂 pages\n      📂 main\n         📃 20190213-page1.html\n         ︙\n      📂 {SOME_FOLDER}\n         📃 20190213-page2.html\n         📃 20190214-page3.html\n         ︙\n\n   📂 resources\n      📂 20190213\n         📎 {ulid}.jpg\n         📎 {ulid}.svg\n         ︙\n      📂 20190214\n         📎 {ulid}.woff2\n         ︙\n\n   💎 resources.json\n   💎 config.json\n```\n\n## ⚙️ Config file example\n\n{YOUR_HOME_DIRECTORY}/.vanilla-clipper/config.js\n\n```js\nmodule.exports = {\n    resource: { maxSize: 50 * 1024 * 1024 },\n    sites: [\n        {\n            url: 'example.com', // site URL\n            accounts: {\n                default: {\n                    // ↑ account label\n                    username: 'main', // or () =\u003e 'main'\n                    password: 'password1',\n                },\n                sub: {\n                    // ↑ account label\n                    username: 'sub_account',\n                    password: 'password2',\n                },\n            },\n            login: [\n                // [action, arg1, arg2, ...]\n                [\n                    'goto',\n                    'https://example.com/login', // URL\n                ],\n                [\n                    'input',\n                    'input[name=\"session[username_or_email]\"]', // selector\n                    '$username', // -\u003e accounts.{ACCOUNT_LABEL}.username\n                ],\n                [\n                    'input',\n                    'input[name=\"session[password]\"]', // selector\n                    '$password', // -\u003e accounts.{ACCOUNT_LABEL}.password\n                ],\n                [\n                    'submit',\n                    '[role=button]', // selector\n                ],\n            ],\n        },\n    ],\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyarnaimo%2Fvanilla-clipper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyarnaimo%2Fvanilla-clipper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyarnaimo%2Fvanilla-clipper/lists"}