Communitygithub.com

데일리 뉴스 캐스터

최신 뉴스를 가져와서 마크다운 형식의 팟캐스트 대본으로 작성한 후, TTS 스킬을 사용하여 팟캐스트 오디오 파일을 생성합니다. 사용자가 최신 뉴스를 요청하고 팟캐스트로 읽어 달라고 할 때 사용하세요.

데일리 뉴스 캐스터란 무엇인가요?

이 스킬은 실시간 뉴스 수집, 팟캐스트 대본 작성, 오디오 생성의 전 과정을 자동화합니다. 사용자가 최신 뉴스를 팟캐스트로 요청하면, 먼저 `news-aggregator-skill`의 `fetch_news.py` 스크립트를 실행하여 HackerNews나 GitHub 등에서 최신 뉴스를 가져옵니다. 그런 다음 수집된 뉴스 데이터를 바탕으로 두 명의 호스트가 질문과 답변을 주고받는 형식의 마크다운 팟캐스트 대본을 작성합니다. 마지막으로 `tts` 스킬을 사용하여 각 발언을 문장 단위로 음성 파일로 변환한 후 `ffmpeg`로 병합하여 최종 팟캐스트 오디오 파일(`podcast_output.wav`)을 생성합니다. 이 스킬은 직접 API 키가 필요 없으며, tts 스킬이 필요에 따라 NOIZ_API_KEY를 사용할 수 있습니다. 생성된 대본과 오디오 파일을 모두 사용자에게 제공합니다.

지원 대상✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/noizai/skills/tree/main/skills/daily-news-caster

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

데일리 뉴스 캐스터 스킬

이 스킬을 통해 에이전트는 실시간 뉴스를 가져오고, 대화형 팟캐스트 대본으로 정리한 후, 대본을 소리 내어 읽는 오디오 파일을 생성할 수 있습니다.

워크플로우 지침

사용자가 최신 뉴스를 가져와 팟캐스트로 만들어 달라고 요청하면 다음 단계를 엄격히 따르세요:

1단계: 필요한 스킬이 있는지 확인

news-aggregator-skill과 tts가 워크스페이스(skills/ 또는 .cursor/skills/ 아래)에 존재하는지 확인하세요. 둘 중 하나라도 없으면, 어떤 스킬이 없는지 사용자에게 알리고 수동으로 설치하도록 요청하세요. 자동으로 스킬을 설치하려고 시도하지 마세요.

2단계: 최신 뉴스 가져오기

news-aggregator-skill 스킬 디렉토리(예: skills/news-aggregator-skill/scripts/fetch_news.py)에서 fetch_news.py를 찾으세요. 필요하다면 해당 스킬의 SKILL.md를 읽어 사용법을 확인하세요.

스크립트를 실행하여 실시간 뉴스를 가져옵니다. 사용자의 요청에 따라 소스(예: hackernews, github, all) 또는 키워드를 지정할 수 있습니다. 예시 명령어:

python3 skills/news-aggregator-skill/scripts/fetch_news.py --source all --limit 10 --deep

3단계: 팟캐스트 대본 작성 (내부 단계)

가져온 뉴스 데이터를 읽고 정보를 마크다운 팟캐스트 대본으로 다시 작성하세요. 가장 중요한 것은, 두 명의 호스트(2인 진행) 대화 형식을 동적인 Q&A 스타일로 우선시하는 것입니다. 대본은 다음과 같아야 합니다:

  • 두 호스트의 대화형이면서 간결: 두 호스트 사이의 흥미로운 문답 형식으로 작성하세요. 호스트 A는 통찰력 있고 가치 있는 질문을 던져 대화를 이끌고, 호스트 B는 유익하고 간결한 답변을 제공해야 합니다. 스마트하고 빠른 Q&A 대화처럼 느껴져야 합니다.
  • 불필요한 내용 없음: 불필요한 장식이나 지나치게 긴 전환문을 포함하지 마세요. 중요한 정보와 사실을 모두 유지하면서 간결하게 작성하세요.
  • 발언자 명확히 표시: 각 줄이나 문단은 발언자 이름으로 시작하세요(예: 호스트 A: 또는 호스트 B:).
  • 음성에 적합한 텍스트: 말하는 텍스트에는 복잡한 URL, 원시 마크다운 링크 또는 발음하기 어려운 문자를 피하세요.

이 대본을 podcast_script.md 파일로 로컬에 저장하세요.

podcast_script.md 예시 내용:

**호스트 A:** 오늘의 뉴스 요약 시간에 오신 것을 환영합니다. 오늘은 흥미로운 기술 소식이 몇 가지 있습니다. 먼저 [회사 이름]의 대규모 업데이트 소식이 있는데요. 일반 사용자에게 이번 신규 출시의 핵심적인 의미는 무엇인가요?

**호스트 B:** 핵심은... [뉴스 항목 1의 간결한 답변 및 요약]입니다. 이는 [주제]에 대한 접근 방식을 완전히 바꿉니다.

**호스트 A:** 흥미롭네요. 하지만 최근 데이터 유출 사고를 고려할 때, 이러한 접근 방식이 새로운 보안 문제를 제기하지 않을까요?

**호스트 B:** 바로 그 점입니다. 전문가들은... [분석 또는 맥락 삽입]을 지적하고 있습니다.

**호스트 A:** 오픈소스 세계로 넘어가서, 오늘 GitHub에서 개발자들이 주목해야 할 트렌드는 무엇인가요?

**호스트 B:** 눈에 띄는 프로젝트는... [뉴스 항목 2의 간결한 요약]입니다.

**호스트 A:** 좋은 인사이트네요. 이상으로 오늘의 간단한 업데이트를 마치겠습니다. 들어주셔서 감사합니다!

4단계: 팟캐스트 오디오를 한 줄씩 생성하기

전체 대본을 한 번에 API로 보내지 않으려면, 문장 단위로(一人一句) 오디오를 생성한 후 연결하세요.

로컬 tts 스킬(skills/tts/scripts/tts.py)의 tts.py를 사용하세요. 전체 사용법과 백엔드 옵션을 보려면 tts 스킬의 SKILL.md를 읽으세요.

1. 각 대사에 대한 오디오 생성: 대본의 각 대화 줄에 대해 speak 명령을 실행하세요. 해당 호스트에 맞는 음성 또는 참조 오디오를 사용하세요. 사용자가 두 역할에 대한 참조 오디오 파일을 제공한 경우 --ref-audio 플래그와 함께 사용하세요(noiz 백엔드와 NOIZ_API_KEY 필요). API 키가 없으면 게스트 모드 음성을 사용할 수 있습니다(자세한 내용은 tts SKILL.md 참조).

python3 skills/tts/scripts/tts.py -t "오늘의 뉴스 요약 시간에 오신 것을 환영합니다..." --ref-audio host_A.wav -o line_01.wav

python3 skills/tts/scripts/tts.py -t "핵심은..." --ref-audio host_B.wav -o line_02.wav

2. 오디오 파일 연결: 생성된 모든 오디오 파일을 순서대로 나열한 텍스트 파일(예: list.txt)을 만드세요:

file 'line_01.wav'
file 'line_02.wav'

그런 다음 ffmpeg를 사용하여 하나의 팟캐스트 오디오 파일로 병합하세요:

ffmpeg -f concat -safe 0 -i list.txt -c copy podcast_output.wav

5단계: 최종 결과 제시

전체 오디오가 생성 및 병합된 후, 결과를 사용자에게 제시하세요. 다음 두 가지 콘텐츠를 모두 제공해야 합니다:

  • 작성된 마크다운 팟캐스트 대본 전체를 채팅에 출력하여 사용자가 읽을 수 있도록 하세요.
  • 최종 podcast_output.wav 파일의 경로를 제공하여 사용자가 오디오를 들을 수 있도록 하세요.
  • 팟캐스트에 포함된 헤드라인을 간략히 요약하세요.

보안 및 데이터 공개

이 스킬은 지침 전용입니다. 자체적으로 실행 가능한 코드를 포함하지 않습니다. 런타임 시 두 종속 스킬의 스크립트를 조정합니다:

  • 실행되는 스크립트: news-aggregator-skill/scripts/fetch_news.py (공개 소스에서 뉴스를 가져옴) 및 tts/scripts/tts.py (음성 오디오 생성). 이 스킬이 실행되기 전에 두 스크립트가 로컬에 있어야 합니다. 네트워크 동작 및 자격 증명 요구 사항에 대한 자세한 내용은 해당 코드와 SKILL.md를 검토하세요.
  • 자격 증명: 이 스킬은 직접 API 키나 환경 변수가 필요하지 않습니다. tts 종속성은 음성 복제 기능(noiz 백엔드)을 위해 NOIZ_API_KEY가 필요할 수 있습니다. 키가 없으면 게스트 모드 음성이 기본적으로 작동합니다. 자세한 내용은 tts 스킬의 SKILL.md를 참조하세요.
  • 네트워크 액세스: 모든 네트워크 호출은 이 스킬의 지침이 아닌 종속 스킬에 의해 이루어집니다. news-aggregator는 공개 뉴스 소스에서 가져오며, tts 스킬은 noiz 백엔드가 사용될 때만 noiz.ai에 접속합니다.
  • 작성되는 파일: podcast_script.md, line_*.wav (임시 문장별 오디오), list.txt (ffmpeg 연결 목록), podcast_output.wav (최종 출력). 모두 현재 작업 디렉토리에 작성됩니다.
  • 영구 상태 없음: 이 스킬은 구성 파일을 작성하거나, 자격 증명을 저장하거나, 다른 스킬을 수정하지 않습니다.

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

관련 스킬