コンテンツへスキップ

Instagramリール: MP4はどこから来るのか

リール、フィード動画、IGTVクリップはすべて同じように配信されます。Instagramは投稿ごとに複数のMP4レンディションを保持し、ダウンローダーはその投稿が実際に持つものを一覧にします。

Instagramのリンクにはショートコードが含まれます。投稿URLのDb3xk2LtQp1の部分です。このコードは投稿の数値メディアIDをbase64風に符号化したもので、リゾルバはInstagramに何かを問い合わせる前にローカルでデコードします。プロフィールのリンクが機能しない理由もこれです。解決すべき投稿はなく、投稿だらけのページがあるだけです。

アカウントなしで公開投稿を読む

リゾルバはInstagram自身のモバイルメディアエンドポイント(i.instagram.com/api/v1/media/<id>/info/)を、InstagramのWebクライアントが使うアプリIDとモバイルのユーザーエージェントで呼び出します。ログインページへのリダイレクトは、投稿が公開でない標準的な合図であり、privateとして扱われ、リゾルバはそこで止まります。

そのエンドポイントが拒否した場合、2つのフォールバックが続きます。動画のマークアップをまだ持つ投稿の公開埋め込みページと、削除された投稿と非公開の投稿を見分けられる存在確認です。順序が重要です。削除された投稿はnot_found、非公開の投稿はprivateを返し、どちらも永遠に再試行されることはありません。

画質一覧が短辺を名指す理由

Instagramは縦向きのリールを1080×1920のような形で保存します。そのファイルを「1080p」とラベル付けするのは技術的には正しくても実用的には紛らわしいです。1080は縦動画の幅であり、高さではないからです。リゾルバはすべてのラベルにフレームの短い辺を使うため、1080×1920のリールも1920×1080の横向き動画も1080pと表示されます。

これがページ内でダウンロードされる理由

InstagramのメディアCDNは、PinterestやYouTubeと違い、access-control-allow-origin: *を送ります。そのためブラウザはファイルを読め、ページで進行状況付きの本物のダウンロードを表示できます。リゾルバはすべてのリンクに&dl=1を付け加えるので、URLを新しいタブにコピーしても、InstagramのCDNは再生しようとせず添付ファイルとして返します。

制限を率直に述べる

ケース結果
公開のリール、動画、IGTV投稿解決され、最大4つの画質。
非公開アカウント、またはログインの背後にある投稿private — Instagramは匿名の読者をログインへリダイレクトします。
動画のない画像のみの投稿やカルーセルno_video。
削除された投稿not_found。
ストーリーズ、ハイライト、プロフィールページ非対応: 読むべき公開投稿がありません。

Instagramはここで扱うプラットフォームの中で、リクエスト量に最も厳しいところでもあります。そのリゾルバはアドレスごとに1分あたり12回の検索を許可し、ほかでは30か40回です。これは意図的な保守的な上限です。Instagramのエンドポイントを叩き続けるのは、応答を止めさせる最短の道です。

要点

よくある質問

リールを4Kでダウンロードできないのはなぜですか?

Instagramがその投稿用にエンコードしたレンディションしか保存していないからです。一覧はInstagramが公開した最も大きいものを表示し、ほとんどのリールではアプリ自身が再生するファイルがそれにあたります。

リールのダウンロードにInstagramアカウントは必要ですか?

いいえ。公開投稿はサインインせずにInstagram自身の公開エンドポイントを通じて読み取られます。一方、非公開投稿はまったく読めません。Instagramが匿名の読者をログインページへリダイレクトします。

縦向きのリールの「1080p」というラベルは何を意味しますか?

フレームの短い辺を名指しています。1080×1920のリールも1920×1080の横向き動画も1080pとラベル付けされるため、向きをまたいでも比較できます。

この記事のツール

記事一覧