Files
revkit/docs/netflix/specification.md
T
tkgstrator 753b3da861 docs(netflix): Netflixクライアント通信仕様書と関連技術文書を新規追加
Netflix iOS/Androidアプリのリバースエンジニアリング結果をもとに、
通信仕様書および全技術ドキュメント(アーキテクチャ、MSL、ESN、認証、API、DRM、プロファイル、ヘッダー・Cookie、CDN、付録)を新規追加。
  
これにより、アプリ通信やDRM、認証フロー、ストリーミングプロファイル等の全体像と詳細な観測内容を体系的に参照可能となる。

あわせて、コミットメッセージAI生成設定・運用ルールも改善。
Git署名設定を一時的に無効化し、ドキュメント作成日時ルールを明文化。
2026-03-15 09:54:40 +00:00

3.4 KiB

Netflix クライアント通信仕様書

対象アプリケーション:

  • Netflix Android v9.57.0 (build 63928) — Pixel 4a (5G) / bramble / Android 14
  • Netflix iOS v15.48.1 (Argo.app) — iPhone 7 / iOS 15.8.3

解析手法: Frida 動的フック + 静的バイナリ解析 (jadx / ProGuard マッピング) 解析日: 2026-03-12 〜 2026-03-14

注意: 本文書はリバースエンジニアリングによる観測結果に基づく。確定的でない事項には「推定される」等の表現を用いている。


目次

章 内容 ファイル
1 アーキテクチャ概要 通信スタック、プラットフォーム別実装、エンドポイント一覧
2 MSL プロトコル メッセージ構造、CBOR キー、暗号化、鍵交換、認証
3 ESN 体系 ESN 種別、生成アルゴリズム、PXA ESN 取得
4 認証フロー 起動時フロー、Cookie、ログイン、トークン管理
5 API エンドポイント appboot, GraphQL, Manifest, License, Config
6 DRM Widevine L1/L3, FairPlay, ライセンスフロー
7 ストリーミングプロファイル 映像・音声・字幕プロファイル、品質制御
8 HTTP ヘッダー・Cookie ヘッダー一覧、Cookie パターン
9 CDN インフラストラクチャ Open Connect, URL 構造
付録 付録 キャプチャ統計、復号ステータス、Frida フック、クラス一覧

アーキテクチャ全体像

%%{init: {'theme':'dark'}}%%
graph TB
    subgraph Client["Netflix Client"]
        App[Netflix App]
        MSL[MSL Layer]
        DRM[DRM Engine]
        HTTP[HTTP Stack]
    end

    subgraph Netflix["Netflix Backend"]
        AB[appboot]
        FTL[prod.ftl<br/>FTL Edge]
        Cloud[prod.cloud<br/>AWS]
        Logs[logs]
    end

    subgraph CDN["Open Connect CDN"]
        OCA[OCA Appliance]
    end

    App --> MSL
    App --> DRM
    MSL --> HTTP
    HTTP -->|デバイス登録| AB
    HTTP -->|MSL API + GraphQL| FTL
    HTTP -->|MSL GraphQL| Cloud
    HTTP -->|テレメトリ| Logs
    HTTP -->|ストリーミング| OCA

    style Client fill:#1a1a2e,stroke:#e94560
    style Netflix fill:#0f3460,stroke:#16213e
    style CDN fill:#533483,stroke:#16213e

通信フロー概要

%%{init: {'theme':'dark'}}%%
sequenceDiagram
    participant App as Netflix App
    participant AB as appboot
    participant FTL as prod.ftl
    participant Cloud as prod.cloud
    participant OCA as Open Connect

    Note over App: 起動

    par Phase 1: 並列リクエスト
        App->>AB: POST /appboot/{ESN}
        App->>FTL: [MSL] getProxyEsn
        App->>FTL: [MSL] aleProvision
        App->>Cloud: [MSL] RenewSSOToken
        App->>FTL: CurrentCountryQuery
    end

    AB-->>App: nfvdid Cookie + DeviceIdToken
    FTL-->>App: NetflixId / SecureNetflixId Cookie
    FTL-->>App: PXA ESN
    Cloud-->>App: SSO Token

    Note over App: 認証完了

    App->>FTL: [MSL] /licensedManifest
    FTL-->>App: マニフェスト + DRM ライセンス
    App->>OCA: ストリーミング開始

各章の詳細は上記リンクを参照。