TikTok Slideshow Downloader avatar

TikTok Slideshow Downloader

Pricing

from $2.49 / 1,000 tiktok slideshow photos

Go to Apify Store
TikTok Slideshow Downloader

TikTok Slideshow Downloader

Download TikTok slideshow photos from photo-post links, short links, or post IDs. Saves every image as a file with a direct download link, plus caption, author, stats, and sound details.

Pricing

from $2.49 / 1,000 tiktok slideshow photos

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Categories

Share

TikTok Slideshow Downloader

TikTok Slideshow Downloader saves every photo from public TikTok slideshow (photo mode) posts as image files, each with a direct download link and the post's caption, author, engagement counts, and sound details.

Paste up to 500 TikTok photo-post links, short-share links, or post IDs and get one row per photo with a ready-to-use download link, image size and dimensions, custom file names, and 20+ post and sound fields.

ParseBird TikTok Suite   •  Video, story, LIVE & shop data
TikTok Slideshow Downloader
You are here
TikTok Story Viewer
Active stories, no-watermark video
TikTok Live Search Scraper
LIVE rooms by keyword
TikTok Shop Reviews Scraper
Product reviews and ratings

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Use Apify Actor parsebird/tiktok-slideshow-downloader to download all photos from public TikTok slideshow (photo mode) posts. Example with ApifyClient (Python): client.actor("parsebird/tiktok-slideshow-downloader").call(run_input={"slideshowUrls":[{"url":"https://www.tiktok.com/@anamiriamyepez/photo/7498924643227536645"}],"maxItems":3,"fileNamePattern":"{postId}-photo-{photoIndex}.{extension}"}). Inputs: slideshowUrls array of {url, userData?} objects, required, 1-500 items, url accepts a TikTok photo-post link, vm.tiktok.com / vt.tiktok.com / tiktok.com/t/ short link, or numeric post ID, userData is optional custom JSON copied to every photo row; maxItems integer optional, total photo limit, empty = all photos; fileNamePattern string optional default "{postId}-photo-{photoIndex}.{extension}" (1-200 chars). Output: one dataset row per saved photo with inputIndex, requestedUrl, sourceUrl, videoId, authorUsername, authorName, caption, photoIndex, photoCount, fileName, contentType, fileSizeBytes, imageWidth, imageHeight, sourceImageUrl, userData, post{playCount,likeCount,commentCount,shareCount,collectCount}, audio{id,title,authorName,original,durationSeconds}, downloadUrl (direct Apify key-value store link to the saved image). Video posts, private posts, and deleted posts are skipped and logged. API docs: https://docs.apify.com/api/client/python/ and https://docs.apify.com/api/client/js/. Token: https://console.apify.com/account/integrations.

What is TikTok Slideshow Downloader?

TikTok Slideshow Downloader is a TikTok photo downloader for slideshow posts, also called TikTok photo mode or carousel posts. Give it a link such as https://www.tiktok.com/@anamiriamyepez/photo/7498924643227536645 and it downloads every image in the slideshow, stores each one as a file in Apify storage, and returns a direct download link for each photo together with the post's public metadata.

It works as a lightweight TikTok slideshow API alternative: no TikTok account, no login, and no TikTok API key needed. The easiest way to try it is to open the actor, keep the prefilled link, and click Start.

What can TikTok Slideshow Downloader do?

  • 🖼️ Download every slideshow photo as a real image file, not just a link that expires later.
  • 🔗 Accept any link format: full /photo/ links, vm.tiktok.com / vt.tiktok.com / tiktok.com/t/ short-share links, m.tiktok.com/v/{id}.html links, and plain numeric post IDs.
  • 📦 Process up to 500 posts per run with a total photo limit (maxItems) to control cost.
  • 🏷️ Name files your way with {postId}, {photoIndex}, and {extension} placeholders.
  • 📊 Add post context to each photo: caption, author, views, likes, comments, shares, saves, and the post's sound.
  • 🧩 Attach your own data (userData) to any link and get it back on every photo row from that post.
  • ⏱️ Schedule runs with Apify schedules, call it from the Apify API, and connect it to integrations such as Make, Zapier, Google Drive, and webhooks.
  • 📁 Export the photo list as JSON, CSV, Excel, HTML, or XML from the dataset.

What data can you extract from TikTok slideshows?

FieldDescription
downloadUrlDirect link to the saved image in the run's Apify key-value store
fileNameStored file name, built from your fileNamePattern
contentTypeImage media type, for example image/jpeg
fileSizeBytesSaved image size in bytes
imageWidth / imageHeightImage dimensions in pixels, read from the saved file
photoIndex / photoCountPosition of the photo in the slideshow and total photos in the post
videoIdTikTok post ID
sourceUrlCanonical public TikTok photo-post link
authorUsername / authorNameCreator handle and display name
captionPost caption including hashtags
post.playCount, post.likeCount, post.commentCount, post.shareCount, post.collectCountPublic view, like, comment, share, and save counts
audio.id, audio.title, audio.authorName, audio.original, audio.durationSecondsSound used in the slideshow
sourceImageUrlOriginal TikTok CDN image link (a signed link that expires, kept for reference)
inputIndex / requestedUrl / userDataWhich input the photo came from, and your custom data

How to download TikTok slideshow photos

  1. Open TikTok Slideshow Downloader and click Try for free or Start.
  2. In TikTok slideshow links, add one {"url": "..."} item per post. The url can be a photo-post link, a short-share link, or a numeric post ID.
  3. Optionally set Max photos to cap the total number of photos saved in the run. Leave it empty to download every photo.
  4. Optionally change File name pattern, for example {postId}_{photoIndex}.{extension}.
  5. Click Start and wait for the run to finish. Small runs take a few seconds.
  6. Open the Output tab and click any downloadUrl to open the image, or export the list as JSON, CSV, or Excel.
  7. To get all files at once, open the run's Storage → Key-value store tab, or fetch the files through the key-value store API.

Input parameters

ParameterTypeRequiredDefaultDescription
slideshowUrlsarray of objectsYes—1 to 500 items. Each item has url (photo-post link, short-share link, or numeric post ID) and optional userData (any JSON object). Plain strings are also accepted.
slideshowUrls[].urlstringYes—The TikTok reference to process.
slideshowUrls[].userDataobjectNo—Custom data copied to every photo row from this reference.
maxItemsintegerNoempty (all photos)Total number of photos to save across all posts. The form pre-fills 3 for a quick test.
fileNamePatternstringNo{postId}-photo-{photoIndex}.{extension}Stored file name. Supports {postId}, {photoIndex}, {extension}. 1–200 characters. Characters other than A-Z a-z 0-9 ! - _ . ' ( ) become _.
proxyConfigurationobjectNono proxyOptional Apify Proxy or custom proxy settings. Not needed for normal runs.

Input / Output

Example input:

{
"slideshowUrls": [
{ "url": "https://www.tiktok.com/@anamiriamyepez/photo/7498924643227536645" },
{ "url": "7553302113757990166", "userData": { "campaign": "hull-city" } }
],
"maxItems": 3,
"fileNamePattern": "{postId}-photo-{photoIndex}.{extension}"
}

Example output (one row per saved photo):

{
"inputIndex": 0,
"requestedUrl": "https://www.tiktok.com/@anamiriamyepez/photo/7498924643227536645",
"sourceUrl": "https://www.tiktok.com/@anamiriamyepez/photo/7498924643227536645",
"videoId": "7498924643227536645",
"authorUsername": "anamiriamyepez",
"authorName": "Ana Miriam Yepez Arreola",
"caption": "¡Podemos tener más comunicación! 📣, escanea el código QR y contáctame. 👩🏻‍⚖️⚖️ 💚 💞 🇲🇽 #MiriamYépez #Vota20 #JusticiaConRostroHumano #EleccionesJudiciales2025 🗳️",
"photoIndex": 1,
"photoCount": 3,
"fileName": "7498924643227536645-photo-1.jpg",
"contentType": "image/jpeg",
"fileSizeBytes": 90286,
"imageWidth": 1080,
"imageHeight": 1080,
"sourceImageUrl": "https://p16-common-sign.tiktokcdn.com/tos-maliva-i-photomode-us/4e11f114a249493eb708aa9977d014ca~tplv-photomode-image.jpeg?dr=14555&x-expires=1790766000&x-signature=...",
"post": {
"playCount": 10700,
"likeCount": 53,
"commentCount": 33,
"shareCount": 3,
"collectCount": 0
},
"audio": {
"id": "7210195541555169281",
"title": "Cyber Techno",
"authorName": "Ganger Baster",
"original": false,
"durationSeconds": 179
},
"downloadUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/7498924643227536645-photo-1.jpg?signature=<signature>"
}

Some fields can be null when TikTok does not publish them for a post. Download the photo list in JSON, CSV, Excel, HTML, or XML from the dataset. The image files themselves live in the run's key-value store.

Python API example

from apify_client import ApifyClient
import urllib.request
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("parsebird/tiktok-slideshow-downloader").call(run_input={
"slideshowUrls": [{"url": "https://www.tiktok.com/@anamiriamyepez/photo/7498924643227536645"}],
"fileNamePattern": "{postId}-photo-{photoIndex}.{extension}",
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
urllib.request.urlretrieve(row["downloadUrl"], row["fileName"])
print("saved", row["fileName"], row["imageWidth"], "x", row["imageHeight"])

JavaScript API example

import { ApifyClient } from 'apify-client';
import { writeFile } from 'node:fs/promises';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('parsebird/tiktok-slideshow-downloader').call({
slideshowUrls: [{ url: 'https://www.tiktok.com/@anamiriamyepez/photo/7498924643227536645' }],
maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const row of items) {
const res = await fetch(row.downloadUrl);
await writeFile(row.fileName, Buffer.from(await res.arrayBuffer()));
}

See the official Python client and JavaScript client docs for more options.

Use cases

  • Content archiving: back up your own or your brand's TikTok slideshows as original image files.
  • Creative and trend research: collect carousel designs, infographics, and photo dumps for moodboards.
  • Social media reporting: pair each photo with its view, like, comment, share, and save counts.
  • Repurposing: move slideshow images to Instagram carousels, Pinterest, or a CMS through integrations.
  • Dataset building: gather image files with captions and hashtags for labeling or analysis.
  • Monitoring: re-run on a schedule to track engagement on a fixed set of slideshow posts.

How it works

  1. The actor reads your links, resolves short-share links, and extracts the post ID.
  2. It loads the public TikTok post page and reads the slideshow photo list and post details.
  3. It downloads each photo, reads its real type, size, and dimensions, and saves it to the run's key-value store under your file name.
  4. It pushes one dataset row per photo with a direct downloadUrl, stops at your maxItems limit, and logs any skipped links with the reason.

How much does it cost to download TikTok slideshow photos?

What is the price per TikTok slideshow photo?

The actor uses pay-per-event pricing. You pay only for photos that are saved; platform usage is included.

EventFree planBronzeSilverGold
photo-downloaded$0.00399 ($3.99 / 1,000)$0.00349 ($3.49 / 1,000)$0.00299 ($2.99 / 1,000)$0.00249 ($2.49 / 1,000)

One photo-downloaded event is one photo saved and returned in the dataset. The prefilled 3-photo test costs about $0.012 on the Free plan, and 1,000 photos cost $3.99. Skipped links (videos, private or deleted posts, invalid links) are not charged. Apify's free plan includes monthly platform credits you can use to try the actor.

Is scraping TikTok photo posts legal?

This actor only accesses publicly available TikTok posts and does not log in or bypass privacy settings. Scraping public data is generally legal in many jurisdictions, but the photos themselves are usually protected by copyright and may contain personal data. Download only what you have a right to use, respect TikTok's Terms of Service and creators' rights, and consult your lawyer if unsure. Read more in Apify's guide: Is web scraping legal?

ActorBest for
Pinterest Image DownloaderImage URLs and size variants from Pinterest pins
YouTube Shorts DownloaderDownloading YouTube Shorts
YouTube Thumbnail DownloaderYouTube thumbnail images
Kick Video DownloaderKick clips and VODs
Telegram Media DownloaderMedia from public Telegram channels
Image Resizer APIResizing the downloaded photos

FAQ

What is a TikTok slideshow? A slideshow (photo mode or carousel) is a TikTok post made of several still photos that viewers swipe through, usually with a sound. Its link contains /photo/ instead of /video/.

Which link formats are supported? Full tiktok.com/@user/photo/{id} links (with or without query parameters), vm.tiktok.com, vt.tiktok.com, and tiktok.com/t/ short-share links, m.tiktok.com/v/{id}.html links, and numeric post IDs.

Can it download TikTok videos? No. Regular video posts are skipped and logged with the reason "regular video post", and you are not charged for them.

Do I need a TikTok account or API key? No. The actor only reads public posts. Private, deleted, and login-only posts are skipped.

How long do the download links work? downloadUrl points to the run's Apify key-value store, so it works as long as that storage exists under your plan's data retention. sourceImageUrl is TikTok's signed CDN link and stops working after a while, so use downloadUrl for anything you keep.

Why is there no watermark removal or upscaling? The actor saves the photos exactly as TikTok serves them and does not edit images.

What does maxItems count? Photos, not posts. With maxItems: 5 and two 16-photo slideshows, the run saves the first 5 photos and stops.

Why did a link return no photos? The run log lists every skipped link with a reason: a regular video post, a private or deleted post, an expired short link, or a link that is not from TikTok. Open the link in a browser to confirm it is a public photo post.

Can I schedule runs or use it in automations? Yes. Use schedules, the API, webhooks, or integrations like Make, Zapier, and Google Drive.

Where can I report issues or request features? Open the Issues tab on the actor page with your input and run ID. We usually reply quickly.