영상 길이(Duration)에 따라 호흡과 구성은 완전히 달라져야 합니다. 1분짜리 쇼츠는 ‘도파민’이 핵심이고, 20분짜리 롱폼은 ‘서사(Storytelling)’가 핵심입니다.
이것을 GPT에게 학습(Few-Shot) 시키기 위한 **[만능 마스터 프롬프트]**와 **[길이별 설정값(Configuration)]**을 정리해 드립니다.
이 내용을 gpt-service.js 같은 코드에서 변수처럼 갈아 끼우시면 됩니다.
1. 기본 뼈대 (System Prompt) – 공통 사항
모든 영상에 공통적으로 적용되는 **’작가 페르소나’**와 **’JSON 출력 규칙’**입니다.
# Role
너는 유튜브 알고리즘을 완벽하게 파악한 '메인 작가'야.
주어지는 [영상 길이]와 [주제]에 맞춰 최고의 시청 지속 시간을 이끌어내는 대본을 작성해.
# General Rules (Tone & Manner)
1. 구어체 필수: 문어체(~다, ~습니다) 절대 금지. 옆에서 친구에게 말하듯 (~해, ~야, ~했음) 작성.
2. 호흡 조절: 문장은 짧게 끊어쳐. 낭독했을 때 숨이 차지 않도록.
3. 시각화: 대사(Audio)에 딱 맞는 화면(Visual) 묘사를 포함해야 해.
# Output Format (JSON Only)
반드시 아래 JSON 형식으로만 출력해. 설명이나 잡담 금지.
{
"title": "클릭을 부르는 자극적인 제목",
"total_duration_estimate": "예상 소요 시간 (분:초)",
"scenes": [
{
"section": "Intro/Body/Outro",
"duration_sec": 3,
"visual_desc": "화면 묘사 (예: 불타는 배경에서 놀란 표정의 남자)",
"script": "와.. 이거 진짜 실화냐? (대사)"
}
...
]
}
2. 길이별 학습 가이드 (User Prompt & Configuration)
GPT에게 요청할 때, 아래의 **[구조 지침]**을 user 메시지 앞단에 붙여주면 길이가 달라도 완벽하게 대응합니다.
A. 숏폼 (Shorts / Reels) – 1분 미만
-
핵심: Hook (낚시) → Fast Pacing (속도감) → Replay (반복 유도)
-
프롬프트 지침:
[지침: 1분 숏폼 스타일]
구조: [강렬한 훅(5초)] -> [빌드업(15초)] -> [반전/핵심정보(30초)] -> [결론/질문(10초)]
속도: 컷 전환은 2~3초마다 이루어져야 함. (총 씬 개수: 15~20개)
금지: 서론이 길면 안 됨. 바로 본론으로 들어갈 것.
꿀팁: 마지막 문장은 첫 문장과 이어지게 만들어서 무한 반복 재생을 유도해.
B. 미드폼 (정보/랭킹/리뷰) – 3분 ~ 10분
-
핵심: Logic (논리) → Structure (구조화) → Retention (유지)
-
프롬프트 지침:
[지침: 미드폼 정보 전달 스타일]
구조: [오프닝/공감유도(30초)] -> [본론 1(기승)] -> [본론 2(전)] -> [본론 3(결)] -> [총정리 및 구독유도]
속도: 한 씬당 5~8초 유지. 시청자가 정보를 이해할 시간을 줄 것.
전략: 중간중간 “잠깐, 여기서 놀라운 점은…” 같은 연결멘트로 이탈을 막을 것.
C. 롱폼 (다큐/해설/썰) – 20분 ~ 30분
-
핵심: Narrative (서사) → Immersion (몰입) → Emotion (감정)
-
프롬프트 지침:
[지침: 롱폼 스토리텔링 스타일]
구조: [프롤로그(하이라이트)] -> [챕터 1: 발단] -> [챕터 2: 전개/위기] -> [챕터 3: 절정/해결] -> [에필로그]
속도: 호흡을 길게 가져가. 한 씬당 10~15초 가능. 배경음악의 분위기를 고려한 감성적인 멘트 허용.
전략: 마치 영화 한 편을 보는 듯한 깊이 있는 서술 필요. 단순 정보 나열 금지. 기승전결의 드라마를 만들 것.
3. 실제 “학습용 데이터(Few-Shot)” 예시
이것을 프롬프트의 **example**로 넣어주면 GPT가 “아, 이렇게 쓰라는 거구나” 하고 바로 알아듣습니다. 가장 수요가 많은 1분 숏폼과 5분 미드폼 예시를 만들어 드립니다.
[학습 데이터 1] 1분 숏폼 (JSON)
(GPT에게 이 예시를 보여주고 “이거랑 똑같이 써”라고 하세요)
{
"title": "한국인이 가장 많이 틀리는 맞춤법 TOP 1",
"total_duration_estimate": "00:58",
"scenes": [
{
"section": "Hook",
"duration_sec": 3,
"visual_desc": "빨간색 X 표시가 크게 쳐진 텍스트 '뵈요'",
"script": "아직도 '내일 뵈요'라고 보내는 사람 있어? 제발 그만해!"
},
{
"section": "Body",
"duration_sec": 5,
"visual_desc": "카카오톡 채팅창에서 상대방이 읽씹하는 장면",
"script": "썸남썸녀한테 이렇게 보냈다가 차단당해도 할 말 없다고."
},
{
"section": "Climax",
"duration_sec": 10,
"visual_desc": "칠판에 선생님이 '봬 = 뵈어' 공식을 적는 장면",
"script": "딱 정해줄게. '봬'는 '뵈어'의 준말이야. '내일 뵈어요'가 말이 되면 '봬요'가 맞는 거야."
},
{
"section": "Outro",
"duration_sec": 5,
"visual_desc": "구독 버튼을 손가락으로 누르는 애니메이션",
"script": "이제 안 틀릴 자신 있으면 좋아요 한 번 눌러줘!"
}
]
}
[학습 데이터 2] 5분 정보 영상 (JSON)
(미드폼/롱폼 제작 시 이 예시를 주입하세요)
{
"title": "비트코인, 지금 사도 될까? (객관적 분석)",
"total_duration_estimate": "05:10",
"scenes": [
{
"section": "Intro",
"duration_sec": 20,
"visual_desc": "비트코인 차트가 급락했다가 급등하는 역동적인 모션 그래픽",
"script": "천당과 지옥을 오가는 비트코인. 지금이 기회일까요, 아니면 폭탄 돌리기일까요? 3가지 지표로 팩트만 체크해 드립니다."
},
{
"section": "Point 1",
"duration_sec": 45,
"visual_desc": "미국 연준 의장이 금리 발표를 하는 뉴스 자료화면",
"script": "첫 번째는 금리입니다. (중략) 돈줄이 마르면 코인도 힘을 못 쓰죠. 하지만 최근 시그널은 다릅니다."
},
... (중략: Point 2, Point 3) ...
{
"section": "Conclusion",
"duration_sec": 30,
"visual_desc": "물음표가 느낌표로 바뀌는 인포그래픽",
"script": "결론입니다. 무지성 매수는 위험하지만, 분할 매수는 유효한 구간입니다. 여러분의 생각은 어떠신가요? 댓글로 토론해 봅시다."
}
]
}
4. 어떻게 적용하나요? (구현 가이드)
개발 중인 Node.js 코드에서 duration 파라미터에 따라 **다른 지침(Instruction)과 예시(Example)**를 섞어서 보내면 됩니다.
// prompt-manager.js (가상 코드)
function buildPrompt(topic, durationMinutes) {
let styleGuide = "";
let fewShotExample = "";
if (durationMinutes <= 1) {
styleGuide = "지침: 1분 숏폼 스타일 (훅-바디-반전), 컷 전환 3초";
fewShotExample = JSON.stringify(shortFormSample); // 위에서 만든 숏폼 예시
} else if (durationMinutes <= 10) {
styleGuide = "지침: 미드폼 정보 전달 (서론-본론3-결론), 컷 전환 8초";
fewShotExample = JSON.stringify(midFormSample); // 위에서 만든 미드폼 예시
} else {
styleGuide = "지침: 롱폼 스토리텔링 (기승전결 서사), 깊이 있는 분석";
fewShotExample = JSON.stringify(longFormSample); // 롱폼 예시
}
return {
role: "system",
content: `... (기본 시스템 프롬프트) ...`,
user_instruction: `
주제: ${topic}
길이: ${durationMinutes}분
${styleGuide}
[참고할 완벽한 예시]
${fewShotExample}
위 예시와 같은 구조와 JSON 포맷으로 작성해.
`
};
}
팁: 처음에는 3가지(1분, 5분, 20분) 예시만 완벽하게 만들어두면, 3분/10분/30분 등 애매한 시간대는 GPT가 알아서 중간값으로 맞춰줍니다. **”극단적인 예시(아주 짧은 것, 아주 긴 것)”**를 학습시키는 게 효과가 좋습니다.
답글 남기기