Communitygithub.com

Remotion ショート動画スキル

Remotion を使って縦型ショート動画を作成し、TikTok、Instagram Reels、YouTube Shorts に投稿します。トピック、記事、URL、データセット、変更履歴、リストなどを、1080x1920 のキネティックタイポグラフィ方式のショート動画に変換します。

Remotion ショート動画スキル とは?

このスキルは、AI エージェント(Claude Code、Cursor、Codex など)が Remotion を使用して縦型ショート動画を生成し、WoopSocial 経由でソーシャルメディアプラットフォームに投稿するためのものです。ユーザーは JSON 形式でシーンスクリプトを記述するだけで、Remotion のテンプレートが自動的にレイアウト、再生速度調整、安全圏内へのテキスト配置を行い、MP4 ファイルをレンダリングします。動画の種類は、フック、統計、リスト、引用、製品発表、変更履歴など多岐にわたります。このスキルは、各動画ごとに Remotion コードを記述する必要をなくし、スクリプト作成に集中できるようにします。対応プラットフォームは、TikTok、Instagram Reels、YouTube Shorts で、ローカル環境でレンダリングするため、有料の API は不要です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/social-media-skills/remotion-shorts-skill/tree/HEAD/skills/remotion-shorts-skill

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Remotion ショート動画スキル は何をしますか?

あなたは、ショート動画をシーンの JSON ファイルとして作成します。同梱の Remotion プロジェクトが単語をレイアウトし、各シーンを読み取り速度に合わせてタイミング調整し、テキストをアプリのボタンがカバーしない領域内に収め、レビューシート、カバー画像、MP4 をレンダリングします。ユーザーは WoopSocial を使用して投稿できます。

各動画ごとに Remotion コードを記述する必要はありません。テンプレートは固定されており、テスト済みです。あなたの仕事はスクリプト、つまり各画面に何を、どの順序で、どのくらいの速さで表示するかを決めることです。

0. セットアップ(マシンごとに1回)

Node 20 以降が必要です。node -v で確認してください。ない場合は、ユーザーを https://nodejs.org に誘導してください。Remotion は macOS 15 以降、Windows x64、および glibc 2.35+(Ubuntu 22.04、Debian 12 以降)の Linux をサポートしています。

node <skill-dir>/scripts/setup.mjs remotion-shorts

これにより、プロジェクトが ./remotion-shorts にコピーされ、固定されたパッケージ(約 260 MB)がインストールされ、Remotion がレンダリングに使用するヘッドレスブラウザ(100 ~ 150 MB)がダウンロードされます。初回は 1 ~ 3 分かかります。スキルが更新された後にもう一度実行すると、テンプレートファイルが更新されます(ユーザーが変更したファイルは .bak として保持されます)。スクリプト、アセット、出力には触れません。

ライセンス。 Remotion は個人および最大 3 名の企業向けに無料です。4 名以上の企業は Remotion の企業ライセンスが必要であり、スクリプトからのレンダリングは自動化と見なされます (remotion.pro/license)。ユーザーが大企業向けにレンダリングしている場合は、最初のレンダリング前に、その旨を明確に一度伝えてください。

1. 必要な情報を尋ねる(1 メッセージで、既にわかっていることはスキップ)

  • 素材。 トピック、記事、URL、メモ、データ、変更履歴、またはリスト。裏付けが取れる事実のみを記述します。ユーザーがソースなしでトピックを指定した場合は、一次ソース(公式統計、ドキュメント、製品自体の変更履歴)を見つけて、その名前を明記します。
  • 対象者と1つの要点。 1 つのショート動画は 1 つのことを伝えます。
  • 見た目。 テーマ(ink、paper、volt、ocean、clean)またはブランドカラー、およびエンド画面用のハンドル。
  • オーディオ。 組み込みの効果音はデフォルトでオンです(フックにヒット、カットごとにウィッシュ、ハイライトにポップ、カウントアップにチック)。これらはこのテンプレート用に作られており、すべてのアプリで安全です。音楽は、使用権限のあるファイルからのみ使用できます(無料のライブラリが 3 つのアプリすべてで安全でない理由については、references/writing-shorts.md を参照)。
  • 投稿先。 TikTok、Reels、Shorts、またはそのすべて。

2. スクリプトを書く

セッションの最初のスクリプトの前に、references/writing-shorts.md を読んでください。簡略版は次のとおりです。

  • シーン 1 はフック で、約 10 語以内でベネフィットを述べます。数字、主張、またはリストの約束(「5 つの無料ツールで...を置き換える」)です。フレーム 0 から完全に画面に表示されます。フックに数字がある場合は、big に入れて、最初に目が行くようにします。
  • 1 シーン = 1 つのアイデア。 シーンは段落ではなく、ビートです。統計シーンは 1 つの数字とその意味を伝えます。リスト項目はカウントダウンまたはカウントアップします。フックでその旨を明記します。
  • すべてのシーンに実際の情報。 新しい情報がないテンプレート化されたテキスト動画は、YouTube では「非本物のコンテンツ」、Instagram では「オリジナルでないコンテンツ」と見なされます。決して引き伸ばさないでください。
  • 数字は正確で、ソースを明記。 ソースを footer に記述します(「データ:USGS」)。数字を四捨五入して別の主張に変えないでください。
  • 1 つのアクション またはフックに戻るような行で終了し、ループが連続的に感じられるようにします。「ご視聴ありがとうございました」は不要です。
  • 長さ: 15 ~ 45 秒を目標とします。レンダラーは 59 秒を超えると警告を出します。

プロジェクトフォルダーに short.json を書き込みます。完全なフォーマット、すべてのシーンタイプとオプションは references/short-json.md にあります。最小限のスクリプト:

{
  "theme": "ink",
  "footer": "Data: USGS",
  "handle": "@yourhandle",
  "scenes": [
    { "type": "hook", "big": "2.5%", "text": "of Earth's water is fresh" },
    { "type": "stat", "value": "96.5", "suffix": "%", "label": "is salt water in the oceans" },
    { "type": "stat", "value": "68.7", "suffix": "%", "label": "of the fresh water is ice and glaciers", "highlight": "ice and glaciers" },
    { "type": "end", "text": "Save this for trivia night", "highlight": "Save this" }
  ]
}

3. 動画をレンダリングする前に確認する

cd remotion-shorts
node render.mjs short.json --stills

数秒で、計画(各シーンの秒数とフォントサイズ)が出力され、以下が書き込まれます。

  • out/short/sheet.jpg:すべてのシーンの最終フレーム(画面上のすべて)で、安全領域が細い破線でマークされています(テキストはその内側に収める必要があります)。
  • out/short/cuts.jpg:フレーム 0 と各カットの前後のフレーム。動きを確認するためです。
  • out/short/cover.jpg:フックが着地した時点のもの(Reels のカバーとしてアップロードします)。
  • out/short/report.json:タイミング、改行、警告。

両方のシートを開いて確認してください。 すべてのシーンが電話サイズで読みやすいか、各シーンが 1 つのことを伝えているか、ハイライトが重要な単語に設定されているか、窮屈に見えないか、順序が正しいか、フレーム 0 にフック全体が表示されているかを確認してください。JSON を修正し、投稿してもよいと思えるまで --stills を再度実行してください。

警告があると、動画のレンダリングが停止します(終了コード 2)。テキストが 1 画面に収まらない、フックが長すぎる、ハイライトがテキスト内にない、シーンが読むには速すぎる、ペースが 0.85 ~ 1.25 の範囲外、ショート動画が 59 秒を超える、などです。スクリプトを修正してください。--force は、ユーザーが警告を確認し、それでも実行したい場合にのみ使用してください。--force でも上書きできないエラーもあります。例えば、どのサイズでも単語が画面の幅に収まらない場合などは、テキストが画面外にはみ出します。

4. レンダリング

node render.mjs short.json

out/short/short.mp4 に出力されます:1080x1920、30 fps、H.264、yuv420p、AAC(音楽がない場合は無音トラック)。これは TikTok、Reels、Shorts のすべてで受け入れられます。30 秒のショート動画は、最近のラップトップで約 1 分でレンダリングされます。8 GB のメモリを搭載したマシンでは、2 フレームずつレンダリングされます。レンダリングがメモリ不足で強制終了される場合は、--concurrency 1 を付けて再度実行してください。

ユーザーに見せる前に、3 つのフレーム(開始、中間、終了)をキャプチャして確認するか、クライアントが可能であれば再生してください。その後、ユーザーにカバー、シート、MP4 のパスを提示してください。

複数のアカウント: 同じファイルを複数のアカウントに投稿しないでください。アカウントごとにバリアント(異なるフック、テーマ、またはシーンの順序。独自の JSON として保存)を作成し、2 つのアカウントが類似した動画を投稿しないようにしてください。

5. 投稿(WoopSocial、確認付き)

references/woopsocial.md を読んでください。簡単に説明すると:

  1. social_accounts_list を使用してアカウントを検索します(必要に応じて事前に接続します)。
  2. TikTok の場合は、social_accounts_get_platform_inputs を使用して、アカウントのプライバシーオプションと許可される最長動画時間を取得します。ユーザーがプライバシーを選択します。デフォルトはありません。
  3. アップロード:media_uploads_create_session を report.json の正確なバイトサイズで呼び出し、応答を session.json として保存し、node upload.mjs session.json out/short/short.mp4 を実行してから、media_uploads_complete_session を READY になるまで実行します。
  4. プラットフォームごとにキャプションを作成します(TikTok と Reels:動画に追加する 1 行と 3 ~ 5 個の具体的なハッシュタグ、YouTube:100 文字未満のタイトルと説明)。contentOverride を使用してプラットフォームごとのテキストを設定します。
  5. posts_validate を実行し、その後、ユーザーにアカウント、プラットフォームごとのキャプション、プライバシー、タイムゾーン付きのスケジュール時間、カバーを表示します。明確な承諾を待ちます。その後、posts_create と posts_get を実行します。

開示フィールド:ショート動画がユーザー自身の製品を宣伝する場合は、TikTok で isYourBrand: true を設定します。isAiGeneratedContent は、リアルな AI 画像、動画、音声の場合にのみ必要です(キネティックテキストには必要ありません)。YouTube の madeForKids は法的な宣言です。推測せずに、尋ねてください。

6. 結果を報告する

以下を表示します:MP4 のパス、長さ、シート、投稿先(posts_get からのリンク)またはスケジュール、およびできなかったこと。ビューや結果をでっち上げないでください。後で social_account_posts_list を使用して読み取り、収集日を報告してください。

見た目の編集

  • ブランドカラー:theme をオブジェクトとして渡します(bg、fg、accent、accentText、font、uppercase)。テキストのコントラスト比は 7:1 以上に保ちます。背景に対してもアクセントカラーを確認してください。
  • シーンの背後に写真や動画を配置する:シーンごとに image、またはショート動画全体に background を使用します。これらはテーマカラーの下に暗く表示され、テキストが読みやすくなります。ユーザーが所有しているか、ライセンスを持っているファイルを使用し、ライセンスが要求する場合はキャプションでクレジットを記載します。
  • 同梱フォント:Anton(コンデンス、大文字、強い)、Poppins、Inter。すべて OFL です。
  • テンプレート自体を変更するには、src/Short.tsx を編集し、npm run studio でプレビューします。

エッジケース

  • 数字のソースがない場合: 使用しないでください。何が不足しているかを伝えてください。
  • テキストが収まらない場合: シーンを分割してください。レンダラーはフォントサイズを下限未満に縮小しません。
  • 右から左へのテキスト、CJK テキスト、絵文字: 同梱フォントはこれらをカバーしておらず、空のボックスとして表示される可能性があります。その旨を伝えて、それらを使用しないでください(絵文字はキャプションに含めることができます)。
  • ユーザーがトレンドのサウンドを希望する場合: API 投稿では追加できません。postMode: MEDIA_UPLOAD を指定して TikTok に投稿すると、TikTok の受信トレイに届き、アプリ内で仕上げることができます。
  • Linux でのレンダリングがライブラリ不足で失敗する場合: references/platform-specs.md にリストされているパッケージをインストールしてください。
  • Windows: プロパティは常に JSON ファイルで渡し、コマンドラインにインラインで渡さないでください。

品質基準

完了と見なす前に、以下のすべてを満たしている必要があります。

  • フレーム 0 にフック全体が表示されている(cuts.jpg を確認)。約 10 語以下で、ベネフィットを述べている。
  • すべてのシーンが 1 つのことを伝えており、約 14 語を超えるシーンがない。
  • すべての数字がソースと一致しており、ソースが画面またはキャプションに表示されている。
  • 警告がない、またはユーザーが警告を確認し、--force を選択した。
  • 両方のシートを確認:破線の安全ラインの外側にテキストがない、ハイライトが正しい単語に設定されている。
  • 15 ~ 59 秒。
  • アカウントごとに異なるバージョン。
  • 何かを投稿する前に、ユーザーが確認した。

関連スキル