NodeJS CLI tool for downloading Pinterest media such as images and videos using web scraping methods.
- Command-line interface (CLI) for easy usage
- Support for downloading both images and videos
- Metadata extraction and caching
- Progress tracking with visual feedback
- Organized output structure by username
- Support for bulk downloads from user profiles
- Configurable verbose logging
| Feature | Description |
|---|---|
| Image Download | Download high-quality images from Pinterest |
| Video Download | Download videos in 720p quality |
| User Profiles | Download all media from a user's profile |
| Metadata Cache | Save and reuse metadata for faster downloads |
| Progress Bar | Visual progress tracking for downloads |
| Organized Output | Files organized by username and media type |
git clone https://github.com/motebaya/pinterest-js
cd pinterest-js
npm install$ node cli
usage: cli.js [-h] [-u] [-p] [-t] [-c] [-m] [-o] [-V]
Pinterest CLI downloader
© Copyright: @github.com/motebaya - 2025
optional arguments:
-h, --help show this help message and exit
-u, --username pinterest username
-p, --pin pinterest post url or id
-t, --type type of media to download, default: image. (image, video)
-c, --cache using metadata from cache, <username> or <pinId> if exists
-m, --metadata save metadata to <output>/<id>/metadata.json
-o, --overwrite overwrite existing files
additional:
-V, --verbose verbose output to console-u,--username: Pinterest username to download from-p,--pin: Pinterest post URL or ID to download-t,--type: Media type to download (image or video)-c,--cache: Use cached metadata for faster downloads-m,--metadata: Save metadata alongside downloaded files-o,--overwrite: Overwrite existing files-V,--verbose: Enable detailed console output
Note
Downloaded media will be saved in the pinterest-downloader-output directory, organized by username and media type.
Metadata files are stored in a separate metadata subdirectory for each user.
pinterest-downloader-output/
├── @username/
│ ├── images/
│ │ ├── metadata/
│ │ │ └── [pinId].json
│ │ └── [image files]
│ └── videos/
│ ├── metadata/
│ │ └── [pinId].json
│ └── [video files]
- axios: HTTP client for making requests
- cli-progress: Progress bar visualization
- winston: Logging
- argparse: Command-line argument parsing
This project is licensed under the MIT License.