πŸ“· TikTok Frame Extractor - Get Video Thumbnails & Cover Images avatar
πŸ“· TikTok Frame Extractor - Get Video Thumbnails & Cover Images

Pricing

$1.00 / 1,000 results

Go to Apify Store
πŸ“· TikTok Frame Extractor - Get Video Thumbnails & Cover Images

πŸ“· TikTok Frame Extractor - Get Video Thumbnails & Cover Images

Developed by

Ingeniela

Ingeniela

Maintained by Community

Extract high-quality cover images and thumbnails from any TikTok video instantly. No download needed. Get public URLs in seconds. Perfect for bulk processing.

0.0 (0)

Pricing

$1.00 / 1,000 results

0

2

2

Last modified

6 days ago

TikTok Frame Extractor - Get Video Thumbnails & Cover Images

Extract high-quality cover images, thumbnails, and first frames from any TikTok video instantly. No video download required - fast, efficient, and reliable.

🎯 What does this actor do?

This Apify actor extracts cover images and thumbnails from TikTok videos without downloading the entire video file. Perfect for:

  • πŸ“Έ Getting video thumbnails for galleries or catalogs
  • 🎨 Creating content previews
  • πŸ–ΌοΈ Building image databases from TikTok content
  • πŸš€ Fast image extraction for bulk processing
  • πŸ“Š Social media analysis and monitoring

✨ Key Features

  • Lightning Fast - Extracts images in seconds without downloading full videos
  • Multiple Image Types - Get cover, originCover, dynamicCover, and more
  • High Quality - Retrieves the best available resolution
  • Bulk Processing - Process multiple videos in one run
  • Public URLs - All images stored with permanent public URLs
  • Complete Metadata - Get video stats, author info, and descriptions
  • Reliable - Automatic retries and robust error handling

πŸš€ How to Use

Quick Start

  1. Input a TikTok URL

    https://www.tiktok.com/@username/video/1234567890
  2. Choose extraction mode

    • Single Frame (default): Get the best quality cover image
    • Extract All: Get all available cover variations
  3. Run the actor and get your image URLs instantly!

Input Parameters

ParameterTypeRequiredDescriptionDefault
tiktokUrlstringYesTikTok video URL-
extractAllbooleanNoExtract all available covers instead of just the best onefalse

Supported URL Formats

All standard TikTok URL formats are supported:

https://www.tiktok.com/@username/video/1234567890
https://vm.tiktok.com/ZMxxx/
https://www.tiktok.com/t/ZTxxx/
https://vt.tiktok.com/ZSxxx/

πŸ“Š Output Format

Single Frame Mode

{
"success": true,
"videoId": "7556001829608312078",
"author": "Healthy Hair USA",
"authorUsername": "healthy.hair.usa",
"description": "Amazing transformation! #haircare",
"originalUrl": "https://www.tiktok.com/@healthy.hair.usa/video/7556001829608312078",
"primaryFrame": "https://api.apify.com/v2/key-value-stores/xxx/records/cover_xxx.jpg",
"primaryFrameSize": 125847,
"primaryFrameType": "originCover",
"frames": [
{
"url": "https://api.apify.com/v2/key-value-stores/xxx/records/cover_xxx.jpg",
"size": 125847,
"contentType": "image/jpeg",
"type": "originCover"
}
],
"totalFrames": 1,
"metadata": {
"videoId": "7556001829608312078",
"duration": 15,
"createTime": 1234567890,
"statistics": {
"plays": 125000,
"likes": 8500,
"comments": 450,
"shares": 1200,
"saves": 670
},
"music": {
"title": "Original Sound",
"author": "healthy.hair.usa"
}
},
"availableCovers": ["originCover", "cover", "dynamicCover"],
"processedAt": "2025-10-07T12:34:56.789Z"
}

Extract All Mode

When extractAll: true, you get multiple cover variations:

{
"success": true,
"videoId": "7556001829608312078",
"primaryFrame": "https://api.apify.com/.../originCover_xxx.jpg",
"frames": [
{
"url": "https://api.apify.com/.../originCover_xxx.jpg",
"size": 125847,
"contentType": "image/jpeg",
"type": "originCover"
},
{
"url": "https://api.apify.com/.../cover_xxx.jpg",
"size": 98234,
"contentType": "image/jpeg",
"type": "cover"
},
{
"url": "https://api.apify.com/.../dynamicCover_xxx.webp",
"size": 67891,
"contentType": "image/webp",
"type": "dynamicCover"
}
],
"totalFrames": 3,
...
}

πŸ’‘ Use Cases

Content Curation

// Extract thumbnails for video galleries
const input = {
tiktokUrl: "https://www.tiktok.com/@creator/video/123456",
extractAll: false
};

Bulk Processing

// Process multiple videos
const urls = [
"https://www.tiktok.com/@user1/video/111",
"https://www.tiktok.com/@user2/video/222",
"https://www.tiktok.com/@user3/video/333"
];
// Run actor for each URL

Social Media Monitoring

// Get thumbnails with statistics
const input = {
tiktokUrl: "https://www.tiktok.com/@brand/video/456789",
extractAll: false
};
// Access metadata.statistics for engagement metrics

Image Archive

// Download all available image variations
const input = {
tiktokUrl: "https://www.tiktok.com/@artist/video/789012",
extractAll: true
};

πŸ”§ Integration Examples

Using Apify API

const ApifyClient = require('apify-client');
const client = new ApifyClient({
token: 'YOUR_APIFY_TOKEN',
});
const input = {
tiktokUrl: "https://www.tiktok.com/@username/video/1234567890",
extractAll: false
};
const run = await client.actor("YOUR_ACTOR_ID").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log('Primary Frame URL:', items[0].primaryFrame);

Using cURL

curl -X POST https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"tiktokUrl": "https://www.tiktok.com/@username/video/1234567890",
"extractAll": false
}'

Python Integration

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run_input = {
"tiktokUrl": "https://www.tiktok.com/@username/video/1234567890",
"extractAll": False
}
run = client.actor("YOUR_ACTOR_ID").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"Frame URL: {item['primaryFrame']}")
print(f"Video Stats: {item['metadata']['statistics']}")

πŸ“‹ Output Fields Reference

FieldTypeDescription
successbooleanWhether extraction was successful
videoIdstringTikTok video ID
authorstringCreator's display name
authorUsernamestringCreator's username (@handle)
descriptionstringVideo description/caption
originalUrlstringInput TikTok URL
primaryFramestringURL to the best quality frame
primaryFrameSizenumberFile size in bytes
primaryFrameTypestringType of frame (cover, originCover, etc.)
framesarrayAll extracted frames with details
totalFramesnumberNumber of frames extracted
metadataobjectComplete video metadata
metadata.statisticsobjectVideo engagement stats
metadata.durationnumberVideo duration in seconds
availableCoversarrayList of available cover types
processedAtstringISO timestamp of processing

⚑ Performance

  • Speed: 2-5 seconds per video
  • Rate Limit: Respects TikTok's rate limits
  • Retry Logic: Automatic retries on failures
  • Timeout: 30 seconds per image download
  • Max Redirects: 5 redirects allowed

πŸ›‘οΈ Error Handling

The actor handles common errors gracefully:

Error TypeDescriptionSolution
Invalid URLURL format not recognizedCheck URL format
Video Not Found404 errorVideo may be deleted
Private Video403 errorVideo is private or region-locked
TimeoutRequest took too longAutomatic retry
No Cover FoundNo images in metadataVideo may be processing

Error Output Example

{
"success": false,
"error": true,
"errorMessage": "Error: Video not found or has been deleted",
"timestamp": "2025-10-07T12:34:56.789Z"
}

πŸ’° Pricing

This actor is optimized for cost efficiency:

  • Compute Units: ~0.001-0.002 CU per video
  • Storage: Images stored in Key-Value Store (free tier: 500MB)
  • Bandwidth: Minimal data transfer (only images, not full videos)

Cost Estimate: ~$0.0001 per video with Apify's standard pricing

πŸ” Privacy & Compliance

  • βœ… Only extracts publicly available cover images
  • βœ… No video content is downloaded or stored
  • βœ… Respects TikTok's robots.txt
  • βœ… No personal data collection
  • βœ… GDPR compliant

πŸ†˜ Troubleshooting

Issue: "Could not extract video data"

Solution: The video URL may be invalid or the video is private. Verify the URL is accessible.

Issue: "No cover images found"

Solution: The video may still be processing on TikTok. Wait a few minutes and try again.

Issue: "Request timed out"

Solution: Network issue or TikTok rate limiting. The actor will retry automatically.

Issue: Images not loading

Solution: Key-Value Store URLs are public. Check if the URL is correct and accessible.

  • TikTok Video Downloader & Transcriber - Full video + AI transcription
  • TikTok Scraper - Bulk video metadata extraction
  • Instagram Frame Extractor - Similar tool for Instagram

🀝 Support

πŸ“ Changelog

v1.0.0 (2025-10-07)

  • ✨ Initial release
  • 🎯 Single and multi-frame extraction
  • πŸ“Š Complete metadata extraction
  • πŸ”„ Automatic retry logic
  • 🌐 Public URL generation

πŸ“„ License

Apache-2.0 License - see LICENSE file for details

Made with ❀️ by Ingeniela