tiktok.sounds
entity · one row = one sound
Every sound seen on a video: title, artist, owner, originality, commercial rights, TikTok matching, Spotify/Apple ids, video count.
- Coverage: Target ~1.5B sounds. ~26% of licensed commercial tracks never resolve and have no video count (is_retired).
- Refresh: After each daily sound pass; at most ~1 day old.
- Sorted by
sound_id. Filters on the leading columns are fastest.
Example
Section titled “Example”SELECT *FROM tiktok.soundsLIMIT 100Columns
Section titled “Columns”| Column | Type | Description |
|---|---|---|
sound_id |
UInt64 |
|
title |
String |
|
artist |
String |
|
album |
String |
|
created_at |
DateTime |
|
duration_s |
UInt16 |
SECONDS (videos are ms) |
language |
LowCardinality(String) |
‘English’, ‘non_vocal’, … |
owner_creator_id |
UInt64 |
original sounds only |
owner_username |
String |
|
owner_nickname |
String |
|
is_original |
UInt8 |
made on TikTok by a creator |
is_official |
UInt8 |
is_pgc: a label/distributor upload |
is_commercial |
UInt8 |
cleared for business use |
is_commercial_strict |
UInt8 |
|
has_custom_title |
UInt8 |
TikTok’s own “the creator gave it a name” signal for originals. The strongest artist-discovery filter measured (median 28k videos vs 1). |
has_vocals |
Nullable(UInt8) |
NULL = TikTok did not say |
has_strong_beat |
UInt8 |
|
has_lyrics |
UInt8 |
|
theme_tags |
Array(LowCardinality(String)) |
|
matched_type |
LowCardinality(String) |
How TikTok matched the audio: ‘not_found’ | ‘fingerprint’ | ‘pgc’. For finding UNDISCOVERED artists, a match is a NEGATIVE signal. |
matched_song_title |
String |
|
matched_song_artist |
String |
|
spotify_id |
String |
dsp platform 3 |
apple_music_id |
String |
dsp platform 1 |
origin_video_id |
UInt64 |
the video an original was lifted from |
sim_group_id |
UInt64 |
TikTok’s “same audio” cluster; use it to avoid double counting re-uploads |
loudness_lufs |
Nullable(Float32) |
NULL = not measured |
cover_uri |
String |
|
play_url |
String |
unsigned mp3, does not expire |
video_count |
UInt32 |
videos using it (TikTok’s user_count) |
video_count_date |
Date |
when that was read |
priority |
UInt8 |
1 = video_count > 3 (daily), else 2 |
is_retired |
UInt8 |
never resolves in bulk (3 misses) |
first_seen |
DateTime |
|
refreshed_at |
DateTime |