TikTok Playlist Scraper avatar

TikTok Playlist Scraper

Pricing

from $2.70 / 1,000 playlist videos

Go to Apify Store
TikTok Playlist Scraper

TikTok Playlist Scraper

Collect public TikTok playlist details and videos from playlist or collection IDs, canonical URLs, collection share URLs, account handles, or profile URLs. Get playlist names, counts, creator details, video order, engagement, and available media links in a structured dataset.

Pricing

from $2.70 / 1,000 playlist videos

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

3 days ago

Last modified

Share

🎵 Turn TikTok playlists into structured data

For content researchers, creator teams, and developers, this Actor collects public TikTok playlist details and video rows. Review playlist names, counts, creator details, video order, engagement, available media links, and collection times in one dataset.

Use cases

📚 See playlist details and videos

Each run writes playlist rows, video rows, or both to the default dataset. Use recordType to tell the two row shapes apart. TikTok may leave optional fields out when the public source does not provide them.

▶️ Run a TikTok playlist snapshot

Run steps

  1. Choose whether to return playlist metadata, playlist videos, or both.
  2. Choose Playlist IDs or URLs to read direct playlist targets, including collection share URLs, or choose Profile handles or URLs to find public playlists from accounts.
  3. Add one or more values to the matching target list. The list for the other search method is ignored.
  4. Set an optional limit for playlists found per account or videos returned per playlist. Leave maxPlaylistsPerAccount empty to return all available public playlists until the source is exhausted. Leave maxVideosPerPlaylist empty to return all available public videos until the source is exhausted.
  5. Start the run and open the dataset link in the Output panel.

Availability can differ from one run to another. Private, deleted, or otherwise unavailable TikTok content is outside the product. The Actor reads public source data without a TikTok login or cookies.

⚙️ Input

Input fields

FieldTypeWhat it does
resultTypestringChooses playlist metadata rows, playlist video rows, or both.
discoveryMethodstringChooses direct playlist IDs or URLs, or public account handles or profile URLs whose playlists should be found.
playlistTargetsarray of stringsAdds one or more public playlist or collection IDs, canonical playlist URLs, or collection share URLs that resolve to a public collection. Use this list with discoveryMethod: "playlistTargets".
profileTargetsarray of stringsAdds one or more public TikTok account handles or profile URLs. Use this list with discoveryMethod: "profileTargets".
maxPlaylistsPerAccountintegerOptional cap for playlists found from each selected profile. Leave it empty to return all available public playlists until the source is exhausted.
maxVideosPerPlaylistintegerOptional cap for videos returned from each selected playlist. It applies to Playlist videos and Playlist metadata and videos. Leave it empty to return all available public videos until the source is exhausted.

Result choices

resultType accepts playlistMetadata, playlistVideos, or playlistMetadataAndVideos. discoveryMethod accepts playlistTargets or profileTargets. Use one discovery method per run.

Example input

This is the public input from a successful run with one playlist target:

{
"resultType": "playlistVideos",
"discoveryMethod": "playlistTargets",
"playlistTargets": [
"7516638364301265695"
],
"maxVideosPerPlaylist": 1
}

🧾 Output

The Output panel provides a link to the default dataset. A run can contain playlist rows, video rows, or both. The tables below list every field in each public row shape. Required playlist and video page links are included, while optional source data appears when TikTok provides it.

Run output field

FieldTypeWhat it does
datasetUrlstringLink to the default dataset that holds the rows returned by the run.

Playlist record fields

FieldTypeWhat it does
recordTypestringIdentifies this row as a playlist row.
playlistIdstringStable TikTok ID of the playlist or collection.
namestringName shown for the playlist on TikTok.
videoCountintegerNumber of videos in the playlist reported by TikTok.
coverImageUrlstringSource URL for the playlist cover image.
playlistUrlstringPublic TikTok URL for the playlist.
creatorobjectTikTok account that owns the playlist.
creator.idstringStable TikTok ID of the playlist creator.
creator.handlestringPublic TikTok handle of the playlist creator.
creator.displayNamestringDisplay name of the playlist creator.
creator.profileUrlstringPublic TikTok profile URL of the playlist creator.
creator.followersCountintegerCreator follower count reported by TikTok.
creator.followingCountintegerNumber of accounts followed by the creator.
creator.likesCountintegerCreator likes reported by TikTok.
creator.videoCountintegerCreator video count reported by TikTok.
collectedAtstringTime when the playlist row was collected.

Example playlist row

This complete playlist row came from a successful current-beta run:

{
"recordType": "playlist",
"playlistId": "7516638364301265695",
"name": "In The Mix",
"videoCount": 24,
"coverImageUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/oMr6rAA6QCIh5zBgE2FEAqDfIoAjTeAQIifXqO~tplv-tiktokx-origin.image?dr=9636&x-expires=1790168400&x-signature=x9CWL3Qzj%2Fyl%2BxNJXJ1HdNDeEwE%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast8",
"playlistUrl": "https://www.tiktok.com/@tiktok/playlist/In-The-Mix-7516638364301265695",
"creator": {
"id": "107955",
"handle": "tiktok",
"profileUrl": "https://www.tiktok.com/@tiktok",
"displayName": "TikTok",
"followersCount": 95900000,
"followingCount": 1,
"likesCount": 464500000,
"videoCount": 1504
},
"collectedAt": "2026-09-23T07:44:32.457Z"
}

Playlist video record fields

FieldTypeWhat it does
recordTypestringIdentifies this row as a video row.
playlistIdstringStable TikTok ID of the playlist that contains the video.
playlistUrlstringPublic TikTok URL for the playlist that contains the video.
playlistNamestringName of the playlist that contains the video.
positionintegerPosition of the video in the playlist as provided by TikTok.
videoIdstringStable TikTok ID of the video.
videoUrlstringPublic TikTok page URL for the video.
captionstringCaption published with the video.
publishedAtstringTime when the video was published on TikTok.
engagementobjectEngagement counts reported by TikTok for the video.
engagement.viewsintegerVideo views reported by TikTok.
engagement.likesintegerVideo likes reported by TikTok.
engagement.commentsintegerVideo comments reported by TikTok.
engagement.sharesintegerVideo shares reported by TikTok.
engagement.savesintegerVideo saves reported by TikTok.
creatorobjectTikTok account that published the video.
creator.idstringStable TikTok ID of the video creator.
creator.handlestringPublic TikTok handle of the video creator.
creator.displayNamestringDisplay name of the video creator.
creator.profileUrlstringPublic TikTok profile URL of the video creator.
creator.followersCountintegerCreator follower count reported by TikTok.
creator.followingCountintegerNumber of accounts followed by the creator.
creator.likesCountintegerCreator likes reported by TikTok.
creator.videoCountintegerCreator video count reported by TikTok.
musicobjectSound details when TikTok provides them.
music.idstringStable TikTok ID of the sound.
music.titlestringSound title on TikTok.
music.authorNamestringSound author name on TikTok.
music.urlstringPublic TikTok URL for the sound.
mediaobjectVideo file details and source links when TikTok provides them.
media.durationSecondsnumberVideo duration in seconds.
media.widthintegerVideo width in pixels.
media.heightintegerVideo height in pixels.
media.qualitystringMedia quality label supplied by TikTok.
media.coverImageUrlstringSource URL for the video's cover image.
media.downloadUrlstringDirect source URL for the video file. It may expire.
captionLanguagestringLanguage code supplied for the video caption.
hashtagsarray of stringsHashtags found in the video caption.
mentionsarray of stringsTikTok handles mentioned in the video caption.
imagesarray of objectsImages in a video slideshow when TikTok provides them.
images[].urlstringSource URL for a slideshow image.
images[].widthintegerSlideshow image width in pixels.
images[].heightintegerSlideshow image height in pixels.
collectedAtstringTime when the video row was collected.

Example playlist video row

This complete video row came from a successful current-beta run. The signed media links are source links and may expire:

{
"recordType": "video",
"playlistId": "7154034669288196891",
"playlistUrl": "https://www.tiktok.com/@aubreyisamess/collection/places%20to%20go-7154034669288196891",
"playlistName": "places to go",
"position": 1,
"videoId": "7247660728914742574",
"videoUrl": "https://www.tiktok.com/@winstonbutterfield/video/7247660728914742574",
"collectedAt": "2026-09-23T07:44:32.926Z",
"caption": "🇵🇹 Tinned fish in Portugal. What began as a simple food, turned into an affordable delicacy. 🫒 This is one of the last remaining places where you can get handmade tinned fish, using the highest quality local ingredients like olive oil from the south of Portugal, piri piri pepper, fresh lemon and spices. 🐙 I learned that fish with a high oil/fat content, make the best tinned fish, and you’ll find many other kinds of tinned fish here like sea bass, salmon, tuna and mackerel. 🐟The method for making tinned fish was first invented in France. Sardines in Portugal used to be plentiful and easy to catch. So by the mid 20th century, 300 sardine canneries opened along the coast of Portugal. They were built close to the water so the fish could could be tinned the same day the fishermen brought them in. This was before refrigeration. But what makes tinned fish taste so good? Cooking Before canning, sardines are typically steamed or smoked. This step enhances the natural flavor of the sardines, which is retained during the canning process. Preservation Sardines are often preserved in flavorful liquids like oils, sauces, or brine. Over time, the sardines absorb these flavors, making them even more delicious. Aging Tinned fish improves with age. As they mature, the flavors meld together, and the fish becomes more tender. These sardines are from the Conserveira de Lisboa, in Lisbon Portugal #tinnedfish #tinfish #lisbon #authenticity #sardines #93years #portugal #frozenintime",
"publishedAt": "2023-06-22T23:45:27.000Z",
"engagement": {
"views": 5800000,
"likes": 630400,
"comments": 3427,
"shares": 56800,
"saves": 99500
},
"creator": {
"id": "6812284503333291014",
"handle": "winstonbutterfield",
"profileUrl": "https://www.tiktok.com/@winstonbutterfield",
"displayName": "Winston Butterfield",
"followersCount": 171000,
"followingCount": 472,
"likesCount": 6200000,
"videoCount": 176
},
"music": {
"id": "7247660774062066474",
"url": "https://www.tiktok.com/music/sound-7247660774062066474",
"title": "original sound",
"authorName": "Winston Butterfield"
},
"media": {
"durationSeconds": 110,
"width": 576,
"height": 1024,
"quality": "540p",
"coverImageUrl": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/12a0f6cb0fa1469288cc298761b7ac3d~tplv-tiktokx-origin.image?dr=9636&x-expires=1790319600&x-signature=UQEPElfg9WN4zHTddzDx%2BZQ36ek%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"downloadUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/tos-useast5-ve-0068c004-tx/oo0ySQzXIBAhX2MzNCAwU3Tf6mUMhq74XDuIp3/?a=1988&bti=ODszNWYuMDE6&&bt=1735&ft=aEeq8qT0mIoPD12iHp2I3wUtwmAbMeF~O5&mime_type=video_mp4&rc=NWk4aTk5OGloNDg5NWk6ZkBpM3U8Z2Y6ZjlnbDMzZzczNEAuMDJhNmMtXl4xYzI2Ly01YSNpYzRrcjQwbF5gLS1kMS9zcw%3D%3D&expire=1790322381&l=202609230744327EC4A0628A46FD10DA44&ply_type=2&policy=2&signature=dd8c9c690d58db02768643132f725934&tk=tt_chain_token&btag=e00090000"
},
"captionLanguage": "en",
"hashtags": [
"tinnedfish",
"tinfish",
"lisbon",
"authenticity",
"sardines",
"93years",
"portugal",
"frozenintime"
]
}

💳 Pricing

The Actor uses pay-per-event pricing. The Store page shows the price for each event and buyer tier.

EventWhen it is charged
Playlist DetailsOne public playlist's details are saved.
Playlist VideoOne public video from a selected playlist is saved.

🔌 Integrations

Dataset access

Open the dataset link in the Output panel to review the saved rows or use them in your workflow. Use playlistUrl and videoUrl to trace rows back to public TikTok pages. Signed media links may expire, so use them soon after the run.

Video guide

❓ FAQ

Yes. Source download and cover links can expire. Use playlistUrl and videoUrl as links to the public TikTok pages.

What does position mean?

It is the video's position in the playlist as provided by TikTok.

What if TikTok does not provide a field?

Optional fields can be absent when TikTok does not show that value. The Actor does not invent missing public-source data.

What happens when a playlist has no accessible public videos?

Only accessible public videos can produce video rows. Private, deleted, or unavailable videos are outside the product, and optional values stay absent when TikTok does not provide them.

Can I submit more than one playlist target?

Yes. Add multiple playlist or collection IDs, canonical playlist URLs, or collection share URLs to playlistTargets, with one value for each playlist.

Can I submit more than one profile target?

Yes. Add multiple public account handles or profile URLs to profileTargets, with one value for each account.

Can I combine playlist targets and profile targets in one run?

No. Choose one discovery method per run. The fields for the other method are ignored. Use a separate run when you need the other target type.

Which result type should I choose?

Choose playlistMetadata for playlist names, counts, links, and creator details. Choose playlistVideos for video rows and their playlist positions. Choose playlistMetadataAndVideos for both shapes in one run.

Can this Actor show me how to create a playlist on TikTok?

No. It reads existing public TikTok playlists. To collect one, submit its playlist or collection ID or URL.

Do I need a TikTok login or cookies?

No. The Actor reads public TikTok data without a TikTok login or cookies.

Do the limits have a fixed maximum?

The input schema does not set an upper bound for either limit. Leave maxPlaylistsPerAccount empty to return all available public playlists until the source is exhausted. Leave maxVideosPerPlaylist empty to return all available public videos until the source is exhausted.

📝 Changelog

v0.1 (23-09-2026)

  • Collect playlist videos from TikTok short and share URLs that resolve to public collections.

v0.0

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré