Communityコーディング&開発github.com

エディトリアルショート(Fringe Lines)

Fringe Linesの縦型動画を「エディトリアル」スタイル(紙背景、フルブリード/カード/円形PiPに変形するスピーカー、解説グラフィック、単語ごとのセリフキャプション、フック+エンドカード、効果音)で作成します。エピソードからショートを作成、リスタイル、修正する際に使用します。

エディトリアルショート(Fringe Lines) とは?

このスキルは、Fringe Linesポッドキャストのエピソードから、Greg Isenbergスタイルのエディトリアルな縦型ショート動画を生成するためのものです。30〜50秒のクリップを選び、自動でフィラー除去、カメラ選択、字幕生成を行います。その後、JSONのスタイル仕様を編集することで、フック、グラフィック(統計、人物、トレンドライン、引用、見出し、リスト)、カードレイアウト、エンファシスキーワード、アウトロなどを細かく制御できます。対応プラットフォームはRemotionベースで、CLIツール(build_short.py、style_short.py)を使ってワンクリックでレンダリング可能です。出力は−14 LUFSのラウドネスで、シーンチェンジの効果音も自動合成されます。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/qdevery/fringe-lines-video/tree/main/.claude/skills/editorial-short

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

エディトリアルショート(Fringe Lines) は何をしますか?

このルックはGreg Isenbergのショート動画をモデルにしています。すべてのショートを以下の基準に従って作成してください:

  • 話している人の顔が6秒以上続かないようにする。
  • 3〜5秒ごとにグラフィックまたはレイアウトの変更を入れる。
  • キャプションは単語ごとに表示し、いくつかのオレンジ色のイタリックキーワードを含める。
  • グラフィックは発言内容に従い、説明する単語に合わせて表示する。

0. 前提条件(マシンごと)

  • pipeline/setup.sh で仮想環境 ~/.shorts-skill と Remotion の node_modules を ~/.cache/fringe-lines-video にインストールする。
  • エピソードのトランスクリプトが存在すること:work/<ep>/words-quinn.json および work/<ep>/words-doom.json(pipeline/transcribe_verbatim.py から生成)。
  • Remotion ソース:pipeline/remotion/src/ShortV2.tsx(レイアウト)および Graphics.tsx(グラフィックタイプ)。

1. 瞬間を選ぶ(30〜50秒)

  • 単語ファイルから、自己完結したテイクを検索する。条件:
    • 強いオープニングライン(主張、数字、告白)。
    • 1つのアイデア。
    • 終盤にオチまたは決めゼリフがあること。
  • 良いシグナル:
    • 具体的な数字(パーセンテージ、金額、人数)。
    • 名前の付いた企業や製品。
    • 逆張りの意見。
    • 個人的な実験(「Codexにやらせてみた…」)。
  • 前後の文脈に依存するクリップは避ける(「さっき言ったように」「あの件」)。
  • 複数の --range をつなぎ合わせてもよい。文の切れ目でカットし、継ぎ目で単語が重複しないようにする。

2. カットする

work/<ep>/shorts.sh に行を追加して実行する:

b --name short-NN --range START:END [--range ...] --replace "27=>27%" --replace "claude=>Claude"
  • build_short.py は以下を行う:
    • フィラー、言い直し、長いポーズを削除。
    • アクティブなカメラを選択。
    • work/<ep>/short-NN/clip.mp4 と props.json を書き出す。
    • プレーンなv1ショートをレンダリングする。
  • --replace はキャプションテキストを修正する。空の右辺はその単語を非表示にする。
    • 必ず修正するもの:数字("27"→"27%")、製品名(Claude、Codex、Descript、GTM、SQL)、Whisperの聞き間違い。
  • 正確な出力タイミングを取得して仕様を記述するには、タイミングを表示する: python3 -c "import json;p=json.load(open('work/<ep>/short-NN/props.json'));print(' '.join(f\"{w['text']}@{w['startMs']/1000:.1f}\" for w in p['words']))"

3. スタイル仕様を記述する:work/<ep>/short-NN/style.json

{
  "hook":  {"text": "Microsoft wants *27%* of its staff to quit", "end": 2.8},
  "outro": {"text": "Grow *without* growing *headcount*", "hold": 2.0},
  "emphasis": ["microsoft", "27%", "leave"],
  "scenes": [
    {"at": 0.0,  "mode": "full"},
    {"at": 3.0,  "mode": "graphic", "graphic": {"type": "stat", "kicker": "Microsoft buyout offer", "value": 27, "suffix": "%", "label": "of employees offered a payout to *leave*"}},
    {"at": 6.2,  "mode": "card"}
  ]
}

時間はカットクリップ内の秒数で、ステップ2の単語タイミングから取得します。

一貫性を保つためのルール:

  • 構造:
    • シーン0は常に full で、4〜8単語の hook を約2.5〜3秒で終了させる。
    • 主張を述べる。クリップの要約はしない。
  • リズム:
    • モードを full → graphic → card → graphic → card … と交互に配置し、40秒のショートに3〜6個のグラフィックを入れる。
    • 後半で1回だけ、インパクトのあるリアクションや笑いのために full を再度使用する。
  • タイミング:
    • 各グラフィックは、説明する単語の 0.1〜0.3秒前 に開始し、2.5〜5秒間表示する。
    • 2つのグラフィックを直接連続させてもよい(例:$20のカードの直後に$100のカード)。
  • 強調: 10〜18個のキーワード(数字、名前、オチの単語)を選ぶ。マッチングは小文字で、句読点は無視する。
  • アクセント: テキストフィールド内で *word* はオレンジのイタリックで表示される。1文字列につき1〜2個使用する。
  • アウトロ: 2秒のエンドカードで、要点を言い換える短い行、または視聴者への質問を表示する。
  • 正確性:
    • 画面に表示する数字は、番組内で話された内容と一致しなければならない。
    • チャートは概略図とする:形状(up/flat/down)を使用した lines を使用し、架空の軸や値を決して使用しない。
    • 話者が曖昧にした場合は、「おおよそ」や「〜」で曖昧にする。

グラフィックタイプ(Graphics.tsx):

タイプフィールド使用目的
statkicker, prefix, value (数値、カウントアップ), decimals, suffix, label1つの見出しとなる数字
peoplekicker, value (文字列), label, filled (0–1)人数 / 人の割合
lineskicker, series: [{label, shape: up|flat|down}], captionトレンド対トレンド
quotetext, by?決めゼリフ(画面に表示)
headlinesource, title, highlightニュース、発表、「評決」
listtitle, items[]ステップ、製品、何が悪かったか

新しいグラフィックタイプが必要な場合は、Graphics.tsx とそのユニオン型に追加する。カードスタイルは維持すること:白またはインクカード、36pxの角丸、スプリングの入口アニメーション、およびローカルフレーム f で動作するアニメーション。

4. レンダリング

~/.shorts-skill/bin/python pipeline/style_short.py --ep <ep> --name short-NN --spec work/<ep>/short-NN/style.json
  • 顔トラック(pipeline/face_track.py、YuNet)は一度計算され、short-NN/faces.json にキャッシュされる。これにより、円形PiPとカードが顔の中心に配置される。クリップを切り直した場合はファイルを削除すること。
  • 効果音は合成される:シーンチェンジごとにウィッシュ音、グラフィック着地時にポップ音。ミックスレベルは --sfx-db -20。
  • ラウドネス:−14 LUFS。
  • 出力:out/shorts/<ep>-short-NN-v2.mp4。

5. QA(常に、報告前に行う)

フレームを抽出して確認する:

for t in 1.5 5 10 15 20 25 30 35 40; do ffmpeg -v error -y -ss $t -i out/shorts/<ep>-short-NN-v2.mp4 -frames:v 1 -vf scale=270:-1 /tmp/q_$t.png; done

以下の各項目を確認する:

  • フック: 読みやすく、顔を覆っていないこと。
  • グラフィック: キャプションブロック(y≈1340–1600の位置)と重なっていないこと。テキストがカードからはみ出していないこと。長い統計値(「+$500K」など)は自動的に縮小される。
  • PiP: 顔が円の中心にあること。
  • キャプション: * の漏れがないこと。キーワードがオレンジで表示されていること。
  • ラウドネス: ffmpeg -i out.mp4 -af ebur128 -f null - 2>&1 | grep " I:" が約 −14 と表示されること。

ユーザーに報告する内容:

  • ショートの内容と長さ。
  • 確認が必要な数字。
  • 残っている過激な表現。

Individual skills in this repo

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

carousel

Make a Fringe Lines image carousel (Instagram/LinkedIn, 1080x1350 PNG slides + PDF) — photo slides with big condensed caps headlines and accent words, large-type text-only slides, chart/screenshot slides, explainer-graphic slides and a follow CTA. Use when asked for a carousel, slide post, or "swipe" post from an episode or a topic.

engaging-monologue

Make a 16:9 FringeLines "engaging monologue" video from a solo talking-head take — jump cuts with punch-ins, the speaker shrinking into a portrait picture-in-picture while serif kinetic text, diagrams (pyramid stack, compare, roadmap, steps, big stat) and b-roll cards build on a paper canvas, plus callout cards, lower thirds, chips, a CTA pill and a green end card, all synced word by word to the speech. Use for YouTube explainers, solo commentary, newsletter-to-video and "one idea, told well" pieces.

infographic

Make a single-image editorial infographic (1080x1350) that explains one idea at a glance — two-tone headline, one-sentence dek, a hero visual with 2–4 numbered callouts and leader lines, an optional side note, a three-column "why it matters" row with icons, byline and sources. Use for "explain X in one graphic" posts about a company move, a framework, an architecture or a trend; the PNG can also be a carousel slide.

podcast-intro

Build the cold open for a long-form Fringe Lines episode — a 35–60 s highlight reel of the episode's best lines with explainer-graphic cutaways, keyword captions, whip transitions + SFX, ending on a title card with the topic list. Use when making or revising the intro of a full episode.

関連スキル