YouTubeの動画管理をコマンドラインから行うCLIツール。複数アカウント(プロファイル)対応。
- 動画のアップロード(サムネイル、予約公開対応)
- 動画一覧の取得・検索
- 動画メタデータの更新(タイトル、説明、タグ、公開状態)
- チャンネル・動画のアナリティクス表示
- 複数YouTubeアカウント(プロファイル)の切り替え
- JSON出力対応(スクリプト連携用)
- Node.js 20.0.0 以上
- Google Cloud Projectの作成とOAuth2認証情報
# まず試す(インストール不要)
npx -y @aimasaou/ytcli@latest --help
# グローバルインストール(推奨)
npm install -g @aimasaou/ytcli
# アップデート
npm install -g @aimasaou/ytcli@latest
# アンインストール
npm uninstall -g @aimasaou/ytcli
# 開発版(リポジトリから)
git clone https://github.com/MASAKASUNO1/ytcli.git
cd ytcli
npm install
npm link# 1. プロファイルを作成
ytcli profile create default
# 2. OAuth2認証情報を入力(対話形式)
# Client IDとClient Secretを入力
# 3. YouTubeに認証
ytcli auth login
# 4. 動画一覧を確認
ytcli list
# 5. 動画をアップロード
ytcli upload video.mp4 -t "My Video"- Google Cloud Console にアクセス
- プロジェクトを作成(または選択)
- 「APIとサービス」→「ライブラリ」から以下を有効化:
- YouTube Data API v3
- YouTube Analytics API
- 「認証情報」→「認証情報を作成」→「OAuthクライアントID」
- アプリケーションの種類: 「デスクトップアプリ」
- 作成後、Client IDとClient Secretをコピー
# ログイン(OAuth2認証)
ytcli auth login [--profile <name>] [--force]
# ログアウト
ytcli auth logout [--profile <name>]
# 認証状態を確認
ytcli auth status [--profile <name>]# プロファイル一覧
ytcli profile list
# デフォルトプロファイルを切り替え
ytcli profile use <name>
# プロファイルを作成(対話形式)
ytcli profile create <name>
# プロファイルを作成(引数指定)
ytcli profile create <name> --client-id <id> --client-secret <secret>
# プロファイルを削除
ytcli profile delete <name>
# プロファイル詳細を表示
ytcli profile show [name]# 動画一覧を取得
ytcli list [-m, --max <number>] [-s, --status <status>] [--next-page-token <token>] [-q, --query <text>] [--json]
# 動画の詳細を取得
ytcli get <videoId> [--json]
# 動画のメタデータを更新
ytcli update <videoId> [-t, --title <title>] [-d, --description <desc>] [--tags <tags>] [--privacy <status>] [--thumbnail <path>]
# 動画をアップロード
ytcli upload <file> -t <title> [-d, --description <desc>] [--tags <tags>] [--privacy <status>] [--thumbnail <path>] [--category <id>] [--publish-at <datetime>]# チャンネル全体のアナリティクス
ytcli analytics [-d, --days <number>] [--json]
# 特定動画のアナリティクス
ytcli analytics <videoId> [-d, --days <number>] [--json]# チャンネル情報を表示
ytcli channel [--json]-
--profile <name>オプション -
YTCLI_PROFILE環境変数 -
~/.cerberus/youtube-cli/.current-profileファイル -
defaultプロファイル
~/.cerberus/youtube-cli/
├── profiles/
│ ├── default.json
│ └── work.json
└── .current-profile
| ID | カテゴリ |
|---|---|
| 1 | Film & Animation |
| 2 | Autos & Vehicles |
| 10 | Music |
| 15 | Pets & Animals |
| 17 | Sports |
| 19 | Travel & Events |
| 20 | Gaming |
| 22 | People & Blogs (default) |
| 23 | Comedy |
| 24 | Entertainment |
| 25 | News & Politics |
| 26 | Howto & Style |
| 27 | Education |
| 28 | Science & Technology |
| 29 | Nonprofits & Activism |
# 基本的なアップロード(非公開)
ytcli upload video.mp4 -t "My Video"
# 説明・タグ付きで公開アップロード
ytcli upload video.mp4 -t "Tutorial" -d "Description here" --tags "AI,tutorial" --privacy public
# サムネイル付きでアップロード
ytcli upload video.mp4 -t "My Video" --thumbnail thumb.jpg
# 予約公開(日本時間)
ytcli upload video.mp4 -t "My Video" --publish-at "2030-12-25T09:00:00+09:00"
# JSON形式で動画一覧を取得
ytcli list --json
# 動画一覧を検索(取得したページ内)
ytcli list -m 50 --query "tutorial"
# 次ページを取得(表示されたトークンを利用)
ytcli list --next-page-token <TOKEN>
# 特定動画のタイトルを変更
ytcli update VIDEO_ID -t "New Title"
# 過去7日間のアナリティクス
ytcli analytics -d 7
# 別プロファイルで操作
ytcli list --profile work| 変数名 | 説明 |
|---|---|
YTCLI_PROFILE |
使用するプロファイル名を指定 |
# トークンを再取得
ytcli auth login --force# プロファイル一覧を確認
ytcli profile list
# プロファイルを作成
ytcli profile create defaultYouTube Data API には1日あたりのクォータ制限があります。大量のアップロードや頻繁なAPI呼び出しを行う場合は、Google Cloud Consoleでクォータ使用量を確認してください。
- サポートされる形式: JPEG, PNG, GIF, BMP
- 最大ファイルサイズ: 2MB
- 推奨解像度: 1280x720 (16:9)
# リポジトリをクローン
git clone https://github.com/MASAKASUNO1/ytcli.git
cd ytcli
# 依存関係をインストール
npm install
# CLIを実行
npm start -- list
# または
node bin/ytcli.js list
# テスト
npm testMIT