コンテンツをスケジュールする2つの方法
Upload-Postにはスケジューリングの2つのアプローチがあります。scheduled_dateパラメータで正確な日時を設定する方法と、キューシステムを使ってシステムに最適な時間を選ばせる方法です。どちらも動画アップロード、写真アップロード、テキスト投稿のすべてのエンドポイントで使用できます。
オプションA: 特定の日時にスケジュール
任意のアップロードリクエストにscheduled_dateパラメータを追加します。形式はISO-8601で、最大365日先まで予約できます。
curl -X POST https://api.upload-post.com/api/upload \
-H "認可: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Coming soon... stay tuned!" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "scheduled_date=2025-09-22T10:00:00Z" \
-F "timezone=Europe/Madrid"
いくつか重要なポイントがあります。日時はデフォルトでUTCですが、timezoneパラメータをIANA形式(アメリカ/ニューヨーク、ヨーロッパ/ロンドン、アジア/東京など)で指定すれば、正しい現地時間に投稿されます。タイムゾーンの計算を自分でする必要はありません。
投稿のスケジュールが成功すると、APIは202ステータスとjob_idを含むレスポンスを返します:
{
"success": true,
"job_id": "scheduler_job_abc123",
"scheduled_date": "2025-09-22T10:00:00Z"
}
このjob_idは、後で投稿を編集またはキャンセルする際に必要になるので保存しておいてください。
オプションB: キューシステムを使う
キューは、正確な時間を指定せずに一定のペースで投稿したい場合に最適です。日時を選ぶ代わりにadd_to_queue=trueを設定すると、Upload-Postが設定済みのスケジュールに基づいて次の空きスロットを自動的に割り当てます。
キューの設定
まず、キューの設定を行います。投稿する曜日と時間帯を定義します:
curl -X POST https://api.upload-post.com/api/uploadposts/queue/settings \
-H "認可: Apikey your-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"timezone": "アメリカ/ニューヨーク",
"slots": [
{ "hour": 9, "minute": 0 },
{ "hour": 12, "minute": 30 },
{ "hour": 17, "minute": 0 }
],
"days": [0, 1, 2, 3, 4]
}' この例では、月曜から金曜の午前9時、午後12時30分、午後5時(ニューヨーク時間)に投稿されます。1日あたり最大24スロットまで設定できます。
キューにコンテンツを追加する
curl -X POST https://api.upload-post.com/api/upload \
-H "認可: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Monday motivation" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "add_to_queue=true" Upload-Postが自動的に次の空きスロットに投稿を割り当てます。例えば水曜の午後2時にリクエストした場合、その日の午後5時にスケジュールされます。水曜のスロットがすべて埋まっていれば、木曜の午前9時に移動します。
今後のキュースロットをプレビュー
コンテンツをキューに追加する前に、どの時間帯が空いているか確認したい場合は、プレビューエンドポイントを使います:
curl https://api.upload-post.com/api/uploadposts/queue/preview?count=10 \
-H "認可: Apikey your-api-key-here" 次の10個の空きスロットと正確な日時が返されます。一度に最大50件まで取得できます。
スケジュール済み投稿の管理
コンテンツがスケジュールされると、APIを通じて完全にコントロールできます。
スケジュール済み投稿の一覧表示
curl https://api.upload-post.com/api/uploadposts/schedule \
-H "認可: Apikey your-api-key-here"
保留中のジョブの配列が返されます。各ジョブにはjob_id、scheduled_date、プラットフォーム詳細、コンテンツのプレビューURLが含まれます。
スケジュール済み投稿の編集
投稿日時の変更やキャプションの更新が必要な場合は、PATCHリクエストを使います:
curl -X PATCH https://api.upload-post.com/api/uploadposts/schedule/scheduler_job_abc123 \
-H "認可: Apikey your-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"scheduled_date": "2025-09-25T14:00:00Z",
"title": "より良いハッシュタグを使用した更新されたキャプション"
}' スケジュール済み投稿のキャンセル
curl -X DELETE https://api.upload-post.com/api/uploadposts/schedule/scheduler_job_abc123 \
-H "認可: Apikey your-api-key-here" 投稿とアップロード済みのアセットは即座に削除されます。
キューでコンテンツカレンダーを構築する
多くの代理店が使っている実用的なワークフローを紹介します。月曜日にコンテンツをまとめて制作し、すべてキューにアップロードすると、システムが1週間を通して自動的に配信してくれます。水曜の午前9時にオンラインで投稿ボタンを押す必要はありません。
これはn8nやMake.comと組み合わせると特に強力です。例えば、Google Driveフォルダの新しいファイルが自動的にキューに追加されるワークフローを設定できます。すぐに使えるGoogle Sheetsスケジューリング用n8nテンプレートもご覧ください。
年間を通じた重要な日程のコンテンツ企画には、ソーシャルメディアカレンダーも便利です。
Pythonでスケジュール
from upload_post import UploadPostClient
from datetime import datetime, timedelta
client = UploadPostClient(api_key="your-api-key-here")
# Schedule a video for tomorrow at 10 AM Madrid time
publish_date = (datetime.now() + timedelta(days=1)).replace(
hour=10, minute=0, second=0
)
response = client.upload_video(
video_path="/path/to/video.mp4",
title="Pythonからスケジュールされました",
user="mybrand",
platforms=["tiktok", "instagram", "youtube"],
scheduled_date=publish_date.isoformat(),
timezone="Europe/Madrid"
)
print(f"スケジュールされました!ジョブID: {response['job_id']}") プラットフォーム別の1日あたりアップロード上限
大量のコンテンツをスケジュールする際は、各プラットフォームが1日あたりのアップロード上限を設けていることに注意してください。これは接続アカウントごとの24時間ローリングウィンドウです:
| プラットフォーム | 1日の上限 |
|---|---|
| TikTok | 15アップロード |
| YouTube | 10アップロード |
| 20アップロード | |
| 25アップロード | |
| 40アップロード | |
| 50アップロード | |
| X(Twitter) | 50アップロード |
| スレッド | 50アップロード |
| Bluesky | 50アップロード |
| 150アップロード |
キューシステムはこれらの上限を自動的に考慮し、どのプラットフォームでも過剰なスケジューリングは行いません。
よくある質問
同じコンテンツを異なるプラットフォームで異なる時間にスケジュールできますか?
1つのリクエストでは対応していませんが、各プラットフォームに異なるscheduled_dateを設定した別々のリクエストを送ることができます。または、自動的に分散配信するキューシステムをご利用ください。
スケジュール済みの投稿が失敗した場合はどうなりますか?
ウェブフック(設定済みの場合)を通じてエラーの詳細を含む通知が届きます。GET /api/uploadposts/status?job_id=your_job_idエンドポイントでもステータスを確認できます。
ノーコードツールとスケジューリングを組み合わせることはできますか?
もちろんです。n8nとMake.comのどちらでも、HTTPリクエストモジュールでscheduled_dateやadd_to_queueパラメータを送信できます。スプレッドシートからデータを読み込んで、すべてを自動的にスケジュールするビジュアルワークフローを構築できます。