youtube-uploader

YouTube Data API v3を使用して、作成した動画をYouTubeにプログラマティックにアップロードします。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "youtube-uploader" with this command: npx skills add y-ymmt/cc-manim-video-creator-plugin/y-ymmt-cc-manim-video-creator-plugin-youtube-uploader

YouTube動画アップローダー

YouTube Data API v3を使用して、作成した動画をYouTubeにプログラマティックにアップロードします。

前提条件

初回セットアップ(ユーザーが行う)

以下のセットアップはユーザー自身が行う必要があります。セットアップが完了していない場合は、このスキルの「初回セットアップガイド」セクションを参照するよう案内してください。

  • Google Cloud Consoleでプロジェクトを作成

  • YouTube Data API v3を有効化

  • OAuth 2.0認証情報を作成

  • credentials.json をダウンロード

依存パッケージ

pip3 install google-auth-oauthlib google-api-python-client

credentials.json の配置場所

重要: credentials.json は以下の優先順位で自動検索されます。明示的に --credentials オプションを指定しなくても、以下の場所に配置されていれば自動的に使用されます。

検索優先順位

優先度 場所 パス

1 明示的指定 --credentials /path/to/credentials.json

2 プロジェクトディレクトリ ./credentials.json

3 ホームディレクトリ ~/credentials.json

4 設定ディレクトリ ~/.config/youtube/credentials.json

5 プラグインディレクトリ ${CLAUDE_PLUGIN_ROOT}/credentials.json

推奨配置場所

個人用(全プロジェクト共通)- 推奨

~/.config/youtube/credentials.json

または

~/credentials.json

プロジェクト固有の認証情報

./credentials.json

注意事項

  • token.json (認証トークン)は credentials.json と同じディレクトリに自動生成されます

  • .gitignore に credentials.json と token.json を追加してください

  • 複数の場所に credentials.json がある場合、優先度の高い場所のファイルが使用されます

アップロード前の確認事項

動画をアップロードする前に、以下を確認してください:

  1. 動画ファイルの確認

    • ファイルパスが正しいか
    • MP4形式であるか
    • ファイルが存在するか
  2. 認証情報の確認

    • credentials.json が存在するか
    • 初回実行時はブラウザ認証が必要
  3. メタデータの準備

    • タイトル(必須)
    • 説明(推奨)
    • タグ(推奨)
    • カテゴリ(デフォルト: 22 = People & Blogs)
    • プライバシー設定(デフォルト: private)

使用方法

スクリプトの場所

アップロードスクリプトは以下の場所にあります: ${CLAUDE_PLUGIN_ROOT}/skills/youtube-uploader/scripts/youtube_uploader.py

基本的なアップロード

python3 ${CLAUDE_PLUGIN_ROOT}/skills/youtube-uploader/scripts/youtube_uploader.py
/path/to/video.mp4
--title "動画タイトル"
--credentials /path/to/credentials.json

フルオプションでのアップロード

python3 ${CLAUDE_PLUGIN_ROOT}/skills/youtube-uploader/scripts/youtube_uploader.py
/path/to/video.mp4
--title "動画タイトル"
--description "動画の詳細な説明文"
--tags "manim,アニメーション,解説"
--privacy private
--category 27
--credentials /path/to/credentials.json

Manimで作成した動画のアップロード例

Manimの出力動画をアップロード

python3 ${CLAUDE_PLUGIN_ROOT}/skills/youtube-uploader/scripts/youtube_uploader.py
./media/videos/scene/1080p60/MyScene.mp4
--title "Manimで作成した解説動画"
--description "Manim Community ライブラリで作成したアニメーション"
--tags "manim,animation,python,math"
--privacy unlisted
--category 27
--credentials ~/credentials.json

コマンドラインオプション

オプション 必須 説明 デフォルト

file

必須 アップロードするMP4動画のパス

--title

必須 動画タイトル

--description

任意 動画の説明文 空

--tags

任意 カンマ区切りのタグ 空

--privacy

任意 private , unlisted , public

private

--category

任意 YouTubeカテゴリID 22

--credentials

任意 credentials.jsonのパス credentials.json

--playlist

任意 追加先プレイリストID

--publish-at

任意 予約投稿日時(ISO 8601形式)

YouTubeカテゴリID

カテゴリ ID

Film & Animation 1

Autos & Vehicles 2

Music 10

Pets & Animals 15

Sports 17

Travel & Events 19

Gaming 20

People & Blogs 22

Comedy 23

Entertainment 24

News & Politics 25

Howto & Style 26

Education 27

Science & Technology 28

Manim動画の推奨カテゴリ:

  • 解説・教育動画: 27 (Education)

  • 技術デモ: 28 (Science & Technology)

  • エンターテイメント: 24 (Entertainment)

初回セットアップガイド

ユーザーがセットアップ未完了の場合、以下の手順を案内してください。

ステップ1: Google Cloud Consoleでプロジェクト作成

  • Google Cloud Console にアクセス

  • 上部の「プロジェクト選択」→「新しいプロジェクト」

  • プロジェクト名を入力(例: YouTube-Uploader )

  • 「作成」をクリック

ステップ2: YouTube Data API v3を有効化

  • 左メニュー →「APIとサービス」→「ライブラリ」

  • 「YouTube Data API v3」を検索

  • 「有効にする」をクリック

ステップ3: OAuth 2.0認証情報を作成

  • 「APIとサービス」→「認証情報」

  • 「+ 認証情報を作成」→「OAuth クライアントID」

同意画面の設定(初回のみ):

  • User Type:「外部」を選択

  • アプリ名: YouTube Uploader

  • サポートメール: 自分のメールアドレス

  • 「保存して次へ」を繰り返す

  • テストユーザーに自分のGoogleアカウントを追加

OAuth クライアントIDの作成:

  • アプリケーションの種類:「デスクトップアプリ」

  • 「作成」→「JSONをダウンロード」

  • ダウンロードしたファイルを credentials.json にリネーム

ステップ4: 依存パッケージのインストール

pip3 install google-auth-oauthlib google-api-python-client

ステップ5: 初回認証

python3 youtube_uploader.py test_video.mp4
--title "Test Upload"
--credentials credentials.json

初回実行時:

  • ブラウザが自動で開く

  • Googleアカウントでログイン

  • 「許可」をクリック

  • token.json が自動生成される(以降の認証に使用)

予約投稿

動画を特定の日時に公開予約できます:

python3 youtube_uploader.py video.mp4
--title "予約投稿動画"
--privacy private
--publish-at "2025-02-01T18:00:00Z"

注意: 予約投稿は private または unlisted の動画でのみ機能します。

プレイリストへの追加

アップロードと同時にプレイリストに追加:

python3 youtube_uploader.py video.mp4
--title "プレイリスト用動画"
--playlist "PLxxxxxxxxxxxx"

プレイリストIDの取得方法:

トラブルシューティング

credentials.json が見つからない

正しいパスを指定

python3 youtube_uploader.py video.mp4
--title "Test"
--credentials ~/path/to/credentials.json

権限エラー (403)

  • token.json を削除

  • スクリプトを再実行して再認証

  • 「すべてを許可」をクリック

Invalid value エラー (400)

  • --category が1-28の範囲か確認

  • --publish-at がISO 8601形式か確認: 2025-01-15T15:30:00Z

アップロードが途中で止まる

  • Ctrl+C で中断可能

  • 再実行で続行される場合あり

  • ネットワーク接続を確認

セキュリティ

認証情報ファイルの管理

.gitignoreに追加

echo "credentials.json" >> .gitignore echo "token.json" >> .gitignore

環境変数での管理

export YOUTUBE_CREDENTIALS_FILE="/path/to/credentials.json"

python3 youtube_uploader.py video.mp4
--title "My Video"
--credentials $YOUTUBE_CREDENTIALS_FILE

ワークフロー例: Manim動画作成→YouTubeアップロード

1. Manimで動画をレンダリング

uv run manim -qh scene.py MyScene

2. 音声を合成(フル版の場合)

python3 combine_final.py

3. YouTubeにアップロード

python3 ${CLAUDE_PLUGIN_ROOT}/skills/youtube-uploader/scripts/youtube_uploader.py
./final_output.mp4
--title "Manim解説動画"
--description "Manim Community ライブラリで作成"
--tags "manim,animation,python"
--privacy unlisted
--category 27
--credentials ~/credentials.json

リファレンス

  • YouTube Data API v3 公式ドキュメント

  • 動画アップロードAPI

  • Google OAuth 2.0

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

manim-video-creator

No summary provided by upstream source.

Repository SourceNeeds Review
General

youtube-uploader

No summary provided by upstream source.

Repository SourceNeeds Review
106-aviz85
General

Youtube Podcast Generator

Extracts the original text of Youtube video and converts it into a multi-voice AI podcast using a local Node.js API and FFmpeg. It also can show you the text...

Registry SourceRecently Updated
General

ERPClaw

AI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842,...

Registry SourceRecently Updated