TikTok Playlists and Collections via API: Curation Mining

Published on May 29, 2026

Why Playlists and Collections Are the Most Underused TikTok Signals

Most TikTok analytics work happens at two altitudes: the single video (views, likes, completion) and the creator account (follower count, total hearts, post cadence). Between those two layers sits an organizational stratum that almost nobody mines: playlists (TikTok internally calls them "mixes") and collections (the user's saved-video folders). These are the closest thing TikTok ships to explicit, human-authored taxonomy. A creator who groups twelve videos under "Studio Build Diary" or saves forty clips into a collection called "Espresso Setups" has done labelling work that no embedding model will reproduce for free.

The TikLiveAPI service exposes four endpoints that turn this curation layer into queryable data: /user-playlists/, /playlist-posts/, /user-collections/, and /collection-posts/. This article is written for two audiences in parallel: content strategists who want to find topical white space, and recommendation engineers who want stronger candidate-generation signals than raw watch logs. We will cover the response shapes, seven concrete recipes, the limits you will hit in practice, and a focused FAQ.

If you are new to the platform, you can grab 100 free credits by registering and verifying your email on the pricing page, then try the calls live in the playground. Full reference is at the documentation root, and the user-scoped endpoints are grouped under documentation/users/.

The Four Endpoints at a Glance

All four endpoints take an X-Api-Key header. Two of them are seeded by a TikTok numeric user id (which you can resolve from a handle via /userid/), and two are seeded by a playlist or collection id you obtained from the first pair. The base URL is https://api.tikliveapi.com.

List a user's playlists

GET https://api.tikliveapi.com/user-playlists/?userid=107955&count=20&cursor=0
X-Api-Key: YOUR_KEY

The top key is mix_list (because TikTok still calls playlists "mixes" internally). Each entry carries a mix id, a title, a cover image, and a count of how many videos the playlist contains. Pagination is cursor-based.

List a playlist's videos

GET https://api.tikliveapi.com/playlist-posts/?playlist_id=7012345678901234567&count=30&cursor=0
X-Api-Key: YOUR_KEY

Maximum 30 items per page in the playlist category (35 in the posts category alias). Returns the standard video objects with aweme_id, video_id, play_count, digg_count, and the author block. Pair with /post-detail/ when you need watermark-free play/hdplay links for any single item.

List a user's collections

GET https://api.tikliveapi.com/user-collections/?userid=107955&count=20&cursor=0
X-Api-Key: YOUR_KEY

The top key is collection_list. Each entry has a collection id, a name, an item count, and a cover. Collections are the user's saved-video folders, not their own uploads, so this surface is fundamentally different from playlists: it reflects taste, not output.

List a collection's videos

GET https://api.tikliveapi.com/collection-posts/?collection_id=7100000000000000000&count=30&cursor=0
X-Api-Key: YOUR_KEY

Returns the saved videos with the standard fields. Authorship across the returned items will be heterogeneous (different creators), which is what makes collections so valuable as a similarity-graph signal.

One important distinction

Playlists are self-authored curation of own uploads: a creator slicing their own catalog into themed runs. Collections are cross-creator taste signals: the user saved videos from across TikTok into a named bucket. These two streams answer different questions. Confusing them is the most common mistake in this corner of the API.

Recipe 1: Building a Curation Profile

A curation profile compresses a creator's entire playlist surface into a small object you can store, diff, and compare. The pipeline:

  1. Resolve the handle to a userid via /userid/.
  2. Page /user-playlists/ until hasMore is false, collecting every mix_list entry.
  3. For each playlist, page /playlist-posts/ and capture aweme_id, play_count, digg_count, and the post timestamp.
  4. Reduce to: playlist count, average playlist size, median per-video views inside vs outside playlists, top-3 playlist titles ranked by aggregate play_count.
import requests

H = {"X-Api-Key": "YOUR_KEY"}
BASE = "https://api.tikliveapi.com"

def all_playlists(userid):
    out, cursor = [], 0
    while True:
        r = requests.get(f"{BASE}/user-playlists/",
                         params={"userid": userid, "count": 20, "cursor": cursor},
                         headers=H, timeout=20).json()
        out.extend(r.get("mix_list", []))
        if not r.get("hasMore"): break
        cursor = r.get("cursor", 0)
    return out

The most actionable number this surfaces is the playlist lift ratio: median views of videos that appear in a playlist divided by median views of videos that do not. Creators with a lift ratio above 1.5 are getting real distribution benefit from grouping their work and should keep building playlists. A ratio near 1.0 means the playlist apparatus is decorative for them and other strategies should be prioritized.

Recipe 2: Longitudinal Interest Tracking

Collections are the closest thing TikTok has to a user-declared interest history. Because /user-collections/ returns names and item counts, you can snapshot a target account weekly and watch which buckets grow.

Schema for a single snapshot row:

{
  "userid": "107955",
  "snapshot_at": "2026-05-29",
  "collections": [
    {"id": "7100...", "name": "Espresso Setups", "count": 47},
    {"id": "7101...", "name": "Knife Sharpening", "count": 12}
  ]
}

Week over week, compute three quantities per collection: delta in item count (velocity), share-of-total (focus), and rank change (priority shift). A creator whose "Knife Sharpening" collection jumps from 12 to 31 items in three weeks while "Espresso Setups" stays flat is signalling a topical pivot weeks before it shows up in their public uploads. For audience-research firms tracking influencers, this is a leading indicator nobody else is consuming.

Recipe 3: Surfacing Hidden Niches

Most niche discovery starts from hashtags or search keywords. Both are noisy: a single trending tag drags in unrelated content, and search is biased toward the algorithm's current obsessions. Collections cut through this. A collection named "POV Kitchen Storytelling" is a hand-curated cluster of videos that one human believes belong together. The intersection of many such collections is a niche map.

Pipeline: pick a seed creator in your target vertical, pull their collections via /user-collections/, then for every video in those collections expand the author. Now run /user-collections/ on those authors. After two or three hops you have a graph where edges are "this author appears inside that author's collection." Run a community-detection pass (Louvain works fine) and the dense clusters that are not labelled by any obvious hashtag are your hidden niches.

This recipe is especially powerful in non-English markets where hashtag conventions are weaker but collection naming remains descriptive.

Recipe 4: Playlist Similarity for Recommendations

For recommendation engineers, playlists are a gift: they are human-defined positive sets. Treat each playlist as a transaction in a market-basket model, where the items are aweme_id values pulled from /playlist-posts/. Two videos that co-occur in many playlists across many creators are similar in a way that watch-time co-occurrence cannot capture, because playlist co-occurrence is intentional.

Concrete metric: compute Jaccard similarity between any two videos based on the set of playlists they appear in. A weighted variant uses inverse playlist size (large playlists carry less signal per pair) and inverse creator overlap (penalize pairs that only co-occur because the same creator put them together). Feed the resulting item-item similarity matrix into your candidate generator alongside your existing embedding-based recall. In our internal tests on a 50,000-playlist sample this lifted recall@50 by 6 to 9 percent for tail items.

from collections import defaultdict

video_to_playlists = defaultdict(set)
for pl in playlists:
    for v in pl["videos"]:
        video_to_playlists[v["aweme_id"]].add(pl["id"])

def jaccard(a, b):
    A, B = video_to_playlists[a], video_to_playlists[b]
    if not A or not B: return 0.0
    return len(A & B) / len(A | B)

Recipe 5: Recommendation Seed Sets from Collections

If you are building a TikTok-style "More like this" surface inside your own product, collections give you ready-made positive bags. For a target user, fetch their /user-collections/, take the top-K most recently updated collections, expand each via /collection-posts/, and use the resulting video set as the positive seed for nearest-neighbour retrieval against your full catalog.

Why this works better than "videos the user liked": likes on TikTok are noisy and reactive, while saving to a named collection is deliberate. The intent signal is several times stronger. Engineers we have spoken to report that mixing collection-seeded retrieval with like-seeded retrieval at a 70/30 weight beats either signal alone.

One caveat: collections are sparse. Most users have either zero collections or fewer than five. Build your retrieval to fall back gracefully when a user has no collection signal.

Recipe 6: Mood-Board Pipeline for Creative Teams

Creative agencies and in-house brand teams routinely assemble mood boards before pitching campaigns. The traditional process is one researcher scrolling TikTok for half a day and screenshotting. A playlist-driven pipeline replaces that with a reproducible job.

  1. Define the brief as a list of seed creators (3 to 8 accounts whose aesthetic fits the campaign).
  2. Pull every playlist for each seed via /user-playlists/ then /playlist-posts/.
  3. Filter to playlists whose titles match a keyword vocabulary the strategist provides.
  4. For each surviving video, call /post-detail/ to get the watermark-free play link and the cover frame.
  5. Group the covers in a contact sheet, ordered by playlist of origin so the structural logic of each curator is preserved.

The output looks like a mood board but with provenance: every tile traces back to a named playlist on a named creator, which makes the document defensible in client review meetings in a way that a screenshot grid never is.

Recipe 7: Snapshot Diffs for Drift Detection

Both mix_list and collection_list are stable enough to checkpoint. Store a hash per playlist or collection (concatenate sorted aweme_ids, hash with SHA-1, truncate). When the hash changes between snapshots, you have a drift event. The interesting drift dimensions:

  • Additions: new videos that joined the playlist. These often indicate the creator is doubling down on a theme.
  • Removals: videos that left. On TikTok, removal usually means the underlying video was deleted or set to private rather than the creator ungrouping it, so a removal stream doubles as a delete-detection signal.
  • Reorders: the sequence changed even though the set did not. Reorders are rare but meaningful when they happen, since they suggest the creator is grooming the playlist for new viewers.

Drift detection at the collection level on an audience of, say, a hundred fashion influencers gives a brand intelligence team a daily feed of "what these tastemakers are paying attention to right now," which is exactly the input a forecasting team needs.

Practical Limitations

The curation endpoints are powerful but they are not magic. The honest list:

  • Collections are private by default for most users. A non-trivial fraction of accounts have zero publicly visible collections. Plan for empty responses and design retrieval to degrade gracefully.
  • Page caps are real. /playlist-posts/ returns at most 30 items per page in the playlist category (35 in posts). Long playlists need cursor iteration; budget the credit cost up front.
  • Each request is one credit. Mapping a creator with 20 playlists of 100 videos each costs roughly 20 (playlist listing) plus 80 (paginated video fetches across all playlists). Under 1 request = 1 credit pricing this is predictable, but it adds up across a large creator panel.
  • Playlist titles are user input. Expect emojis, foreign-language strings, and ambiguous abbreviations. Normalize aggressively before any keyword-based filtering.
  • "Liked" videos are not collections. If you want public likes use /user-liked/ instead. Likes and collections live in different surfaces and answer different questions.
  • Stale items. A playlist may reference an aweme_id whose underlying video has since been deleted. Always check the /post-detail/ response shape before assuming the item is alive.
  • No write access. The API is strictly read-only. You cannot create, edit, or sort playlists on a creator's behalf.

Putting It Together: A Realistic Workflow

For a content strategist building a quarterly competitive report, the end-to-end flow looks like this:

  1. Define a panel of 30 creators in the target vertical.
  2. Snapshot all their playlists and collections weekly (about 30 to 60 requests per creator per week, depending on depth).
  3. Run recipes 1, 2, and 7 to produce a curation-profile table, a weekly interest-velocity chart, and a drift feed.
  4. Once a month, run recipe 3 over the cumulative graph to surface emerging niches and add the most promising new creators to the panel.

For a recommendation engineer integrating playlist signal into an existing model:

  1. Sample 10,000 to 50,000 playlists across your seed creator set.
  2. Materialize the video-to-playlist inverted index from recipe 4.
  3. Add playlist-Jaccard as a retrieval channel feeding into your existing candidate ranker.
  4. A/B test against a control without the new channel; expect modest but consistent recall gains in the long tail.

FAQ

What is the difference between a TikTok playlist and a collection?

A playlist (returned by /user-playlists/ under the mix_list key) groups a creator's own uploads into a themed run. A collection (returned by /user-collections/ under the collection_list key) is the user's private-style folder of saved videos from across TikTok. Playlists describe output; collections describe taste.

Why is the playlist key called mix_list?

TikTok's internal name for the playlist feature is "mixes." The endpoint preserves that naming so it stays compatible with TikTok's wire format. Treat mix_list and "playlist list" as synonymous in your data model.

How many items can I fetch per playlist page?

/playlist-posts/ returns up to 30 items per page in the playlist category (35 in the posts category alias). Use the cursor field returned in the response to fetch the next page until hasMore is false.

Can I fetch a playlist if I only have its public URL?

Not directly. /playlist-posts/ takes a playlist_id. You typically discover playlist ids by calling /user-playlists/ on the owning creator first. If you have a video URL, you can call /post-detail/ and the response will include the parent mix id when one exists.

Do collections include the owner's own videos?

They can, but in practice they overwhelmingly contain videos saved from other creators. This is exactly what makes collections a strong cross-creator taste signal.

What does each request cost?

One credit per request, with no per-endpoint surcharge. Pagination costs one credit per page. There are no monthly commitments and credits do not expire. See pricing for current rates.

How do I authenticate?

Send your API key in the X-Api-Key request header. The proxy will also accept Authorization: Bearer YOUR_KEY, but X-Api-Key is the canonical header.

Where do I see all the parameters and example responses?

The user-scoped endpoints (including playlists and collections) are documented under documentation/users/, and you can run each one against your account in the playground before committing them to code.

Can I write or modify playlists through the API?

No. The service is strictly read-only by design. All four curation endpoints return data; none of them mutate state on TikTok.

What is the single highest-ROI use of these endpoints?

For most teams, longitudinal collection tracking (recipe 2) returns more strategic value per credit than any other recipe. It surfaces taste shifts before they are visible in uploads, which is exactly the kind of leading indicator that justifies an analytics budget.

Build with the TikTok API

Ready to put what you read into code? Try our endpoints live or grab the full reference.

Open Playground Read Documentation