TikTok Highlight Scraper
Pricing
from $2.00 / 1,000 results
TikTok Highlight Scraper
Scrape TikTok story highlights and collections from any profile. Export HD video download links, photo slides, music URLs, views, and likes into Excel, CSV, or JSON. Fast & reliable.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Sachin Kumar Yadav
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Extract and download TikTok highlight collections and posts from any user profile. Retrieve highlight titles, covers, video files (without watermark), photo slides, music URLs, author profiles, and complete engagement metrics without requiring any login credentials. Ideal for competitive analysis, creator research, social media monitoring, and automated content archiving.
Table of Contents
- Overview
- Features
- Use Cases
- How It Works: Two-Step Workflow
- Quick Start
- Input Parameters
- Output Format
- Data Fields Breakdown
- Performance & Reliability
- Best Practices
- Frequently Asked Questions (FAQ)
- Troubleshooting & Status Codes
- Related Actors
- Keywords & Tags
- Get Started
Overview
TikTok Highlights are curated collections of permanent stories and featured videos showcased on a creator's profile. Unlike standard 24-hour stories, highlights contain a creator's highest-value content, portfolio showcases, product announcements, and evergreen media.
TikTok Highlight Scraper allows you to extract this valuable content programmatically via Apify. You can discover all highlight albums created by any public TikTok username and download every video and photo post inside those highlights with complete engagement statistics and media URLs.
Features
Dual-Mode Flexibility
- Highlight List Mode - Retrieve all highlight collections, collection IDs, cover images, titles, and total post counts for target usernames.
- Highlight Posts Mode - Extract all posts (videos and photo slides) within specific highlight IDs with automatic cursor pagination.
Media & Download Access
- No-Watermark Video URLs - Direct download links for high-definition original videos without TikTok watermarks.
- Watermarked Video URLs - Backup download links including original TikTok branding.
- Multiple Cover Variants - Standard cover, AI dynamic animated cover, and origin cover URLs.
- Multi-Image Photo Slides - Full support for photo stories and carousel posts saved into highlights.
- Direct Music Audio Links - Direct URLs to sound tracks and original audio used in highlight posts.
Rich Metadata & Engagement Analytics
- Engagement Metrics - Play count (views), digg count (likes), comment count, share count, download count, and collection/bookmark count.
- Author Information - User ID, username, nickname, and profile avatar URL.
- Commerce & Ad Flags - Identification of sponsored content, ad campaigns, and branded content types.
- Timestamps - Unix epoch time and human-readable ISO-8601 creation timestamps.
Scalable & Frictionless
- No Login or Cookies Required - Works out-of-the-box without user accounts, session cookies, or proxy configurations.
- Batch Processing - Accepts multiple usernames or highlight IDs in a single run.
- Streaming Dataset Push - Flushes data in batches of 10 items directly to your Apify dataset to prevent memory bloat.
Use Cases
| Use Case | Description | Primary Benefit |
|---|---|---|
| Competitive Intelligence | Track competitor highlight collections and featured campaigns | Benchmark product positioning, promotions, and evergreen content strategies |
| Influencer & Creator Research | Evaluate creator portfolios and highlight engagement | Identify high-performing influencers for brand partnerships and sponsorships |
| Brand Monitoring | Monitor brand ambassador highlights and tagged collections | Track multi-month campaign reach, retention, and branding quality |
| Content Archiving & Backup | Backup high-value evergreen video collections and photo stories | Preserve viral content libraries before accounts modify or delete them |
| Social Media Analytics | Analyze engagement ratios across curated highlights vs feed posts | Measure audience retention on saved vs ephemeral story formats |
| Agency Client Reporting | Gather comprehensive highlight data for brand audits | Generate detailed social media performance decks and client reports |
| Trend & Sound Discovery | Extract music URLs and audio assets from curated highlights | Uncover persistent audio trends used across top creators' evergreen posts |
| E-commerce & Ad Intelligence | Track featured product highlights and commerce promotions | Monitor how direct-to-consumer (DTC) brands structure product collections |
How It Works: Two-Step Workflow
To achieve maximum flexibility and cost efficiency, this scraper provides a clean two-step workflow:
-
Step 1: Discover Highlights (
highlight_list)- Provide target TikTok usernames in
uniqueIds. - The actor fetches all highlight albums for each profile.
- The output includes the
highlight_id,title,cover, andpost_countfor each highlight.
- Provide target TikTok usernames in
-
Step 2: Scrape Posts (
highlight_posts)- Take the
highlight_idvalues discovered in Step 1. - Set the mode to
highlight_postsand provide the IDs inhighlightIds. - The actor automatically paginates through all posts inside each collection and extracts the complete video, photo, author, and engagement data.
- Take the
Quick Start
Example 1: Discover Highlights for a User (Highlight List Mode)
{"mode": "highlight_list","uniqueIds": ["keenyakelly"]}
Example 2: Discover Highlights for Multiple Users in Batch
{"mode": "highlight_list","uniqueIds": ["keenyakelly", "hbomax", "charlidamelio"]}
Example 3: Extract All Posts from Specific Highlight IDs (Highlight Posts Mode)
{"mode": "highlight_posts","highlightIds": ["8368167949", "7249182371"],"postsPerPage": 10}
Input Parameters
Configuration Options
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mode | String | Yes | "highlight_list" | Scraping mode: "highlight_list" to discover highlight collections, or "highlight_posts" to scrape posts within highlights. |
uniqueIds | Array of Strings | Required for highlight_list | ["keenyakelly"] | List of TikTok usernames (unique_id) to inspect. Supports @ prefix or clean usernames. Max 50 usernames per run. |
highlightIds | Array of Strings | Required for highlight_posts | ["8368167949"] | List of Highlight IDs to scrape posts from. Obtained from highlight_list mode. Max 100 IDs per run. |
postsPerPage | Integer | No | 10 | Number of posts fetched per API pagination request in highlight_posts mode (min: 1, max: 30). |
Output Format
Mode 1: Highlight List Output
When running in highlight_list mode, each record in your Apify dataset represents a single highlight collection discovered on a user's profile:
{"source": "tiktok","unique_id": "keenyakelly","highlight_id": "8368167949","title": "Challenge","cover": "https://p16-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/...","post_count": 2}
Mode 2: Highlight Posts Output
When running in highlight_posts mode, each record represents an individual video or photo post stored inside the target highlight collection:
Video Post Output Sample
{"source": "tiktok","type": "video","highlight_id": "8368167949","aweme_id": "v12044gd0000d93si8fog65la5sl8g20","video_id": "7658310975350689037","region": "US","title": "Day 3 Challenge Recap","cover_url": "https://p16-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/cover.jpeg","dynamic_cover_url": "https://p16-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/dynamic.webp","origin_cover_url": "https://p16-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/origin.jpeg","video_url": "https://v16m.tiktokcdn.com/video/tos/useast5/...","video_url_watermark": "https://v16m.tiktokcdn.com/video/tos/useast5/wm...","duration": 45,"size": 9344397,"watermark_size": 8830450,"music_url": "https://sf16-ies-music-va.tiktokcdn.com/music/...","create_time": 1783089514,"create_time_date": "2026-07-02T14:38:34.000Z","is_ad": false,"is_story": true,"is_top": 0,"engagement": {"play_count": 12540,"digg_count": 842,"comment_count": 36,"share_count": 14,"download_count": 5,"collect_count": 78},"author_info": {"id": "6766438596478239750","unique_id": "keenyakelly","nickname": "Keenya Kelly","avatar_url": "https://p16-sign-va.tiktokcdn.com/avatar.jpeg"},"commerce_info": {"adv_promotable": false,"auction_ad_invited": false,"branded_content_type": 0}}
Photo Post Output Sample
When a post is a photo or photo carousel, type is set to "photo" and an images array with direct high-resolution image links is provided:
{"source": "tiktok","type": "photo","highlight_id": "8368167949","aweme_id": "v12044gd0000d93si8fog65la5sl8g21","video_id": "7658310975350689038","region": "US","title": "Photo Highlights","cover_url": "https://p16-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/photo_cover.jpeg","images": ["https://p16-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/slide1.jpeg","https://p16-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/slide2.jpeg"],"create_time": 1783089600,"create_time_date": "2026-07-02T14:40:00.000Z","engagement": {"play_count": 4200,"digg_count": 210,"comment_count": 8,"share_count": 2,"download_count": 0,"collect_count": 15},"author_info": {"id": "6766438596478239750","unique_id": "keenyakelly","nickname": "Keenya Kelly","avatar_url": "https://p16-sign-va.tiktokcdn.com/avatar.jpeg"}}
Data Fields Breakdown
Highlight Collection Metadata (highlight_list mode)
| Field | Type | Description |
|---|---|---|
source | String | Data source identifier ("tiktok"). |
unique_id | String | TikTok username that owns the highlight. |
highlight_id | String | Unique identifier of the highlight album. Use this in highlight_posts mode. |
title | String | Name/title of the highlight collection (e.g., "FAQ", "Vlog", "Products"). |
cover | String | Direct URL to the cover thumbnail image of the highlight collection. |
post_count | Integer | Total number of posts grouped inside this highlight collection. |
Post Media & Technical Information (highlight_posts mode)
| Field | Type | Description |
|---|---|---|
type | String | Media type: "video" or "photo". |
highlight_id | String | Parent highlight collection ID. |
aweme_id | String | Internal TikTok Aweme unique identifier. |
video_id | String | TikTok video ID. |
region | String | Country/region code where the media was registered (e.g., "US"). |
title | String | Caption or title of the post. |
video_url | String | Direct download URL for the original video without watermark. |
video_url_watermark | String | Download URL for the video including TikTok watermark branding. |
images | Array | Array of direct image URLs for photo carousel posts. |
cover_url | String | Standard static cover image URL. |
dynamic_cover_url | String | AI dynamic animated cover image URL. |
origin_cover_url | String | Original source cover image URL. |
duration | Integer | Video duration in seconds. |
size | Integer | File size of the non-watermarked video in bytes. |
watermark_size | Integer | File size of the watermarked video in bytes. |
music_url | String | Direct URL to the accompanying audio/music track. |
create_time | Integer | Timestamp in seconds (Unix epoch). |
create_time_date | String | Formatted ISO-8601 creation timestamp. |
is_ad | Boolean | Indicates whether the post is an advertisement. |
is_story | Boolean | Indicates whether the post originated as a story. |
Engagement Metrics Object (engagement)
| Field | Type | Description |
|---|---|---|
play_count | Integer | Total video views. |
digg_count | Integer | Total likes / hearts received. |
comment_count | Integer | Total comments posted. |
share_count | Integer | Total number of times the post was shared. |
download_count | Integer | Direct downloads recorded. |
collect_count | Integer | Times saved to user favorites / bookmarks. |
Author Information Object (author_info)
| Field | Type | Description |
|---|---|---|
id | String | TikTok numeric user ID. |
unique_id | String | TikTok username / handle. |
nickname | String | Display name of the user. |
avatar_url | String | Direct link to the user's profile avatar. |
Performance & Reliability
- High-Speed Execution: Highlight list retrieval takes 1-3 seconds per user. Post retrieval processes up to 30 posts per second depending on network latency.
- Auto-Retry Mechanism: Intermittent network disruptions or server timeouts trigger automatic retries with incremental delays.
- Automatic Cursor Pagination: Highlight collections with dozens of posts are automatically paginated until all items are captured.
- Memory-Optimized Flushing: Data is pushed to datasets in batches of 10, preventing memory build-up during long runs.
Best Practices
- Follow the Two-Step Workflow: Run
highlight_listfirst to discover which collections exist, their names, and theirhighlight_idvalues. Then runhighlight_postsusing only the IDs you need. - Download Media Promptly: TikTok Content Delivery Network (CDN) links are time-sensitive and will expire after a period of time. If you need permanent offline storage, download the files immediately upon run completion.
- Batch Usernames Efficiently: When scraping collections across multiple creators, pass an array of usernames to
uniqueIds(up to 50 at a time) to maximize throughput. - Tune
postsPerPage: The defaultpostsPerPageis 10. For highlights with 20+ posts, setting this to 20 or 30 reduces the total number of pagination requests. - Private Accounts: Highlights from private or geo-restricted accounts cannot be retrieved without public permissions.
Frequently Asked Questions (FAQ)
What is the difference between TikTok Stories and TikTok Highlights?
TikTok Stories disappear after 24 hours from the user's story tray. Highlights are stories or videos that creators deliberately pin to their profile permanently. Highlights remain accessible indefinitely unless deleted by the creator.
Do I need a TikTok account or proxy setup to use this scraper?
No. The scraper accesses public TikTok endpoints directly through secure gateway routing. You do not need cookies, personal credentials, or external proxies.
Where can I find a user's uniqueId?
The unique_id is the TikTok username seen in the profile URL (for example, in https://www.tiktok.com/@keenyakelly, the username is keenyakelly). You can enter it with or without the @ prefix.
Where do I get highlight IDs for the highlight_posts mode?
Run the scraper first in highlight_list mode with your desired usernames. The output dataset will contain a highlight_id field for every collection found on the user's profile.
Can I download videos without the TikTok watermark?
Yes. Every video record in highlight_posts mode includes video_url, which provides direct access to the high-definition video without any TikTok watermark overlay.
Does this scraper support photo highlights?
Yes. When a highlight post contains photo slides, the record includes type: "photo" and an images array containing direct download links for all high-resolution slides.
Are the media download URLs permanent?
No. Media URLs hosted on TikTok's CDN have temporary validity tokens and expire over time. We recommend downloading videos and images to your local drive or cloud storage bucket (AWS S3, Google Cloud Storage) right after extraction.
What happens if a user has no highlights on their profile?
The actor logs an informational message stating that no highlights were found for that user, skips to the next username in your batch, and completes successfully.
Can I export the dataset to CSV or Excel?
Yes. The Apify platform provides one-click export to JSON, CSV, XML, Excel (XLSX), and HTML formats from the dataset tab.
Troubleshooting & Status Codes
| Status / Message | Cause | Resolution |
|---|---|---|
| User not found or has no highlights (404) | The username does not exist, was changed, or has zero highlight collections. | Verify username spelling and verify on tiktok.com whether highlights are present. |
| Access denied (403) | Target account is set to private. | The actor only supports public TikTok accounts. |
| Highlight posts returned empty / 404 | The highlight ID is invalid, belongs to an expired private story, or was deleted. | Run highlight_list again to confirm active highlight IDs. |
| Missing Unique IDs or Highlight IDs error | Required field for the selected mode was left empty. | Ensure uniqueIds is filled when using highlight_list, or highlightIds when using highlight_posts. |
Related Actors
Expand your TikTok data intelligence toolkit with these complementary scrapers:
- TikTok Story Viewer - Extract and download active 24-hour TikTok stories before they disappear.
- TikTok Trending Videos Scraper - Extract trending videos, popular tags, and viral feed content.
- TikTok Media Downloader - Download videos, audios, and slide carousels by post URL.
- TikTok Comments Scraper - Scrape thousands of user comments and sentiment data from any video.
- TikTok Search Videos Scraper - Discover videos by search queries and hashtags.
- TikTok Search Profile Scraper - Find creators and influencers by keyword searches.
- TikTok Profile Details Scraper - Scrape complete profile bio, follower metrics, and verification status.
Keywords & Tags
tiktok highlight scraper, tiktok highlight downloader, tiktok highlights viewer, download tiktok highlights, tiktok highlight posts, tiktok highlight cover, tiktok highlight api, tiktok story highlights, scrape tiktok highlights, tiktok highlight extractor, tiktok highlights without watermark, tiktok profile highlights, tiktok highlight archiver, tiktok no watermark downloader, tiktok content scraper, tiktok creator analytics, tiktok competitor tracking, tiktok influencer research, tiktok media downloader, tiktok video scraper, tiktok photo slides scraper, tiktok batch downloader, tiktok data extraction, apify tiktok scraper, tiktok automation tool, tiktok evergreen content, tiktok marketing tool
Get Started
Extract TikTok highlight collections and posts in minutes:
- Click "Try for free"
- Select your desired mode (
highlight_listorhighlight_posts). - Enter TikTok usernames or highlight IDs.
- Click Start to run the actor and export your structured dataset.
If this actor helps your workflow, please consider leaving a star on Apify!