HyperFrames×Instagram自動投稿|動画生成から毎日投稿まで自動化する方法

目次

「HyperFramesで動画を作れるのは分かったけど、Instagramへの投稿はどうすればいいのか」——前回の記事でHyperFramesの基本を紹介した後、こう感じた方もいるのではないでしょうか。HyperFrames自体はHTML・CSS・GSAPで動画を生成するツールであり、SNSへの投稿機能は持っていません。本記事では、生成した動画をInstagram Graph API経由で投稿し、cronやGitHub Actionsを使って毎日の自動投稿まで組み上げる手順を解説します。

結論:仕組みの全体像

先に全体の流れを示します。

  1. HyperFramesでMP4動画を生成する
  2. 生成した動画を、外部から参照できる公開URLに配置する
  3. Instagram Graph APIで「コンテナ作成→処理待ち→公開」の手順を実行する
  4. cronやGitHub Actionsのスケジュール機能で、1〜3を毎日自動実行する

ポイントは2番目の「公開URLに配置する」工程です。Instagram Graph APIは、投稿する動画のファイルそのものをアップロードするのではなく、動画が置かれている「URL」を指定する方式になっています。HyperFramesがローカルまたはCI環境で生成したMP4は、このままではAPIに渡せないため、どこかインターネット上からアクセスできる場所に置く一手間が必要になります。

事前準備

自動投稿の仕組みを組む前に、次のものを用意します。

  • Instagramビジネスアカウントまたはクリエイターアカウント:個人アカウントはAPIアクセスが制限されており、投稿の自動化には利用できません
  • Facebookページとの連携:InstagramアカウントをFacebookページに接続しておく必要があります
  • Meta for Developersでのアプリ作成:Meta for Developersでビジネスアプリを作成し、Instagramグラフ API製品を追加します
  • 長期アクセストークン:必要な権限を付与したうえで、Facebookログインを通じて発行します

これらはMetaの管理画面上での設定作業になるため、初回のみやや手間がかかりますが、一度発行してしまえば以降は再利用できます。

HyperFramesで動画を生成する

動画生成そのものの手順は、前回の記事「HyperFramesでHTML動画を作る方法」で解説したとおりです。HTML・CSS・GSAPでコンポジションを組み、決定論的にMP4としてレンダリングします。AIエージェントからの呼び出しを前提に設計されているため、CI環境やスクリプトから定期的に動画を量産する用途とも相性が良いツールです。

生成した動画を公開URLに配置する

生成したMP4は、Instagram Graph APIから参照できる公開URLに配置する必要があります。選択肢としては、次のようなものが考えられます。

  • クラウドストレージ(S3互換のオブジェクトストレージなど)にアップロードし、公開URLを発行する
  • 自分のVPSやサーバー上の公開ディレクトリに配置し、そのURLを使う
  • WordPressのメディアライブラリにアップロードし、そのURLを流用する

いずれの方法でも、動画とカバー画像(サムネイル)の両方が、認証なしで外部からアクセスできる状態になっている必要があります。

Instagram Graph APIで投稿する

動画の公開URLが用意できたら、Instagram Graph APIで投稿します。処理は「コンテナの作成」と「公開」の2段階に分かれています。

まず、動画のURLとキャプションを指定してメディアコンテナを作成します。

POST /{ig-user-id}/media
  video_url={動画の公開URL}
  cover_url={カバー画像の公開URL}
  caption={投稿文}
  media_type=REELS
  share_to_feed=true

このリクエストのレスポンスとして、コンテナIDが返ってきます。動画の処理には時間がかかるため、コンテナのステータスが「FINISHED」になるまで、一定間隔でステータスを確認(ポーリング)する必要があります。

処理が完了したら、そのコンテナIDを使って公開します。

POST /{ig-user-id}/media_publish
  creation_id={取得したコンテナID}

これで、指定した動画がリールとして投稿されます。share_to_feed=trueを指定しているため、フィードとリールの両方に表示される設定になっています。

cron/GitHub Actionsで毎日自動実行する

ここまでの一連の流れ(動画生成→アップロード→コンテナ作成→処理待ち→公開)をスクリプト化すれば、あとはスケジューラーに任せるだけです。

  • VPSで運用している場合:cronで「毎日decidedした時刻にスクリプトを実行する」設定を組みます
  • GitHub Actionsを使う場合scheduleトリガー(cron構文)を使い、リポジトリ上でワークフローを毎日実行する形にできます。サーバーの管理が不要な分、個人開発では手軽な選択肢です

どちらの方法でも、動画生成からInstagramへの公開までを1本のスクリプトにまとめておくと、スケジューラー側の設定はシンプルに保てます。

注意点

  • レート制限:Instagram Graph APIには、アプリごとに1時間あたり200回の呼び出しという制限があります。1日1本程度の投稿であれば通常問題になりませんが、リトライ処理を組む場合は呼び出し回数に注意してください
  • 利用規約の順守:自動投稿はMetaの利用規約の範囲内で行う必要があります。投稿内容やアカウントの運用方法によっては規約違反とみなされる可能性があるため、事前に最新の利用規約を確認しておくことをおすすめします
  • 処理待ちのポーリング:動画の処理には数秒から数十秒かかることがあり、処理中に公開しようとするとエラーになります。ステータス確認を挟む設計が必須です
  • 公開URLの管理:動画を置いたストレージの容量や公開設定の見直しも、運用を続ける上で必要になります

よくある質問

Q1. 個人のInstagramアカウントでもこの方法は使えますか?
使えません。Instagram Graph APIのコンテンツ公開機能は、ビジネスアカウントまたはクリエイターアカウントのみが対象です。個人アカウントの場合は、事前にアカウント種別を切り替える必要があります。

Q2. HyperFrames自体にInstagram投稿機能はありますか?
ありません。HyperFramesはHTML・CSS・GSAPで動画を生成するためのフレームワークで、SNSへの投稿は別途Instagram Graph API等と組み合わせる必要があります。

Q3. 動画をアップロードする場所はどこがおすすめですか?
既にVPSやクラウドストレージを運用している場合はそれを流用するのが手軽です。特にこだわりがなければ、S3互換のオブジェクトストレージが管理しやすい選択肢になります。

Q4. GitHub Actionsとcron、どちらがおすすめですか?
既にVPSを運用しているならcronの方が管理対象が増えず簡単です。サーバーを持っていない、または管理を減らしたい場合はGitHub Actionsのスケジュール機能が手軽です。

まとめ

HyperFramesで生成した動画をInstagramに自動投稿するには、「動画生成」「公開URLへの配置」「Instagram Graph APIでの投稿」という3つの工程を1本のスクリプトにまとめ、cronやGitHub Actionsで毎日実行する仕組みを組むことになります。Instagram側の要件(ビジネスアカウント、公開URL、処理待ちのポーリング)を押さえておけば、動画コンテンツの投稿作業を大きく省力化できます。

※本記事で紹介したAPIの仕様は執筆時点(2026年8月)のものです。Instagram Graph APIの仕様は変更されることがあるため、実装時は必ずMeta for Developersの最新ドキュメントをご確認ください。