feat(v3): PR 2 - engine.json sora→kling/veo + SmartVideoRouter

- config/engine.json: switch video_generation provider from sora to
  smart_router; add kling_free/veo3/seedance2 engine options; update
  optional_keys (KLING_API_KEY, FAL_API_KEY); keep legacy entries
- bots/converters/smart_video_router.py: new SmartVideoRouter class with
  budget-aware engine selection, daily state tracking, Kling stub
  implementation, and ffmpeg_slides fallback chain

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sinmb79
2026-03-29 11:38:15 +09:00
parent 3d200beba4
commit 09030697ee
2 changed files with 376 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
{
"_comment": "The 4th Path 블로그 자동 수익 엔진 — 엔진 설정 (v3)",
"_updated": "2026-03-26",
"_updated": "2026-03-29",
"writing": {
"provider": "openclaw",
"_comment_provider": "openclaw=ChatGPT Pro(OAuth), claude_web=Claude Max(웹쿠키), gemini_web=Gemini Pro(웹쿠키), claude=Anthropic API키, gemini=Google AI API키",
@@ -75,8 +75,40 @@
}
},
"video_generation": {
"provider": "sora",
"provider": "smart_router",
"options": {
"smart_router": {
"priority": ["kling_free", "veo3", "seedance2", "ffmpeg_slides"],
"daily_cost_limit_usd": 0.50,
"prefer_free_first": true,
"fallback": "ffmpeg_slides"
},
"kling_free": {
"api_url": "https://api.klingai.com/v1",
"api_key_env": "KLING_API_KEY",
"free_daily_credits": 66,
"mode": "standard",
"resolution": "720p",
"aspect_ratio": "9:16",
"audio": true,
"cost_per_sec": 0
},
"veo3": {
"api_key_env": "GEMINI_API_KEY",
"model": "veo-3.1",
"resolution": "720p",
"aspect_ratio": "9:16",
"audio": true,
"cost_per_sec": 0.03
},
"seedance2": {
"provider": "fal.ai",
"api_key_env": "FAL_API_KEY",
"model": "seedance-2.0",
"resolution": "720p",
"audio": true,
"cost_per_sec": 0.022
},
"ffmpeg_slides": {
"resolution": "1080x1920",
"fps": 30,
@@ -88,6 +120,7 @@
"burn_subtitles": true
},
"seedance": {
"_comment": "레거시 — seedance2/FAL_API_KEY로 대체됨",
"api_url": "https://api.seedance2.ai/v1/generate",
"api_key_env": "SEEDANCE_API_KEY",
"resolution": "1080x1920",
@@ -95,11 +128,6 @@
"audio": true,
"fallback": "ffmpeg_slides"
},
"sora": {
"comment": "OpenAI Sora — API 접근 가능 시 활성화",
"api_key_env": "OPENAI_API_KEY",
"fallback": "ffmpeg_slides"
},
"runway": {
"api_key_env": "RUNWAY_API_KEY",
"model": "gen3a_turbo",
@@ -108,7 +136,7 @@
"fallback": "ffmpeg_slides"
},
"veo": {
"comment": "Google Veo 3.1 — API 접근 가능 시 활성화",
"comment": "Google Veo 3.1 레거시 — veo3로 대체됨",
"api_key_env": "GEMINI_API_KEY",
"fallback": "ffmpeg_slides"
}
@@ -170,9 +198,10 @@
"cta": "팔로우하면 매일 이런 정보를 받습니다"
},
"optional_keys": {
"SEEDANCE_API_KEY": "Seedance 2.0 AI 영상 생성",
"KLING_API_KEY": "Kling 3.0 AI 영상 생성 (66 무료 크레딧/일)",
"FAL_API_KEY": "Seedance 2.0 AI 영상 생성 (fal.ai)",
"ELEVENLABS_API_KEY": "ElevenLabs 고품질 TTS",
"GEMINI_API_KEY": "Google Gemini 글쓰기 / Veo 영상",
"RUNWAY_API_KEY": "Runway Gen-3 AI 영상 생성"
}
}
}