Skip to content
douyin

Douyin, from the command line

A command line for Douyin (抖音), ByteDance's Chinese TikTok. One pure-Go binary, no API key, no login. Reads the hot-search billboard and the signed web API, and serves the same operations over HTTP and MCP.

douyin reads public Douyin data and prints clean, pipeable records. It needs no API key and no login. It reads the same public web surface a logged-out browser sees: the open iesdouyin hot-search billboard, and the www.douyin.com/aweme/v1/web/* endpoints that the page's own JavaScript calls, signed the way the web client signs them. It serves the same read operations over HTTP (douyin serve) and MCP (douyin mcp).

douyin reading the hot-search board into a table and piping it through jq

douyin hot                      # hot-search billboard, in rank order
douyin hot --tab video -n 10    # top 10 hot videos
douyin search 美食教程          # mixed video and user search hits
douyin hot | jq -r '.word'      # JSONL when piped, ready for jq

Output is a table when you are at a terminal and JSONL when you pipe, so douyin hot | jq works with no flags.

Some surfaces are walled by IP and region, and the tool is honest about it. hot (the realtime word billboard) is open from any IP. The other billboard tabs (video, music, star) and the signed surfaces (video, user, posts, comments, search) are anti-bot-walled from non-China and datacenter IPs. They are implemented correctly and serve from a China IP or a warm browser session, but from elsewhere the command detects the wall and exits cleanly instead of faking data.

Where to go next

Getting started Install douyin, learn the model, and run your first command. Guides Task-oriented walkthroughs for the things people do with douyin.