ロングフォームポッドキャストイントロ(コールドオープン)
このルックはGreg Isenbergのロングフォームイントロをモデルにしています。魅力的なポイントは次のとおりです:
- 最も強いセリフで始めましょう、ロゴは最初に表示しません。
- 3~6秒ごとにカットを切り替えます。
- 約1つおきのクリップをカットアウェイにします: スピーカーが左側のカードにスライドインし、右側にグラフィックが表示されます。
- キャプションは短く: 1~3語、オレンジ色のキーワードを使用します。
- タイトルで締めくくります: 次に何が来るかを示すカードです。
パイプラインは pipeline/build_episode.py で、work/<ep>/episode.json → intro によって駆動されます。レンダリングにはRemotionのIntroV2コンポジション(pipeline/remotion/src/IntroV2.tsx)を使用し、グラフィックはGraphics.tsxから提供されます。
1. エピソードからクリップを選別する(候補8~10個、採用は7~9個)
- トランスクリプト(
work/<ep>/words-*.json、またはDescriptの.txt)を読み、6秒未満で独立して成立するセリフをリストアップします。 - 優先順位は次のとおりです:
- 具体的な数字: 「従業員の27%に退職を提案」、「900%の収益維持」。
- 大胆な主張または予測: 「トークンはあらゆるものに浸透していく」。
- 告白または共感できる苦労: 「サブスクリプションの支払いに本当にうんざりしている」。
- 面白いまたは感情的な反応: 「トークンマックス状態だ」。
- 引用に適した締めくくり: 「超知能に値段はつけられない」。
- トピックをまたがって配置: 各チャプターにつき約1クリップ、両方のホストが登場し、少なくとも1回は笑いが入るようにします。
- リールの順序:
- クリップ1は最も強いフックで、通常は数字か主張です。
- スピーカーとエネルギーを交互に配置します。
- 最も引用に適したセリフを最後、タイトルカードの直前に配置します。
- スキップするもの:
- 文脈が必要なセリフ(「先ほど言ったように」、「そのチャート」など);
- 約6秒を超えるセリフ;
- クロストークのあるセリフ。
- 悪態: ユーザーが明示的な内容のイントロを許容する場合のみ残し、その旨をレポートに記載します。
2. episode.json → intro を設定する
"title": "FRINGE LINES",
"subtitle": "2026年10月30日",
"intro": {
"style": "v2",
"title": "Fringe Lines",
"title_seconds": 4.5,
"topics": ["The Morning Loop", "Microsoft人員", "構築vs購入", "トークン制限", "Google vs AIモード", "AnthropicのS-1", "AI支出"],
"emphasis": ["27%", "退職", "900%", "維持", "sql", "エージェント", "トークン", "すべて", "マックス"],
"clips": [
{"say": "microsoft just offered", "until": "employees to leave", "tag": "AIと雇用", "replace": {"27": "27%"},
"graphic_on": "27%", "graphic": {"type": "stat", "kicker": "Microsoft買収提案", "value": 27, "suffix": "%", "label": "*退職*を提案された従業員の割合"}},
{"say": "tokens are going to seep", "until": "like the internet", "tag": "トークンはどこにでも"}
]
}
say/until: クリップの最初と最後の数語で、大文字小文字と句読点を区別せずに照合します。照合はエピソード内での最初の出現位置で行われるため、sayは特徴的なものにします(3~5語)。別のスピーカーが被せて話している場合、マッチャーは1人のスピーカーの単語のみを使用して再試行します。pre:sayの前のリードイン秒数(オプション)。tag: 左上に番号とともに表示されるトピックラベル。1~3語を使用します。replace: キャプションの修正。例:数字、「sequel」→「SQL」、または"a": ""で単語を非表示にする。graphic+graphic_on: カットアウェイは、graphic_onで指定された単語が発声される約150ミリ秒前に表示されます。- オプションの
graphic_off(後の単語)でフルフレームに戻ります。 graphic_offがない場合、カットアウェイはクリップの最後まで保持されます。
- オプションの
- カットアウェイ数: 3~5個のクリップにカットアウェイを追加します。数字、会社名や製品名、引用に適したセリフがあるクリップを選びます。リアクションや笑いのクリップはフルフレームのままにします。
- グラフィックの種類(編集用ショートと同様):
stat:キッカーとラベル付きのカウント数字;people:アイコングリッド;lines:概略的なトレンドライン;quote:インクカード;headline:ハイライトスイープ付きのニューススタイルカード;list:番号付き行。- オレンジ色の斜体には
*単語*を使用します。
- 誠実さ: 画面上の数字は実際に発言されたものでなければなりません。チャートは概略的であり、データを捏造してはいけません。
topics: タイトルカード用の5~7個の短いチャプター名。エピソードの順序で。emphasis: キャプションでオレンジ色に表示される12~25個のキーワード:数字、名前、決めゼリフ。title_seconds: 4~5秒。タイトルカードはセリフ体の「Fringe Lines」、最後の単語がオレンジ色の斜体、日付、「On this episode」リストで構成されます。
3. レンダリング前にプランを確認する
~/.shorts-skill/bin/python pipeline/build_episode.py --ep <ep> --stage plan
- 各イントロクリップのタグ、長さ、キャプションテキストが表示されます。
WARN intro clip not foundを修正する:say/untilの文言をトランスクリプトに正確に一致するように調整します。- 目標合計時間: クリップは35~50秒+タイトル4.5秒。6秒を超えるクリップは削除またはトリミングします。
- すべてのキャプション行を読んで誤認識された単語がないか確認し、
replace修正を追加します。
4. レンダリング
~/.shorts-skill/bin/python pipeline/build_episode.py --ep <ep> --stage graphics # イントロクリップ + IntroV2 + ローワーサード
~/.shorts-skill/bin/python pipeline/build_episode.py --ep <ep> --stage final # イントロ + 本文、チャプター、ラウドネスを結合
- 背景ぼかしバージョンには両方のコマンドに
--blurを追加します。これには~/.cache/fringe-lines-video/blur/にぼかしカメラ映像が必要です(pipeline/bg_blur.py参照)。別のキャッシュから<ep>-fringe-lines-blur.mp4を書き出します。 - イントロの変更のために本文を再レンダリングする必要はありません。
- チャプターファイルは再生成されるため、すべてのタイムスタンプはイントロの長さに応じてシフトします。
- 効果音(ウッシュ、ポップ、タイトルに入る長いウッシュ)はグラフィックフォルダに生成され、Remotionによってミックスされます。
5. QA
F=out/episode/<ep>-fringe-lines.mp4
ffmpeg -v error -y -i $F -t 50 -vf "fps=1,scale=320:-1,tile=8x7" -frames:v 1 /tmp/intro.png
確認項目:
- 各カットアウェイのカードが完全に画面に表示され、数値が発言内容と一致し、不要な
*がないこと。 - キャプションにオレンジ色のキーワードが表示され、キャプションがスピーカーカードの下端と重なっていないこと。
- タイトルカードにすべてのトピックが順番にリストされていること。
- ビデオとオーディオの長さが一致していること(
ffprobe -show_entries stream=codec_type,duration)。 - エピソードのラウドネスが約 -15.5 LUFS であること。
- チャプターファイルが
00:00 コールドオープン、次にイントロの長さ、次に「近況報告」で始まること。
ユーザーに報告する内容:
- クリップリスト(タグ+セリフ);
- カットアウェイがあるクリップ;
- イントロの長さ;
- 明示的な表現の有無;
- 検証が必要な数値。