Pinterest Video & Image Downloader avatar

Pinterest Video & Image Downloader

Pricing

Pay per usage

Go to Apify Store
Pinterest Video & Image Downloader

Pinterest Video & Image Downloader

Download Pinterest pins - videos with sound as MP4 (not HLS), original-size images and idea-pin pages - from pin and pin.it links, plus title and author.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

BotVerse

BotVerse

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Share

Download Pinterest pins - videos with sound as MP4 (not HLS), original-size images and idea-pin pages - from pin and pin.it links, plus title and author.

Why this one

  • Videos as a plain MP4 with sound, not an HLS playlist
  • Images at original size
  • Idea pins: every page, in order
  • You only pay for links that work. Private, deleted and invalid links are returned with a clear error code and are not charged.
  • Automatic retries with a fresh proxy session when the platform rate-limits.

How to use it

  1. Paste one or more links into Post links.
  2. Click Start.
  3. Download the results as JSON, CSV or Excel - or call the Actor from your code through the API tab.
  • pinterest.com/pin/... (any country domain)
  • pin.it/... short links

Input example

{
"urls": [
"https://www.pinterest.com/pin/664281013778109217/",
"https://www.pinterest.com/pin/1084663891475263837/"
]
}

Output example

One dataset item per link (a real result; long lists and links are shortened here - a real result holds every item of the post, up to 20, with full links):

{
"inputUrl": "https://www.pinterest.com/pin/664281013778109217/",
"success": true,
"platform": "pinterest",
"id": "664281013778109217",
"title": "Origami",
"caption": "عالـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــی بـــــــــــــــــــــــــــــــــ...",
"author": "thandisibanda1984",
"duration": null,
"thumbnail": null,
"sourceUrl": "https://www.pinterest.com/pin/664281013778109217/",
"mediaCount": 1,
"media": [
{
"type": "video",
"url": "https://v1.pinimg.com/videos/mc/720p/12/83/f0/1283f06c1c8fa040011cd7231f33f069.mp4",
"width": 1080,
"height": 1920,
"ext": "mp4",
"has_audio": true,
"quality": "hd"
}
],
"tookMs": 14455,
"attempts": 1,
"fetchedAt": "2026-10-07T22:15:56+00:00"
}

media[] lists every video and photo in post order. Videos come with their sound; has_audio: false means the original post itself is silent. When a platform keeps picture and sound apart, the item has audio_url and needs_merge: true - turn on Save the files and you get one joined MP4. Turn on Save the files to also get files[] - public links to the files in the run's storage. Saved files are kept for your Apify plan's data-retention period (7 days on the free plan): download them, or copy them to a named storage, to keep them longer.

A summary of the run (links, succeeded, failed, invalid) is saved as the OUTPUT record of the key-value store.

Use it from your code

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("botverse/pinterest-video-image-downloader").call(run_input={"urls": ["https://www.pinterest.com/pin/664281013778109217/"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["success"], [m["url"] for m in item.get("media", [])])

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('botverse/pinterest-video-image-downloader').call({ urls: ["https://www.pinterest.com/pin/664281013778109217/"] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

One HTTP call that waits and returns the results:

curl -X POST "https://api.apify.com/v2/acts/botverse~pinterest-video-image-downloader/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" -d '{"urls": ["https://www.pinterest.com/pin/664281013778109217/"]}'

Use cases

  • Save your own posts and campaign videos for your archive or for re-editing
  • Add a "save this video" feature to your app or bot without building scrapers
  • Collect public media for research, moderation or trend analysis
  • Move content between platforms (only where you hold the rights)

Errors

A link that cannot be downloaded returns "success": false and an error:

codemeaning
PRIVATEprivate account, or the post needs a login
NOT_FOUNDthe post was deleted or never existed
NO_MEDIAthe post has no video or photo
BLOCKEDthe platform blocks this post for the network or country
RATE_LIMITEDthe platform is limiting requests - retried automatically, then reported
TIMEOUTthe platform answered too slowly
TOO_LARGEthe file is over 200 MB (links-only mode has no size limit)
COST_LIMIT / RUN_TIMEOUTthe run's maximum cost or time limit was reached before this link - not processed
INVALID_URLnot a supported post link

Failed links are not charged.

Pricing

Pay per result: $2.00 per 1,000 successful links ($0.0020 each), all-inclusive - no extra compute, proxy or storage charges. Failed links are free.

LinksYou pay
100$0.20
1,000$2.00
10,000$20.00

Proxy

The default is Apify's residential proxy, used only for the sites that need it (Instagram, TikTok and Facebook block ordinary addresses). Its cost is included in the price - you pay nothing extra. Other sites are fetched directly and use the proxy only as a retry.

FAQ

Do I need an account or cookies? No. Only public posts are supported.

How fast is it? Usually 2-6 seconds per link; several links run in parallel (Links at the same time).

Is it legal? It downloads public content the same way a browser shows it. Use the media in line with the platform's terms and the creator's copyright.

Something does not work? Open an issue on the Issues tab with the link - we answer quickly.