Skip to content

Releases: tamnd/tiktok-cli

v0.2.1

14 Jun 11:40
v0.2.1
d66cfa8

Choose a tag to compare

tt now prints in color when it writes to a terminal. A table comes out inside
a rounded border with colored headers, and JSON output has its keys and values
colorized. Pipe the output into a file or another command and it stays plain, so
nothing downstream sees escape codes.

This comes from upgrading the any-cli/kit
framework to v0.3.3, whose renderer now draws tables with lipgloss. Nothing
changed about what tt reads or about any record; only how a terminal shows it.
A wide table also shrinks to fit the terminal width now instead of wrapping.

Control the color

tt user tiktok                  # colored table on a terminal
tt user tiktok --color never    # force plain
tt user tiktok --color always   # force color even through a pipe
tt user tiktok | less -R        # less shows the color with -R

Full notes: https://tiktok-cli.tamnd.com/release-notes/v0-2-1/

Install

go install github.com/tamnd/tiktok-cli/cmd/tt@latest
docker run --rm ghcr.io/tamnd/tiktok:0.2.1 --help

Pure-Go binaries for Linux, macOS, Windows, and FreeBSD, plus deb/rpm/apk
packages, a multi-arch GHCR image, checksums, SBOMs, and a cosign signature.

v0.2.0

14 Jun 10:38
v0.2.0
df4149f

Choose a tag to compare

tt now runs on the any-cli/kit framework.
The commands and the records they print are the same. What changed is that each
command is declared once and now drives the command line, an HTTP server, an MCP
tool set, and a resource-URI driver from that single declaration.

Serve the same commands

tt serve --addr :7777    # GET /v1/user/<handle> returns NDJSON
tt mcp                   # speak MCP over stdio

tt mcp lets an agent call video, user, posts, search, and the rest as
tools. tt serve puts the same operations behind a small HTTP surface.

Use tt as a resource-URI driver

The package registers a tiktok domain the way a program registers a database
driver with database/sql. A host enables it with one blank import:

import _ "github.com/tamnd/tiktok-cli/tiktok"

Then ant dereferences tiktok:// URIs:

ant get tiktok://user/tiktok                  # the profile record
ant get tiktok://video/7106594312292453675    # one video
ant ls  tiktok://user/tiktok                   # the user's videos
ant cat tiktok://video/7106594312292453675     # just the description text
ant url tiktok://hashtag/minecraft             # the live https URL

Store any run

tt posts @tiktok --db posts.db

Every command can tee its records into a SQLite file as it prints them.

Flag and exit code changes

  • --rate replaces --delay for the minimum spacing between requests.
  • --db tees records into a store, and --profile selects a saved profile.
  • --jobs is gone; the read commands page in order rather than fan out.
  • A missing handle, video, hashtag, or sound now exits 6 (not found)
    instead of folding into the empty-result code. Walled surfaces still exit 4,
    and a valid empty result still exits 3.

Full notes: https://tiktok-cli.tamnd.com/release-notes/v0-2-0/

Install

go install github.com/tamnd/tiktok-cli/cmd/tt@latest
docker run --rm ghcr.io/tamnd/tiktok:0.2.0 --help

Pure-Go binaries for Linux, macOS, Windows, and FreeBSD, plus deb/rpm/apk
packages, a multi-arch GHCR image, checksums, SBOMs, and a cosign signature.

v0.1.0

14 Jun 09:06
v0.1.0

Choose a tag to compare

The first public release. tt is a single pure-Go binary that reads public
TikTok data and prints clean, pipeable records. No API key, no login. It reads
the same public surface a logged-out browser sees: the universal-data blob each
page ships, and the www.tiktok.com/api/* endpoints the page's own JavaScript
calls, signed the way the web client signs them.

What you get

  • Read one thing. tt video and tt user pull a single video or profile
    record from the page's own JSON, with author, sound, hashtags, urls, and every
    counter.
  • Page a feed. tt posts, tt comments, tt replies, and tt trending.
  • Search. tt search for mixed video and user hits, tt users for accounts.
  • Hashtags and sounds. tt hashtag and tt sound, with --videos for the
    list under each.
  • Discover. tt discover walks the public graph from seeds and ranks the
    hottest users, videos, hashtags, and sounds it reaches.
  • See the raw page. tt raw prints a page's whole universal-data blob.

Records come out as table, JSON, JSONL, CSV, TSV, url, or raw. --fields picks
columns, --template runs a Go template per record, -o url gives a link
stream.

Two planes

The SSR plane reads the JSON a page already ships and answers from anywhere. The
API plane is signed and sits behind a firewall that scores the caller's IP, so
from a datacenter IP it is often gated. When that happens tt exits 4 with a
clear message instead of pretending it found nothing. tt discover crosses both
planes and stays honest about which edges it could not reach.

Install

go install github.com/tamnd/tiktok-cli/cmd/tt@latest
docker run --rm ghcr.io/tamnd/tiktok:0.1.0 --help

Prebuilt archives (Linux, macOS, Windows, FreeBSD), Linux packages (deb, rpm,
apk), a multi-arch GHCR image, checksums, SBOMs, and a cosign signature are
attached below. Full notes: https://tiktok-cli.tamnd.com/release-notes/v0-1-0/