How to archive TikTok and Pinterest videos at scale
Key Takeaways
Can I bulk download TikTok videos without a watermark tool for each one? Yes. The TikTok Video Downloader takes a list of TikTok video URLs, including vt.tiktok.com and vm.tiktok.com short links, downloads each as MP4, and returns a download link per video.
Can TikTok videos be saved straight to my own cloud storage?
Yes. Set storageType to aws, gcp, azure, or digitalocean and add your bucket credentials. The default is Apify's own key-value store.
What does the Pinterest Video Downloader return? For each public pin, the best-quality video or image URL, all media variants (including the HLS stream and 720p MP4), title, description, pinner, board, and engagement counts such as saves, comments, and video views.
Am I charged when a TikTok download fails?
No. Only succeeded downloads are charged. Failed downloads, invalid URLs, private or deleted posts, photo-mode slideshows, and duplicates are free.
Why teams archive short-form video
TikTok (ByteDance short-video app) and Pinterest (visual discovery platform) host much of the short-form video that brands, agencies, and researchers need to keep. Common reasons:
| Team | Why they archive TikTok or Pinterest videos |
|---|---|
| Brands and agencies | Keep copies of their own posts and creator deliverables |
| Influencer marketers | Proof of delivery for sponsored posts before they can be deleted |
| Creative strategists | An internal reference library of ad and UGC formats |
| Researchers and journalists | Preserve public posts as evidence, with metadata |
| AI and data teams | Build video datasets for transcription or classification |
Posts on both platforms get deleted, made private, or edited. A video that is a link in a spreadsheet today can be gone next month. Archiving keeps the file plus the metadata that proves where it came from.
Is it legal to download TikTok and Pinterest videos? Downloading a public video is technically simple, but the video remains its creator's copyrighted work. Archiving your own content, licensed creator deliverables, or material for internal research is common practice. Republishing someone else's video without permission is not. Check the platform terms and your local copyright rules.
How to bulk download TikTok videos
The TikTok Video Downloader takes a list of URLs in any common TikTok format:
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("parsebird/tiktok-video-downloader").call(run_input={
"startUrls": [
"https://www.tiktok.com/@example/video/7120985110991604993",
"https://vt.tiktok.com/ZSDHmaujt/",
],
"region": "US",
"storageType": "apify",
})
videos = client.dataset(run["defaultDatasetId"]).list_items().items
Each input URL produces exactly one row with a status, so you can always reconcile the output against your list:
status | Meaning | Charged |
|---|---|---|
succeeded | MP4 saved, downloadUrl is set | Yes |
failed | Download or upload failed, see error | No |
invalidUrl | Not a TikTok post, or an expired short link | No |
unavailable | Post deleted or private | No |
noVideoContent | Photo-mode slideshow with no video | No |
timedOut | Run ended before this video was reached | No |
A succeeded row also includes postId, authorUsername, durationSeconds, width, height, fileSizeBytes, and downloadedAt.
Why does the region setting matter for TikTok downloads?
TikTok serves videos from regional CDNs. Setting region to a two-letter country code downloads through an IP in that country, which helps with videos that are only served or only fast in certain locations.
Saving TikTok videos to S3, Google Cloud, Azure, or DigitalOcean
For archives that need to live in your own infrastructure, the downloader can upload each MP4 directly to your bucket:
{
"startUrls": ["https://www.tiktok.com/@example/video/7120985110991604993"],
"storageType": "aws",
"s3AccessKeyId": "AKIA...",
"s3SecretAccessKey": "...",
"s3Region": "us-east-1",
"s3Bucket": "brand-video-archive",
"s3Path": "tiktok/2026-10/"
}
Use an access key scoped to that one bucket and path. Google Cloud (googleCloudServiceKeyJson), Azure (azureAccountKey), and DigitalOcean Spaces (with a private or public-read ACL) follow the same pattern. The Apify docs on input secrets explain how credentials in actor input are encrypted.
The actor can also send each result to Notion, Todoist, and other apps through Apify MCP connectors with outputConnector, which is useful for a review queue.
How to download Pinterest videos and images in bulk
The Pinterest Video Downloader takes pin URLs from any Pinterest domain, pin.it short links, or bare numeric pin IDs. Boards, profiles, and search pages are skipped.
run = client.actor("parsebird/pinterest-video-downloader").call(run_input={
"pinterestTargets": [
"https://www.pinterest.com/pin/39617671718303098/",
"https://pin.it/example",
],
"maxItems": 200,
"mediaType": "videos",
"rehostMediaToKvStore": True,
})
By default the actor returns links to Pinterest's own media files. With rehostMediaToKvStore on, it also saves the best file for each pin to the run's storage and adds downloadUrl, fileSizeBytes, and storageKey, which is what you want for a real archive, since Pinterest CDN links are not guaranteed to stay valid.
A trimmed, illustrative row:
{
"pinId": "39617671718303098",
"mediaType": "video",
"bestMediaUrl": "https://v1.pinimg.com/videos/mc/720p/.../example.mp4",
"video": { "width": 1080, "height": 1920, "durationSeconds": 8.2, "quality": "720p", "format": "mp4" },
"pinner": { "username": "example", "followerCount": 169 },
"board": { "name": "hair ideas", "pinCount": 895 },
"engagement": { "saves": 1240, "comments": 3, "repins": 1240, "videoViews": 18000 }
}
Can I download Pinterest images too, or only videos?
Both. Set mediaType to both, videos, or images. For image pins, images lists every resolution Pinterest offers. ParseBird also has a dedicated Pinterest Image Downloader for image-only metadata.
TikTok and Pinterest downloader pricing
| Actor | Charge | Approximate price (free plan, at time of writing) |
|---|---|---|
| TikTok Video Downloader | Per successful video | $2.99 per 1,000 videos |
| Pinterest Video Downloader | Per pin returned | $2.29 per 1,000 pins |
| Pinterest Video Downloader | Per MB saved (only with rehosting on) | $4.99 per 1,000 MB |
Paid Apify plans get lower rates. Check each actor page for current pricing.
Building a video archive workflow
A practical end-to-end archive for a brand or agency:
- Collect URLs from a sheet of creator deliverables, or from discovery scrapers such as the TikTok Top Ads Scraper or Pinterest Search Scraper.
- Download with the actors above, writing to your own bucket under a dated path.
- Store metadata (post ID, author, duration, download date, source URL) in a database next to the file key.
- Transcribe if needed. The pipeline in how to turn YouTube videos into text works for any MP4.
- Schedule a weekly run with Apify schedules for new deliverables.
FAQ
Does the TikTok downloader work with TikTok photo slideshows?
Photo-mode posts have no video, so they return status: "noVideoContent" and are not charged. The cover image URL is still included.
What happens if I submit the same TikTok URL twice? Duplicates are detected and not charged a second time.
Can I download a whole Pinterest board? Not directly. The Pinterest Video Downloader only accepts pin URLs. Collect a board's pin URLs first with a Pinterest scraper, then pass them in.
Do I need a TikTok or Pinterest account? No. Both actors work with public posts and need no login.
Browse the Videos category and the Social Media category for more download tools.