Metadata-Version: 2.3
Name: douyin-cli
Version: 2026.5.28.1
Summary: 支持抖音开放平台官方 OpenAPI 的命令行工具。
Author: LIghtJUNction, erma0
Author-email: LIghtJUNction <lightjuncion.me@gmail.com>, erma0 <me@erma0.cn>
License: AGPL-3.0-or-later
Requires-Dist: click>=8.3.1
Requires-Dist: exejs>=0.0.7
Requires-Dist: loguru>=0.7.3
Requires-Dist: niquests>=3.10
Requires-Dist: ujson>=5.11.0
Requires-Python: >=3.13
Description-Content-Type: text/markdown

![douyin-cli](https://socialify.git.ci/LIghtJUNction/douyin-cli/image?description=1&font=Source%20Code%20Pro&forks=1&issues=1&language=1&owner=1&pattern=Circuit%20Board&stargazers=1&theme=Auto)

# ✨douyin-cli

> ❤️[开源不易，欢迎star⭐](#star-history)

## 📢声明

> 本项目是面向抖音开放平台官方 OpenAPI 的命令行工具，同时保留部分公开网页数据处理能力，仅用于测试和学习研究，禁止用于商业用途或任何非法用途。
>
> 任何用户直接或间接使用、传播本仓库内容时责任自负，本仓库的贡献者不对该等行为产生的任何后果负责。
>
> **如果相关方认为该项目的代码可能涉嫌侵犯其权利，请及时联系我删除相关代码**。
>
> 使用本仓库的内容即表示您同意本免责声明的所有条款和条件。如果你不接受以上的免责声明，请立即停止使用本项目。

---

## 🍬功能特性

- ✅ **官方 OpenAPI**：支持通过 `douyin api` 调用抖音开放平台官方接口
- ✅ **Token 获取**：支持 `client_token` 与 OAuth `access_token` 获取流程
- ✅ **通用请求**：支持任意官方 OpenAPI 路径、查询参数、JSON body、表单和自定义请求头
- ✅ **环境变量**：支持 `DOUYIN_CLIENT_KEY`、`DOUYIN_CLIENT_SECRET`、`DOUYIN_ACCESS_TOKEN`
- ✅ **命令行安装**：通过 `uv tool install .` 安装为本机 `douyin` 命令
- ✅ **兼容能力**：保留旧版网页数据命令，适合已有脚本迁移

## 🚀快速开始

### 环境要求

- Python 3.13
- uv 0.9+
- 抖音开放平台应用的 `client_key` / `client_secret`
- Node.js（仅旧版网页数据命令需要）
- aria2c（可选，仅旧版下载命令需要）

### 安装命令

```bash
uv tool install -e . # 开发者
uv tool install douyin-cli # 用户
```

### 官方 OpenAPI

```bash
# 获取 client_token
douyin api client-token \
  --client-key "$DOUYIN_CLIENT_KEY" \
  --client-secret "$DOUYIN_CLIENT_SECRET"

# 用 OAuth code 换 access_token
douyin api access-token \
  --client-key "$DOUYIN_CLIENT_KEY" \
  --client-secret "$DOUYIN_CLIENT_SECRET" \
  --code "授权码"

# 调用任意官方 OpenAPI 路径
douyin api request GET /oauth/userinfo/ \
  --token "$DOUYIN_ACCESS_TOKEN" \
  --param open_id=xxx
```

📖 详细使用说明请查看 [USAGE.md](USAGE.md)

## 📊 技术栈

- **运行时**: Python 3.13
- **命令行**: Click
- **官方接口**: 抖音开放平台 OpenAPI
- **HTTP 客户端**: niquests

## Star History

[![Star History Chart](https://api.star-history.com/svg?repos=LIghtJUNction/douyin-cli&type=Date)](https://star-history.com/#LIghtJUNction/douyin-cli&Date)
