
Osintgram — Updated!
OsintgramはInstagram上のOSINTツールです。任意のユーザーのInstagramアカウントをニックネームで分析するためのインタラクティブシェルを提供します。
Osintgram 🔎📸
Instagramアカウントを指定して、その背後にいる人物を突き止める。 Osintgramは、 公開プロフィールから得られるあらゆる情報 — フォロワー、キャプション、ハッシュタグ、 位置情報が付与された場所、投稿の傾向、公開されている連絡先 — を収集し、相互参照し、 あなた自身のマシン上で動かすWebインターフェース上に整理して表示します。
平易な言葉で質問すれば、ローカルAIモデルがどの検索を実行すべきかを判断します。 あるいはそうしなくても構いません。コマンドを自分で選び、モデルを完全にスキップできます。
気に入ってもらえる理由
コマンドだけでなく、質問に答えます。 「フォロワーは何人で、どのハッシュタグを最もよく使っている?」 と尋ねれば、3つの検索を実行し、文章での回答を返します — そしてその下に生の結果も表示されるので、 文章を鵜呑みにせず自分で確認できます。
検索そのものを除いて、何もあなたのマシンから出ていきません。 AIは
Ollamaを通じてローカルで動作します。OpenAIのキーも、サブスクリプションも、
あなたのプロンプトが誰かに送られることもありません。インターフェースは127.0.0.1から配信されます。
検索を実行する前に、そのコストを教えてくれます。 Instagramのデータは 無料ではなく、ほとんどのツールは高くつく方法でそれを知らせます。これは選択内容を事前に 見積もり、残りのクレジットを表示し、すべてのリクエストをキャッシュして同じ検索に二度払いしないようにし、 実行を上限設定または停止できるようにします — ブラウザ側だけでなく、サーバー側で。
見つけたものを、きちんと表示します。 フィルタ可能なグリッドでの投稿サムネイル、 地図上の位置情報が付与された場所、いつ投稿するかを示す曜日×時間のヒートマップ、 2つのアカウント間の比較。JSONの壁ではありません — ただし、すべてのカードでJSONはワンクリック先にあります。
結果を他の人に渡せます。 ボタン1つで、完了した検索を任意のブラウザで開ける スタンドアロンのHTMLレポートに変換できます。サーバーもOsintgramも不要です。
操作する2つの方法
AIモード — 欲しいものを説明します。ローカルモデルがコマンドを選び、実行し、 要約します。選択できるのは下記と同じリストのみで、検索をでっち上げたり、 データを捏造したりはできません。
ベースモード — モデル不要、Ollamaも不要。全29コマンドを1行ずつ、 グループ化して検索可能にしています。欲しいものにチェックを入れ、パラメータを設定し、 順番に実行します。
AIモードでユーザー名を空のままにして、ハッシュタグや場所についてだけ尋ねることもできます — そうした検索はどのアカウントにも属しません。
何が分かるか
| プロフィール | プロフィール文とその中のすべてのリンク、フォロワー/フォロー中/投稿数、カテゴリ、公開メール、電話番号、座標に至るまでのビジネス住所、リンクされたFacebook ID — さらにInstagram自身のこのアカウントについて: 登録国、作成日、ユーザー名が変更された回数 |
| ネットワーク | フォロワーとフォロー中、Instagramが関連として提案するアカウント、誰がタグ付けしたか、誰をタグ付けしたか、最もコメントしている人 — そして2つのアカウント間の相互接続 |
| コンテンツ | 使用回数順にランク付けされたハッシュタグ、キャプション、すべてのコメント、いいねとコメントの統計、閲覧数と有料パートナーシップを含む写真/動画/カルーセルの内訳、投稿時間のヒートマップ、地図上の位置情報が付与された場所、写真の代替テキスト |
| 連絡先 | ターゲットのフォロワーまたはフォロー中の中にある公開メールアドレスと電話番号 |
| ターゲット不要 | ハッシュタグ付きで(トップまたは最新)または場所から公開された投稿、およびそれを投稿した人 — さらにURL、ショートコード、IDを指定した特定の投稿またはリールへのすべてのコメント |
ストーリー、ハイライト、プロフィール画像は直接CDNリンクとして返されます — そしてメディアを含むカードには、オリジナルのワンクリックzipが用意されています。
クイックスタート
pip install -r requirements.txt
uvicorn src.web.app:app --host 127.0.0.1 --port 8000 --reload # or: make run
http://127.0.0.1:8000 を開きます。
データバックエンドが必要です。ページはパネルで開き、そこに HikerAPIキーを直接貼り付けられます — 受け入れられる前に検証され、 次回のために保存できます。(無料の instagrapiログインも、自分の Instagramアカウントを使って動作します — トレードオフについてはガイドを参照してください。)
AIモードには、Ollamaをインストールし、 ツール呼び出し可能なモデルをプルします:
ollama pull llama3.1:8b # ~4.7 GB, the default
ベースモードはこれなしで動作します。
コンテナの方がいいですか?
docker compose up --build # or: make docker
同じアドレス、同じ動作 — 127.0.0.1のみで公開されます。キー、キャッシュ、
保存された検索はホスト上のconfig/、cache/、dossier/に留まり、
イメージ内には決して入りません。AIモードはホスト上で動作するOllamaに到達します。
$${\color{red}Warning:}$$ これは認証なしで
127.0.0.1上で動作します。自分のマシンで動かすために作られています — 先に認証レイヤーを前に置かずにlocalhostを超えて公開しないでください。
📖 完全なガイドを読む → doc/web-ui.md
両方のバックエンドのセットアップ、パラメータとコストを含むすべてのコマンド、 支出を抑える方法、結果のエクスポートと共有、すべての設定オプション、 トラブルシューティング。
使用する前に
教育目的のみ。 コントリビューターはこのツールの使用についていかなる 責任も負いません。
- 自分自身の、または主要なInstagramアカウントをこれで使わないでください。
config/credentials.iniを決してコミットしないでください — APIキーとInstagramの 認証情報がそこにあります。git-ignoreされています。そのままにしておいてください。キーが 一度でもプッシュされたことがあるなら、ローテーションしてください: ファイルを削除しても 履歴からは消えません。- 結果には他人の個人データが含まれます。データ保護法(GDPRおよび同等のもの)と Instagramの利用規約に沿って扱ってください。
- 非公開プロフィールは見られません。何もできません。そうでないと主張するツールは 詐欺です。
開発
pip install -r requirements-dev.txt
python -m pytest
テストスイートは完全に合成フィクスチャに対して実行されます — APIキーも、クォータも、 ネットワークも不要です。また、ドキュメントがコードから乖離していないかもチェックします。
機能リクエストとプルリクエストを歓迎します — issueを開いてください。セキュリティ上の 問題を見つけましたか? その場合は非公開で報告してください: SECURITY.mdを参照してください。
クレジット
OsintgramはGiuseppe Criscione (Datalux)によって書かれました。バージョン2.0は、 Webインターフェースと再利用可能なサービスレイヤーを中心に再構築し、 AIモード、コスト管理、より新しい分析を追加しています — 変更履歴を参照してください。
最初のリリース以来貢献してくれたすべての人々に多大な恩義があります:
InstagramのデータはHikerAPIまたは instagrapiから取得しています。ジオコーディングは Nominatim / OpenStreetMap。 地図はLeaflet。ローカルモデルは Ollama経由。
GPL-3.0ライセンスの下でリリースされています。
InstagramはMeta Platforms, Inc.の商標です。このプロジェクトはMetaと 提携しておらず、承認も受けていません。