Skip to content

tiktok.videos

entity · one row = one video, latest stats

Videos with caption, hashtags, sound, ad / branded / shop / AI flags and engagement.

  • Coverage: Not every TikTok video: the videos of tracked creators (and later the top videos of moving sounds). creator_priority shows coverage.
  • Refresh: Hourly, changed months only; stats at most ~6 h old while a video is being tracked.
  • Sorted by country, posted_at, video_id. Filters on the leading columns are fastest.
SELECT *
FROM tiktok.videos
LIMIT 100
Column Type Description
video_id UInt64
creator_id UInt64
posted_at DateTime
country LowCardinality(String)
language LowCardinality(String) ‘un’ = undetermined
type LowCardinality(String) ‘video’ | ‘photo’
duration_ms UInt32 0 on photos
image_count UInt8 photos only
width UInt16
height UInt16
caption String
hashtags Array(String)
hashtag_ids Array(UInt64) parallel to hashtags
mentions Array(UInt64) creator_ids
on_screen_text Array(String)
sound_id UInt64
is_ad UInt8 paid promotion (Spark Ads)
branded_content LowCardinality(String) ‘’ | ‘paid_partnership’ | ‘shop_affiliate’
product_id UInt64 0 = none seen
is_shop_video UInt8
seller_id UInt64
is_ai_generated Nullable(UInt8) NULL = TikTok did not say
not_recommended Nullable(UInt8)
sound_muted UInt8 audio removed for copyright
views UInt64
likes UInt64
comments UInt64
shares UInt64
saves UInt64
downloads UInt64
engagement_rate Nullable(Float32) (likes + comments + shares + saves) / views; NULL when views = 0.
creator_priority UInt8 the creator’s priority now
stats_updated_at DateTime when these stats were read
refreshed_at DateTime