マニュアル

校正・字幕改行・SNS配信の全ルールをここに集約(リポ manual/ が正本)。Claude Code エンジンはこの単一ソースを参照する。

L1-01 日本語字幕フォーマット規則
あらゆる日本語字幕の共通ルール。プロジェクト側で必要に応じて上書きする(例: Katto はショート 10文字に絞り込み)。

1. 文字数
横字幕(標準)
種別1行最大行数合計
劇映画 / トーク本編13文字(最大16)2行26文字
ビジネス動画最大20文字2行40文字
バリアフリー字幕 (SDH)16〜17文字2行32〜34文字
シネマスコープ11文字2行22文字
縦字幕
種別1列最大列数
標準10〜11文字2列

カウント方法: 全角=1、半角=0.5。


2. 読み取り速度(CPS)
コンテンツCPS 上限備考
劇映画字幕4文字/秒田村幸彦 (1931) 由来の業界標準
同言語トーク番組8文字/秒(理想) / 10文字/秒(許容)YouTube ロング
ビジネス・教育5〜6文字/秒専門用語多めも許容
バリアフリー (SDH)最大7文字/秒ほぼ逐語的

目安:

  • 4 CPS = 快適
  • 6 CPS = 許容上限
  • 7+ CPS = 読み取り困難(特別な配慮が必要)

3. 表示時間
項目基準
最小表示時間500ms(24fps で 12 フレーム)
最大表示時間6.5秒(ドラマ)/ 7秒(ドキュメンタリー)
IN点音声開始の 1〜2 フレーム前
OUT点音声終了後 最大12フレーム まで延長可
字幕間ギャップ最小3フレーム(≈ 83.3ms @24fps)
余韻(推奨)Out点 +300ms(次ブロック In−100ms でキャップ)

4. 改行ルール
基本原則

意味のまとまり(文節)で区切る。絶対に助詞から始めない。

改行してよい位置(優先順)
  • 半角スペースの直後
  • 格助詞(を / に / で / が / は / も / と)の 直後
  • 接続助詞の 直前(けど / から / ので / たら)
  • 連用形の 直後(〜して / 〜なので)
  • 「て」「は」「も」「よ」の 直後(助詞直前は除く)
改行してはいけない位置
  • 動詞活用の途中(撮り/たい、やっ/たら、して/きた、いただきた/いな)
  • カタカナ複合語の途中(ワンシチュ/エーション)
  • 格助詞が次行の 先頭 に来る位置
  • 「ところ」「こと」「もの」等の途中
  • 単語の途中(彼は毎日図 / 書館に通っている)
バランス
  • 行の文字数は均等である必要なし。意味的完全性 > 視覚的バランス
  • 上の行 ≦ 下の行(逆ピラミッド型を推奨)
  • 2行目に短い助詞や1文字だけ残さない

5. ショット チェンジ
状況処理
対話がショットチェンジ時 or 5フレーム以内に始まるIN点をショットチェンジの 2フレーム後
音声がショットチェンジ近くで終わるOUT点をショットチェンジの 2フレーム前
字幕がシーン変更を跨ぐ原則禁止(話者が継続する場合のみ可)

6. ショート(縦型 9:16)の上書き値
項目フル尺ショート
1行最大13文字10文字
合計最大26文字20文字
CPS 上限810

7. ファイルフォーマット
形式用途
SRT (SubRip)最も一般的・汎用
WebVTTWeb ストリーミング
Timed Text (TTML)Netflix / 配信プラットフォーム
STLプロ放送用

出典
  • Netflix 日本語 Timed Text スタイルガイド
  • AVTpro 日本語字幕スタイルガイド (2024-03-20)
  • NHK / 民放慣行(田村幸彦 1931 由来)
  • 学術: 古後・岸 (1996), Sasaki (2017)
  • 参照: [03_japanese_typography.md](03_japanese_typography.md), [05_transcription_pipeline.md](05_transcription_pipeline.md)
L1-02 英語字幕フォーマット規則
Netflix / BBC / TED / EBU 基準に準拠した英語字幕の共通ルール。

1. 文字数
基準1行最大行数合計
Netflix / TED42 chars284
BBC (Teletext, 等幅)37 chars274
BBC (proportional, 16:9)動画幅の 68%2

Best practice: 可能なら 1 行に収める。2 行にする場合は bottom-heavy pyramid(上短・下長)。


2. 読み取り速度
プラットフォーム成人向け子供向け備考
Netflix20 CPS17 CPS
TED21 CPS専門用語多い場合は下げる
BBC15 CPS標準
6秒ルール(伝統)12 CPS歴史的基準

WPM 換算:

  • BBC: 一般 160〜180 WPM / 成人 250 WPM
  • 180 WPM ≈ 15 CPS

3. 表示時間
項目NetflixTED
最小5/6 秒 (0.833s) ※24fps で 20F≈ 1.12 秒
最大7 秒7 秒

字幕間ギャップ (Netflix, 24fps):

  • 最小 2 フレーム / 3〜11 フレームは禁止(2F に詰める) / 12F (0.5s) 以上は OK

4. 改行ルール
区切ってよい位置(優先順)
  • 句読点の後(period, comma, semicolon)
  • 接続詞の (and, but, or, so, yet)
  • 前置詞の (at, by, for, from, in, of, on, to, with)
  • 自然な節境界
  • 発話の自然な区切り
区切ってはいけない位置
  • 冠詞(a, an, the)の後
  • 冠詞と名詞の間
  • 形容詞と名詞の間
  • 動詞と主語の間
  • 動詞と助動詞の間
  • 代名詞と動詞の間
  • 所有代名詞の後
  • 人名(first / last の間)
TED 特有ルール
  • "linguistic wholes" を保つ
  • 2 行は可能な限り視覚的バランスを取る

5. 句読点・大文字
大文字化
  • 通常の文 = Sentence case
  • 固有名詞・人名・地名 = 大文字
  • Netflix: "Black", "Deaf", "Indigenous" は人種・属性を指すとき大文字
  • ALL CAPS は禁止(強制的な画面テキスト等の例外を除く)
句読点
記号ルール
Period (.)通常の文末
Comma (,)標準英文法に従う・改行候補
!Netflix: 叫び / 驚きのみ。乱用禁止
?標準。?! interrobang は許容
Em dash (—)Netflix では 使用禁止
中断Double hyphen (--) で表現。行末か文中、行頭は禁止
Ellipsis (…)2秒以上の間 / 言い淀み / 尻すぼみ。U+2026 を使用、3ドット連打は不可
連続2字幕の継続ellipsis 不要
ダブルスペース禁止
引用符
  • 米: "..."、内側 '...'、ピリオド・カンマは閉じ引用符の内側
  • 英: '...'、内側 "..."

6. 話者識別
方式形式主用途
ダッシュ- I told you.\n- Did you?北米一般
ブラケット名 (Netflix)[sarah] Don't go.配信標準
コロンDOCTOR: The results are in.クラシック
色分け (BBC)白 / 黄 / シアン / 緑UK / EU

Netflix 規則:

  • ブラケットは 小文字(固有名詞は除く)
  • 名前を優先。不明話者は [man], [woman on phone], [man 1] [man 2]

7. SDH(聴覚障害者向け)

含めるもの:

  • 全対話
  • 話者識別(明らかでないとき)
  • 意味のある効果音
  • 音楽説明 / 歌詞
  • トーン(皮肉・叫び等、文脈に必要なとき)
  • オフスクリーン音
  • 重要な沈黙

書式:

  • 効果音: [door slams], [phone ringing]
  • 音楽: [suspenseful music playing] または ♪ *Lyrics here* ♪
  • トーン: [sarcastically], [whispering]
  • 沈黙: [silence], [long pause]

8. イタリック

イタリック化する:

  • ナレーション・ボイスオーバー
  • 内心独白
  • 歌詞
  • 電話 / TV / ラジオ / AI の声(話者が見えないとき)
  • 作品タイトル(書籍・映画・番組・新聞)
  • 馴染みのない外国語
  • 強調(句読点で足りないとき)

しない:

  • 話者ブラケット [John]
  • 効果音ブラケット [door slams]
  • 辞書登録済み外来語(rendezvous, café, déjà vu)

Note: Netflix の言語ガイドの 25% 以上(韓・中・希・印・尼・タイ)は イタリック非推奨


9. 数字フォーマット
範囲推奨
1〜9スペルアウトthree
10+数字12, 345
時刻・日付・年数字8:30 PM, 2026, March 5
通貨数字+記号$50, €25

10. アスペクト比 / フォント
  • フォント: Arial, Helvetica, Verdana 系 sans-serif、白文字+黒縁
  • 配置: 画面下部・中央揃え
  • TTML: ピクセル値禁止、% 指定のみ

出典
  • Netflix Timed Text Style Guide (English)
  • BBC Subtitle Guidelines v1.2.3 (2024-06)
  • TED Subtitle Guidelines
  • ISO/IEC 20071-23:2018
  • EBU Tech 3264 (EBU-STL)
  • Code of Good Subtitling Practice (Ivarsson & Carroll, 1998)
L1-03 日本語タイポグラフィ規則
字幕中の文字種・句読点・数字・記号の扱い。フォーマット規則は [01_subtitle_format_jp.md](01_subtitle_format_jp.md) を参照。

1. 句読点
基本原則: 字幕に伝統的句読点を使わない

理由: 句読点は「テキストを読んでいる」感覚を生み、字幕の理想(直接発話を聞いている錯覚)を破る。

代替
代替
句点(。)全角スペース
読点(、)半角スペース
疑問符全角(?)+ 新文開始時は全角スペース
感嘆符全角(!)+ 新文開始時は全角スペース
例外
  • バリアフリー字幕(SDH)では使用可
  • 書面引用・画面内テキスト翻訳では使用可

2. 漢字・ひらがな・カタカナのバランス
推奨比率
  • 漢字 20〜30% : ひらがな 70% : カタカナ 0〜10%
  • 別ガイド: 6:3:1(ひらがな:漢字:カタカナ)
漢字ルール
  • 常用漢字のみ 使用
  • 一般に読めない難しい漢字は避ける
  • 参考: NHK「新用語辞典」/「ことばのハンドブック」、共同通信「記者ハンドブック」、朝日「用語の手引き」
ひらがな化すべき品詞
  • 助動詞
  • 副詞
  • 抽象名詞:
  • 時 → とき
  • 事 → こと
  • 物 → もの
  • 為 → ため
評価
✅ 良いバランス彼はとても速く走ることができる
❌ 漢字過多彼は非常に速く走る事が出来る
❌ ひらがな過多かれはとてもはやくはしることができる

3. 数字
横字幕
表記
1桁(1〜9)全角1、2、3
2桁以上半角12、345、2023年
小数点半角ピリオド3.14
4桁超カンマ避けて漢数字一万、十万
縦字幕
表記
1桁全角
2桁半角・横向き配置
3桁以上全角・縦向き配置
小数点中黒(・)を縦書きで使用

4. スペース
状況スペース
文節の区切り半角スペース
文の区切り全角スペース
語句の途中挿入禁止
単語境界必要なし(日本語特性)

5. 特殊文字 / 記号
記号用途
⸺ (U+2E3A 二分ダッシュ)複数字幕にまたがる文の継続
""(半角ダブル)引用、内側スペースなし
〈〉 ギュメプロット関連の外国語対話
( ) 全角括弧SDH の話者識別
SDH の歌マーク、半角スペースを挟む
イタリック歌詞・朗読詩・画面内テキスト翻訳(Netflix基準)

6. ふりがな・ルビ

映画字幕では原則使用しない

使用が許容される場面
  • 混乱を招く読み(曖昧な漢字読み)
  • 固有名詞(珍しい読みの人名・地名)
  • 専門用語(発音ガイダンスが必要)
SDH では
  • 対象視聴者の読解レベルに応じて使用可
  • 学習補助としても機能

7. 数字以外の表記ゆれ統一

字幕プロジェクト全体で一貫させる:

揺れる対象統一の方針例
人名(漢字 vs かな)プロジェクト辞書で固定
業界用語(プレプロ / プリプロ)正式形を辞書で固定
カタカナ vs ひらがな(あさお vs アサオ)プロジェクト辞書で固定
数字(3 vs 3)上記桁ルールに従う

→ 辞書管理は各プロジェクトの DICTIONARY.md で行う([20_projects/_project_template/](../20_projects/_project_template/) 参照)。


出典
  • Netflix 日本語 Timed Text スタイルガイド
  • NHK ことばのハンドブック
  • 共同通信 記者ハンドブック
  • 日本字幕業界慣行(1931 田村幸彦以降)
L1-04 翻訳原則(汎用)
言語ペアを問わず適用する翻訳の基本原則。トーク番組・ドキュメンタリー・字幕翻訳すべての共通土台。 映画 / ドラマ特有のキャラクター訳・ジャンル別スタイルは [04b_film_translation_subs.md](04b_film_translation_subs.md) を参照。

1. 三原則
  • 簡潔性 (Brevity): 限られた文字数で本質を伝える
  • 自然性 (Naturalness): 翻訳臭のない自然な表現
  • 等価性 (Equivalence): 原文の意図・感情・トーンを等価に再現

2. 意訳 vs 直訳
状況推奨理由
一般的な会話意訳自然な日本語で視聴体験を保つ
専門用語・固有名詞直訳 or 原語保持正確性最優先
ジョーク・言葉遊び等価効果笑いのタイミングを逃さない
文化的参照文脈に応じて判断視聴者の理解度を考慮
感情表現意訳ニュアンス最優先

3. 凝縮テクニック
原則: 削らず、凝縮する
優先順位
  • 冗長表現を削除(「〜という風に」→「〜と」、「させていただいております」→「しております」、「っていうところ」→「って」)
  • 自明な情報を省略(視覚で分かる情報、文脈で明らかな主語)
  • 修飾語を簡略化
  • 複文を単文に分割
原文: "I really, really need you to understand that this is extremely important."
直訳: 「本当に本当に これが極めて重要であることを理解してほしいんだ」
凝縮: 「頼む これは本当に重要なんだ」

4. イディオム
処理場面
等価な日本語慣用句類似表現あり"piece of cake" → 朝飯前
意味で翻訳等価表現なし"break a leg" → 頑張って
原語保持+意訳有名な表現原語を活かしつつ意味を伝える

5. 文化特有概念
1. 同等概念あり → 置換
2. 説明なしで理解可能 → そのまま
3. 文脈で推測可能 → 軽い補足
4. 理解不能 → 意訳 or 注釈(最終手段)

例:

原文: "She threw a baby shower."
処理: 「出産祝いのパーティーを開いた」(日本では馴染みが薄いため説明的に)

6. 言語ペア特有の課題
英 → 日
  • 主語省略: 文脈で明らかなら省略("I went... I bought... I came home." → 「店に行って牛乳を買って帰った」)
  • 時制: 厳密でなくて良い。現在形で済むなら現在形
  • 受動 → 能動: 推奨(「ジョンがドアを開けた」)
日 → 英
  • 省略主語の補完: 英語では明示が必須
  • 敬語: フォーマルな語彙選択 / "sir", "ma'am"
  • オノマトペ: 「ドキドキする」→ "My heart is pounding" / 「シーン」→ [silence]

7. 品質チェックリスト
技術
  • [ ] 文字数が制限内(日: 13/行、英: 42/行)
  • [ ] CPS 適切(日: 4、英: 20)
  • [ ] 表示時間 0.833〜7秒
  • [ ] 改行位置が自然
翻訳品質
  • [ ] 原文の意味が正確
  • [ ] 自然な日本語/英語
  • [ ] 感情・ニュアンスが保持
  • [ ] 文化的誤解がない
一貫性
  • [ ] 専門用語が統一
  • [ ] 固有名詞処理が統一

→ 用語統一は各プロジェクトの DICTIONARY.md で管理。

→ キャラクター口調・ジャンル別スタイル(映画/ドラマ用)は [04b_film_translation_subs.md](04b_film_translation_subs.md) を参照。


出典
  • Netflix Timed Text Style Guide (各言語)
  • TED Translators Wiki
  • 学術: 通訳翻訳研究 (JAITS), Sasaki (2017)
L1-04b 映画 / ドラマ字幕用 翻訳サブカテゴリ
適用範囲: 劇映画・ドラマ・アニメの字幕翻訳。 トークドキュメンタリー / 教育動画 / SNS ショートには通常 適用しない(必要に応じて部分的に参照)。 汎用の翻訳原則は [04_translation_principles.md](04_translation_principles.md) を参照。

1. キャラクター訳
1-1. 一人称(日本語)
一人称キャラタイプニュアンス
ニュートラル / 女性 / フォーマル男性標準
若い男性 / 知的柔らかい
成人男性カジュアル男性的
オレ若者・ヤンキー粗野
わたくし上流階級・執事格式
あたし女性カジュアル親しみ
わし老人・武将威厳
拙者古風
王族高貴
神 / 超越者 / 中二病荘厳
自分軍人 / 体育会系規律
1-2. 二人称
二人称用途ニュアンス
あなた標準・フォーマル距離
君 / きみ同僚 / 恋人(男→)親しみ
お前友人 / 目下カジュアル
てめえ / 貴様敵対攻撃的
あんたカジュアル / 関西ぞんざい
そなた / お主時代劇古風
1-3. 語尾パターン
  • 敬語: 〜です / ます、〜でございます、〜ですわ(お嬢様)、〜ですの(軽め)
  • カジュアル: 〜だ / だよ、〜よ / わ(女性)、〜だぜ / ぞ、〜じゃん / っしょ(若者)、〜っす(体育会系)
  • 特殊: 〜じゃ(老人・博士)、〜のだ(解説・中二病)、〜でござる(侍)、〜なのです(丁寧な解説)、〜にゃ / 〜なの(萌え系)
1-4. 一貫性チェック
  • [ ] 一人称が統一されている
  • [ ] 二人称が関係性に適切
  • [ ] 語尾パターンが一貫
  • [ ] 感情変化時の口調変化が自然
  • [ ] 敬語/タメ口の使い分けが適切

2. ジャンル別スタイル
2-1. コメディ
  • テンポ重視(長い字幕は避ける)
  • ボケとツッコミのタイミングを逃さない
  • 言葉遊びは等価効果を追求

NG:

  • 説明的すぎる翻訳
  • ジョークの解説
  • 笑いのピークを過ぎた字幕表示
2-2. サスペンス・スリラー
  • 緊張感を維持する短い文
  • 情報の出し方に注意(ネタバレ厳禁)
  • 不穏な雰囲気を言葉で演出
原文: "Someone is watching."
標準:    「誰かが見ている」
サスペンス調: 「…見られている」
2-3. ロマンス
  • 感情表現を豊かに
  • 詩的な美しさを保持
  • 過剰にならない自然さ
  • "I love you" → 状況に応じて「好きだ」「愛してる」を使い分け
2-4. アクション
  • 短く、インパクトのある表現
  • 一言で状況を伝える
  • 叫び声は視覚効果と調和
原文: "Get down! They're shooting at us!"
字幕: 「伏せろ!」(状況は視覚で伝わる)
2-5. SF・ファンタジー
  • 専門用語・造語の統一
  • 世界観を損なわない表現
  • 用語集(DICTIONARY.md)の徹底管理
パターン処理
一般 SF 用語既存の訳語warp → ワープ
作品独自の造語音訳 or 意訳作品内で統一
複合語組み合わせて翻訳hyperdrive → ハイパードライブ
2-6. ホラー
  • 不気味な雰囲気を文体で演出
  • 曖昧さを残す(説明しすぎない)
  • 静寂の効果を活かす

テクニック:

  • 体言止め: 「…誰かが、いる」
  • 省略: 「まさか…」
  • 不自然な間: 文を短く区切る

3. スラング・俗語
年代別マッピング
年代英語日本語等価
現代若者"lit", "slay", "no cap"やばい、まじ卍、ガチで
2010 年代"yolo", "bae"リア充、推し
クラシック"groovy", "rad"ナウい、イカす

注意: 流行語は陳腐化が早い。作品の時代設定に合わせる。


4. 視聴体験のチェック

字幕翻訳の品質チェック(映画/ドラマ用):

  • [ ] キャラクターの口調が一貫しているか
  • [ ] 感情変化時の口調変化が自然か
  • [ ] ジョークのタイミングが適切か
  • [ ] ネタバレになっていないか
  • [ ] 視覚情報と矛盾していないか
  • [ ] 音楽・SE との調和が取れているか

このサブを使うべきとき
  • 劇映画字幕(特に翻訳作業)
  • ドラマ字幕
  • アニメ字幕
このサブを使わないとき
  • 実在人物のトーク番組(出演者は本人なので口調は変えない)
  • ドキュメンタリー(証言は元発話を尊重)
  • 教育動画 / 講演(中立的なナレーション)
  • SNS ショート(短すぎてキャラ口調が意味を持たない)

→ これらは [04_translation_principles.md](04_translation_principles.md) のみで足りる。

L1-05 ASR → SRT 共通パイプライン
音声書き起こし(ElevenLabs / Whisper 等)から放送品質 SRT までの汎用パイプライン。 プロジェクト固有のスクリプトパスや辞書は各プロジェクトの LOCAL_PATHS.md / DICTIONARY.md を参照。

1. 入力ソース
種別用途必要度
ASR SRT(ElevenLabs / Whisper)書き起こしテキスト必須
ASR JSON(word-level / character-level)精密タイムスタンプ・gap 検出セマンティック分割に必須
編集 EDL / DaVinci SRTカット点参照あれば品質向上
元音声 / 映像検証用推奨

2. 標準パイプライン
ASR JSON (character-level)
    ↓ ① セマンティック分割
  gap 境界でチャンキング
  → 意味単位の自然な切り位置を保証
    ↓ ② 固有名詞補正
  プロジェクト辞書を適用
  人名表記揺れ / 業界用語の統一
    ↓ ③ 話者ID付与
  speaker_N → 人物名マッピング
    ↓ ④ ブロック分割
  word-level タイムスタンプで
  5秒超 or 字数超ブロックを分割
    ↓ ⑤ ブロック結合
  同一話者・短ギャップ・合計上限以下 → 結合
    ↓ ⑥ カット点参照分割
  編集カット点でさらに細分割
    ↓ ⑦ 時刻補正
  短テキスト長尺ブロックの開始時刻を補正
    ↓ ⑧ 出力整形
  極短(<300ms)ブロックを前ブロックに吸収
  smart_linebreak(行字数 × 最大2行)
  話者ラベル除去(出力ポリシーに応じて)
  余韻 +300ms(次ブロック In-100ms でキャップ)
    ↓
  output.srt + review.md

3. セマンティック分割の主要パラメータ
パラメータ推奨値意味
GAP_HARD_MS200ms必ず分割
GAP_SOFT_MS80ms8文字以上蓄積で分割
MAX_CHARS34文字上限(2行 × 17 字)
ECHO_MS300ms余韻
MIN_DURATION_MS300msこれ未満は前ブロックに吸収
MERGE_GAP_MS600ms同一話者・このギャップ以下で結合

→ プロジェクト側で文字数上限など上書き可(例: Katto 本編 = 26字, ショート = 20字)。


4. 固有名詞補正

各プロジェクトの DICTIONARY.md に記載された:

  • 誤変換 → 正表記マッピング
  • カタカナ ⇄ ひらがな統一
  • 作品名・人名・業界用語の正式形

全置換 で適用。

ASR 誤変換の典型パターン(日本語)
実音誤出力説明
せ [se]て [te]歯茎: 摩擦 → 破裂
まーけまがき長母音 → 有声軟口蓋+母音シフト
ひらがな名カタカナ名あさお → アサオ 等

辞書更新は 処理のたびに育てる こと([06_quality_review_workflow.md](06_quality_review_workflow.md) 参照)。


5. 出力フォーマット
SRT 命名規則
  • 最新版: <name>_claude.srt(常にこのファイル名が最新)
  • 退避: <name>_<日付>_claude.srt にリネームして _archive/
review.md

レビューファイルに以下を記録:

マーク意味
✅ 自動補正済み辞書で自動修正した箇所
🔴 話者矛盾自己紹介テキストと話者ID不一致
⚠ 長尺ブロック4.5〜5秒超(スロー発話は許容)
✂️ 切り位置フラグ断片テキスト / 長尺ブロック
🗣 話者交代フラグブロック内で話者交代
🤖 AI意味チェックセマンティック問題
review.md の典型フラグ
マーク意味対処
start_frag単語の途中から始まる前ブロックと結合 or start_ms 調整
end_frag接続助詞で途中終わり次ブロックと結合 or end_ms 調整
long_block4.5秒超手動で分割点を探す
short_text3文字以下の孤立前後と結合
speaker_changeブロック内で話者交代交代点で分割
ai_mid_startAI が途中開始と判定前ブロックを確認
ai_mid_endAI が意味的途中切れと判定次ブロックを確認

6. AI レビュー(Claude 等)

ルールベースでは検出できない 言語としての自然さ を AI で修正。

検出対象
  • 噛み・繰り返し(「8月8月25日」→「8月25日」)
  • 数字補完(「4月1から」→「4月1日から」)
  • 単語分断(活用が改行を跨ぐ)
  • 不自然なスペース(語句途中のスペース)
  • STT アーティファクト(意味不明な英語断片)
  • 冗長表現の圧縮(CPS 過大エントリ)
使用モデル
  • Haiku: コスト効率重視(バルク処理向け)
  • Sonnet / Opus: 重要パートのみ

7. 既知の制限と許容事項
長尺ブロックが残る場合

ASR がブロック全体を長い単一セグメントとして認識し、かつ:

  • JSON 単語タイムスタンプも該当区間に存在しない
  • カット点も無い

→ 分割根拠なし。スロー発話 / 沈黙区間として許容。

テキストが途中から始まる

文章を時間比例で分割する副作用(形態素境界と一致しない)。

DaVinci カット点 / セマンティック gap で補正するが限界あり。

ASR 仕様による品質差

ASR が word-level / character-level JSON を出さないケース(短尺ショート等)は、SRT 単独依存となり長いブロックが残りやすい。


8. 品質基準(出力の合格ライン)
項目基準
1行の文字数プロジェクト規定値以下(日: 13, 英: 42 等)
行数最大2行
表示時間≥ 300ms(最小は 500ms 推奨)
ゼロ秒ブロック0 件
5秒超ブロック0 件が理想(スロー発話は許容)
タイムスタンプ重複0 件
句読点(、。)プロジェクト規定に従う(字幕では除去が標準)
話者ラベル出力ポリシーに従う(YouTube 本編: 除去、Podcast: 残す等)

→ 検証手順は [06_quality_review_workflow.md](06_quality_review_workflow.md) 参照。

L1-06 品質検証 / AI レビュー ワークフロー
パイプライン出力後の検証フロー。validator → AI レビュー → 再検証 の 4 ステップ。

4 ステップ
Step 1: パイプラインで SRT 生成(機械処理)
Step 2: validator で 0 errors を確認
Step 3: Claude AI レビューで日本語/英語品質を修正
Step 4: validator 再確認 → 0 errors で完了

Step 1: パイプライン実行

→ [05_transcription_pipeline.md](05_transcription_pipeline.md) のフローを実行。

プロジェクト固有のコマンドは各プロジェクトの LOCAL_PATHS.md を参照。


Step 2: バリデーション
チェック項目(自動)
項目基準
行字数プロジェクト規定値以下
行数2 行以下
表示時間min 〜 max 範囲内
ゼロ秒ブロック0 件
タイムスタンプ重複0 件
句読点規定に従う
話者ラベル出力ポリシーに従う
CPS上限以下
改行位置助詞先頭 / 単語途中の禁止位置に違反していないか
出力例
Part1: 0ms=0 <300ms=0 行>13=0 5s+=0 ラベル=0  ✅

errors があれば Step 1 のスクリプトを修正して再生成。SRT を直接いじらない(次回パイプライン実行で消える)。


Step 3: Claude AI レビュー(最重要)

Python では検出できない 言語としての自然さ を LLM が直接チェック・修正。

推奨フロー

50 エントリずつ SRT を読み、Edit ツールで直接修正。

チェック項目
1. 噛み・繰り返しの除去
修正
8月8月25日8月25日
概要欄概要欄概要欄
人気店人気店人気店
2. 日付・数字の補完
修正
8月29で8月29日で
4月1から4月1日から
3. 単語分断の修正(改行/エントリ跨ぎ)
修正
撮りた / いよ撮りたいよ / みたいな
いただきた / いないただきたいな
と / ころところ
4. 不自然なスペースの削除
修正
形に はなったで形にはなったで
思って ますと思ってますと
5. STT アーティファクトの除去
修正
sorryすみません
porque(削除)
意味不明な英語断片削除 or 日本語に置換
6. 冗長表現の圧縮(CPS 上限超過時)
圧縮
させていただいておりますしております
っていうところって
〜という風に〜と

Step 4: 最終検証

Step 2 と同じ validator を実行し、0 errors を確認して完了。


レビュー出力(review.md)の運用

[05_transcription_pipeline.md](05_transcription_pipeline.md) §5 のフラグを参照。

再実行時の動作
  • ルールベース検出セクション(✂️ 切り位置 / 🗣 話者交代)は 上書き(重複しない)
  • AI レビュー(🤖)も上書き
  • 手書きの修正メモは別セクションを設けて保存

レビューレベル
Lv内容自動化
L1改行 3 行以上 → 2 行に強制修正完全自動(SRT 上書き)
L2a断片テキスト検出検出のみ → 人手修正
L2b話者交代がブロック内に混在検出のみ → 人手修正
L3Claude API で意味・文脈問題を検出検出のみ → 人手修正

AI レビューのコスト目安
モデル用途コスト感
Haikuバルク処理(全Part一括)$0.10 以下 / 1作品
Sonnet重要パート / 翻訳監修数倍
Opus翻訳の最終チェック10倍前後

→ 大量処理は Haiku、品質重視は Sonnet 以上を使い分け。


辞書更新ルール

処理のたびに辞書を育てる。

更新タイミング
  • 新しい固有名詞・表記揺れ・誤変換パターンを発見したら即追加
更新方法
  • 新固有名詞: プロジェクトの DICTIONARY.md の適切なカテゴリに行追加
  • 新誤変換パターン: 誤変換テーブルに行追加
  • ファイル末尾の 最終更新: 日付を更新
自動追記の指示(Claude へ)

SRT 生成中に以下を発見したら、処理完了後に 自動で `DICTIONARY.md` を更新 する:

  • 辞書にない人名・作品名・組織名・専門用語
  • ASR が繰り返し誤変換しているパターン
  • 初登場のエピソード固有用語

バージョン管理
状態命名
最新版<name>_claude.srt
退避<name>_<YYYYMMDD>_claude.srt_archive/
マスター MD変更時末尾に 最終更新: YYYY-MM-DD — 変更サマリ を追記
L1-07 ElevenLabs 書き起こし汎用ワークフロー
ElevenLabs Scribe API を使った音声 → SRT / JSON 書き起こしの汎用フロー。 全プロジェクト共通の入り口。プロジェクト固有のパス・パラメータは各プロジェクトの PROJECT_RESOURCES.md を参照。

前提
API キー
  • 環境変数: ELEVENLABS_API_KEY(User scope)
  • 参照方法:
  • PowerShell: $env:ELEVENLABS_API_KEY
  • Python: os.environ["ELEVENLABS_API_KEY"]
  • Node.js: process.env.ELEVENLABS_API_KEY
  • 再設定(漏洩時 or 新キー発行時):

```powershell

[System.Environment]::SetEnvironmentVariable("ELEVENLABS_API_KEY", "<new-key>", "User")

```

→ ターミナルから直接実行。チャットに値を貼らない。


モデル選択
モデル用途特徴
scribe_v1標準日本語含む 99 言語対応 / 単語タイムスタンプ
scribe_v1_experimental検証用最新精度実験版(API 変更リスクあり)

→ 通常は scribe_v1 を使う。


書き起こしフロー
音声ファイル (mp3 / wav / m4a / mp4 / webm)
        ↓
   ① ElevenLabs Scribe API 呼び出し
   - model: scribe_v1
   - diarize: true(話者分離)
   - timestamps_granularity: word(or character)
   - tag_audio_events: false(無音/笑い等のタグ)
        ↓
   ② レスポンス取得
   - text: 全テキスト
   - words[]: 単語ごとのタイムスタンプ + speaker_id
   - language_code, language_probability
        ↓
   ③ JSON 保存(後段パイプラインの正規ソース)
   ↓ <name>_書き起こし_<date>.json
        ↓
   ④ SRT 生成(必要なら)
   - 単純: 一定区切りで改行
   - 推奨: semantic_srt パイプライン経由
       (詳細: 05_transcription_pipeline.md)
        ↓
   ⑤ 多面修正パス
   → 08_multipass_correction.md

推奨パラメータ
パラメータ推奨値説明
model_idscribe_v1標準モデル
language_codeja / en自動判定でも可、明示すると精度↑
diarizetrue話者分離(複数話者番組では必須)
num_speakers24わかっていれば指定すると精度↑
timestamps_granularitycharactercharacter-level がセマンティック分割に必要
tag_audio_eventsfalseテロップ用なら true

Python 実装テンプレ
import os
import requests
import json
from pathlib import Path

API_KEY = os.environ["ELEVENLABS_API_KEY"]
ENDPOINT = "https://api.elevenlabs.io/v1/speech-to-text"

def transcribe(audio_path: Path, language: str = "ja", num_speakers: int = 3) -> dict:
    with open(audio_path, "rb") as f:
        files = {"file": (audio_path.name, f)}
        data = {
            "model_id": "scribe_v1",
            "language_code": language,
            "diarize": "true",
            "num_speakers": str(num_speakers),
            "timestamps_granularity": "character",
        }
        headers = {"xi-api-key": API_KEY}
        r = requests.post(ENDPOINT, headers=headers, files=files, data=data, timeout=600)
        r.raise_for_status()
        return r.json()

if __name__ == "__main__":
    import sys
    audio = Path(sys.argv[1])
    result = transcribe(audio)
    out = audio.with_suffix(".json")
    out.write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8")
    print(f"Wrote: {out}")

Node.js 実装テンプレ
import fs from "node:fs";
import path from "node:path";

const API_KEY = process.env.ELEVENLABS_API_KEY;
const ENDPOINT = "https://api.elevenlabs.io/v1/speech-to-text";

export async function transcribe(audioPath, { language = "ja", numSpeakers = 3 } = {}) {
  const form = new FormData();
  form.append("file", new Blob([fs.readFileSync(audioPath)]), path.basename(audioPath));
  form.append("model_id", "scribe_v1");
  form.append("language_code", language);
  form.append("diarize", "true");
  form.append("num_speakers", String(numSpeakers));
  form.append("timestamps_granularity", "character");

  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "xi-api-key": API_KEY },
    body: form,
  });
  if (!res.ok) throw new Error(`ElevenLabs API ${res.status}: ${await res.text()}`);
  return res.json();
}

JSON レスポンス構造
{
  "language_code": "ja",
  "language_probability": 0.99,
  "text": "全テキスト...",
  "words": [
    {
      "text": "こんにちは",
      "start": 0.12,
      "end": 0.48,
      "type": "word",
      "speaker_id": "speaker_0",
      "characters": [
        { "text": "こ", "start": 0.12, "end": 0.18 },
        { "text": "ん", "start": 0.18, "end": 0.24 },
        ...
      ]
    },
    ...
  ]
}
後段パイプラインで使うフィールド
フィールド用途
words[].start / endブロックタイムスタンプ
words[].characterscharacter-level gap でセマンティック分割([05](05_transcription_pipeline.md))
words[].speaker_id話者識別
words[].text書き起こしテキスト

エラーハンドリング
ステータス原因対処
401API キー無効 / 失効$env:ELEVENLABS_API_KEY を確認、再発行
422パラメータ不正model_id / language_code を確認
429レート制限リトライ(exponential backoff)
5xxサーバーエラーリトライ
timeout大きいファイルチャンク分割(10 分単位推奨)

コスト目安
  • Scribe: 約 $0.40 / 時間(2026 時点)
  • 60 分番組 1 本 ≈ $0.40
  • 月 20 本書き起こし ≈ $8

チャンク分割(長尺対応)

10 分超の音声は API timeout のリスクがあるため、推奨はチャンク分割:

# ffmpeg で 10 分ごとに分割
ffmpeg -i input.mp3 -f segment -segment_time 600 -c copy chunk_%03d.mp3

分割後、各チャンクの words[].start にオフセット(チャンク番号 × 600 秒)を足してマージ。


ASR 結果の素直な誤り傾向

→ プロジェクトの DICTIONARY.md § ASR 誤変換パターン に追記して育てる。

代表的な誤り(日本語):

実音ELScribe 出力説明
せ [se]て [te]歯茎: 摩擦 → 破裂
ひらがな名カタカナ名あさお → アサオ
長母音子音挿入まーけ → まがき

→ 多面修正パスで一括除去([08_multipass_correction.md](08_multipass_correction.md))。


関連
  • [05_transcription_pipeline.md](05_transcription_pipeline.md) — JSON → SRT 変換
  • [08_multipass_correction.md](08_multipass_correction.md) — 多面一括修正
  • 各プロジェクトの PROJECT_RESOURCES.md — 音声ソース・出力先・話者数
L1-08 書き起こし多面一括修正フロー
ElevenLabs 書き起こし(JSON / SRT)に対して、1 パスで 6 種類の修正を一気に適用する統合フロー。 従来「ルール検出 → 人手修正 → AI 検出 → 人手修正」のループを 1 ステップに圧縮。

適用する 6 つの修正パス
  • 固有名詞補正DICTIONARY.md の置換ルール適用
  • 噛み・繰り返し除去 — 「8月8月25日」→「8月25日」
  • 数字・日付の補完 — 「4月1から」→「4月1日から」
  • 単語分断の修正 — 改行/エントリ跨ぎの活用形を結合
  • 不自然なスペース除去 — 語句内の不要スペース
  • STT アーティファクト除去 + 冗長表現の凝縮
  • 意味不明な英語断片 → 削除 or 日本語化
  • 「させていただいております」→「しております」
  • 「っていうところ」→「って」

統合実行のコンセプト
従来(段階実行)の問題
パス1: 固有名詞補正 (ルール) → 出力
パス2: 噛み除去 (AI) → 出力
パス3: 改行修正 (ルール) → 出力
パス4: 凝縮 (AI) → 出力
...

→ パスごとに差分レビュー / API コスト / 待ち時間が発生。コンテキストも分断される。

多面一括の方針
入力 SRT / JSON
    +
プロジェクト辞書 (DICTIONARY.md)
    +
ルール (L1-06 §Step3 の 6 項目)
    ↓
[Claude AI] 1 リクエストで 6 種類の修正を同時適用
    ↓
出力 SRT + review.md(修正ログ)

修正種別を タグ付き で記録するため、後から問題箇所を見分けられる。


プロンプト雛形(Claude 用)
あなたは映像字幕の校正専門家です。
以下の SRT ファイルに対して、6 種類の修正を **1 パスで** 同時適用してください。

## 修正種別

| タグ | 内容 |
|---|---|
| [DICT] | 固有名詞補正(辞書置換) |
| [REPEAT] | 噛み・繰り返し除去 |
| [DATE] | 数字・日付の補完 |
| [SPLIT] | 単語分断の修正(改行 / エントリ跨ぎ) |
| [SPACE] | 不自然なスペースの削除 |
| [TRIM] | STT アーティファクト除去 + 冗長表現の凝縮 |

## プロジェクト辞書

<DICTIONARY.md の内容を貼る>

## 制約

- 1 行: <プロジェクト規定値> 文字以下
- 行数: 最大 2 行
- 句読点: 不使用(プロジェクト規定に従う)
- CPS 上限: <値>
- 話者ラベル: <出力ポリシー>

## 入力 SRT

<対象 SRT の本文>

## 出力フォーマット

修正後の SRT を出力した後、修正ログを以下のフォーマットで出力:

| エントリ番号 | タグ | 修正前 | 修正後 | 理由 |
|---|---|---|---|---|
| 12 | [DICT] | 大金です | なべです | 自己紹介の誤変換 |
| 15 | [REPEAT] | 8月8月25日 | 8月25日 | 噛み |
| 23 | [SPLIT] | 撮りた/いよ | 撮りたいよ/みたいな | 活用が跨ぐ |

モデル別のコスト / 精度
モデル推奨用途精度コスト感(60分1本)
Haiku 4.5バルク処理(全 Part 一括)$0.05 〜 $0.15
Sonnet 4.6重要パート / 翻訳監修$0.30 〜 $0.80
Opus 4.7翻訳の最終チェック / 難解な凝縮最高$1.50 〜 $3.00

推奨: 第 1 パスは Haiku で全体を一気通貫 → 残った問題箇所だけ Sonnet で再パス。


チャンク戦略

1 リクエストに入れる SRT エントリ数の目安:

モデル推奨チャンクサイズ
Haiku100 〜 200 エントリ
Sonnet50 〜 100 エントリ
Opus30 〜 50 エントリ

→ Context window を圧迫しないこと。辞書 + 制約 + 入力 + 出力 を全部入れて 50% 以下に収める。


並列実行

複数 Part / Shorts を持つプロジェクトでは並列実行で時間短縮:

import asyncio
from anthropic import AsyncAnthropic

client = AsyncAnthropic()

async def correct_one(srt_path: Path, dict_text: str) -> str:
    # ...
    return corrected

async def main():
    parts = list(Path("Subtitles").glob("Part*_claude.srt"))
    dict_text = Path("Claude/DICTIONARY.md").read_text(encoding="utf-8")
    tasks = [correct_one(p, dict_text) for p in parts]
    results = await asyncio.gather(*tasks)
    # write back

出力 review.md フォーマット
# Part1 多面修正レビュー(2026-05-11)

## サマリ

| タグ | 件数 |
|---|---|
| [DICT] | 18 |
| [REPEAT] | 7 |
| [DATE] | 3 |
| [SPLIT] | 12 |
| [SPACE] | 5 |
| [TRIM] | 24 |
| **合計** | 69 |

## 詳細

| エントリ | タグ | 修正前 | 修正後 | 理由 |
|---|---|---|---|---|
| 12 | [DICT] | 大金です | なべです | 自己紹介の誤変換 |
| 15 | [REPEAT] | 8月8月25日 | 8月25日 | 噛み |
...

## 要人手確認

以下は AI が修正を保留した箇所(自動修正できなかった):

- エントリ 47: 文脈不明な英語断片「porque」(削除? 残す?)
- エントリ 83: 5.8 秒の長尺ブロック(分割点が見つからない)

関連
  • [05_transcription_pipeline.md](05_transcription_pipeline.md) — パイプライン全体
  • [06_quality_review_workflow.md](06_quality_review_workflow.md) — Step1-4 検証フロー
  • [07_elevenlabs_workflow.md](07_elevenlabs_workflow.md) — 上流の書き起こし
  • プロジェクト側 DICTIONARY.md — 辞書ソース
L2-01 プラットフォーム別ルール
YouTube / Shorts / TikTok / Instagram / X / Podcast 各プラットフォームのタイトル・キャプション・配信ルール。

YouTube(フル尺)
Title
制限
Hard limit100 文字
Display limit≈ 70 文字(検索・モバイル)
Sweet spot50〜65 文字
Winning Patterns
パターン効くポイント
[Bracket Hook] + Keyword[Zero Budget] How We Made a Feature Film with No Experience視覚的に止まる + キーワードを前出し
QuestionCan 3 Amateurs Actually Make a Real Movie? (We Tried)Curiosity gap
Number + Transformation3 Beginners, 0 Film Experience, 1 Actual Cinema Release数字で信用
Pain-pointNobody Warned Us About This Part of Making a Movie共感
ChallengeWe Made an Indie Film With No Money — Here's What Happenedドキュメンタリー感
Rules
  • 最強キーワードを 先頭 50 文字以内
  • 高 CTR + 低 retention のクリックベイトは YouTube が penalty
  • 英語は Title Case(主要語を大文字化)
  • 数字 > スペルアウト(3 > Three
  • 末尾の (Full Story), (Ep. 1) は SEO 影響なしで文脈追加
  • ALL CAPS は禁止(叫び扱い → CTR 低下)

Description
構造(実証テンプレ)
[Hook Line — タイトルを膨らませる 1〜2 文]

[Episode summary — 3〜5 文]

[Key timestamps]
00:00 Intro
xx:xx [Chapter 1]
xx:xx [Chapter 2]

[Series context — チャンネル / ドキュメンタリーの位置づけ 1〜2 文]

[Links: next episode, playlist, social]

[Hashtags — 3〜5 個、末尾]
Best Practices
  • 先頭 2〜3 行が "Show more" 上に出る。ここで決める
  • プライマリーキーワードを最初の文に自然に
  • 人間優先・アルゴリズムは二次(YouTube の NLP は semantic intent を読む)
  • Episode 番号で位置付け(Ep. 1 | <Series>
  • CTA を入れる(subscribe / next episode)
  • Hashtags は末尾に 3〜5 個。先頭 3 個がメタデータに入る
Length
  • 最適: 150〜300 ワード
  • 100 ワード未満 = SEO 損
  • 500 ワード超 = 深くインデックスされない(diminishing returns)

YouTube Shorts
Title
制限
Limit100 文字
Display (mobile)≈ 50 文字

ワンクリアフック: 質問・断定・POV フォーマット。

例:

  • POV: You're making a movie with no money
  • The hardest part of writing a screenplay (nobody talks about this)
  • We built a film crew from zero. Here's how.
Caption(Shorts / TikTok / Instagram 共通)
  • 先頭 1 行がフック("more" 前に見える)
  • 可視部分は 150 文字以内
  • 改行で読みやすく
  • 末尾は質問 or CTA でコメントを誘導
  • Hashtags 4〜6 個(broad + niche + 作品名)
高パフォ Hashtags(英)
#filmmaking #indiefilm #lowbudgetfilm #moviemaking #behindthescenes
#filmmakingtips #indiefilmmaker #screenwriting #directorscut #nobudgetfilm

TikTok
YouTube との違い
  • フックは 1〜2 秒で着地(視覚 / テキスト両方)
  • 雑な・生っぽいトーン > 磨き上げ
  • "Story time" / "POV" フォーマットが完了率を伸ばす
  • トレンド音源で大幅にリーチ増(Shorts 再投稿時も検討)
Caption Rules
  • Visible 150 文字 / Max 2,200 文字
  • 出落ち先頭: "We had no actors. No crew. No money. We made a movie anyway."
  • Hashtags 3〜5 個まで(多すぎはスパム扱い)

Instagram
Caption 構造
内容
1強いフック(フィードプレビューに出る)
2〜4短いストーリー / 鍵となる気付き
5CTA(Full episode link in bio
(空行)
末尾Hashtags 5〜10、ボリューム混在
Tone
  • 個人的・脆さを見せる(filmmaker community に刺さる)
  • 舞台裏 (BTS) フレーミング
  • 一般向け投稿では業界ジャーゴンを減らす

X (Twitter)
スタイル: 本編引用 × 議論喚起

X ポストは 「動画の宣伝」ではなく、本編の発言を引用しながら 業界 / 制作 / 社会の議論テーマを提示する 形で書く。

視聴者が「これ本当にそう」「いや違う」と反応したくなる構成にする。

構造(必須)
{パワーワード見出し — 太字的な一行}
───
{本編の主張を噛み砕いて 3〜5 文で展開。断定調。
具体的な数字や事例を入れる。
最後に視聴者が考えたくなる問いかけ or 皮肉で締める。}
ルール
  • 280 文字制限は無視してよい(Premium 長文前提)。ただし 400 文字以内 目安
  • Hashtag は使わない(アルゴリズム上、Hashtag は X ではリーチを下げる)
  • 1 行目がパワーワード。ここでスクロールを止める
  • ─── (罫線) で区切る。視覚的にタイトルと本文を分離
  • 本編の発言をそのまま引用せず、一般化・抽象化して議論テーマに昇華 させる
  • 動画の宣伝感を出さない。業界全体への問題提起として書く
  • ショート動画のリンクは別途添付前提。本文中 URL は入れない
トーン
  • 断定調(「〜だ」「〜でしかない」)
  • 業界の常識に切り込む(「誰も言わないけど」「本音を言うと」)
  • 数字で裏付ける
  • 皮肉・逆説
  • 賛否が分かれる主張ほどリーチが伸びる

→ 詳細は [05_x_post_style.md](05_x_post_style.md) 参照。


Podcast (Spotify / Apple)
Title
  • エピソード番号 + 主題(Ep. 1: <Topic>
  • 検索フレーズを含める
  • 50〜80 文字
Description
  • 本編の概要 3〜5 文
  • Show notes(リンク・人物・参考文献)
  • タイムスタンプ(YouTube より細かく可)

差別化(A 案 / B 案 / C 案)
方向特徴
A設定値に忠実標準案
Bターゲットを一般視聴者寄り専門用語を減らす
Cコンテンツ軸をエモーショナル感情・物語重視

ハッシュタグ運用まとめ
プラットフォーム配置
YouTube (本編)3〜5description 末尾
YouTube Shorts4〜6caption 内
TikTok3〜5caption 内
Instagram5〜10末尾、空行で分離
X0使わない
Podcastプラットフォームによるdescription
L2-02 ショート企画フレームワーク
ロング本編からショートを切り出すための汎用フレームワーク。プロジェクトのトンマナに合わせて評価軸の重み付けは調整可能。

1. 本数の目安
番組タイプ1 本(フル尺 30〜60 分)あたりの推奨ショート数
トークドキュメンタリー(情報密度高)8〜12 本
トーク番組(標準)5〜10 本
インタビュー5〜8 本
ライブ・対談3〜6 本

理由: 編集でかなり短く切り詰めるため、セクション粒度の候補が多くても成立する。むしろ「ボツ前提で多めに出す」のが推奨。


2. 抽出基準(5軸評価)

ショートとして切り出す候補は以下 5 軸で評価する。3 軸以上が ◎ のもの を上位プライオリティとする。

評価ポイント
フック力冒頭 1 文で「え?」「マジ?」と止まるか。断定調・逆説・数字のインパクト
情報密度60 秒の中に「知らなかった」が 2 つ以上入るか。薄い雑談ではないか
テンション話者の熱量が高いか。「マジで」「めちゃくちゃ」「絶対」等の強い言葉
汎用性シリーズ文脈を知らなくても単体で成立するか
共感/議論視聴者が「わかる」「それな」と思えるか、議論が生まれるか

3. トンマナ(既存ショートからの絶対基準)

各プロジェクトの既存ショートからパターンを抽出し、合致しないものは採用しない

一般化したテンプレ
要素共通パターン
冒頭主役の断定調パンチライン。「〜は無理だ」「〜はめちゃくちゃ大事」「〜だけは解せない」
構造主役解説 → サブ質問 / 合いの手 → 主役深掘り → 締め or オチ
55〜75 秒(理想 60 秒、最大 90 秒)
内容軸業界の裏側 / 実務知識 / 挑戦記のリアル / 制作者への問題提起
NOT純粋なコメディ単体・内輪ネタ完結・テンションの低い雑談
テロップ想定フック文をテロップで強調、数字はデカ文字、最後に締めテロップ

→ プロジェクト固有のトンマナは PROJECT_OVERRIDES.md の「既存ショート一覧」セクションで管理。


4. 除外すべきもの
  • テンションが低い区間(淡々とした事実列挙だけ)
  • 視覚(リアクション・映像)に依存して音声だけで成立しない箇所
  • 固有名詞の羅列が多すぎて文脈なしで追えない箇所
  • 映像素材(オーディション映像・ロケ映像等)依存で音声だけで成立しない箇所

5. 企画フォーマット

各 Part につき 5〜12 本 を以下フォーマットで出力。

企画個別テンプレ
### P{番号}「{ショートタイトル — 15文字以内}」
**切り口**: {既存ショートのどれに近いか / 業界問題提起・教育系・etc.}
**5軸評価**: フック◎ / 情報◎ / テンション○ / 汎用◎ / 共感○

**抽出区間**:

| SRT# | タイムコード | 内容 |
|------|-------------|------|
| {番号} | `{MM:SS〜MM:SS}` | {内容} ← **フック** |
| ... | ... | ... |
| {番号} | `{MM:SS〜MM:SS}` | {内容} ← **オチ/締め** |

**編集メモ**: {カットの繋ぎ方、テロップの入れ方、構成の意図}
企画一覧テンプレ(テーブル)

提案された全ショートを 1 枚で見渡せるテーブル:

Pタイトル切り口評価 (F/I/T/U/E)フックオチ
P1{タイトル}業界問題提起◎◎◎◎○62s〜は無理だ〜だ
P2..................

略号: F=フック力 / I=情報密度 / T=テンション / U=汎用性 / E=共感・議論


6. プライオリティ定義
Priority意味
P1〜P2最強。単体でバズる可能性あり。最優先で制作。
P3〜P5強い〜良い。シリーズファンに刺さる + 新規にも伝わる。確実に制作。
P6〜P8堅実。情報密度は高いがフックがやや弱い。余裕があれば制作。
P9〜P12ニッチ / 予備。深い知見でファン層育成、もしくは予備素材。

12 本提案する場合の制作方針:

  • P1〜P4: 必ず作る(拡散用)
  • P5〜P8: 作る方向で検討(ファン育成)
  • P9〜P12: 余裕があれば(予備 / 変化球)

7. 企画プロセス(Claude / LLM の作業手順)
Step 1: SRT 全文読み込み

対象 Part の <name>_claude.srt を全文読む。オフセット分割で最後まで読み切る。

SRT パスは各プロジェクトの PROJECT_RESOURCES.md 参照。

Step 2: 高テンション区間をマーク

以下のシグナルをメモする:

  • 強調語: 「マジで」「めちゃくちゃ」「絶対」「一番」「これは」
  • 数字の具体例(「80人」「2000万」「30秒」等)
  • 業界への問題提起(「〜は無理」「〜だけは解せない」)
  • 逆説・意外な展開(「蓋開けてみると〜」「実は〜」)
Step 3: 5 軸評価で絞り込み

Step 2 でマークした区間を 5 軸評価し、上位 5〜12 本 を選定。

Step 4: 前後文脈を確認し抽出区間を確定
  • フックとなる 1 文 を特定(ショートの冒頭)
  • オチ / 締め 1 文 を特定(ショートの最後)
  • その間を最短で繋ぐ(60 秒に収まるよう不要な脱線をカット)
Step 5: テンプレに従って出力

セクション 5 のフォーマットで全本数分を出力。最後に企画一覧テーブル + SNS 投稿テーブル で締める。

Step 6: SNS 投稿テーブル生成

各ショートに対する X / Instagram / YouTube Shorts / TikTok のタイトル + ディスクリプションを 1 つのテーブルにまとめて 出力。

→ フォーマット詳細: [06_shorts_sns_table.md](06_shorts_sns_table.md)


8. 公開順の考え方

仮に 8 本作る場合の最適公開順:

1本目: P1(フック力最強 — 新規を掴む)
2本目: P2(残り強フック — 掴んだ視聴者を次へ)
3本目: P3(情報密度 — 「このチャンネル有益」と思わせる)
4本目: P4(感情に訴える — フォロー動機)
5本目: P5(深い知見 — ファン育成)
6本目: P6(業界裏側 — リピーター育成)
7本目: P7(変化球 — 新規層拡大)
8本目: P8(予備 or 季節ネタ)

鉄則:

  • 序盤 2 本に最強カードを必ず使う
  • 中盤で情報密度・感情を交互に
  • 終盤は変化球 or リサイクル可能なネタ

9. 1 ショート = 1 投稿セット

各ショートに対して、SNS 各プラットフォーム分の投稿を 1 本ずつ 生成する:

プラットフォーム必要
YouTube Shorts タイトル
YouTube Shorts キャプション
TikTok タイトル
TikTok キャプション
Instagram キャプション
X ポスト✅([05_x_post_style.md](05_x_post_style.md) のルール)
Podcast 切り出し(あれば)optional

→ ロング本編 1 本ではなく、ショート 1 本ごとに 1 行 をスプレッドシート / Notion で管理。

出力テーブルフォーマット: [06_shorts_sns_table.md](06_shorts_sns_table.md)


関連
  • [01_platform_rules.md](01_platform_rules.md) — プラットフォーム別書式
  • [03_thumbnail_title.md](03_thumbnail_title.md) — サムネタイトル方針
  • [05_x_post_style.md](05_x_post_style.md) — X ポスト書式
  • [06_shorts_sns_table.md](06_shorts_sns_table.md) — SNS 投稿テーブル出力フォーマット
L2-03 サムネタイトル方針
YouTube サムネイル上に大きく表示されるテキストの設計。最大限に扇情的 が原則。

ルール
項目基準
記号! !? を積極的に使う(感嘆・驚き)
数字必ず入れる(「2000万」「3万円」「887カット」等の具体性)
文字数15 文字以内が理想 / 最大 20 文字(サムネ上で読める範囲)
手法煽り・挑発・疑問形で感情を揺さぶる
案分けマスター / B 案 / C 案で切り口を変える

案分けの例
スタイル
マスター数字 × 衝撃個人口座3万円!? 予算2000万のヤバすぎる正体
B 案連続否定補助金ゼロ! スポンサーゼロ! 全額自腹の映画制作
C 案感情 × 覚悟全財産3万円! それでも映画を撮った男の覚悟

構成パターン
パターン
数字 + !?887カット撮影!? 編集地獄の真実
連続否定スポンサー無し!実績無し!それでも公開!
疑問形素人3人で映画作るとどうなる?
反転誰も教えない 映画制作の現実
数字 × 結果3万円から始まった映画が2000万に化けた話

NG パターン
  • 文字数オーバー(読めない)
  • 抽象的(「すごい」「やばい」だけ)
  • 数字がない
  • 煽りなし(淡々とした事実列挙)
  • ネタバレ過多(クリック後の retention 低下 = YouTube penalty)

ABテスト

YouTube Studio の thumbnail テスト機能で 3 案を回し、CTR × retention で評価。

高 CTR + 低 retention は penalty 対象なので注意。


関連
  • [01_platform_rules.md](01_platform_rules.md) §YouTube Title — タイトル本体(描画されるテキスト)の規則
  • [02_shorts_planning_framework.md](02_shorts_planning_framework.md) — ショート企画
L2-04 YouTube チャプター生成
ロング本編の YouTube ディスクリプションに含めるチャプター(タイムスタンプ目次)を SRT から生成する手順。

入力ソース
種別パス例
フル尺 SRTプロジェクトの Subtitles/<Part>_claude.srt
書き起こし TXTプロジェクトの Contexts/<Part>_書き起こし_*.txt

→ プロジェクト固有のパスは各プロジェクトの LOCAL_PATHS.md 参照。


生成手順
1. SRT 全文を読む

オフセットを分割して最後まで読み切る。

2. トピック遷移を特定

以下のシグナルを探す:

  • 話題の明確な切り替わり(「次は〜」「ここから〜」)
  • 司会者・サブの質問による話題転換
  • 長い沈黙(SRT タイムスタンプギャップ)後の新トピック
3. SRT タイムコード → YouTube 形式
SRT 形式: 00:17:49,296
   ↓
YouTube 形式: 17:49
  • 秒単位 の精度(ミリ秒は切り捨て)
  • 1 時間超は HH:MM:SS
4. チャプタータイトル
  • 25 文字以内 の日本語(英語は ~40 字)
  • 内容を一目で伝える
  • 釣りすぎず、正直に

出力フォーマット
00:00 オープニング
00:48 今回のテーマ:予算策定
02:27 英語脚本とローカライズの壁
05:33 キャスティングの裏側
...
33:11 まとめと次回予告

YouTube チャプターの制約
制約
最初のチャプター必ず 00:00 から
最低数3 チャプター以上
各チャプター間隔10 秒以上
推奨数8〜15 個(多すぎると視聴者が使わない)

ベストプラクティス
  • 序盤は粒度を細かめに(視聴者が「中身」を判断する材料)
  • 中盤は内容のまとまりで割る
  • 締めは「まとめ」「次回予告」等で必ず作る
  • 検索キーワードをタイトルに含めると見つかりやすい

NG パターン
  • 00:00 Intro のみで終わる
  • すべて 30 秒刻みで機械的
  • チャプタータイトルが長すぎてスマホで切れる
  • ネタバレ過多
L2-05 X (Twitter) ポストスタイル
ショート動画とセットで投稿する X ポストの専用スタイル。動画の宣伝ではなく、議論喚起のスタンドアロン投稿 として書く。

スタイル: 本編引用 × 議論喚起

X ポストは「ショート動画の宣伝」ではなく、本編の発言を引用しながら業界 / 制作 / 社会の議論テーマを提示する スタイルで書く。

視聴者が「これ本当にそう」「いや違う」と反応したくなる構成にする。


構造(必須パターン)
{パワーワード見出し — 太字的な一行}
───
{本編の主張を噛み砕いて 3〜5 文で展開。断定調。
具体的な数字や事例を入れる。
最後に視聴者が考えたくなる問いかけ or 皮肉で締める。}

参考例
例 1: 業界批判系
アイドル出演させりゃ売れる
───
「最近の邦画はアイドル映画ばかりでつまらない」って文句言う人多いけど、無名監督のオリジナル脚本なんて誰も1円も出資しない。でも「〇〇が出ます」と言った瞬間、中身スカスカでも数千万集まる。パトロンが欲しいのは作品の質じゃなくて、ファン数の確約。
例 2: 戦略系
海外直談判
───
日本の映画配給に持ち込んでも「実績がない」で門前払い。日本の狭いムラ社会で顔色うかがって映画作るくらいなら、最初から世界狙った方がいいと、国際映画祭の裏のマーケットで、海外配給会社に直接売り込んだ。結果全滅だったが、閉鎖的な日本で消耗するより全然マシだと思えた。

ルール
項目ルール
文字数400 文字以内 目安(Premium で 280 制限は無視可。長すぎると読まれない)
Hashtag使わない(X のアルゴリズム上、リーチを下げる)
1 行目パワーワード。ここでスクロールを止める
区切り───(罫線)で見出しと本文を分離
引用そのまま引用ではなく、一般化・抽象化して議論テーマに昇華
宣伝感出さない。業界全体への問題提起として書く
URL本文中には入れない(動画リンクは別途添付前提)

トーンガイド
推奨
  • 断定調(「〜だ」「〜でしかない」)
  • 業界の常識に切り込む(「誰も言わないけど」「本音を言うと」)
  • 数字で裏付ける(「2000万」「80人」「30秒」)
  • 皮肉・逆説を効かせる(「無名監督のオリジナル脚本なんて誰も1円も出資しない」)
  • 共感と反発の両方 を狙う(賛否が分かれる主張ほどリーチが伸びる)
NG
  • ふんわりした感想(「面白かったです」「考えさせられました」)
  • 動画の宣伝口調(「ぜひ見てください」「リンクはこちら」)
  • ハッシュタグ(#映画 #インディーズ 等)
  • URL 直貼り(本文中に)

罫線文字
───

U+2500 (BOX DRAWINGS LIGHT HORIZONTAL) を 3 個。

代替: ___ (アンダースコア 3)、--- (ハイフン 3) でも可。X 上で見やすい区切りを選ぶ。


チェックリスト
  • [ ] 1 行目だけでスクロールが止まる
  • [ ] 罫線で見出しと本文が分離されている
  • [ ] 数字 or 具体例が入っている
  • [ ] 断定調
  • [ ] 業界 / 社会への抽象化ができている
  • [ ] ハッシュタグ・URL なし
  • [ ] 400 文字以内
  • [ ] 動画の宣伝ではなく、独立した主張として読める
L2-06 ショート × SNS 投稿テーブル
1 ショート企画に対して X / Instagram / YouTube Shorts / TikTok の各投稿(タイトル + ディスクリプション)を 1 つのテーブルで スマートに表示するためのフォーマット仕様。

1. メインテーブル(必須出力)

ショート企画を出した後、必ずこのテーブルを出力する。

| P | ショート企画 | プラットフォーム | タイトル / 1行目 | ディスクリプション / 本文 | 文字数 | ハッシュタグ |
|---|---|---|---|---|---|---|
| P1 | {ショートタイトル} | YouTube Shorts | {タイトル本文} | {キャプション本文} | {len} | {tags} |
| P1 | 〃 | TikTok | {タイトル本文} | {キャプション本文} | {len} | {tags} |
| P1 | 〃 | Instagram | — | {キャプション本文} | {len} | {tags} |
| P1 | 〃 | X | {パワーワード見出し} | {罫線+本文} | {len} | — |
| P2 | {ショートタイトル} | YouTube Shorts | ... | ... | ... | ... |
| ... |
列の意味
内容
Pショート企画番号(P1〜P12)
ショート企画企画タイトル(15 文字以内)
プラットフォーム4 種類: YouTube Shorts / TikTok / Instagram / X
タイトル / 1行目YT/TT はタイトル、X はパワーワード見出し、IG は通常空欄
ディスクリプション / 本文キャプション本文(IG は全部ここ、X は罫線+本文)
文字数ディスクリプションの文字数(プラットフォーム制約確認用)
ハッシュタグプラットフォーム指定数 (X は )

2. プラットフォーム別の制約(埋める前に確認)
プラットフォームタイトルキャプション可視キャプション最大ハッシュタグ
YouTube Shorts100 文字(表示 50)1〜2 行5,0004〜6 個
TikTok150 文字2,2003〜5 個
Instagram1 行(フィード)2,2005〜10 個(末尾)
X280 文字(Premium 長文可)400 文字目安0 個

→ 詳細ルールは [01_platform_rules.md](01_platform_rules.md) と [05_x_post_style.md](05_x_post_style.md) 参照。


3. テーブル出力例(Katto Part1 の P1 を例に)
| P | ショート企画 | プラットフォーム | タイトル / 1行目 | ディスクリプション / 本文 | 文字数 | ハッシュタグ |
|---|---|---|---|---|---|---|
| P1 | 邦画はアイドル映画 | YouTube Shorts | アイドル出ない映画は売れない…無名監督の現実 | 「最近の邦画つまらない」とは言うけど、無名監督のオリジナル脚本に1円も出資されないのが現実。/ Full episode → | 87 | #映画 #邦画 #インディーズ映画 #映画制作 |
| P1 | 〃 | TikTok | アイドル出ない映画は売れない問題 | 邦画が「アイドルばっか」って言われる本当の理由。出資の構造を業界の中の人が話します。 | 64 | #映画 #邦画 #インディーズ |
| P1 | 〃 | Instagram | — | 邦画がアイドル映画ばかりなのは、無名監督に1円も出資されないから。/ 出資する側は作品の質じゃなく「ファン数の確約」を買っている。/ Full episode link in bio | 92 | #映画 #邦画 #インディーズ映画 #filmmaking #映画好きと繋がりたい |
| P1 | 〃 | X | アイドル出演させりゃ売れる | ───<br/>「最近の邦画はアイドル映画ばかりでつまらない」って文句言う人多いけど、無名監督のオリジナル脚本なんて誰も1円も出資しない。でも「〇〇が出ます」と言った瞬間、中身スカスカでも数千万集まる。パトロンが欲しいのは作品の質じゃなくて、ファン数の確約。 | 187 | — |

4. スプレッドシート / Notion へのエクスポート

このテーブルは:

  • スプレッドシート に貼り付け → タブ区切り (TSV) に変換
  • Notion にコピー → そのまま Notion テーブルになる
TSV 変換(スプレッドシート貼付用)
# Markdown table → TSV
lines = md_table.strip().split("\n")
header = [c.strip() for c in lines[0].strip("|").split("|")]
rows = [[c.strip() for c in r.strip("|").split("|")] for r in lines[2:]]
tsv = "\n".join(["\t".join(header)] + ["\t".join(r) for r in rows])
スプレッドシート列構成(推奨)
Col内容
AP 番号
Bショート企画
Cプラットフォーム
Dタイトル / 1行目
Eディスクリプション本文
Flen (D の文字数)
Glen (E の文字数)
Hハッシュタグ
Iステータス(未生成 / 完成 / 投稿済)
J投稿日時
KURL

→ 文字数列を 2 つに分ける(タイトル / 本文)と、各プラットフォーム制約のチェックが楽。

Notion DB へのエクスポート

Notion テーブルは Markdown コピーで直接貼れる。

プロパティとして:

  • Title: P 番号 + ショート企画名(例: P1 邦画はアイドル映画
  • Platform: Select (YouTube Shorts / TikTok / Instagram / X)
  • Status: Select (Draft / Final / Published)
  • Caption: Text
  • Hashtags: Multi-select
  • Posted at: Date
  • URL: URL

→ 各プロジェクトの Notion DB URL は PROJECT_RESOURCES.md に記載。


5. 文字数ヘルパー(埋める前にチェック)
制約チェック式
YT Shorts タイトルlen(title) <= 100
TikTok 可視キャプションlen(caption) <= 150
IG 可視 1 行最初の改行までが <= 80 文字推奨
X 本文len(body) <= 400
JavaScript で文字数列を自動計算(スプレッドシート)
// セル D2 に "タイトル"、F2 にその文字数を入れたい場合
=LEN(D2)

6. 出力チェックリスト(生成後)
  • [ ] P1〜P{N} 全部に 4 プラットフォーム × 1 行 = 合計 4×N 行ある
  • [ ] X だけハッシュタグ無し(
  • [ ] 各プラットフォームの文字数制約を超えていない
  • [ ] X は罫線(───)で見出しと本文を分離している
  • [ ] Instagram のタイトル列は 、本文に集約している
  • [ ] TSV 化したときに改行・タブが本文に混入していない(セル分割が壊れる)

7. セル内改行の扱い

Instagram キャプションや X 本文は 複数行 で書きたいことが多い。

スプレッドシート(Google Sheets)

セル内改行を含むテキストは ダブルクォートで囲む:

def q(s): return '"' + s.replace('"', '""') + '"'
tsv_cell = q("1行目\n2行目\n3行目")

ダブルクォート内のダブルクォートは "" でエスケープ。

Markdown テーブル

セル内改行は <br/> を使う:

| ... | ... | ───<br/>本文1行目<br/>本文2行目 | ... |
Notion テーブル

Notion はセル内 \n を自動で改行扱い。


関連
  • [01_platform_rules.md](01_platform_rules.md) — 各プラットフォームの詳細ルール
  • [02_shorts_planning_framework.md](02_shorts_planning_framework.md) — ショート企画フレームワーク
  • [05_x_post_style.md](05_x_post_style.md) — X ポスト書式
  • プロジェクト側 PROJECT_RESOURCES.md — スプレッドシート / Notion DB URL
ディレクターズ葛藤 — 登録ポインタ

実体フォルダ: D:\zFilms Dropbox\z Films\Directors'Katto\


概要

映画『グーチョキデッド』(英題: Rock, Paper, Death!) の制作過程を、素人 3 人チーム(あさお / ふじい / なべ)が振り返るトークドキュメンタリー YouTube シリーズ。

フル尺本編(Part1〜Part8+)、ショート(1-1〜3-5)、英語字幕、Podcast を展開。


主要 MD ファイル(実体)
ファイルパス役割
プロジェクト概要・固有名詞辞書[Claude/PROJECT_REFERENCE.md](file:///D:/zFilms%20Dropbox/z%20Films/Directors%27Katto/Claude/PROJECT_REFERENCE.md)番組概要・出演者・作品・固有名詞辞書(マスター)
字幕生成ルール[Claude/SUBTITLE_RULES.md](file:///D:/zFilms%20Dropbox/z%20Films/Directors%27Katto/Claude/SUBTITLE_RULES.md)Katto 固有の字幕運用(1行13字, ショート10字, Step1-4 ワークフロー)
コンテンツ生成指示[Claude/CONTENT_GENERATION.md](file:///D:/zFilms%20Dropbox/z%20Films/Directors%27Katto/Claude/CONTENT_GENERATION.md)スプレッドシート構造・SNS 配信設定・ショート企画
字幕処理マニュアル[SUBTITLE_MANUAL.md](file:///D:/zFilms%20Dropbox/z%20Films/Directors%27Katto/SUBTITLE_MANUAL.md)パイプライン詳細・スクリプトパス・実行コマンド
英語字幕ガイド[Subtitles/Subtitles_En/README_EN_SUBTITLE_INSTRUCTIONS.md](file:///D:/zFilms%20Dropbox/z%20Films/Directors%27Katto/Subtitles/Subtitles_En/README_EN_SUBTITLE_INSTRUCTIONS.md)英語字幕の指示書

外部リソース(このプロジェクトのユニーク URL)
種別URL / ID
Notion DB(ショート + SNS 投稿管理)https://www.notion.so/zfilms/Subtitle_Shorts-35dbd1f2cc818097b45ad8eba877b3b1
Google Spreadsheet(コンテンツ生成)https://docs.google.com/spreadsheets/d/1kK14gdwjUd2myIpvbgLtZlELUHEUlyQOxeND-P03hh0/edit
Spreadsheet ID1kK14gdwjUd2myIpvbgLtZlELUHEUlyQOxeND-P03hh0
YouTube チャンネル(実体側参照)
Spotify Podcast(実体側参照)
Dropbox 共有名z Films Dropbox

環境変数 / API キー参照
値は記録しない。環境変数名のみ。
環境変数名用途設定済み
ELEVENLABS_API_KEY書き起こし(Scribe API)✅ User scope
ANTHROPIC_API_KEYClaude API(多面修正)都度 export

参照方法は [SubtitleMaker/00_base/07_elevenlabs_workflow.md](file:///D:/zFilms%20Dropbox/z%20Films/App/SubtitleMaker/00_base/07_elevenlabs_workflow.md) 参照。


SubtitleMaker からの差分(重要な上書き)

L1 / L2 マスターからの主な逸脱:

項目マスター(L1/L2)Katto
1 行の文字数(フル尺)13 文字同じ(13 文字)
1 行の文字数(ショート)10 文字同じ(10 文字)
CPS 上限(同言語トーク)8 / 10 許容同じ
句読点不使用不使用
話者ラベル(YouTube 本編)プロジェクト依存なし
話者ラベル(Podcast)プロジェクト依存あり
ASRElevenLabs Scribe(character-level JSON)
パイプライン主体semantic_srt.py(gap-based セマンティック分割)
1 Part あたりショート企画本数5〜128〜12 推奨(情報密度高)
キャラクター訳サブ ([04b](file:///D:/zFilms%20Dropbox/z%20Films/App/SubtitleMaker/00_base/04b_film_translation_subs.md))映画ドラマ用適用しない(実在人物のトーク番組)

→ 詳細は実体側 [Claude/SUBTITLE_RULES.md](file:///D:/zFilms%20Dropbox/z%20Films/Directors%27Katto/Claude/SUBTITLE_RULES.md) を参照。


固有名詞辞書(実体側にマスター)

→ [Claude/PROJECT_REFERENCE.md](file:///D:/zFilms%20Dropbox/z%20Films/Directors%27Katto/Claude/PROJECT_REFERENCE.md) §4-1〜4-11

主要カテゴリ:

  • 制作チーム(あさお / ふじい / なべ / トニー / ケニス / リナ 等)
  • 番組・作品名(ディレクターズ葛藤 / グーチョキデッド / Rock, Paper, Death!)
  • 参照映画(グラディエーター / イカゲーム / レザボア・ドッグス 等)
  • 業界用語(プリプロ / シーンブレイクダウン / Tiffcom 等)

ASR 誤変換の典型(Katto 固有)

→ [SUBTITLE_MANUAL.md](file:///D:/zFilms%20Dropbox/z%20Films/Directors%27Katto/SUBTITLE_MANUAL.md) §固有名詞辞書

主要パターン:

誤変換
大金 / 長尾 / 鍋なべ
浅野 / 浅部 / 浅宝 / 浅田 / アサオあさお
フジイふじい
グーチョキゼット / ぐーちょきぜっとグーチョキデッド
エルマリアヤッツエル・マリアッチ
抵抗しえない成功し得ない
間垣予算マーケ予算

ローカルパス
種別パス
プロジェクトルートD:\zFilms Dropbox\z Films\Directors'Katto\
校正済み SRTSubtitles\
ショート SRTSubtitles\Shorts\
英語 SRTSubtitles\English\
ASR JSONContexts\
音声Final\Audio\
QA スクリプトScripts\
Claude 指示書Claude\
パイプラインスクリプト(生成系)C:\Users\<user>\AppData\Local\Temp\semantic_srt.py

話者マッピング
ファイルspeaker_0speaker_1speaker_2speaker_3
Part1asaofujiinabe
Part2asaofujiinabenabe
Part3asao(不明)nabefujii
Part4(不明)asaoasao
Part5asaoasaofujiinabe
Part6fujiiasaonabe
Part7asaoasaofujiinabe
Part8asaoasaofujiinabe
Shorts 1-1, 2-3, 3-1, 3-3, 3-4asaonabe
Shorts 2-1, 2-2, 3-2, 3-5asaofujii

SNS 投稿管理運用
スプレッドシート(コンテンツ生成)
  • URL: https://docs.google.com/spreadsheets/d/1kK14gdwjUd2myIpvbgLtZlELUHEUlyQOxeND-P03hh0/edit
  • 列構成: [CONTENT_GENERATION.md §1](file:///D:/zFilms%20Dropbox/z%20Films/Directors%27Katto/Claude/CONTENT_GENERATION.md) 参照
  • 書き込み手順(Chrome DevTools MCP 経由)も同ファイル §4
Notion DB(Subtitle_Shorts)
  • URL: https://www.notion.so/zfilms/Subtitle_Shorts-35dbd1f2cc818097b45ad8eba877b3b1
  • 用途: ショート企画 + 各プラットフォーム投稿の一元管理
  • 投稿テーブルフォーマット: [SubtitleMaker/10_content/06_shorts_sns_table.md](file:///D:/zFilms%20Dropbox/z%20Films/App/SubtitleMaker/10_content/06_shorts_sns_table.md)

利用フロー(Claude / LLM への指示)

新規セッションで Katto の作業を始めるとき:

1. SubtitleMaker マスター読込:
   D:\zFilms Dropbox\z Films\App\SubtitleMaker\README.md
   D:\zFilms Dropbox\z Films\App\SubtitleMaker\00_base\<必要なもの>
   D:\zFilms Dropbox\z Films\App\SubtitleMaker\10_content\<必要なもの>

2. Katto 登録ポインタ(このファイル):
   D:\zFilms Dropbox\z Films\App\SubtitleMaker\20_projects\directors_katto.md

3. Katto 実体側 MD:
   D:\zFilms Dropbox\z Films\Directors'Katto\Claude\PROJECT_REFERENCE.md
   D:\zFilms Dropbox\z Films\Directors'Katto\Claude\SUBTITLE_RULES.md (字幕作業時)
   D:\zFilms Dropbox\z Films\Directors'Katto\Claude\CONTENT_GENERATION.md (SNS作業時)
   D:\zFilms Dropbox\z Films\Directors'Katto\SUBTITLE_MANUAL.md (パイプライン詳細)
典型ワークフロー
作業主に参照する MD
音声 → 書き起こし[07_elevenlabs_workflow.md](file:///D:/zFilms%20Dropbox/z%20Films/App/SubtitleMaker/00_base/07_elevenlabs_workflow.md)
書き起こし多面修正[08_multipass_correction.md](file:///D:/zFilms%20Dropbox/z%20Films/App/SubtitleMaker/00_base/08_multipass_correction.md) + Katto 辞書
SRT 検証[06_quality_review_workflow.md](file:///D:/zFilms%20Dropbox/z%20Films/App/SubtitleMaker/00_base/06_quality_review_workflow.md)
ショート企画[02_shorts_planning_framework.md](file:///D:/zFilms%20Dropbox/z%20Films/App/SubtitleMaker/10_content/02_shorts_planning_framework.md)(8〜12 本)
SNS 投稿生成[06_shorts_sns_table.md](file:///D:/zFilms%20Dropbox/z%20Films/App/SubtitleMaker/10_content/06_shorts_sns_table.md) → Notion / スプレッドシートへ
X ポスト[05_x_post_style.md](file:///D:/zFilms%20Dropbox/z%20Films/App/SubtitleMaker/10_content/05_x_post_style.md)

*最終更新: 2026-05-11 — Notion URL / Spreadsheet / ELEVENLABS_API_KEY 反映、L1 04b 適用外フラグ追加*