Files
yutu/README_zh.md
T
2025-10-15 20:58:21 +08:00

11 KiB
Raw Blame History

Yutu

yutu

Static Badge Go Report Card GitHub License Go Reference Go Coverage

GitHub Repo stars GitHub Downloads GitHub Actions build Status GitHub Actions CodeQL Status GitHub Actions test Status Trust Score

GitHub Release Homebrew Formula Version WinGet Package Version

yutu - build a fully automated YouTube Channel!

yutu 是一个全功能的 MCP 服务器和 YouTube CLI 工具,用于自动化您的 YouTube 工作流程。它可以操作几乎所有的 YouTube 资源,如视频、播放列表、频道、评论、字幕等。

mcp demo

目录

前提条件

开始之前,您需要在 Google Cloud Platform 上创建一个账户来创建项目,并为该项目启用以下 API,位置在 APIs & Services -> Enable APIs and services -> + ENABLE APIS AND SERVICES

启用 API 后,创建一个 OAuth content screen,将您自己设置为测试用户,然后创建一个类型为 Web Application 的 OAuth Client ID,将 http://localhost:8216 作为重定向 URI。

将此凭据下载到本地机器,命名为 client_secret.json,它应该看起来像这样:

{
  "web": {
    "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:8216"
    ]
  }
}

要验证此凭据,请运行以下命令:

❯ yutu auth --credential client_secret.json

浏览器窗口将打开,要求您授权访问您的 YouTube 账户。授权后,将生成一个令牌并保存到 youtube.token.json。

{
  "access_token": "ya29.XXXXXXXXX",
  "token_type":"Bearer",
  "refresh_token":"1//XXXXXXXXXX",
  "expiry":"2024-05-26T18:49:56.1911165+08:00"
}

默认情况下,yutu 将从当前目录读取 client_secret.json 和 youtube.token.json,--credential/-c 和 --cacheToken/-t 标志仅在 auth 子命令中可用。要在所有子命令中修改默认路径,请设置这些环境变量:

❯ export YUTU_CREDENTIAL=client_secret.json
❯ export YUTU_CACHE_TOKEN=youtube.token.json
# 或
❯ YUTU_CREDENTIAL=client_secret.json YUTU_CACHE_TOKEN=youtube.token.json yutu subcommand --flag value

安装

您可以直接从发布页面下载 yutu,或使用以下您喜欢的方法。

GitHub Actions

yutu 有两个可用的 action,一个是通用 action,另一个专用于上传视频到 YouTube。更多信息请参考 youtube-action 和 youtube-uploader。

Docker

❯ docker pull ghcr.io/eat-pray-ai/yutu:latest
❯ docker run --rm ghcr.io/eat-pray-ai/yutu:latest
# 确保 client_secret.json 在当前目录中
❯ 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 | bash

macOS

使用 Homebrew🍺 安装 yutu(推荐),或运行 shell 脚本。

❯ brew install yutu

# 或
❯ curl -sSfL https://raw.githubusercontent.com/eat-pray-ai/yutu/main/scripts/install.sh | bash

Windows

❯ winget install yutu

验证安装

使用其关联的加密签名证明来验证 yutu 的完整性和来源。

# Docker
❯ gh attestation verify oci://ghcr.io/eat-pray-ai/yutu:latest --repo eat-pray-ai/yutu

# Linux 和 macOS(如果使用 shell 脚本安装)
❯ gh attestation verify $(which yutu) --repo eat-pray-ai/yutu

# Windows
❯ gh attestation verify $(where.exe yutu.exe) --repo eat-pray-ai/yutu

MCP 服务器

在 VS Code 中安装 在 Cursor 中安装

作为一个 MCP 服务器,yutu 可以在 MCP 客户端中使用,如 Claude Desktop、VS Code 或 Cursor 等,这允许您通过聊天的形式与 YouTube 资源进行交互。

在将 yutu 用作 MCP 服务器之前,请确保已安装 yutu(参见安装部分),并且您有有效的 client_secret.json 和 youtube.token.json 文件(参考前提条件部分)。

您可以通过点击上面相应的徽章将 yutu 添加为 VS Code 或 Cursor 中的 MCP 服务器,或手动将以下配置添加到您的 MCP 客户端。记得将 YUTU_CREDENTIAL 和 YUTU_CACHE_TOKEN 的值替换为您本地机器上的正确路径。

{
  "yutu": {
    "type": "stdio",
    "command": "yutu",
    "args": [
      "mcp"
    ],
    "env": {
      "YUTU_CREDENTIAL": "/absolute/path/to/client_secret.json",
      "YUTU_CACHE_TOKEN": "/absolute/path/to/youtube.token.json"
    }
  }
}

使用方法

❯ yutu        
yutu is a fully functional MCP server and CLI for YouTube, which can manipulate almost all YouTube resources

Usage:
  yutu [flags]
  yutu [command]

Available Commands:
  activity               List YouTube activities
  auth                   Authenticate with YouTube API
  caption                Manipulate YouTube captions
  channel                Manipulate YouTube channels
  channelBanner          Insert Youtube channel banner
  channelSection         Manipulate YouTube channel sections
  comment                Manipulate YouTube comments
  commentThread          Manipulate YouTube comment threads
  completion             Generate the autocompletion script for the specified shell
  help                   Help about any command
  i18nLanguage           List YouTube i18n languages
  i18nRegion             List YouTube i18n regions
  mcp                    Start MCP server
  member                 List channel's members' info
  membershipsLevel       List memberships levels' info
  playlist               Manipulate YouTube playlists
  playlistImage          Manipulate YouTube playlist images
  playlistItem           Manipulate YouTube playlist items
  search                 Search for YouTube resources
  subscription           Manipulate YouTube subscriptions
  superChatEvent         List Super Chat events for a channel
  thumbnail              Set thumbnail for a video
  version                Show the version of yutu
  video                  Manipulate YouTube videos
  videoAbuseReportReason List YouTube video abuse report reasons
  videoCategory          List YouTube video categories
  watermark              Manipulate YouTube watermarks

Flags:
  -h, --help   help for yutu

Use "yutu [command] --help" for more information about a command.

功能特性

请参考 FEATURES.md 获取更多信息。

贡献

请参考 CONTRIBUTING.md 获取更多信息。

Star 历史

Star History Chart