症状:ページは開くのに、プレビューと素材が回り続ける

2026 年現在、テキストから動画を生成するタイプの Web サービス(Sora を含む OpenAI 系、および同種の文生動画・動画生成 UI)は、高い関心を集め続けています。ところがブラウザでトップ画面や管理画面に入れたとしても、次のような現象に悩まされるケースは珍しくありません。

  • メニューは表示されるが、プレビューやサムネイル用の短い動画がずっとロード中のまま進まない
  • 「生成中」のあと、完成クリップの配信だけが届かない・途切れる
  • トップの HTML や会話用 API は通るのに、大きなバイナリ(素材・帯域の塊)だけ別ホストに行き、そこが詰まっている
  • 開発者向け REST/ストリーミング API だけ、ブラウザと違うドメインに向いていて片方しかプロキシに乗っていない

こうした不具合の多くは、「ブラウザのメイン枠=1 ホスト名」と、「実際のメディアや静的アセット=別の CDN ドメイン(例として Akamai など大規模 CDN のエッジ)」が通信として分断されており、Clash 側のルールでは前者だけ拾えているケースに起因します。会話用の ChatGPT 風「チャット一括」ルールにまとめてしまうと、逆に帯域の重い動画配信の出口だけが不適切なノードに流れたり、DIRECT に落ちたりして、一見「途中まで動いているのに最後の一歩」で止まります。

汎用「AI チャット向け」分流記事との違い

当ブログでは、ChatGPT や Grok など、ブラウザで開く会話系 AI サイト用の分流をまとめた記事を公開しています。あの記事の主眼は、会話画面・ログイン回りといった「チャット体験の入口」と、それに付随するドメインを1 本の汎用 AI 用プロキシグループへ流す整理です。一方、本稿が扱う AI 動画は、体験の多くが次の 3 層に分かれます。

  • Web シェル:スクリプト・レイアウト・認証クッキーを配る www やアプリ専用サブドメイン
  • 制御系 API:ジョブ起動、進捗、課金・枠制限、ストリーミングのシグナル
  • メディア配信層:短いループ、ウォーターマーク付きの試用クリップ、完成ファイル——しばしば cloudfrontakamaized など汎用 CDN ホスト名で別パス

したがって「汎用 AI サイト用グループ 1 本に openai.com だけ足せば Sora も直る」という単純化は、動画帯域とチャット帯域の最適な出口が違う場面で破綻しやすいのです。本稿では、会話用の一括ルールを置き換えるのではなく、動画体験専用の下位グループ(Web/API、CDN)を足して上から細かいルールで上書きする形を推奨します。CLI や IDE の分流は Claude Code 向けCursor 向けの記事と棲み分けします。

トラフィックの層:Web・API・CDN を分けて考える

① Web シェル(HTML/JS/認証リダイレクト)

ユーザーがアドレスバーに打ち込むドメイン、または OAuth/SSO のリダイレクト先は、アプリの顔です。OpenAI 系の場合、openai.comchatgpt.com 周辺のホストが該当しやすいですが、製品名やリージョンでサブドメインが分岐するため、実際の接続ログで足りないホストを補充してください。本稿のサンプルは出発点であり、固定の正解リストではありません

② API 本体(生成ジョブ・プレビュー用メタ・ストリーム)

生成指示や進捗取得は、多くの場合 api. プレフィックスや専用 API ゾーンに分かれます。ここは低遅延接続の安定性が重要で、動画専用プロキシグループ(例:AI_VIDEO_API)にまとめて置くのが扱いやすいでしょう。会話専用の AI_CHAT グループとは分けておくと、障害時に「チャットは通るが動画生成だけ遅い」といった切り分けがしやすくなります。

③ CDN 層(Akamai 等)と大容量静的アセット

プレビュー用の短い MP4、サムネイル、ウォーターマーク付きの成果物は、オリジンに近い 1 ホストからまとめて出すのではなく、エッジのホスト名に切り替わることが多いです。Akamai をはじめとする商用 CDN では、*.akamaized.net や地域エッジの長いサブドメインが現れ、ここを誤った出口に流すと「トップは一瞬、サムネだけ永遠にスピナー」という症状の典型になります。もう一歩踏み込むなら、openai 固有ではなく、汎用 CDN カテゴリをまとめた GEOSITE 系ルール(信頼できるルールプロバイダ前提)を参照し、専用の AI_VIDEO_CDN グループに割り当てる流れが実務的です。

ヒント

正確なホスト名はサービスのアップデートで変わります。Clash / mihomo のログで Connection 行、またはブラウザの開発者ツール(ネットワークタブ)を開き、失敗しているリクエストの Host をメモしながらルールに反映してください。

プロキシグループの考え方

最低限、次のような 2〜3 本に分けると運用しやすいです。

  • AI_VIDEO_APP:Web シェル+社内の「アプリ用」 apex/www 相当。会話専用ルールの直後、CDN ルールのに置く想定。
  • AI_VIDEO_APIapi 系やストリーミング制御。帯域はそれほど大きくなくても、タイムアウトに敏感なら安定ノードを選ぶ。
  • AI_VIDEO_CDN:大容量・長時間の接続。帯域の広いノード、または地域的に近い出口を割り当て、必要なら DIRECT併記して切り替えしやすい select 型にする。

3 本は冗長に感じる場合は、まず API と Web を 1 本に束ねCDN だけ別にするのがコストと効果のバランスが良いことが多いです。

# Concept only — adjust node names, hosts, and RULE-SET sources;
# confirm every hostname in your own logs; OpenAI / CDN paths change.
proxy-groups:
  - name: AI_VIDEO_APP
    type: select
    proxies:
      - node-us-west
      - node-sg
      - DIRECT

  - name: AI_VIDEO_API
    type: select
    proxies:
      - node-us-west
      - node-sg
      - DIRECT

  - name: AI_VIDEO_CDN
    type: select
    proxies:
      - node-us-west
      - node-media
      - DIRECT

ルール例:DOMAIN-SUFFIXGEOSITE

次は rules セクションに追記するイメージです。広い GEOIPMATCH より上に置き、併せて 会話専用の一括 AI_CHAT ルールよりも上か下かを、競合を見ながら決めてください。細かい方を上にすると、意図した通り上書きしやすいです。

rules:
  # App / product front — OpenAI family (names must match your logs)
  - DOMAIN-SUFFIX,openai.com,AI_VIDEO_APP
  - DOMAIN-SUFFIX,chatgpt.com,AI_VIDEO_APP
  - DOMAIN-SUFFIX,oaiusercontent.com,AI_VIDEO_CDN

  # Optional: provider-specific API zone (replace with your observed host)
  - DOMAIN-SUFFIX,api.openai.com,AI_VIDEO_API

  # Akamai and common CDN edges used by many video stacks (broad; refine!)
  - DOMAIN-SUFFIX,akamai.net,AI_VIDEO_CDN
  - DOMAIN-SUFFIX,akamaized.net,AI_VIDEO_CDN
  - DOMAIN-SUFFIX,edgekey.net,AI_VIDEO_CDN

  # If your rule set lists CDN or streaming categories
  - GEOSITE,cdn,AI_VIDEO_CDN

  # ... your AI_CHAT and generic rules follow ...
  - MATCH,PROXY

oaiusercontent.comapi. の有無、Sora 専用の新しいサブドメインが追加されたかは、必ず自環境のログで確認してください。粗い GEOSITE,cdn は、他のサービスまで同じ出口に乗る副作用があるため、運用方針に合わせて絞るか、別ファイルに RULE-SET 化して意図を文書化しておくと安全です。ルール記法の一般論は YAML・Fake-IP の記事に譲ります。

DNS・Fake-IP、ブラウザの HTTP/3

動画系では HTTP/3(QUIC) や、CDN の再 DNS 解決が絡みやすいです。Clash の fake-ip を使う場合、fake-ip-filter に動画用のホストが誤って入っていないかを確認してください。入っていると、ルールは合っているのにクライアントの実体接続先が想定とズレ、スピナーが消えないことがあります。DNS ポリシーとモードの全体像は ドキュメントの DNS セクションを参照できます。

切り分けチェックリスト

  1. 失敗 URL の Host を特定:スピナー中にネットワークタブで赤くなっている行のホスト名をメモする。
  2. その Host がアプリ用か CDN 用か分類し、AI_VIDEO_APP / AI_VIDEO_CDN のどちらに入れるか決める。
  3. ルール順序:会話一括(AI_CHAT)や広い DOMAIN-KEYWORD より、動画専用の行が意図どおり先に当たる位置にあるか。
  4. ノードの入れ替え:同じグループ内で、地域の異なる出口に変えてプレビューが改善するか。
  5. Fake-IP フィルタ:動画ホスト名が fake-ip-filter に紛れ込んでいないか。
  6. TUN とブラウザ:TUN 未使用の環境では、システムプロキシ外の接続(QUIC 等)が残っていないかを疑う。
注意

各サービスには利用規約、地域上の制限、および雇用・教育機関の方針があります。本稿は 正当な接続先への到達性を自分のネットワーク設定で補助することに限定した技術解説です。違法な利用や規約違反を推奨するものではありません。社内ネットワークでは必ず承認のうえで設定してください。

まとめ

AI 動画系サービスは、会話用 AI と同じ「ブランド直下のドメイン」だけでは完結しません。プレビューと成果物の多くが CDN エッジAkamai など)へ分散するため、openai.com ひと塗りのルールのままだと、帯域の重い部分だけが不適切な出口に抜け、スピナーが消えないことがよくあります。Clash では、AI_VIDEO_APP / AI_VIDEO_CDN(必要なら AI_VIDEO_API)のように専用プロキシグループを足し、DOMAIN-SUFFIX と、用途に応じた GEOSITERULE-SET上から段階的に当てるのが扱いやすいです。ホスト名は必ず自ログで検証してください。

まず手元の Clash クライアントを整え、ルールの実験を回せる環境にしておくと、動画体験の「詰まり」は一つずつ減らしていけます。→ 無料で Clash をダウンロードし、Sora や AI 動画向けの分流を始める