

2Slides API で 100 個の単語カードデッキを一括生成:2026 コンテンツファクトリー実践ガイド
手動ワークフローを検証した次のボトルネックはボリュームです。12 レベル × 週 30 テーマの語学学校は年 360 デッキ。毎日投稿の faceless TikTok は年 365 デッキ + アスペクト比バリアント。EdTech のコンテンツチームは L1/L2 ペアで何百ものデッキ。
360 デッキは手で作るものではありません。コンテンツファクトリーを構築するものです。
このガイドは 2Slides API でプログラム的に単語デッキを一括生成する 2026 実践プレイブック。最も重要なアーキテクチャ判断──そして最もよく間違われるもの──は正しい生成エンドポイントを選ぶことです。
まず正しいエンドポイントを選ぶ(ここでファクトリーが壊れる)
2Slides API は API 経由で 2 つの異なる生成フローを公開しています。そのうち片方だけが、後でナレーションを追加できるデッキを生成します。
| エンドポイント | 出力 | ナレーション可能? | クレジット |
|---|---|---|---|
POST /api/v1/slides/generate | Fast PPT ──テンプレート駆動 PPTX。テンプレートライブラリの themeId | ❌ 不可。ナレーションエンドポイントが明示的に拒否 | 10 / ページ |
POST /api/v1/slides/create-pdf-slides | Nano Banana ──テキストプロンプトから画像生成スライド。Workspace と同じエンジン | ✅ 可能 | 10(プランニング)+ 100 / スライド(1K/2K)または 200 / スライド(4K) |
POST /api/v1/slides/create-like-this | Nano Banana ──参考画像のスタイルで生成 | ✅ 可能 | 上と同じ |
ナレーションと音声書き出し付きの単語カードファクトリーには create-pdf-slidescreate-like-this
/api/v1/slides/generateファクトリーが静かな PPTX のみ必要なら(音声・動画なし)、
/api/v1/slides/generateアーキテクチャ図
[ソース] [オーケストレーター] [2Slides API] [出力] │ │ │ │ 語彙 ──プロンプト──▶ ジョブキュー ──POST──▶ /api/v1/slides/create-pdf-slides ──▶ jobId (UUID) (Cron / スクリプト) │ │ │ │ │ │ ポーリング ──GET──▶ /api/v1/jobs/{jobId} ◀──────────────────────────┘ 20-30 秒ごと status: success │ │ ▼ │ [pages PNG · downloadUrl PDF] │ ▶ POST /api/v1/slides/generate-narration │ (jobId, voice, mode 等) ──非同期のみ │ ポーリング ──GET──▶ /api/v1/jobs/{jobId} message: "Voice narration ... in progress" → success │ ▶ POST /api/v1/slides/download-slides-pages-voices │ (無料;ZIP を返す) ▼ pages/*.png + voices/*.{wav,mp3} + transcript.txt │ ▼ (任意)クライアント / サーバーで ffmpeg で MP4 合成 または Workspace UI を使う │ ▼ [LMS / TikTok / newsletter / S3]
ソース → オーケストレーター → API → pages + voices ZIP → 配信。MP4 合成はオプションで公開 API エンドポイントではありません ──現状は Workspace UI のブラウザ内 FFmpeg.wasm 機能。API 側で MP4 が必要ならファクトリーで
ffmpegStep 1 — ソーススキーマを先に設計
deck_id: vocab-b1-travel-2026-w14 source_l1: ja # 学習者母語 target_l2: en # 学習言語 cefr_level: B1 theme: travel words: - { word: "boarding pass", ipa: "/ˈbɔːrdɪŋ pæs/", pos: noun, l1: "搭乗券" } - { word: "layover", ipa: "/ˈleɪoʊvər/", pos: noun, l1: "乗継" } - { word: "to delay", ipa: "/dɪˈleɪ/", pos: verb, l1: "遅延する" } # ... 27 more generation: endpoint: create-pdf-slides aspect_ratio: "9:16" resolution: "2K" page_count: 30 content_detail: "concise" narration: enabled: true voice: "Puck" mode: "single" distribution: social: [tiktok, reels, shorts] newsletter: monday-2026-w14
Step 2 — 認証
API 管理ページ でキー取得。Bearer 認証:
Authorization: Bearer sk-2slides-...
エンドポイント別レート制限は 2slides.com/api.md 参照。
create-pdf-slidescreate-like-thisjobs/{id}Step 3 — Nano Banana 生成ジョブを送信
単語カードは非同期モード推奨(30 カードのスライド画像生成は通常 1–3 分)。
curl -X POST "https://2slides.com/api/v1/slides/create-pdf-slides" \ -H "Authorization: Bearer sk-2slides-..." \ -H "Content-Type: application/json" \ -d '{ "userInput": "<デッキ形態のプロンプト>", "responseLanguage": "en", "aspectRatio": "9:16", "resolution": "2K", "page": 30, "contentDetail": "concise", "mode": "async" }'
レスポンスに
jobIdcurl -X GET "https://2slides.com/api/v1/jobs/{jobId}" \ -H "Authorization: Bearer sk-2slides-..."
ポーリング頻度:20–30 秒ごと。これより速くしてはいけない──API ドキュメントが明示しており、攻めすぎたポーリングが 429 の最頻原因です。多くは 1–3 分で完了。
Step 4 — 規模で耐えるプロンプトテンプレート
{{source_l1}} 母語の {{cefr_level}} レベル {{target_l2}} 学習者用の語彙デッキを生成。 テーマ:{{theme}}。 カード数:{{word_count}}。 各カードの出力: - 対象語({{target_l2}}) - 品詞 - IPA - {{source_l1}} 訳 - 自然な {{theme}} 文脈の例文 2 つ、B1 構文、各 8-14 語 含める語: {{word_list_yaml}} 最後にデッキで最も有用な 3 語のリキャップカード 3 枚で終わる。
ビジュアルスタイルは
designStyleStep 5 — ナレーションを追加
生成ジョブが
status: "success"jobIdcurl -X POST "https://2slides.com/api/v1/slides/generate-narration" \ -H "Authorization: Bearer sk-2slides-..." \ -H "Content-Type: application/json" \ -d '{ "jobId": "550e8400-e29b-41d4-a716-446655440000", "mode": "single", "voice": "Puck", "speakerName": "Vocabulary Coach", "contentMode": "concise", "includeIntro": true }'
同じ
/api/v1/jobs/{jobId}2 つの音声パターン:
- (単一音声)──直接単語、IPA、例文を読む
mode: "single" - (双人対話)──例文を 2 つの音声で分担、動詞や慣用句に最適
mode: "multi"
音声カタログは
/tts_sample_voices/PuckAoedeCharonKore重要:このエンドポイントはナレーションテキストと音声を一度で生成。「voice text」と「voice audio」を別々のエンドポイントで呼ばない──そういう独立した公開 API はありません。一度のリクエストで両方を実行します。
Step 6 — pages と voices をエクスポート(無料)
ナレーション完了後、すべてのアセットを単一 ZIP で取得:
curl -X POST "https://2slides.com/api/v1/slides/download-slides-pages-voices" \ -H "Authorization: Bearer sk-2slides-..." \ -H "Content-Type: application/json" \ -d '{ "jobId": "550e8400-e29b-41d4-a716-446655440000" }'
レスポンスの
downloadUrlpages/ page_01.png page_02.png ... voices/ page_01.wav page_02.wav ... transcript.txt
このエクスポートは無料──クレジット消費なし。ZIP をダウンロードしてアセットを自分のオブジェクトストアに保存。事前署名 URL は 1 時間で期限切れ。
Step 7 — (任意)サーバーで MP4 合成
2Slides API には現在 MP4 合成エンドポイントなし──MP4 生成は Workspace UI のブラウザ内 FFmpeg.wasm。コンテンツファクトリーではサーバーで
ffmpeg# 各ページごとに(画像静止)+(音声)クリップを構築 ffmpeg -loop 1 -i pages/page_01.png -i voices/page_01.wav \ -c:v libx264 -tune stillimage -c:a aac -b:a 192k \ -pix_fmt yuv420p -shortest clips/page_01.mp4 # 全ページクリップを結合 ffmpeg -f concat -safe 0 -i clip_list.txt -c copy final.mp4
各ページ音声時間はナレーションジェネレータが生成したもの──通常単語カードで 5–12 秒/スライド。Workspace UI からダウンロードする MP4 と同じ結果が、ファクトリーで自動的に得られます。
同じデッキの縦型(9:16)と横型(16:9)両方が必要なら、最もきれいな方法はスライド生成段階で 2 回生成すること(
aspectRatio: "9:16""16:9"Step 8 — オーケストレーターを構築
# 擬似コード while there_is_work(): deck = pull_one_pending_deck_from_source() if not deck: sleep(60); continue # 1. Nano Banana エンドポイントで生成 job = post("/api/v1/slides/create-pdf-slides", body=build_payload(deck)) deck_artifact = poll_until_complete(job.data.jobId) # 2. ナレーション(非同期のみ) if deck.narration.enabled: post("/api/v1/slides/generate-narration", body={ "jobId": deck_artifact.id, "voice": deck.narration.voice, "mode": deck.narration.mode, }) poll_until_narration_complete(deck_artifact.id) # 3. pages + voices ZIP(無料) zip_url = post("/api/v1/slides/download-slides-pages-voices", body={"jobId": deck_artifact.id}) # 4. アセットをオブジェクトストアに保存 download_to_s3(zip_url, deck.id) # 5. (任意)ffmpeg で MP4 合成、配信 if deck.distribution.social: compose_mp4(deck.id) distribute(deck)
100 デッキ/日:1 ワーカーで十分。1,000+:小ワーカープールに、ただしプール総並行が各エンドポイントレート制限を超えないように。
Step 9 — 配信パターン
- LMS:合成 MP4 を Canvas / Moodle / Blackboard / Google Classroom に各 API でアップロード
- TikTok / Reels / Shorts:9:16 MP4 を投稿ツール(Buffer、Later、ネイティブ)にキュー、1 日 1 本
- Newsletter:PDF コンパイル(元の生成ジョブの )を週次メールに埋め込み
downloadUrl - セールス / リードマグネット:PDF を Stan Store / Gumroad に、カルーセルティーザーで誘導
コスト計算(最初に計画すべき部分)
ナレーション付き Nano Banana デッキは Fast PPT 価格より積み上がります。30 カード(1K/2K、ナレーション付き):
- プランニング:10 クレジット
- スライド生成:30 × 100 = 3,000 クレジット
- ナレーション(テキスト + 音声):30 × 210 = 6,300 クレジット
- pages + voices エクスポート:無料
- 合計:~9,310 クレジット / ナレーション付き 30 カードデッキ
ナレーションなしなら同デッキ ~3,010 クレジット。4K 解像度:30 × 200 = 6,000 → ~12,310 クレジット(ナレーション付き)。
100 デッキ/月のファクトリー:100 × 9,310 = ~931,000 クレジット/月。料金ページ と照合。4K は大画面 / 高品質動画に値する場面のみ。TikTok / Reels の復習動画には 1K か 2K で十分。
火災防止の運用パターン
冪等性
deck_id(deck_id, status)pending → generating → narrating → exporting → composed → distributed品質ゲート
自動配信しない。機械可読品質チェック:
- 要求数とページ数一致
- ZIP に正しい数の と
pages/page_NN.pngvoices/page_NN.wav - 各ページ音声が 3–15 秒
- 非空、目標語を含む
transcript.txt
最初 50 バッチは手動で 1/10 を点検。
バージョニング
各成果物に:プロンプトテンプレートバージョン、画像モデル(
gemini-3-pro-image-previewgemini-3.1-flash-image-previewコスト遠隔測定
各デッキは既知のクレジットコスト。突然 2 倍 → 何かが変わった。
失敗処理
バックオフ 1 回再試行。2 回失敗で
needs_humanAPI を使うべきか
API が正解:
- 週 >10 デッキ
- 構造化ソースデータ
- サーバー側で合成・配信したいナレーション付き MP4
- LMS / スケジューラ / CMS 統合
- プロンプトバージョン下の再現性
API が過剰:
- 週 1 デッキで毎回視覚調整(UI が速い──Workspace UI は MP4 合成までやってくれる)
- 個人学習用
- レッスンごとに 1 デッキの教師
よくある質問
API キーはどこで取る?
2slides.com/api、API 管理タブ。
なぜ /api/v1/slides/generate のジョブにナレーションを追加できない?
/api/v1/slides/generategeneratecreate-pdf-slidescreate-like-thisAPI から直接 MP4 をエクスポートできる?
できません(2026 時点)。MP4 エクスポートは Workspace UI の機能、ブラウザ内 FFmpeg.wasm。API の等価物は
download-slides-pages-voicesffmpeg生成 API は何言語サポート?
22+ 言語。
responseLanguageクレジットコスト?
Nano Banana:10(プランニング)+ 100/ページ(1K/2K)または 200/ページ(4K)+ ナレーション 210/ページ(10 テキスト + 200 音声)。pages+voices エクスポートは無料。30 カードナレーション付き 2K ≈ 9,310 クレジット。料金ページ。
429 の処理?
指数バックオフ。1 秒開始、60 秒上限まで倍化。連続 3 回 429 で同時ワーカー数を半減。/api/v1/jobs/{id}
Zapier / Make / n8n と統合可能?
可能──認証付き HTTP リクエストを送れるツールならどれでも。n8n はコンテンツファクトリーで特に人気。
生成デッキを公開インデックスから防ぐには?
API 生成デッキはデフォルトでアカウント私有、公開共有は別の明示アクション。
同じデッキの 9:16 と 16:9 両方を生成するには?
2 回生成──
aspectRatio: "9:16""16:9"結論
コンテンツファクトリーは構造化ソースデータ + 安定オーケストレーター + 正しい API エンドポイント。最頻の失敗は
/api/v1/slides/generatecreate-pdf-slidescreate-like-thisgenerate-narrationdownload-slides-pages-voicesffmpeg手動側のワークフローは 単語カードガイド と クリエイターワークフロー を参照。
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free