본문 바로가기

[21] 쇼츠 대본 생성기 - chatGPT API 연동하기

들어가며

🏫 전체 강의 영상 youtube

📄 쇼츠 대본 생성기 사용해보기

📎 쇼츠 대본 생성기로 만든 쇼츠 영상

 ▶️  강의 영상 유튜브

 

이번 시간에는 뉴스 기사 본문 텍스트를 가지고 프롬프트를 만들고, 이를 chatGPT API에 요청해서 쇼츠 대본을 생성해보겠습니다.

프롬프트 생성

먼저 프롬프트 템플릿을 복붙해줍니다. 그 다음 읽어온 뉴스 기사로 이제 프롬프트를 만들어줍니다.

prompt_template = """
최신 연예 뉴스 기사가 주어집니다.
뉴스 기사를 참고해서 유튜브 쇼츠 영상 대본을 만들어주세요.
각 단락마다 영상에 소개될 이미지나 영상 클립을 묘사해주세요. 
10대 소녀가 친구에게 말하는 듯한 말투로 작성해주세요.

아래 포맷으로 작성해주세요.
[제목] <제목 텍스트>\n\n
[클립] <영상에서 보여줄 이미지나 영상에 대한 묘사>\n
[대본] <나레이션 방식의 대본>\n
[클립] <영상에서 보여줄 이미지나 영상에 대한 묘사>\n
[대본] <나레이션 방식의 대본>\n
...
---
뉴스 기사: {article}
---
""".strip()
prompt_template = """
최신 연예 뉴스 기사가 주어집니다.
뉴스 기사를 참고해서 유튜브 쇼츠 영상 대본을 만들어주세요.
각 단락마다 영상에 소개될 이미지나 영상 클립을 묘사해주세요. 
10대 소녀가 친구에게 말하는 듯한 말투로 작성해주세요.

아래 포맷으로 작성해주세요.
[제목] <제목 텍스트>\n\n
[클립] <영상에서 보여줄 이미지나 영상에 대한 묘사>\n
[대본] <나레이션 방식의 대본>\n
[클립] <영상에서 보여줄 이미지나 영상에 대한 묘사>\n
[대본] <나레이션 방식의 대본>\n
...
---
뉴스 기사: {article}
---
""".strip()

chatGPT API 요청 및 화면 출력

이제 만들어진 프롬프트로 chatGPT API를 요청하고, 결과를 화면에 출력해줍니다. 생성된 영상을 편하게 제작하기 위해서 대본 부분만 따로 출력하는 기능도 추가해주겠습니다.

if submit:
    if not reference_url:
        st.error("참고할 뉴스 URL을 넣어주세요.")
    elif not reference_url.startswith("https://entertain.naver.com/"):
        st.error("지원되지 않는 URL입니다.")
    else:
        article = parse_article(reference_url)
        prompt = prompt_template.format(article=article)
        system_role = "당신은 쇼츠 전문 유투버입니다."
        response = request_chat_completion(prompt, stream=True, system_role=system_role)
        message = write_streaming_response(response)

        st.divider()
        st.subheader("복사용 대본")
        scripts = [x for x in message.split("\n") if x.startswith("[대본]")]
        for script in scripts:
            st.markdown(script.replace("[대본]", "").strip())

마치며

이상으로 유튜브 쇼츠 생성 서비스 구현을 마무리 해보겠습니다.  다음 강의에서는 AI 영상 편집기 vrew를 이용해서 쇼츠 영상을 만드는 모습을 보여드리겠습니다.