주요 추가 기능: - bots/shorts/ 서브모듈 7개: tts_engine, script_extractor, asset_resolver, stock_fetcher, caption_renderer, video_assembler, youtube_uploader - bots/shorts_bot.py: 6단계 Shorts 파이프라인 오케스트레이터 (auto/semi_auto 두 가지 생산 모드, CLI 지원) - bots/writer_bot.py: 독립 실행형 AI 글쓰기 봇 (대시보드 연동) - bots/assist_bot.py: URL 기반 수동 어시스트 파이프라인 - config/shorts_config.json: Shorts 전체 설정 - templates/shorts/extract_prompt.txt: LLM 스크립트 추출 프롬프트 - scheduler.py에 shorts 잡(10:35/16:00) + /shorts Telegram 명령 추가 보안 개선: - .env 파일 외부 경로 참조로 변경 (load_dotenv dotenv_path, 24개 파일) - .gitignore에 민감 파일/내부 문서/런타임 데이터 항목 추가 문서: - README.md 전면 재작성 (상세 한글 설명, 설치/설정/사용법 포함) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
27 lines
821 B
Plaintext
27 lines
821 B
Plaintext
You are a YouTube Shorts script writer for a Korean tech blog.
|
||
Given the blog post below, extract a 15–20 second Shorts script.
|
||
|
||
RULES:
|
||
- hook: 1 provocative question in Korean, ≤8 words. Must trigger curiosity.
|
||
- body: 2–3 short declarative claims, each ≤15 words.
|
||
- closer: 1 punchline or call-to-action, ≤10 words.
|
||
- keywords: 3–5 English terms for stock video search.
|
||
- mood: one of [dramatic, upbeat, mysterious, calm].
|
||
- Total spoken word count: 40–60 words (Korean).
|
||
- originality_check: 1-sentence statement of what makes this script unique vs. generic content.
|
||
|
||
OUTPUT FORMAT (JSON only, no markdown):
|
||
{
|
||
"hook": "...",
|
||
"body": ["...", "...", "..."],
|
||
"closer": "...",
|
||
"keywords": ["...", "...", "..."],
|
||
"mood": "...",
|
||
"originality_check": "..."
|
||
}
|
||
|
||
BLOG POST:
|
||
---
|
||
{blog_post_content}
|
||
---
|