Extract structured data from TikTok videos, profiles, and sounds for content research. Powered by yt-dlp locally — no API key required.
Version: 1.0.0 Prerequisite: yt-dlp >= 2024.01.01
bash
# macOS
brew install yt-dlp
# pip
pip install yt-dlp
# Verify
yt-dlp --version
Extract caption, creator info, engagement stats, and sound info.
bash
yt-dlp --dump-json --skip-download "https://www.tiktok.com/@user/video/VIDEO_ID"
Key JSON fields:
FieldJSON pathCaption.descriptionCreator.uploader / .creatorCreator handle.uploader_idUpload date.upload_date (YYYYMMDD → YYYY-MM-DD)Duration.duration (seconds)Views.view_countLikes.like_countComments.comment_countShares.repost_countSound/Music.trackSound author.artistThumbnail.thumbnail
Output format: Markdown table with key stats, followed by caption and sound info.
Extract recent videos from a creator's profile.
bash
yt-dlp --flat-playlist --dump-json --playlist-end 20 \
"https://www.tiktok.com/@USERNAME"
Output is one JSON per line. Parse for .description, .upload_date, .view_count, .like_count, .duration.
Output format: Table with columns: #, Date, Caption (first 50 chars), Duration, Views, Likes.
Extract videos using a specific sound:
bash
yt-dlp --flat-playlist --dump-json --playlist-end 20 \
"https://www.tiktok.com/music/SOUND_NAME-SOUND_ID"
bash
yt-dlp --dump-json --skip-download --write-comments \
--extractor-args "tiktok:comment_count=20" \
"https://www.tiktok.com/@user/video/VIDEO_ID"
Parse .comments[] for .author, .text, .like_count. Sort by likes descending.
bash
yt-dlp --flat-playlist --dump-json --playlist-end 20 \
"https://www.tiktok.com/tag/HASHTAG"
PatternTypetiktok.com/@user/video/IDSingle videovm.tiktok.com/SHORTCODE/Short linktiktok.com/@USERNAMEUser profiletiktok.com/music/NAME-IDSound pagetiktok.com/tag/HASHTAGHashtag page
= 1,000,000 →
{n/1M:.1f}M
= 1,000 →
{n/1K:.1f}K
Otherwise → raw number
When user provides a TikTok URL:
When user asks to download a video:
--cookies-from-browser chromeTikTok Research Kit is an open-source project by SnapVee.