@aimasaou/ytcli
v1.0.0
Published
YouTube CLI Tool with multi-profile support
Maintainers
Readme
ytcli - YouTube CLI Tool
YouTubeの動画管理をコマンドラインから行うCLIツール。複数アカウント(プロファイル)対応。
機能
- 動画のアップロード(サムネイル、予約公開対応)
- 動画一覧の取得・検索
- 動画メタデータの更新(タイトル、説明、タグ、公開状態)
- チャンネル・動画のアナリティクス表示
- 複数YouTubeアカウント(プロファイル)の切り替え
- JSON出力対応(スクリプト連携用)
必要条件
- Node.js 20.0.0 以上
- Google Cloud Projectの作成とOAuth2認証情報
インストール
# npmからグローバルインストール
npm install -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"OAuth2認証情報の取得
- Google Cloud Console にアクセス
- プロジェクトを作成(または選択)
- 「APIとサービス」→「ライブラリ」から以下を有効化:
- YouTube Data API v3
- YouTube Analytics API
- 「認証情報」→「認証情報を作成」→「OAuthクライアントID」
- アプリケーションの種類: 「デスクトップアプリ」
- 作成後、Client IDとClient Secretをコピー
コマンド一覧
認証 (auth)
# ログイン(OAuth2認証)
ytcli auth login [--profile <name>] [--force]
# ログアウト
ytcli auth logout [--profile <name>]
# 認証状態を確認
ytcli auth status [--profile <name>]プロファイル管理 (profile)
# プロファイル一覧
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一覧
| 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 | 使用するプロファイル名を指定 |
トラブルシューティング
認証エラー(401/403)が発生する
# トークンを再取得
ytcli auth login --force「プロファイルが見つかりません」エラー
# プロファイル一覧を確認
ytcli profile list
# プロファイルを作成
ytcli profile create defaultYouTube Data API のクォータ制限
YouTube 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 testライセンス
MIT
