Apple Silicon Macで構築する「Nitter」ローカルサーバー構築ガイド

未分類

X(旧Twitter)を広告なし・トラッカーなしで閲覧できるフロントエンド「Nitter」を、Dockerを使用してローカル環境に構築する手順です。

⚠️ 実行前の注意点(必ずお読みください)

本手順で構築するNitterは、X(旧Twitter)の公式APIを使用しない非公式なフロントエンドです。構築・利用にあたっては、以下のリスクを十分にご理解ください。

1. 利用規約に関するリスク

Xのサービス利用規約では、公式ツール以外による自動アクセスやスクレイピング、非正規クライアントの利用が制限されています。Nitterの利用はこの規約に抵触する可能性があるため、あくまで個人の技術的興味・研究の範囲でご利用ください。

2. アカウント凍結の可能性

sessions.jsonl に登録したセッション情報は、X側から見れば「1つのアカウントによる不自然なアクセス」とみなされる場合があります。

  • ログインしたままのCookieを外部に晒すと、アカウントを乗っ取られる危険性があるため、ファイルの管理には十分注意してください。

3. 免責事項

本記事に掲載された内容によって生じた損害(アカウントの凍結、データの消失、その他のトラブル)について、筆者は一切の責任を負いかねます。すべて自己責任での実行をお願いいたします。

1. リポジトリのクローンと設定ファイルの準備

まずはソースコードを取得し、設定ファイルの雛形をコピーします。

Bash

git clone https://github.com/zedeus/nitter.git
cd nitter
cp nitter.example.conf nitter.conf

2. nitter.conf の編集

nitter.conf を開き、以下の箇所を書き換えます。

  • Redisの接続先変更(Dockerネットワーク内での名前解決のため)Ini, TOML# 変更前 redisHost = "localhost" # 変更後 redisHost = "nitter-redis"
  • HMACキーの設定(ビデオURLの署名用)Ini, TOML# 変更前 hmacKey = "secretkey" # 変更後 hmacKey = "(32文字以上の適当な英数字の羅列)"

3. sessions.jsonl の作成(重要)

現在の仕様では、正常にデータを取得するために有効なアカウントのセッション情報が必要です。sessions.jsonl というファイルを新規作成し、以下の形式で記述します。

JSON

{"kind": "cookie", "auth_token": "xxxx...", "ct0": "xxxx...", "username": "nitter_user", "id": "123456789"}

各項目の調べ方

ブラウザでXにログインし、デベロッパーツール(F12)を開いて確認します。

項目調べ方内容の例
kind固定値"cookie"
auth_token[Application] → [Cookies]ab123456... (長い英数字)
ct0[Application] → [Cookies]1a2b3c4d... (32文字程度の英数字)
usernameプロフィール画面@を除いたID
idネットワークタブで取得15023456... (数値ID)

【idの取得詳細】

  1. デベロッパーツールの 「Network」 タブを開く。
  2. 検索窓に UserByScreenName と入力し、ページをリロード(F5)。
  3. 出てきた項目の 「Response」 内にある rest_id の数字をコピーします。

4. docker-compose.yml の修正(Apple Silicon対応)

Apple Silicon Macを使用している場合、イメージとプラットフォームの指定を変更します。

docker-compose.yml を開き、以下のように修正・追記してください。

YAML

services:
  nitter:
    # arm64版のイメージを指定
    image: zedeus/nitter:latest-arm64
    ...
  
  nitter-redis:
    image: redis:6-alpine
    # Intel用イメージをApple Siliconで動かすための指定
    platform: linux/amd64
    ...

5. 起動

準備が整ったら、以下のコマンドでコンテナを起動します。

Bash

docker-compose up -d

起動後、ブラウザで http://127.0.0.1:8080/ にアクセスし、Nitterが表示されれば成功。


⚠️ 運用の注意点

  • アカウント凍結リスク: メインアカウントのCookieを使用すると、異常なアクセスとみなされ凍結される可能性があります。
  • Cookieの有効期限: ブラウザ側で「ログアウト」するとCookieが無効化されます。取得後はログアウトせず、ブラウザを閉じるだけにしてください。

コメント

タイトルとURLをコピーしました