explainer
ナレーションとAI生成ビジュアルを組み合わせた解説動画を作成します。「explainer video」「explain this as a video」「tutorial video」「introduce X (video)」などのフレーズで起動します。
description の原文を見る
| Create explainer videos with narration and AI-generated visuals. Triggers on: "解说视频", "explainer video", "explain this as a video", "tutorial video", "introduce X (video)", "解释一下XX(视频形式)".
SKILL.md 本文
使用すべき場合
- ユーザーが解説動画またはチュートリアル動画を作成したい
- ユーザーが何かを動画形式で「説明する」ことを求めている
- ユーザーがAI生成ビジュアルを含むナレーション付きコンテンツを求めている
- ユーザーが「explainer video」「解说视频」「tutorial video」と言っている
使用すべきではない場合
- ユーザーがビジュアルなしのオーディオのみのコンテンツを求めている (
/speechまたは/podcastを使用) - ユーザーがポッドキャスト風の議論を求めている (
/podcastを使用) - ユーザーがスタンドアロンの画像生成を求めている (
/image-genを使用) - ユーザーが動画なしでテキストを読み上げることを求めている (
/speechを使用)
目的
単一のナレーターのボイスオーバーをAI生成ビジュアルと組み合わせた解説動画を生成します。製品紹介、コンセプト説明、チュートリアルに最適です。テキストのみのスクリプト生成または完全なテキスト+動画出力に対応しています。
ハード制約
- インタラクション前に必ず
shared/config-pattern.mdに従って設定を読み込む - 実行モード、エラー処理、インタラクションパターンについて
shared/cli-patterns.mdに従う - 認証チェックについて
shared/cli-authentication.mdに従う - スピーカーIDをハードコードしない — ユーザーが音声を変更したいときは常にスピーカーCLIから取得する
~/Downloads/または.listenhub/にファイルを保存しない — 親切なトピックベースの名前で現在のディレクトリにアーティファクトを保存する (shared/config-pattern.md§ Artifact Naming を参照)- 解説動画は正確に1人のスピーカーを使用する
- モードは
info(Info スタイル) またはstory(Story スタイル) である必要があり、slidesは決して使用しない (/slidesスキルを使用)
ステップ -1: CLI認証チェック
shared/config-pattern.md § CLI Auth Check に従う。CLIがインストールされていないかユーザーがログインしていない場合、shared/cli-authentication.md に従って自動インストールおよび自動ログインを実行する — ユーザーにコマンドを手動で実行することを決して要求しない。
ステップ 0: 設定セットアップ
shared/config-pattern.md ステップ 0 (Zero-Question Boot) に従う。
ファイルが存在しない場合 — デフォルトで静かに作成して進行:
mkdir -p ".listenhub/explainer"
echo '{"outputMode":"inline","language":null,"defaultStyle":null,"defaultSpeakers":{}}' > ".listenhub/explainer/config.json"
CONFIG_PATH=".listenhub/explainer/config.json"
CONFIG=$(cat "$CONFIG_PATH")
設定に関する質問をしない。 インタラクションフローに直接進む。
ファイルが存在する場合 — 静かに設定を読み込んで進行:
CONFIG_PATH=".listenhub/explainer/config.json"
[ ! -f "$CONFIG_PATH" ] && CONFIG_PATH="$HOME/.listenhub/explainer/config.json"
CONFIG=$(cat "$CONFIG_PATH")
セットアップフロー (ユーザーが明確に再設定を要求した場合のみ)
ユーザーが明確に再設定を要求した場合にのみ実行します。現在の設定を表示:
当前配置 (explainer):
输出方式:{inline / download / both}
语言偏好:{zh / en / 未设置}
默认风格:{info / story / 未设置}
默认主播:{speakerName / 使用内置默认}
その後、質問:
-
outputMode:
shared/output-mode.md§ Setup Flow Question に従う。 -
Language (オプション): "デフォルト言語は?"
- "中文 (zh)"
- "English (en)"
- "毎回手動で選択" →
nullのままにする
-
Style (オプション): "デフォルトスタイルは?"
- "Info — 情報提示型"
- "Story — ストーリー叙述型"
- "毎回手動で選択" →
nullのままにする
回答を収集した後、直ちに保存:
NEW_CONFIG=$(echo "$CONFIG" | jq --arg m "$OUTPUT_MODE" '. + {"outputMode": $m}')
echo "$NEW_CONFIG" > "$CONFIG_PATH"
CONFIG=$(cat "$CONFIG_PATH")
インタラクションフロー
ステップ 1: トピック / コンテンツ
自由なテキスト入力。ユーザーに質問:
何を説明または紹介したいですか?
受け入れるもの: トピック説明、テキストコンテンツ、または説明するコンセプト。
ステップ 2: 言語
config.language が設定されている場合、事前入力を行い要約で表示 — この質問をスキップします。
設定されていない場合は質問:
Question: "どの言語ですか?"
Options:
- "Chinese (zh)" — 北京官話でのコンテンツ
- "English (en)" — 英語でのコンテンツ
- "Japanese (ja)" — 日本語でのコンテンツ
ステップ 3: スタイル
config.defaultStyle が設定されている場合、事前入力を行い要約で表示 — この質問をスキップします。
設定されていない場合は質問:
Question: "どのスタイルの解説動画にしますか?"
Options:
- "Info" — 情報提示的でファクトベースのプレゼンテーションスタイル
- "Story" — ナレーティブでストーリーテリングのアプローチ
ステップ 4: スピーカー選択
shared/speaker-selection.md に従う:
config.defaultSpeakers.{language}が設定されている場合 → 保存されたスピーカーを静かに使用- 設定されていない場合 →
shared/speaker-selection.mdから言語の 組み込みデフォルト を使用 - 確認要約 (ステップ 6) にスピーカーを表示 — ユーザーが必要に応じてそこから変更できます
- ユーザーが明確に音声を変更するよう要求した場合のみ完全なスピーカーリストを表示
スピーカークエリ: スピーカーのリストとフィルタリングについては shared/cli-speakers.md を参照。
解説動画では1人のスピーカーのみサポートされています。
ステップ 5: 出力タイプ
Question: "どの出力が必要ですか?"
Options:
- "テキストスクリプトのみ" — ナレーションスクリプトを生成、動画なし
- "テキスト + 動画" — AIビジュアルを含む完全な解説動画を生成
ステップ 6: 確認と生成
すべての選択を要約:
解説動画の生成準備ができました:
トピック: {topic}
言語: {language}
スタイル: {info/story}
スピーカー: {speaker name}
出力: {テキストのみ / テキスト + 動画}
進めますか?
CLIコマンドを実行する前に明確な確認を待つ。
ワークフロー
run_in_background: true と timeout: 660000 でCLIコマンドを実行します。CLIは生成が完了するまでブロックし、最終結果をJSONとして返します:
listenhub explainer create \
--query "{topic}" \
--mode {info|story} \
--lang {en|zh|ja} \
--speaker "{name}" \
--speaker-id "{id}" \
--timeout 600 \
--json
コマンドが失敗した場合 (0でない終了コード)、標準エラーでエラー詳細を確認します。終了コードと一般的なエラーについては shared/cli-patterns.md § Error Handling を参照。
オプションフラグ (該当する場合は追加):
--source-url "{url}"— ユーザーが参照URLを提供した場合--skip-audio— テキストのみの出力の場合 (動画なし)--image-size {2K|4K}— 画像解像度 (デフォルト: 2K)--aspect-ratio {16:9|9:16|1:1}— ビデオアスペクト比 (デフォルト: 16:9)--style "{style}"— AI生成画像のビジュアルスタイル
ユーザーにタスクが送信されたことを通知します。完了の通知を受けたら、結果を解析して提示:
CLI JSON出力をキーフィールドで解析:
EPISODE_ID=$(echo "$RESULT" | jq -r '.episodeId')
AUDIO_URL=$(echo "$RESULT" | jq -r '.audioUrl // empty')
VIDEO_URL=$(echo "$RESULT" | jq -r '.videoUrl // empty')
CREDITS=$(echo "$RESULT" | jq -r '.credits // empty')
設定から OUTPUT_MODE を読み込む。shared/output-mode.md で動作に従う。
テキストのみの出力の場合:
inline または both: スクリプトをインラインで提示。
提示:
解説スクリプトが生成されました!
「{title}」
オンラインで表示:https://listenhub.ai/app/explainer/{episodeId}
download または both: スクリプトファイルも保存します。shared/config-pattern.md § Artifact Naming に従ってトピックスラッグを生成。
{slug}-explainer.mdとして現在のディレクトリに保存 (既存の場合は重複排除)- 上記の要約に加えて保存パスを提示。
テキスト + 動画出力の場合:
inline または both: 動画URLとオーディオURLをクリック可能なリンクとして表示。
提示:
解説動画が生成されました!
動画リンク:{videoUrl}
音声リンク:{audioUrl}
消費ポイント:{credits}
download または both: ファイルも保存します。shared/config-pattern.md § Artifact Naming に従ってトピックスラッグを生成。
{slug}-explainer/フォルダを作成 (既存の場合は重複排除)- 内部に
script.mdを書き込む - オーディオをダウンロード:
listenhub download "{audioUrl}" -o "{slug}-explainer/audio.mp3" - 提示:
現在のディレクトリに保存されました: {slug}-explainer/ script.md audio.mp3
成功した生成後
このセッションで行った選択で設定を更新:
NEW_CONFIG=$(echo "$CONFIG" | jq \
--arg lang "{language}" \
--arg style "{info/story}" \
--arg speakerId "{speakerId}" \
'. + {"language": $lang, "defaultStyle": $style, "defaultSpeakers": (.defaultSpeakers + {($lang): [$speakerId]})}')
echo "$NEW_CONFIG" > "$CONFIG_PATH"
推定時間:
- テキストスクリプトのみ: 2~3分
- テキスト + 動画: 5~10分
リソース
- CLI認証:
shared/cli-authentication.md - CLIパターン:
shared/cli-patterns.md - スピーカークエリ:
shared/cli-speakers.md - スピーカー選択ガイド:
shared/speaker-selection.md - 設定パターン:
shared/config-pattern.md - 出力モード:
shared/output-mode.md
合成可能性
- 呼び出す: スピーカーCLI (スピーカー選択用); ボイスオーバーについて
/speechを呼び出す可能性あり - 呼び出される: content-planner (フェーズ 3)
例
ユーザー: "Claude Codeを紹介する解説動画を作成して"
エージェントワークフロー:
- トピック: "Claude Code紹介"
- 言語を質問 → "English"
- スタイルを質問 → "Info"
- デフォルトスピーカー "Mars" (cozy-man-english) を使用
- 出力を質問 → "テキスト + 動画"
# run_in_background: true、timeout: 660000 で実行
listenhub explainer create \
--query "Introduce Claude Code: what it is, key features, and how to get started" \
--mode info \
--lang en \
--speaker "Mars" \
--speaker-id "cozy-man-english" \
--timeout 600 \
--json
episodeId、audioUrl、videoUrl、credits について結果を解析してユーザーに提示。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- marswaveai
- リポジトリ
- marswaveai/skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/marswaveai/skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。