Instagram 媒體 ID 轉換器
簡介
Toollect 的 Instagram 媒體 ID 轉換器只做一件事,而且做得精確 – 將 Instagram 短代碼轉換為其數字媒體 ID,反之亦然,雙向、全程精確。貼上一個短代碼 – DIPPWkUh7Rj – 它返回 ID 3607169348072354915;貼上那個數字,它返回短代碼。如果貼上完整的 Instagram 連結,轉換器會從 URL 中提取短代碼,產生兩個值,外加規範連結。
轉換是純粹的數學問題,不是查找。Instagram 以 base64url – 一種緊湊的記數系統 – 編碼媒體 ID,因此轉換在你的瀏覽器中即時完成,無需網路請求、無需 API 金鑰、無需帳戶。唯一的微妙之處在於規模 – 媒體 ID 是 19 位數字,超出普通 JavaScript 數字的精確範圍,因此該工具全部使用 BigInt 運算,從不四捨五入。
結果面板顯示三個欄位 – 短代碼、媒體 ID、標準 URL – 每個欄位都有自己的複製按鈕。無論你貼上什麼,轉換的另一端都會在你輸入時出現,規範 URL instagram.com/p/{shortcode}/ 也始終會為分享或封存而產生。
使用場景
短代碼與 ID 的轉換是這樣一種小操作,出現在各種令人意想不到的工作中。
資料分析與 API 工作
Instagram 的內部 API、資料庫匯出和第三方分析工具用數字 ID 標識媒體,而每個公開連結都攜帶短代碼。當媒體 ID 的試算表遇到共享 URL 清單時,這個轉換器就是橋樑 – 貼上短代碼,讀取 ID,與匯出資料匹配。反向同樣有效 – 下載中取出的 ID 變成短代碼,再由短代碼變成標準 URL。
連結封存與內容庫
封存貼文的團隊 – 社群媒體經理、研究者、記者 – 需要媒體的穩定鍵。短代碼就是那個鍵,轉換為數字 ID 則提供第二個唯一識別符,能夠經受 URL 縮短器和地址變更。保存兩者,任何未來的查詢都能從任一側開始。
驗證與去重媒體
兩個看似無關的短代碼可能指向同一個貼文。由於轉換雙向精確,解碼兩個短代碼並比較 ID 即可判定 – ID 相同意味著媒體相同。同樣的檢查還能確認 Reels URL、帶使用者前綴的連結和 instagr.am 分享在攜帶相同短代碼時是同一內容。
開發者與工具製作者
處理 Instagram 連結的程式碼常常需要媒體 ID 來查詢其他服務。在這裡貼上 URL 並複製提取出的 ID,是測試整合或稽核資訊流的兩秒方法 – 規範 URL 輸出則為腳本可能遇到的每條媒體路由、網域和前綴提供乾淨統一的地址。
工作原理
工具在你輸入時工作 – 沒有需要按下的按鈕。每次按鍵它都會分類輸入並轉換:
- 分類輸入 – 文字與三個模式比對 – 裸短代碼(
DIPPWkUh7Rj)、數字 ID(3607169348072354915)或路由(p、reel、reels、tv)後跟短代碼的完整 Instagram URL。 - 轉換到另一端 – 短代碼解碼為其數字 ID;數字 ID 編碼為其短代碼。當輸入是 URL 時,短代碼從路徑中提取並解碼。
- 構建規範 URL – 在任何情況下都由短代碼組裝標準形式
instagram.com/p/{shortcode}/。 - 渲染 – 三行結果被填充,無效輸入訊息僅在文字什麼都不匹配時出現。
這四步都是本地的字串與算術工作。不載入任何東西,不發送任何請求,轉換在結構上就是精確的 – 同一短代碼總是產生同一 ID,那個 ID 也總是編碼回原始短代碼。
什麼算作可辨識的 URL 比看上去更寬泛 – 三個網域、可選的子網域、使用者前綴和嵌入別名都會歸約到同一個短代碼。完整契約見下文「支援的 URL 格式」。
支援的 URL 格式
轉換器辨識攜帶媒體短代碼的任何 URL 形式。語法有意比 instagram.com/p/… 更寬 – Instagram 透過多個網域和路徑形式分發同一媒體,它們全部以相同方式轉換。
接受的格式
| 格式 | 範例 | 辨識為 |
|---|---|---|
| 裸短代碼 | DIPPWkUh7Rj |
短代碼 |
| 數字媒體 ID | 3607169348072354915 |
媒體 ID |
| 貼文 | instagram.com/p/DIPPWkUh7Rj/ |
URL → 短代碼 |
| Reels | instagram.com/reel/DIPPWkUh7Rj/ |
URL → 短代碼 |
| Reels 展示 | instagram.com/reels/DIPPWkUh7Rj/ |
URL → 短代碼 |
| IGTV | instagram.com/tv/DIPPWkUh7Rj/ |
URL → 短代碼 |
| 嵌入別名 | instagram.com/p/DIPPWkUh7Rj/embed/captioned/ |
URL → 短代碼 |
| 帶使用者前綴 | instagram.com/some_user.123/p/DS7w7fokujz/ |
URL → 短代碼 |
| 短網域 | instagr.am/p/DIPPWkUh7Rj/ |
URL → 短代碼 |
| 直鏈網域 | ig.me/reel/C0HpSipMp_k/ |
URL → 短代碼 |
每條媒體路由在每個網域上都有效 – p、reel、reels、tv 在 instagram.com、instagr.am 和 ig.me 上都被辨識,使用者前綴在每個網域上都被接受 – instagr.am/some_user.123/tv/C0HpSipMp_k/embed/ 與裸規範形式同樣有效。https:// 前綴、www 或 m 子網域、末尾斜線都是可選的。無論何種形式,短代碼都會被提取,另外兩個結果 – ID 和規範 URL – 始終相同。
被拒絕的格式
契約的另一面是轉換器拒絕什麼,以及為什麼:
| URL | 拒絕原因 |
|---|---|
instagram.com/some_user.123/ |
個人主頁 – 沒有短代碼 |
instagram.com/explore/tags/photography/ |
話題標籤頁面 – 沒有短代碼 |
instagram.com/stories/some_user/1234567/ |
限時動態 – 沒有短代碼 |
ig.me/m/414231852796565/ |
私訊對話 – 是對話 ID,不是媒體 |
ig.me/u/some_user.123/ |
個人主頁短連結 – 沒有短代碼 |
l.instagram.com/?u=…&e=… |
分享包裝器 – 目的地藏在參數中 |
經驗法則很短 – 路徑以媒體路由後的短代碼結尾就轉換;其他一切 – 主頁、標籤、動態、對話、包裝器 – 都顯示無效輸入訊息。那些連結不是轉換器的 bug;它們只是沒有可供套用 base64 轉換的短代碼。Instagram URL 解析器正是為那類地址而存在。
編碼原理
短代碼是用另一種記數系統書寫的數字。理解這套系統就能解釋為什麼轉換是精確的、為什麼字母表是現在這個樣子、為什麼 BigInt 不是可選項。
字母表
Instagram 以 64 為基數書寫數字,字母表按此順序:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_
這就是 base64url 字母表 – 熟悉的 64 進位 A–Z、a–z、0–9,把對 URL 不友善的 + 和 / 換成 - 和 _。它恰好有 64 個字元,每個數位值一個,且沒有任何字元需要在 URL 中跳脫。位置零是 A;位置 63 是 _。
算術
從左到右讀短代碼,就是讀一個 64 進位數字:
DIPPWkUh7Rj = 3×64^10 + 8×64^9 + 15×64^8 + 15×64^7 + 22×64^6 + ... + 35×64^0
= 3607169348072354915
每個字元貢獻其在字母表中的位置乘以 64 的位權次方。反方向,ID 被反覆除以 64,每個餘數從右邊成為一位數字:
3607169348072354915 / 64 → 餘數 35 → 'j' (最後一位)
…如此沿位推進直到 3 → 'D'
由於 64 進位轉換是雙射的 – 每個整數恰好有一個表示,每個表示恰好解碼為一個整數 – 完整往返得到保證 – DIPPWkUh7Rj 始終解碼為 3607169348072354915,那個 ID 也始終編碼回 DIPPWkUh7Rj。無需查找表、無需 API、沒有任何歧義。
為什麼是 11 位字元
64 進位的 11 位數字可以容納高達 64^11 ≈ 2^66 的值。真實媒體 ID 可達約 2^62,綽綽有餘地落在範圍內 – 因此短代碼長度為 10 到 12 個字元,11 是當今的標準。
為什麼用 BigInt
運算需要的數字是普通 JavaScript 數字型別無法容納的。精確整數上限是 9,007,199,254,740,991 – 約 9×10^15 – 而真實媒體 ID 接近 4×10^18,大出 400 多倍。普通數字會捨入最後幾位 – 3799845905265518835 變成 3799845905265518600,捨入後的值會編碼回完全不同的短代碼。轉換器的每次乘法、除法和取餘都用 BigInt,因此沒有任何一位數字被近似。
一個完整的例子
以 Reels URL instagram.com/reel/C0HpSipMp_k/ 為例:
reel路由確認為媒體;提取短代碼C0HpSipMp_k。- 每個字元映射到它的位置 –
C→ 2、0→ 52、H→ 7、p→ 41,依此類推。 - 位置用 BigInt 摺疊成 64 進位整數 –
3244743650599673828。 - 組裝標準 URL
instagram.com/p/C0HpSipMp_k/。 - 再次貼上
3244743650599673828,轉換反向執行 – ID 精確分解為C0HpSipMp_k。
使用方法
轉換器無需按鈕即可工作 – 結果隨每次按鍵更新:
- 貼上或輸入 – 短代碼、數字媒體 ID,或三個網域中任意一個上的貼文、Reels 或 IGTV 的 Instagram URL,帶不帶使用者名稱前綴均可。
- 檢視結果面板 – 短代碼行和媒體 ID 行始終顯示轉換的兩端,無論你輸入了什麼。
- 檢查標準 URL – 規範形式
instagram.com/p/{shortcode}/會自動產生。 - 複製所需內容 – 每行都有自己的複製按鈕 – 短代碼、媒體 ID 或 URL。
無需提交、無需等待,有效輸入不會出現錯誤狀態 – 只有三個格式都不匹配的文字才會顯示無效輸入訊息,輸入恢復有效後立即消失。
教學
從開始到結束走一遍完整轉換。
步驟 1 – 將短代碼轉換為 ID。 在輸入框中貼上 DS7w7fokujz。媒體 ID 行填入 3799845905265518835,標準 URL 行顯示 https://www.instagram.com/p/DS7w7fokujz/,每行旁邊的複製按鈕亮起。點擊媒體 ID 的複製按鈕 – 19 位數字已在你的剪貼簿中。
步驟 2 – 反向轉換 ID。 清空輸入,貼上 3799845905265518835。短代碼行現在顯示 DS7w7fokujz,URL 行顯示與之前相同的規範連結 – 證明轉換是精確的完整往返,而非查找。
步驟 3 – 從 URL 轉換。 從應用程式貼上完整連結 – https://www.instagram.com/reel/C0HpSipMp_k/?igsh=cXdlbg%3D%3D。轉換器忽略除媒體路由和短代碼之外的一切 – 媒體 ID 行讀作 3244743650599673828,URL 行讀作 https://www.instagram.com/p/C0HpSipMp_k/。追蹤參數無關緊要 – 工具只需要路徑。
步驟 4 – 將 ID 與資料庫匯出匹配。 打開 API 匯出的媒體 ID 試算表,查找 3244743650599673828;貼上的 Reels 與資料中的記錄是同一媒體。反向 – 在匯出中找到某個 ID,貼到這裡,短代碼加規範 URL 讓你在瀏覽器中精確打開那個媒體。
步驟 5 – 在路由、前綴和網域之間驗證。 貼上 https://www.instagram.com/p/DIPPWkUh7Rj/,然後 https://www.instagram.com/reel/DIPPWkUh7Rj/,然後 https://instagr.am/p/DIPPWkUh7Rj/,最後是帶使用者前綴的連結 https://www.instagram.com/some_user.123/p/DIPPWkUh7Rj/。四個都解碼為相同的 ID 3607169348072354915 – 同一媒體、四個地址、一個規範 URL。
專業提示
- 把媒體 ID 當作穩定鍵保存。 短代碼是媒體的公開面孔;數字 ID 是它在每個 API 和資料庫中的身份。把 ID 與 URL 一起保存,讓未來的查詢不依賴連結是如何分享的。
- 做一次完整往返來核對資料。 如果匯出的 ID 與 URL 的短代碼對不上,解碼短代碼再比較 – 轉換是精確的,因此不一致意味著媒體真的不同。
- 從 URL 的任一側轉換。 貼文、Reels、Reels 展示和 IGTV 路由在不同的動詞背後攜帶相同的短代碼。無論收到哪種變體,得到的 ID 和規範 URL 都相同。
- 每個網域,同一媒體。 instagr.am 連結、ig.me 連結和 instagram.com 連結在共享短代碼時解碼為相同的 ID,使用者前綴也不會改變任何東西。不要因為地址的外衣讓去重輪次中一個貼文看起來像多個。
- 用標準 URL 分享。 /p/ 形式渲染任何媒體 – 貼文、Reels 或 IGTV – 因此 URL 輸出是轉發、嵌入或記錄的最安全地址。
- 轉換器是單條批次。 轉換即時且本地,因此處理一列短代碼或 ID 就是一系列快速的貼上-複製循環 – 沒有載入、沒有速率限制、行與行之間沒有等待。
- 與 Instagram URL 解析器搭配使用。 把同一個連結貼到解析器獲得完整分解 – 類型、使用者名稱、詳情和乾淨 URL – 當只需要某個特定短代碼的 ID 時使用這個轉換器。
替代方案
在短代碼和媒體 ID 之間還有哪些切換方式?實際的選擇如下:
| 方法 | 雙向 | 完整精度 | 支援 URL | 會上傳你的資料 |
|---|---|---|---|---|
| 手工 base64 解碼 | 否(易出錯) | 否 | 否 | 否 |
| 瀏覽器主控台片段 | 是(如果你自己寫) | 視情況 | 否 | 否 |
| 通用 base64 轉換器 | 否 – 字母表不對 | 否 | 否 | 是 |
| 其他線上轉換器 | 有時 | 參差不齊 | 有時 | 是(常常) |
| 本工具 | 是(有保證) | 是(BigInt) | 是 | 否 |
手工解碼是用計算機做 64 的冪運算 – 字母表位置、乘法、除法鏈條 – 一個錯位的數字就會讓整個結果失效。主控台片段可以工作,但每次都要自己寫 base64 迴圈。通用 base64 轉換器甚至具有誤導性 – 標準 base64 用另一種字母表和填充規則解碼位元組,其輸出與 Instagram 媒體 ID 毫無關係。其他短代碼轉換器精度參差,許多把 ID 壓進浮點數,產生微妙錯誤的短代碼。本工具是唯一保證雙向精確往返的選擇,從短代碼、ID 或完整 URL 開始都可以,而且沒有資料離開你的瀏覽器。
與官方 API 對比
轉換是刻意離線進行的,值得說明網路方案能加什麼、不能加什麼:
| 能力 | oEmbed | Graph API | 本工具 |
|---|---|---|---|
| 短代碼 → 媒體 ID | 否 | 間接 | 是(精確) |
| 媒體 ID → 短代碼 | 否 | 否 | 是(精確) |
| 從兩者產生規範 URL | 否 | 間接 | 是 |
| 標題、擁有者、瀏覽量 | 是 | 是 | 不可用 |
| 驗證媒體是否存在 | 部分 | 是 | 不可用 |
| API 金鑰 / 登入 | 令牌 | 需要 | 無需 – 零請求 |
oEmbed 回答 這個媒體叫什麼 – 一次令牌認證呼叫返回標題、作者和縮圖。Graph API 回答關於媒體的一切,代價是令牌、登入和配額。兩者都不會把短代碼直接轉換成它的數字媒體 ID;Graph API 的節點 ID 與媒體 ID 是分開的,取出媒體 ID 通常意味著自己拆解 URL – 這正是本工具自動化的步驟。三者回答不同的問題 – 對媒體的數字身份,本地轉換器已足夠;其他一切,API 依然是獨立服務。
轉換器與 URL 解析器的區別
Toollect 發佈了兩款 Instagram 工具,都接收連結,都懂短代碼。它們互補而非競爭 – 下表顯示各自給出哪些答案:
| 問題 | Instagram URL 解析器 | 本轉換器 |
|---|---|---|
| 這是什麼類型的連結? | 所有類型 – 貼文、Reels、主頁、動態、標籤、私訊、重新導向 | 只有一個 – 是否攜帶媒體短代碼? |
| 給出媒體 ID 嗎? | 媒體連結則給出 | 媒體連結則給出 – 這是它的全部工作 |
| 清理追蹤參數嗎? | 是 – igsh、utm_*、包裝器痕跡 | 不需要 – 輸出永遠是全新的規範 URL |
| 打開 l.instagram.com 包裝器嗎? | 是,包括外部目的地 | 否 – 拒絕 |
| 主頁、標籤、動態、私訊連結 | 以類型和詳情解析 | 作為無效拒絕 |
| 裸短代碼或數字 ID | 只有短代碼 | 兩者,雙向 |
解析器是通才 – 告訴你關於一個連結的一切、清理它、打開分享包裝器。轉換器是專才 – 從任一側把短代碼變成 ID 再變回去,為方便起見接受完整的 URL 語法。把同一個媒體連結餵給兩者,ID 一致;把 bio 連結餵給兩者,解析器打開它而轉換器禮貌地謝絕。當工作流程需要兩種答案時,組合只需兩秒 – 而且兩個工具都是 100% 用戶端、零請求。
它不能做什麼
說出界限是可靠性的組成部分 – 轉換器不應被過度信任:
- 它不取得媒體。 零請求 – 轉換是瀏覽器中的 base64 算術,工具無法判斷一個貼文是活躍、被刪還是從未存在。
- 它不解析使用者名稱或主頁。 主頁連結不攜帶短代碼,因此在範圍之外,會顯示無效輸入訊息。
- 它不打開分享包裝器。 bio 連結
l.instagram.com/?u=…&e=…把目的地藏在編碼參數中,因此路徑不攜帶任何短代碼,連結被拒絕。打開它是 URL 解析器的工作。 - 它不處理私訊或主頁短連結。
ig.me/m/{id}是私訊對話,ig.me/u/{username}是主頁 – 兩者都不是媒體,因此都不被轉換。 - 它不顯示影片或圖片。 它產生的標準 URL 是地址,不是內容 – 打開它是瀏覽器的工作。
- 它不猜測。 不匹配三個格式(短代碼、ID 或媒體 URL)中任何一個的輸入,會顯示無效輸入訊息,而不是部分或近似的結果。
轉換器承諾的一切 – 精確的雙向轉換、URL 提取、規範輸出 – 都由算術本身保證,其餘一切都被刻意留給其他工具。
疑難排解
| 問題 | 原因 | 解決方案 |
|---|---|---|
| 結果面板中什麼都不顯示 | 文字既不是短代碼、ID,也不是媒體 URL | 貼上 11 位裸短代碼、數字 ID,或三個網域中任意一個上媒體路由(p、reel、reels、tv)的連結 |
| 主頁或話題標籤連結顯示錯誤 | 那些路由不攜帶短代碼 | 轉換器只處理媒體;主頁和標籤請用 Instagram URL 解析器 |
| bio 連結(l.instagram.com/…)顯示錯誤 | 分享包裝器把目的地藏在參數中 – 路徑裡沒有短代碼 | 用 Instagram URL 解析器打開它,解析器會解析被編碼的目的地 |
| ig.me/u/… 或 ig.me/m/… 連結顯示錯誤 | 那些短連結分別是主頁和私訊對話 – 不是媒體 | 不適用轉換 – 主頁和對話沒有短代碼 |
| 貼上的 ID 返回外觀不同的短代碼 | 那個 ID 確實屬於另一個媒體 | 轉換是精確的 – 不同的 ID 總是編碼為不同的短代碼 |
| URL 行與你貼上的不同 | 工具規範化為規範的 /p/ 形式 | 這是刻意為之 – /p/ 以相同方式渲染貼文、Reels 和 IGTV |
| 我期待 ID 以某個特定數字開頭 | 沒什麼異常 – ID 沒有固定長度 | base64 值表示它們的數字;變化的是短代碼,長度 10 到 12 個字元 |
隱私與資料處理
這個轉換器以 Toollect 工具中最嚴格的隱私模式執行 – 它發出零網路請求。
- 不上傳任何東西。 轉換完全在你的瀏覽器中執行。包含所貼上短代碼、ID 或 URL 的請求永遠不會被發送到任何地方。
- 無帳戶、無分析。 沒有登入、沒有追蹤腳本、沒有你轉換的媒體的記錄。
- 不儲存任何東西。 工具在造訪之間不保留狀態 – 關閉分頁,轉換就消失了。
- 無第三方腳本。 頁面只執行自己的程式碼 – 沒有嵌入小工具、沒有分享按鈕、沒有外部呼叫。
對於任何以你不想發送到伺服器的連結或 ID 開始的工作流程,這裡就是轉換在不離開裝置的情況下完成的頁面。
技術規格
詳情:
- 轉換 – 基於 Instagram 字母表(
A–Z a–z 0–9 - _)的 base64url 算術,雙向雙射,無近似 - 精度 – 每次運算都使用
BigInt;對超出 JavaScript 安全整數範圍(9,007,199,254,740,991)的 ID 依然精確 - 輸入格式 – 10–12 位裸短代碼(
DIPPWkUh7Rj)、數字媒體 ID(3607169348072354915)或instagram.com、instagr.am、ig.me上媒體路由p、reel、reels、tv的 Instagram URL – 通訊協定、子網域(www、m)、使用者前綴和嵌入別名均為可選;所有其他路由和網域都被拒絕 - 輸出 – 短代碼、數字媒體 ID 和規範 URL
https://www.instagram.com/p/{shortcode}/,各帶自己的複製按鈕 - 處理 – 100% 用戶端 JavaScript,零網路請求,無 API 金鑰,無伺服器
- 瀏覽器 – 所有現代瀏覽器(BigInt、Clipboard API)
功能特色
- 將 Instagram 短代碼轉換為數字媒體 ID,雙向轉換
- 支援裸短代碼、數字 ID,或來自 instagram.com、instagr.am、ig.me 的完整貼文、Reels 和 IGTV URL
- 使用 BigInt 全程精確解碼超出 JavaScript 安全整數範圍的 ID
- 從兩種輸入產生規範的 instagram.com/p/... URL
- 一鍵複製短代碼、媒體 ID 和標準 URL
- 即時本地轉換,無需網路請求或 API 金鑰
- 區分四種媒體路由 – post、reel、reels 和 IGTV