Instagram URL パーサー
はじめに
ToollectのInstagram URL パーサーは、小さくても繰り返し発生する疑問に答えます。このInstagramリンクの中身は何で、転送する前に安全に削除できるものは何か? InstagramのURLを貼り付けると、ツールはその種類(投稿、リール、IGTV、プロフィール、ストーリー、ガイド、ハッシュタグ、ロケーション、ダイレクトメッセージ)を特定し、ユーザー名、ショートコード、数値のメディアIDを抽出して、トラッキングフリーの正規URLとして再構築します。アカウント不要、APIキー不要、ネットワークリクエストゼロです。
このツールが取り除くのは、Instagramアプリが生成するすべてのリンクに貼り付けられる接尾辞です。友人に送るためにリンクをコピーすると、?igsh=… や ?igshid=… が付加されます。これは、リンクがどのように、どのデバイスから、どのコンテキストでコピーされたかを示す共有フィンガープリントです。同じリンクを文書に貼り付けると、パラメータも一緒に移動し、コンテンツではなく共有イベントを指す痕跡を残します。
ツールはブラウザ内で完全に動作します。Instagram自身が使うのと同じルーティングでURLを読み取り、その背後にあるコンテンツを分類し、base-64url 演算でショートコードを数値のメディアIDにデコードし、トラッキングパラメータを削除可能なリストにまとめ、正規リンクを再構成します。すべてローカルな文字列処理で、ページからリクエストが送信されることはありません。
ユースケース
「送信前にこのリンクをクリーンにする」という明白な用途に加えて、パーサーは実際のワークフローに組み込めます。
コンテンツ制作者と日常の共有
Instagramの共有ボタンからコピーしたリンクには、コピーをタップした瞬間から igsh や igshid が付いています。キャプションやプロフィール、記事に自分の投稿・リールリンクを貼る制作者は、デバイスのフィンガープリントではなくクリーンなURLを手に入れられます。埋め込み形式は、共有の痕跡なしにウェブサイトやブログ記事にそのまま埋め込めます。
開発者とウェブサイト
投稿の埋め込みは通常、iframe の src を手書きする作業です。パーサーは受け取った動詞に対応する埋め込みURL(/p/{sc}/embed/、/reel/{sc}/embed/、またはキャプション付きバリアント)を生成するため、どのエンドポイントがどの動詞に対応するかを推測する必要がありません。同じワークフローは生成ページにも拡張できます。ショートコードのリストを入力し、クリーンな埋め込みURLをコピーするだけです。メディアIDデコードは、数値IDをキーとするAPIエクスポートやデータベースへの橋渡しになります。
データ分析とアーカイブ
リンクリストを扱うジャーナリスト、研究者、アナリストは、1回の貼り付けで2つの作業を完了できます。URLはログ用の構造化コンポーネント(種類、ユーザー名、ショートコード、メディアID)に分解され、削除されたパラメータのリストは各リンクが運んでいたトラッカーを正確に記録します。バッチ作業は待ち時間のない貼り付けの連続です。解析は即座にローカルで行われるため、100個のリンクは100回のキーストロークと同じくらいの時間で処理できます。
プライバシー重視の共有
igsh パラメータは、リンクがコピーされたデバイスとコンテキストを示す共有フィンガープリントで、URLとともに移動します。転送前にパーサーにリンクを貼り付けるとそれが除去され、相手にはリンクの発信元の記録ではなくコンテンツだけが届きます。
Instagram リンクの構造
解析の仕組みの前に、全体像のマップを示します。すべてのInstagramリンクは同じ少数の部品でできており、パーサーはそれを読み取っているにすぎません。
アプリから出力されたままのリンクを見てみましょう:
https://www.instagram.com/_window7/p/DS7w7fokujz/?igsh=cXdlbg%3D%3D
| 部分 | 値 | 意味 |
|---|---|---|
| スキーム | https:// |
プロトコル。入力では省略可能、出力では常に存在 |
| ホスト | www.instagram.com |
www サブドメインは省略可能。補助ドメインの instagr.am と ig.me も同様に解析される |
| ルート | /_window7/p/DS7w7fokujz/ |
動詞(p)がコンテンツの種類を示す。DS7w7fokujz がショートコード |
| クエリ | ?igsh=cXdlbg%3D%3D |
トラッキングの末尾。コピー時に付加される共有フィンガープリント |
ルートの動詞
ホストの後の最初のパスセグメントがリンクの種類を示し、パーサーは各動詞を種類にマッピングします:
| 動詞 | 種類 |
|---|---|
p/ |
投稿 |
reel/, reels/ |
リール |
tv/ |
IGTV |
{username}/p/, {username}/reel/, {username}/tv/ |
同じメディア。プロフィールページからコピーされたリンクであり、プロフィールそのものではない |
stories/, guide/, explore/, direct/, s/ |
ストーリー、ガイド、タグ/ロケーション/検索、ダイレクトメッセージ、ショートリンク |
ショートコード
メディアルートの最後の部分がショートコードです。DS7w7fokujz のような11文字の文字列です。これはランダムではありません。Instagramはメディアの数値IDを、64文字のアルファベット(A–Z、a–z、0–9、-、_)を使う base-64url で書き出しています。11文字で 64^11 ≈ 2^66 通りの値が可能になり、Instagramが発行するすべてのメディアIDを収容できます。パーサーは両方向に変換します。ショートコードからID(DIPPWkUh7Rj → 3607169348072354915)、IDからショートコードへ。実際のメディアIDはJavaScriptの安全な整数範囲を超えるため、BigInt 演算を使います。
トラッキングの末尾
共有パラメータ(igsh、igshid、utm_*)はクエリ文字列の末尾に付き、リンクがどうコピーされたかをフィンガープリントします。これらは安全に削除でき、削除こそがパーサーの中心的な仕事です。仕組みは次で説明します。
仕組み
Instagram URL のクリーンアップは4段階のパイプラインで、すべてローカルで実行される文字列解析です。
- ルート認識 — ツールはURLをInstagramが生成するルートと照合します。メディアはショートコードパス(
p/、reel/、reels/、tv/)を使い、プロフィールページからコピーしたリンクでは同じメディアパスがユーザー名プレフィックスの後ろ({username}/p/{sc}/、{username}/reel/{sc}/)にも現れます。パーサーはこれらをプロフィールページではなく同じメディアの種類として扱います。プロフィールは/username/、ストーリーは/stories/{username}/{id}/と/stories/highlights/{id}/、ガイドは/guide/{username}/{id}/、タグとロケーションのブラウザは/explore/tags/と/explore/locations/、ダイレクトメッセージは/direct/t/{id}/です。11文字のショートコード単体も受け付けます。APIレスポンスからIDを取り出すときに便利です。 - 埋め込みの正規化 — メディアURLは
/embedや/embed/captioned/経由で届くことがあります。ツールはこれらを投稿の別名として扱い、別の結果タイプを作らずに正規のp/{shortcode}/パスに折り戻します。埋め込みウィジェットから貼り付けた共有も、通常の投稿として読み取られます。 - メディアIDのデコード — ツールはショートコードの文字を base-64url アルファベットに対して走査し、
BigInt精度で1つの整数に畳み込みます。丸めも損失もない正確な10進文字列を返します。 - トラッキングの除去 — クエリ文字列を共有パラメータ(
igsh、igshid)とキャンペーンタグ(utm_*)について検査します。見つかったものはそれぞれ名前を 削除されたパラメータ 行に記録してから破棄するため、クリーンなURLには再生に影響するものだけが残ります。それ以外は何も残りません。
これらはどれもネットワークに触れません。ツールはリクエストを一切行いません。軽量な oEmbed プローブすら行いません。貼り付けたURLはブラウザ内で完全に解析・分解・再構築されるため、漏洩もログも利用枠もありません。
トラッキングと見なされるもの
Instagramの共有フローは、リンクがどうコピーされたかの小さなフィンガープリントを付加します。ツールはそれぞれを知っています:
igsh— 共有ハッシュ。コピーのデバイスと共有元を示し、古いigshidパラメータを置き換えるigshid— レガシーな共有ハッシュ。一部の古いアプリバージョンで今も生成されるutm_source/utm_medium/utm_campaign/utm_term/utm_content— Web共有で付加されることがあるGoogle Analyticsキャンペーンタグ
これらはすべて削除しても安全です。再生やルーティングの意味を持たないためです。ツールは削除した名前をそれぞれ報告し、パラメータごとの判定を確認できます。
リンクが l.instagram.com の共有ラッパーでラップされて届いた場合も、同じクリーニングが宛先自体に適用されます。ラップ先のターゲット自身の共有フィンガープリント(YouTube の si、feature、pp、ab_channel、Facebook の fbclid)もInstagramパラメータと一緒に除去されるため、展開後の出力は両方の層でクリーンになります。
対応リンク形式
入力はInstagram自身が配布するすべてのアドレスを受け付けます。それぞれが以下のいずれかの種類に解決されます:
| 形式 | 例 | 結果 |
|---|---|---|
| 投稿 | instagram.com/p/DIPPWkUh7Rj/ |
ショートコード、メディアID |
| リール | instagram.com/reel/DIPPWkUh7Rj/ |
ショートコード、メディアID |
| リール表示 | instagram.com/reels/DIPPWkUh7Rj/ |
ショートコード、メディアID |
| IGTV | instagram.com/tv/DIPPWkUh7Rj/ |
ショートコード、メディアID |
| 埋め込み別名 | instagram.com/p/DIPPWkUh7Rj/embed/captioned/ |
ショートコード、メディアID |
| ショートコード単体 | DIPPWkUh7Rj(11文字) |
ショートコード、メディアID |
| ユーザー名プレフィックス付き投稿 | instagram.com/_window7/p/DS7w7fokujz/ |
ユーザー名、ショートコード |
| ユーザー名プレフィックス付きリール | instagram.com/_window7/reel/DPdpzY6kxxc/ |
ユーザー名、ショートコード |
| プロフィール | instagram.com/some_user.123/ |
ユーザー名 |
| ストーリー | instagram.com/stories/some_user/1234567/ |
ユーザー名、ストーリーID |
| ハイライト | instagram.com/stories/highlights/1798abc/ |
ハイライトID |
| ガイド | instagram.com/guide/some_user/93711/ |
ユーザー名、ガイドID |
| ハッシュタグ | instagram.com/explore/tags/photography/ |
ハッシュタグ |
| ロケーション | instagram.com/explore/locations/465487/ |
ロケーションID |
| リンクラッパー | l.instagram.com/?u=…&e=… |
ラップされたターゲット |
| ショートドメイン | instagr.am/p/DIPPWkUh7Rj/ |
ショートコード、メディアID |
| ダイレクトリンク | ig.me/m/414231852796565/ |
スレッドID |
| キーワード検索 | instagram.com/explore/search/keyword/?q=cats |
検索クエリ |
| ダイレクトメッセージスレッド | instagram.com/direct/t/414231852796565/ |
スレッドID |
| 新しいショートリンクスキーム | instagram.com/s/app/TOKEN/ |
アプリ、トークン |
11文字のショートコード単体も受け付けます。共有リンクではなくAPIレスポンスやIDのスプレッドシートから作業する場合に便利です。https:// プレフィックスと www サブドメインはどちらも省略可能です。instagram.com/p/…、www.instagram.com/p/…、https://www.instagram.com/p/… は同じように解析され、出力は常に完全な正規形を使います。メディアの別名(埋め込みとキャプション付き埋め込み)は、別の種類として表示するのではなく投稿の種類に正規化されます。ユーザー名プレフィックス付きバリアント({username}/p/、{username}/reel/、{username}/tv/)はプロフィールページ内からコピーされたリンクで、同じメディアを指し、プレフィックスなしの形式と同じ種類・同じクリーンURLに解決されます。同じ投稿がプロフィールとして解析されることは決してありません。ハッシュタグ、ロケーション、ダイレクトメッセージスレッドは独自の種類として認識され、正規の explore またはダイレクトリンクを生成します。一方、ストーリー、ハイライト、ガイド、キーワード検索には公開パーマリンクがないため、トラッキングパラメータを除去した元のURLを出力します。
2つの補助ドメインは instagram.com とまったく同じように機能します。instagr.am(Instagramの元々のショートドメインで、古い共有で今も使用される)は同一にルーティングされるため、instagr.am/p/… は長いドメインの双子と同じ投稿の種類に解決されます。ig.me(ダイレクトリンクドメイン)は ig.me/m/{id} をダイレクトメッセージスレッドに、ig.me/u/{username} をプロフィールにマッピングします。別のケースが共有ラッパー l.instagram.com/?u=…&e=… です。これはアプリからリンクが共有されたときやバイオリンクで配布されるアドレスです。パーサーはこれを展開します。u パラメータがInstagramのコンテンツを指していれば結果はそのコンテンツ(ラップされた投稿は完全な詳細を持つ投稿として解析されます)、外部サイトを指していれば種類が redirect と表示され、詳細にラップされたアドレスが示されます。出力は常に展開された宛先そのものです。
使い方
ツールは入力しながら解析します。ボタンを押す必要はありません:
- Instagramリンクを貼り付ける — 上記の形式のいずれか、または11文字のショートコード単体を入力します。
- 結果パネルを読む — リンクの種類、ユーザー名、ショートコード、数値のメディアID、詳細フィールドが入力とともに表示され、キーストロークごとに更新されます。
- 削除されたパラメータ行を確認する — Instagramが付加したすべてのトラッキングパラメータが名前付きで一覧表示され、クリーンアップの監査が可能です。
- 結果をコピーする — 正規URLが出力フィールドに表示され、すぐにコピーできます。
結果パネルには削除されたパラメータも一覧表示されるため、クリーンアップは監査可能です。URLが短くなっただけでなく、igsh と utm_source が削除されたことがわかります。
出力形式
メディアリンク(投稿、リール、IGTV)では、出力フィールドは最大4つの形式を提供します。それぞれに独自のアドレス形状があります:
| 形式 | URL | 利用可能な場合 |
|---|---|---|
| 投稿URL(デフォルト) | instagram.com/p/{shortcode}/ |
常に。あらゆるメディアを表示する汎用形式 |
| リールURL | instagram.com/reels/{shortcode}/ |
入力が /reel/ または /reels/ リンクの場合のみ |
| 埋め込みURL | instagram.com/{p|reel|tv}/{sc}/embed/ |
常に |
| キャプション付き埋め込み | instagram.com/{p|reel|tv}/{sc}/embed/captioned/ |
常に |
リールURLが提供されるのは、リンクがリールとして届いた場合のみです。/reel/ または /reels/(ユーザー名プレフィックスの有無を問わない)です。これらのルートはメディアがリールであることを保証するからです。/p/ リンクは投稿形式の背後にリールを隠している可能性もありますが、普通の投稿である可能性もあります。URLだけで判断する方法はありません。リールでないメディアに /reels/ リンクを生成すると、訪問者は投稿ではなくリールブラウザに送られ、壊れたリンクより悪い結果になります。種類が不確かな場合はオプションを単に表示せず、選択済みのリール出力は投稿形式にリセットされます。
埋め込み形式はリンクが届いたときのパスの動詞を保持します。/reel/ リンクは /reel/{sc}/embed/ として、/p/ リンクは /p/{sc}/embed/ として埋め込まれます。Instagramは動詞ごとに別々の埋め込みエンドポイントを提供しており、/reels/{sc}/embed/ は存在しないためです。形式の選択はメディアリンクでのみ表示されます。プロフィール、タグ、ロケーション、ダイレクトメッセージスレッドには1つの正規形しかなく、ストーリー、ハイライト、ガイドはトラッキングフリーの元のURLを出力します。
チュートリアル
ノイズの多い共有リンクを、コピーからクリーンURLまで1つずつ進めます。
ステップ 1 — ノイズの多いリンクを取得する。 Instagramを開き、投稿を見つけて、共有をタップし、リンクをコピーします。https://www.instagram.com/p/DIPPWkUh7Rj/?utm_source=ig_web_copy_link&igshid=YzMyNjBhcA%3D%3D&igsh=cXdlbg%3D%3D のような形です。すでに2つの共有パラメータが貼り付いています。
ステップ 2 — 貼り付ける。 入力フィールドをクリックして貼り付けます(Ctrl+V または Cmd+V)。結果パネルが即座に表示されます。種類 投稿、ショートコード DIPPWkUh7Rj、メディアID 3607169348072354915、削除されたパラメータ行には utm_source、igshid、igsh が表示されます。
ステップ 3 — メディアIDを読む。 メディアID 行には 3607169348072354915 と表示されます。これはInstagram自身のAPIがこの投稿に使う整数で、ネットワーク往復なしにショートコードからローカルでデコードされたものです。ここに任意の11文字のショートコードを貼り付けると、数値の双子が即座に得られます。
ステップ 4 — クリーンな投稿URLをコピーする。 出力フィールドには https://www.instagram.com/p/DIPPWkUh7Rj/ と表示されます。同じ投稿で、フィンガープリントはありません。誰かに転送するためにコピーしたり、文書に貼ったり、共有の痕跡を残さずにリンクアーカイブに保存したりできます。
ステップ 5 — リールを試す。 https://www.instagram.com/reel/DIPPWkUh7Rj/?igsh=gCXI を貼り付けます。種類は リール と表示され、ショートコードとメディアIDも同じように取得できます。出力はデフォルトで汎用投稿形式の instagram.com/p/DIPPWkUh7Rj/ です。入力ルートがリールであることを保証しているため、リールURL オプションが利用可能です。切り替えると出力は instagram.com/reels/DIPPWkUh7Rj/ になります。埋め込みURL に切り替えると、iframe にそのまま使える instagram.com/reel/DIPPWkUh7Rj/embed/ が得られます。
ステップ 6 — ショートコード単体を試す。 IDのスプレッドシートで作業していますか?11文字だけを入力します。DIPPWkUh7Rj だけで、ツールはメディアIDと正規URLを備えた完全な投稿リンクとして扱います。
ステップ 7 — 共有ラッパーを展開する。 バイオリンクを貼り付けます。https://l.instagram.com/?u=https%3A%2F%2Fwww.instagram.com%2Fp%2FDIPPWkUh7Rj%2F%3Figsh%3Dabc&e=AUD-…。ラッパーが開き、種類は完全なショートコードとメディアIDを持つ 投稿 と表示され、削除リストには igsh が表示され、出力は正規の https://www.instagram.com/p/DIPPWkUh7Rj/ です。次に外部サイトを指すラッパー(?u=…youtube.com/@hello_lucy?si=…&fbclid=…)を貼り付けると、種類は redirect と表示され、詳細にラップされた宛先が示され、出力はその宛先から si と fbclid のフィンガープリントが除去されたものです。
プロのヒント
- 転送前にすべての共有痕跡を除去する。 Instagramが付加するパラメータ(
igsh、igshid、utm_*)は、コンテンツではなく共有イベントをフィンガープリントします。毎回パーサーにリンクを通すのは2秒の習慣で、確実に除去できます。 - メディアIDでデータセットを突き合わせる。 メディアIDのエクスポート(データダウンロード、バックアップ、別のAPI由来)を持っているなら、ここにショートコードを貼り付け、メディアIDをコピーして、レコードを正確に検索します。デコーダーは
BigIntを使用するため、大きなリールIDも正確です。 - リール、投稿、埋め込みを1つとして扱う。
/reel/も/p/も/p/embed/captioned/も同じメディアIDと同じ正規URLに解決されます。受け取ったバリアントを貼り付けて、1つの一貫した答えを得ましょう。 - ログを取る前にバイオリンクを展開する。
l.instagram.com/?u=…ラッパーはURLエンコードされたパラメータの背後に宛先を隠し、独自の有効期限トークンを保持します。パーサーに通すと実際のアドレスが得られます。Instagramコンテンツは正規形に解決され、外部リンクは redirect と表示され、自身の共有フィンガープリントが除去されます。 - ストーリーとハイライトはパーマリンクではない。 正規URLがないため、パーサーはストーリー/ハイライトとして報告し、代わりに共有パラメータを除去した元のリンクを出力します。正しい場所を指す共有可能なアドレスです。
- リンクアーカイブを一括監査する。 解析は即座にローカルで行われるため、100回の貼り付けは100回のキーストロークと同じくらいの時間で済み、削除されたパラメータ行がリンクごとに運ばれたトラッキング量を記録します。
代替手段
人々は通常、Instagramリンクをどう検査するのでしょうか。表が選択肢を示します:
| 方法 | リンクの種類を表示 | メディアIDをデコード | 共有パラメータを除去 | リンクをアップロード |
|---|---|---|---|---|
| コピーして転送 | いいえ | いいえ | いいえ | いいえ |
| 手動での検査 | はい、目視で | いいえ(手動) | はい、手作業で | いいえ |
| Instagramの埋め込み生成ツール | はい、メディアのみ | いいえ | いいえ | はい |
| サードパーティの短縮サービス | いいえ | いいえ | いいえ | はい |
| このツール | はい、構造化 | はい、BigInt付き | はい、明示的に一覧表示 | いいえ |
手動での検査は機能しますが、細かい作業です。igsh、igshid、utm_source は見た目が似ており、base-64url のメディアIDを手でデコードするのは計算機の仕事です。Instagram自身の埋め込み生成ツールはメディアのみを扱い、ネットワーク往復が必要で、埋め込みコードを生成するためにURLをサーバーに送ります。サードパーティの短縮サービスはInstagramのトラッキングを自社のリダイレクトに置き換え、URLを自社サーバーにアップロードします。このツールだけがアップロードゼロで構造化された分解結果を提供し、黙って書き換えるのではなく除去内容を表示します。
公式APIとの比較
パーサーのゼロリクエスト設計は意図的なトレードオフであり、その反対側も明示しておく価値があります。メディアについてより豊かな質問に_答えてくれる_Instagramのサーフェスは、oEmbedとInstagram Graph APIです。表はそれぞれの経路が勝つ場面を示します:
| 機能 | oEmbed | Graph API | このツール |
|---|---|---|---|
| URLをコンポーネントに分解 | いいえ | いいえ | はい、ローカルで即座に |
| 監査リスト付きで共有パラメータを除去 | いいえ | いいえ | はい、明示的に報告 |
| 埋め込みを正規アドレスに戻す | いいえ | いいえ | はい |
| ショートコードを数値メディアIDにデコード | いいえ | いいえ | はい、BigInt精度で |
| 数値メディアIDをショートコードに再エンコード | いいえ | いいえ | はい |
| キャプション、再生回数、所有者名 | はい | はい | 利用不可 |
| 地域とアクセスのチェック | いいえ | はい | 利用不可 |
| APIキー / ログインの必要性 | トークン | はい | 不要。リクエストゼロ |
oEmbed は「このメディアは何という名前か」に答え、それでもトークンが必要な1回の呼び出しで済みます。Graph APIは「すべて」に答えますが、トークン、ログイン、利用枠という代償があります。このツールは「このリンクには何が含まれているか」に、リクエストなしで答えます。3つは競合しません。URL解析はブラウザの仕事、メタデータはネットワークの仕事です。両方が必要なワークフローでは、URLにはパーサーを、キャプションにはGraph APIを呼べば、それぞれが相手のコストなしに自分の仕事を果たします。
このツールがしないこと
限界について正直であることは、パーサーを信頼できるものにする要素の1つです。
- メディアを取得しません。 サムネイルリクエストも、プレイヤーの読み込みも、リールの解決も、アナリティクスビーコンもありません。解析は純粋にローカルな文字列処理です。
- ユーザー名をプロフィールIDに解決しません。
some_userはユーザー名のままです。解決にはInstagram Graph APIとログイントークンが必要ですが、このツールは意図的にそれを呼び出しません。 - キャプション、再生回数、所有者名を表示しません。 これらはoEmbedまたはGraph APIから得られるもので、どちらもネットワーク呼び出しです。ゼロリクエスト設計は、リッチ化をプライバシーと交換しています。
- メディアの存在を検証しません。 有効な11文字のショートコードは、投稿が公開中でも、削除済みでも、存在したことがなくても正常に解析されます。存在の確認にはネットワーク呼び出しが必要です。
パーサーを役立つものにするすべての機能(分解、デコード、クリーニング、変換)はローカルです。ネットワークが必要なものはすべて別のサービスであり、そのトレードオフは隠すのではなくここに文書化されています。
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
| 貼り付けても何も起きない | テキストがInstagramのURL形式ではない | アプリやWebからのリンク、または11文字のメディアショートコード単体を使用する |
| クリーンなURLが元のパスを保持している | リンクの種類に公開パーマリンクがない | ストーリー、ハイライト、ガイドは正規形ではなくトラッキングフリーの元のURLを出力する |
| メディアID行が空 | URLがメディアの種類ではない(ショートコードがない) | メディアIDは投稿、リール、IGTVでのみ表示される。プロフィールとタグにはない |
| リールURLオプションが表示されない | リンクがメディアがリールであることを保証しない | /p/、/tv/、ショートコード単体は普通の投稿の可能性がある。訪問者を間違ったコンテンツに送らないよう、リール出力は /reel/ と /reels/ リンクでのみ提供される |
| 出力にトラッキングパラメータが残る | セマンティックパラメータでありトラッカーではない | igsh、igshid、utm_* が除去されるトラッカー。ルートパラメータはそのまま残る |
| 2つのショートコードが違って見える | 異なる投稿を指している | 両方をメディアIDにデコードする。同じIDは同じ投稿を意味する |
プライバシーとデータの取り扱い
パーサーはToollectツールの中で最も厳格なプライバシーモデルに従います。ネットワークリクエストを一切行いません。
- アップロードされるものはありません。 URLはブラウザ内で解析されます。それを含むリクエストは、サーバーにも、InstagramのAPIにも、アナリティクスビーコンにも、決して送信されません。
- アカウントなし、トラッキングなし。 ログインも、アナリティクスも、貼り付けたリンクの履歴もありません。
- 保存されるものはありません。 ツールは訪問間で状態を保持しません。タブを閉じれば、貼り付けたURLは消えます。
- サードパーティスクリプトなし。 埋め込みや共有ウィジェットを読み込むツールと異なり、このページは完全に自前のコードで動作します。
プライバシーがここに来た理由なら、これが他のどこにも貼り付けられないリンクを貼れるページです。
技術仕様
詳細:
- 入力形式: 投稿、リール、リールズ、IGTV、embed/captioned エイリアス、11文字のショートコード単体、プロフィール、ストーリー、ハイライト、ガイド、ハッシュタグ、ロケーション、キーワード検索、ダイレクトメッセージスレッド、新しいショートリンクスキーム、
instagr.amとig.meのショートドメイン、l.instagram.com/?u=…共有ラッパー。https://とwwwサブドメインは省略可能 - 削除される共有パラメータ:
igsh、igshid、utm_source、utm_medium、utm_campaign、utm_term、utm_content。l.instagram.comリンクを展開する際は、ラップされたターゲット自身の共有フィンガープリント(si、feature、pp、ab_channel、fbclid)も除去される - メディアIDデコード: Instagramのアルファベット(
A–Z a–z 0-9 - _)による base-64url、BigInt演算を使用し、10進文字列として返す。ショートコードへの逆変換も可能 - 出力: メディアの場合、
instagram.com/p/{shortcode}/(投稿)、instagram.com/reels/{shortcode}/(リール表示)、instagram.com/{p|reel|tv}/{shortcode}/embed/と/embed/captioned/(埋め込み形式、入力の動詞を保持)。その他の場合、instagram.com/{username}/、instagram.com/explore/tags/{tag}/、instagram.com/explore/locations/{id}/、またはinstagram.com/direct/t/{id}/ - 処理: 100%ブラウザ側JavaScript。ネットワークリクエストゼロ、APIキー不要、サーバー不要
- ブラウザサポート: すべてのモダンブラウザ(BigInt、URLSearchParams、clipboard API)
機能
- Instagramの投稿、リール、IGTV、プロフィール、ストーリー、ガイド、ハッシュタグ、ロケーション、ダイレクトメッセージを構成要素に分解します
- 11文字のショートコードをBigInt精度で数値のメディアIDにデコードし、再エンコードします
- igsh、igshid、utm_* などの共有トラッキングパラメータを削除し、削除内容を正確に一覧表示します
- 投稿、プロフィール、タグ、ロケーション、ダイレクトメッセージスレッドの正規形でフィンガープリントのないリンクを生成します
- 埋め込みと /embed/captioned/ のバリアントを標準の投稿URLに正規化します
- l.instagram.com の共有ラッパーをラップ先の宛先まで展開し、その共有フィンガープリントも除去します
- 補助ショートドメインの instagr.am と ig.me を認識します
- ショートコード単体の入力にも対応。APIやスプレッドシートから取得したIDに便利です
- https:// プレフィックスと www サブドメインの有無どちらにも対応します
- 100%ブラウザ側JavaScript。ネットワークリクエストなし、APIキー不要、アップロードなし