All posts

TikTok slideshow images: how to get photo mode posts via API

November 8, 2026

TikTok's photo mode lets creators post a swipeable set of images with a sound, often called a slideshow or carousel. They are popular for tutorials, listicles, recipes and product round-ups. Most video tools ignore them or only grab the cover. Here is how to get every image.

How to recognise a photo post

  • The URL. Photo posts often use /photo/ in place of /video/: tiktok.com/@user/photo/7351234567890123456.
  • The data. A photo post has a list of images and no real video file. The sound is still attached.
  • The stats. Plays, likes, comments, shares and saves work the same as for videos, so you can compare formats directly.

The options

ToolGood atLimit
gallery-dlFree, command line, saves filesUses your cookies; you maintain it
yt-dlpVideo downloadsBuilt for video; not a fit for image sets
A data APIImage URLs plus stats in JSONPaid per call

gallery-dl lists TikTok in its supported sites, including posts, user posts and profiles, with cookies as the authentication method source. yt-dlp lists TikTok video, user, collection and LIVE extractors source.

Script: download every image in order

import pathlib, requests

KEY = "YOUR_KEY"
url = "https://www.tiktok.com/@user/photo/7351234567890123456"

r = requests.get("https://scrapeio.com/v2/tiktok/video", params={"url": url},
                 headers={"x-api-key": KEY}, timeout=60).json()
post = r["data"]
if post["type"] != "carousel":
    raise SystemExit("not a photo post")

out = pathlib.Path(post["id"])
out.mkdir(exist_ok=True)
for i, img in enumerate(post["image_urls"], 1):
    data = requests.get(img, timeout=60).content
    (out / f"{i:02d}.jpg").write_bytes(data)
print(len(post["image_urls"]), "images,", post["plays"], "plays, sound:", (post.get("music") or {}).get("title"))

Two practical notes. Image links are CDN URLs that can stop working after some time, so download soon after you fetch them rather than storing the links. And check the file type before you name it: some images may not be JPEG.

Find photo posts at scale

To compare formats for a creator, pull their recent posts and split by type:

from statistics import median

def by_format(videos):
    groups = {}
    for v in videos:
        groups.setdefault(v["type"], []).append(v["plays"] or 0)
    return {t: {"count": len(p), "median_plays": median(p)} for t, p in groups.items()}

If carousels get higher saves per play than videos for a creator, that tells you the audience treats them as reference content. That is a useful brief for a sponsored post.

What photo posts are good for in research

  • Text on images. Run OCR on each image to read the list or tutorial text. Captions rarely repeat it.
  • Product round-ups. "5 products I repurchase" slides are direct evidence of what a creator recommends.
  • Format testing. Compare carousel and video performance by niche before you brief creators.

Respect the rights

The images belong to the creator. Downloading for analysis is one thing; reposting them is another and needs permission. Keep what you download internal, and link to the original post when you reference it.

Common questions

Is the sound included?

Yes. A photo post keeps its sound, and the post data names it like a video's. You can look up the sound itself and the other posts that use it.

Are images in the order the creator set?

The image list comes in the post's order, so number your files as you save them, as the script does.

Can I get the caption text from the images?

Not from the post data. The caption field holds the post's description only. Text drawn on the images needs OCR.

Do photo posts have transcripts?

Usually not, because there is no speech track to caption. Use the caption and OCR text instead.

When to use a downloader instead

If you only need the image files from a handful of posts for your own archive, a free command-line downloader is simpler than an API. If you need the images together with plays, likes, saves, the sound and the author for hundreds of posts, or inside an app or an agent, an API that returns JSON is less work. Many teams use both: an API to find and rank posts, a downloader for the few they keep.

How to do it with ScrapeIO

tiktok video API accepts video and photo URLs and returns type "carousel" with the full image_urls list, the sound and the stats, for 1 credit. tiktok profile videos API returns the same type field for every recent post, so you can find a creator's slideshows without opening each one.

Sources

Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.

100 free credits, no card. Credits never expire.

Get API key