yutu:自动化 YouTube 工作流的 CLI、MCP Server 与 AI Agent
eat-pray-ai/yutu
yutu 是一款可自动化 YouTube 工作流的 CLI、MCP Server 与 AI Agent,覆盖视频上传与优化、评论、播放列表和频道品牌管理。
yutu is a CLI, MCP server, and AI Agent to automate YouTube workflows — from uploading and optimizing videos to managing comments, playlists, and channel branding — and provides a skill for AI Agents, so you can get more views, higher click-through rates, and stronger audience engagement with less manual effort. 中文文档
Table of Contents
Prerequisites
An account on Google Cloud Platform is required. Set up the following:
-
Create a GCP Project and enable these APIs under
APIs & Services -> Enable APIs and services:- YouTube Data API v3 (Required)
- YouTube Analytics API (Optional)
- YouTube Reporting API (Optional)
-
Create OAuth credentials:
- Go to
APIs & Services -> OAuth consent screen, create a consent screen with yourself as a test user - Go to
Credentials -> Create Credentials -> OAuth Client ID, selectDesktop app - Download the credential file and save it as
client_secret.json, it should look like
{ "installed": { "client_id": "11181119.apps.googleusercontent.com", "project_id": "yutu-11181119", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_secret": "XXXXXXXXXXXXXXXX", "redirect_uris": ["http://localhost"] } } - Go to
-
Authenticate:
yutu auth --credential client_secret.json
A browser window will open for you to grant YouTube access. After granting permission, a token is saved to
youtube.token.json.{ "access_token": "ya29.XXXXXXXXX", "token_type": "Bearer", "refresh_token": "1//XXXXXXXXXX", "expiry": "2024-05-26T18:49:56.1911165+08:00", "expires_in": 3599 }
By default, yutu will read client_secret.json and youtube.token.json from the current directory, --credential/-c and --cacheToken/-t flags are available only in auth subcommand. To modify the default path in all subcommands, set these environment variables.
Global Environment Variables
| Variable | Description | Default |
|---|---|---|
YUTU_CREDENTIAL |
Path, Base64, or JSON of OAuth client secret | client_secret.json |
YUTU_CACHE_TOKEN |
Path, Base64, or JSON of cached OAuth token | youtube.token.json |
YUTU_ROOT |
Root directory for file resolution | Current working directory |
YUTU_LOG_LEVEL |
Log level: DEBUG, INFO, WARN, ERROR |
INFO |
Installation
If you're using an AI Agent, copy and paste the following prompt to finish the installation:
Install and configure yutu by following https://raw.githubusercontent.com/eat-pray-ai/yutu/main/internal/tools/skillgen/setup.md
You can download yutu from releases page directly, or use the following methods as you prefer.
GitHub Actions
There are two actions available for yutu, one is for general purpose and the other is for uploading video to YouTube. Refer to youtube-action and youtube-uploader for more information.
Node.js
❯ npm i -g @eat-pray-ai/yutu
Docker
# GitHub Container Registry (GHCR) ❯ docker pull ghcr.io/eat-pray-ai/yutu:latest # or Docker Hub ❯ docker pull eatprayai/yutu:latest ❯ docker run --rm ghcr.io/eat-pray-ai/yutu:latest # make sure client_secret.json is in the current directory ❯ docker run --rm -it -u $(id -u):$(id -g) -v $(pwd):/app -p 8216:8216 ghcr.io/eat-pray-ai/yutu:latest
Gopher
❯ go install github.com/eat-pray-ai/yutu@latest
Linux
❯ curl -sSfL https://raw.githubusercontent.com/eat-pray-ai/yutu/main/scripts/install.sh | bashmacOS
Install yutu using Homebrew🍺(recommended), or run the shell script.
❯ brew install yutu # or ❯ curl -sSfL https://raw.githubusercontent.com/eat-pray-ai/yutu/main/scripts/install.sh | bash
Windows
❯ winget install yutu
Verifying Installation
Verify the integrity and provenance of yutu using its associated cryptographically signed attestations.
# Docker ❯ gh attestation verify oci://ghcr.io/eat-pray-ai/yutu:latest --repo eat-pray-ai/yutu ❯ gh attestation verify oci://docker.io/eatprayai/yutu:latest --repo eat-pray-ai/yutu # Linux and macOS(if installed using shell script) ❯ gh attestation verify $(which yutu) --repo eat-pray-ai/yutu # Windows ❯ gh attestation verify $(where.exe yutu.exe) --repo eat-pray-ai/yutu
Agent
yutu provides an Agent mode (Miffy) to automate YouTube workflows. The Agent can retrieve, create, update, and delete YouTube content, with built-in YouTube growth strategy and SEO expertise.
# Gemini(compatible) (default) ❯ yutu agent --provider google --model gemini-3.8-flash --api-key "YOUR_KEY" ❯ yutu agent --provider google --model gemini-3.8-flash --api-key "YOUR_KEY" --base-url "https://custom.endpoint.com/" # OpenAI(compatible) (OpenAI, DeepSeek, Ollama, vLLM, etc.) ❯ yutu agent --provider openai --model gpt-5.6-terra --api-key "YOUR_KEY" ❯ yutu agent --provider openai --model deepseek-flash --api-key "YOUR_KEY" --base-url "https://api.deepseek.com/" # web mode with sub-launchers ❯ yutu agent --args "web api a2a webui" --api-key "YOUR_KEY" # show available launcher args ❯ yutu agent --args ""
Agent Flags
| Flag | Description | Default |
|---|---|---|
-a, --args |
Launcher arguments as a single string | console |
-p, --provider |
LLM provider: google for Gemini(compatible), openai for OpenAI(compatible) |
google |
-m, --model |
Model name | gemini-3.8-flash |
--api-key |
API key for the model provider | |
--base-url |
Base URL for the model provider's API endpoint | |
-i, --instruction |
Override the built-in Agent instruction | INSTRUCTION.md |
MCP Server
Before using yutu as an MCP server, make sure yutu is installed(see Installation section), and you have a valid client_secret.json and youtube.token.json files(refer to Prerequisites section).
Setup yutu MCP for one or more selected AI Agents:
❯ yutu mcp setup --agents claude,opencode,pi,codex \ --credential /absolute/path/to/client_secret.json \ --cacheToken /absolute/path/to/youtube.token.json
--agents is required. Credential/token flags accept Path/Base64/JSON; omitted flags use the corresponding environment variable or default file path. Relative paths are converted to absolute paths. Prefer file paths to avoid copying inline secrets into Agent settings.
Skills
yutu provides a unified skill that extends AI Agents with YouTube domain knowledge, common workflows, and SEO best practices — covering videos, playlists, comments, channels, captions, subscriptions, and more.
❯ npx skills add eat-pray-ai/yutu --skill youtube
See skills/youtube/SKILL.md for the full list of supported operations.
Usage
❯ yutu yutu is a CLI, MCP server, and AI Agent that automates your YouTube workflows from the terminal or any AI Agent. Environment variables: YUTU_CREDENTIAL Path/Base64/JSON of OAuth client secret (default: client_secret.json) YUTU_CACHE_TOKEN Path/Base64/JSON of cached OAuth token (default: youtube.token.json) YUTU_ROOT Root directory for file resolution (default: current working directory) YUTU_LOG_LEVEL Log level: DEBUG, INFO, WARN, ERROR (default: INFO) Usage: yutu [flags] yutu [command] Available Commands: abuseReport Manage YouTube abuse reports activity Manage YouTube activities agent Start an Agent to automate YouTube workflows auth Authenticate with YouTube APIs caption Manage YouTube video captions channel Manage YouTube channels channelBanner Manage YouTube channel banners channelSection Manage YouTube channel sections comment Manage YouTube comments commentThread Manage YouTube comment threads completion Generate the autocompletion script for the specified shell help Help about any command i18nLanguage Manage YouTube i18n languages i18nRegion Manage YouTube i18n regions liveBroadcast Manage YouTube live broadcasts liveChatBan Manage YouTube live chat bans liveChatMessage Manage YouTube live chat messages liveChatModerator Manage YouTube live chat moderators liveStream Manage YouTube live streams mcp Start MCP server member Manage YouTube channel members membershipsLevel Manage YouTube membership levels playlist Manage YouTube playlists playlistImage Manage YouTube playlist images playlistItem Manage YouTube playlist items search Manage YouTube search subscription Manage YouTube subscriptions superChatEvent Manage YouTube Super Chat events thirdPartyLink Manage YouTube third-party links thumbnail Manage YouTube video thumbnails version Show the version of yutu video Manage YouTube videos videoAbuseReportReason Manage YouTube video abuse report reasons videoCategory Manage YouTube video categories watermark Manage YouTube watermarks Flags: -h, --help help for yutu Use "yutu [command] --help" for more information about a command.
Features
Please refer to FEATURES.md for more information.
Sponsor
If yutu saves you time, a ⭐ star on GitHub goes a long way and helps others discover the project.
You can also support its development with a donation (Alipay / WeChat) at yutu.ifor.dev. Thank you! 💖
Contributing
Please refer to CONTRIBUTING.md for more information.
来源:GitHub · github.com
