Skip to content
tt

Quick start

Run your first tt command.

Once tt is on your PATH, the most reliable command is video, which reads a single post straight from the page:

tt video https://www.tiktok.com/@tiktok/video/7106594312292453675 -o json

That returns one record with the caption, author, sound, hashtags, dimensions, and every counter, ready to pipe into jq.

A few more:

tt user tiktok                       # a profile
tt posts @tiktok -n 30               # a user's videos
tt comments 7106594312292453675 --author tiktok
tt hashtag minecraft --videos -n 50  # videos under a hashtag
tt sound 7106594280055130923 --videos
tt search "study with me" -n 20
tt trending -n 30

Output that pipes

The default is a readable table on a terminal and JSONL when piped. Pick a format with -o:

tt posts @tiktok -o jsonl | jq -r '.url'
tt video 7106594312292453675 --author tiktok -o csv --fields id,desc,play_count
tt trending -o url

The two planes

tt video, tt hashtag, tt sound, and tt raw read the JSON a logged-out page already ships, so they need no signing and answer reliably. tt posts, tt comments, tt search, and tt trending call the signed web API, which sits behind a firewall that scores the caller. From a datacenter IP those calls are often gated, and tt exits 4 with a clear message when that happens. See troubleshooting for the detail.