A fast, free Pinterest image, video and GIF downloader built with Next.js 14, TypeScript and Tailwind CSS.
- Download Pinterest images in HD (up to original resolution)
- Download Pinterest videos as MP4
- Supports GIFs and story/idea pins (multi-page)
- Works with both full URLs (
pinterest.com/pin/...) and short links (pin.it/...) - No login, no watermark, no rate limits (self-hosted)
- Streaming proxy download — forces "save as" instead of opening the image
- Next.js 14 (App Router) + React 18
- TypeScript
- Tailwind CSS
- lucide-react icons
- Pinterest extraction via public widget API + HTML fallback (no auth needed)
npm install
npm run devOpen http://localhost:3000.
npm run build
npm startOne-click deploy to Vercel (recommended) — Node runtime is required for the fetch/download routes.
app/
api/fetch/route.ts # POST — extracts media from a Pinterest URL
api/download/route.ts # GET — streams media as an attachment
page.tsx # Landing page
layout.tsx
components/
Downloader.tsx # Main UI (input, preview, download buttons)
Header.tsx, Footer.tsx
lib/
pinterest.ts # Scraper — widget API + HTML fallbacks
This project scrapes publicly available Pinterest pages. Pinterest's HTML structure can change — if extraction breaks, update the JSON script selectors in lib/pinterest.ts.
Not affiliated with Pinterest, Inc.