mcpField
D
daily-news-caster

daily-news-caster

github.com/noizaiクリエイティブ・メディア5311.9k 回インストール4 週間前に更新
リポジトリ

daily-news-caster について

最新ニュースを2人の対話形式のポッドキャスト台本にまとめ、音声化する指示専用スキルです。ニュース取得と音声合成のローカルスキルを連携し、台本と完成音声のパスを提示します。

主な機能

  1. 01依存スキルで最新ニュースを取得
  2. 02話者を明記した2人のQ&A台本を作成
  3. 031行ずつ音声を生成
  4. 04音声を結合してポッドキャスト化
  5. 05実行前に必要なスキルを確認

活用シーン

  1. 01最新ヘッドラインの音声まとめ作成
  2. 02指定した情報源や話題のポッドキャスト化
  3. 03後で聴くための台本と音声の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/noizai/skills --skill daily-news-caster

インストール後、Claude Code で/daily-news-casterを入力して読み込まれたか確認します。

詳細

Daily News Caster Skill

このスキルを使うと、エージェントはリアルタイムのニュースを取得し、会話形式のポッドキャスト台本にまとめ、台本を読み上げる音声ファイルを生成できます。

ワークフローの手順

ユーザーから最新ニュースを取得してポッドキャストにするよう依頼された場合は、次の手順に必ず従ってください。

Step 1: 必要なスキルが存在することを確認する

news-aggregator-skill と tts がワークスペース内(skills/ または .cursor/skills/ の下)に存在することを確認します。どちらかが見つからない場合は、見つからなかったスキルをユーザーに伝え、続行する前に手動でインストールするよう依頼してください。スキルを自動でインストールしようとしてはいけません。

Step 2: 最新ニュースを取得する

news-aggregator-skill スキルのディレクトリから fetch_news.py を探します(例:skills/news-aggregator-skill/scripts/fetch_news.py)。必要に応じて、使い方を確認するためにそのスキルの SKILL.md を読みます。

スクリプトを実行して、リアルタイムのニュースを取得します。ユーザーの依頼に応じて、ソース(例:hackernews、github、all)またはキーワードを指定できます。 実行コマンドの例:

python3 skills/news-aggregator-skill/scripts/fetch_news.py --source all --limit 10 --deep
Step 3: ポッドキャスト台本を作成する(内部ステップ)

取得したニュースデータを読み、情報をMarkdown 形式のポッドキャスト台本に書き直します。 特に、2人のホストによる会話形式(例:Host A と Host B)の、活気あるQ&A 形式を優先してください。 台本は次のようにします。

  • 簡潔な2人の会話形式: 2人のホストによる、聞き応えのある掛け合いを書きます。会話を進めるために、Host A は洞察に富み、価値の高い質問をし、Host B は有益で簡潔な回答をします。テンポのよい、知的なQ&Aのやり取りにしてください。
  • 余分な内容を避ける: 不必要な余談や長すぎるつなぎの言葉を入れないでください。重要な情報や事実をすべて保ちながら、要点を簡潔にまとめてください。
  • 話者を明記する: 各行または段落の先頭に、話者の名前(例:Host A: または Host B:)を付けます。
  • 読み上げやすいテキスト: 読み上げるテキストに、複雑な URL、生の Markdown リンク、発音できない文字を含めないでください。

この台本を、podcast_script.md という名前のローカルファイルに保存します。

podcast_script.md の内容例:

**Host A:** Welcome to today's news roundup. We have some exciting tech updates today. To start things off, there's a big update from [Company Name]. What are the core implications of their new release for everyday users?

**Host B:** The main takeaway is that... [Insert concise answer and summary of News Item 1]. This completely changes how we approach [Topic].

**Host A:** That's fascinating. But does this new approach raise any security concerns, especially given recent data breaches?

**Host B:** Exactly. Experts are pointing out that... [Insert analysis or context]. 

**Host A:** Moving on to the open-source world, what's trending on GitHub today that developers should pay attention to?

**Host B:** A standout project is... [Insert concise summary of News Item 2].

**Host A:** Great insights. That's all for today's quick update. Thanks for tuning in!
Step 4: 1行ずつポッドキャスト音声を生成する

スクリプト全体を一度に API に送信しないよう、音声は1文ずつ生成し、その後で結合する必要があります。

ローカルの tts スキルにある tts.py(skills/tts/scripts/tts.py)を使用します。詳しい使い方とバックエンドのオプションについては、tts スキルの SKILL.md を読みます。

1. 各行の音声を生成する: 台本の各会話行について、speak コマンドを実行します。それぞれのホストに適した音声または参照音声を使用します。ユーザーが2人の役割それぞれの参照音声ファイルを提供している場合は、--ref-audio フラグを使って指定します(noiz バックエンドと NOIZ_API_KEY が必要です)。API キーがない場合は、ゲストモードの音声を利用できます(音声の一覧は tts SKILL.md を参照してください)。

python3 skills/tts/scripts/tts.py -t "Welcome to today's news roundup..." --ref-audio host_A.wav -o line_01.wav

python3 skills/tts/scripts/tts.py -t "The main takeaway is that..." --ref-audio host_B.wav -o line_02.wav

2. 音声ファイルを結合する: 生成したすべての音声ファイルを順番に記載したテキストファイル(例:list.txt)を作成します。

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

次に ffmpeg を使って、ファイルを1つのポッドキャスト音声ファイルに結合します。

ffmpeg -f concat -safe 0 -i list.txt -c copy podcast_output.wav
Step 5: 最終結果を提示する

音声全体の生成と結合が完了したら、結果をユーザーに提示します。次の2点を必ず含めてください。

  • 作成したMarkdown ポッドキャスト台本をチャットに出力し、ユーザーが読めるようにします。
  • 最終的な podcast_output.wav ファイルのパスを示し、ユーザーが音声を聴けるようにします。
  • ポッドキャストに含まれる見出しを簡潔にまとめます。

セキュリティとデータ開示

このスキルは指示のみで構成されており、実行可能なコード自体は含まれていません。実行時には、2 つの依存スキルのスクリプトを実行します。

  • 実行されるスクリプト: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(最終出力)。すべて現在の作業ディレクトリに書き込まれます。
  • 永続状態なし:このスキルは設定ファイルの書き込み、認証情報の保存、他のスキルの変更を行いません。

コメント