Instagram Reels: откуда берётся MP4
Reels, видео из ленты и клип IGTV отдаются одинаково: Instagram хранит несколько MP4-версий на пост, а загрузчик перечисляет те, что у этого поста действительно есть.
Ссылки Instagram несут короткий код — ту часть Db3xk2LtQp1 в URL поста. Этот код — кодировка в стиле base64 от числового media id поста, и резолвер декодирует его локально, прежде чем что-либо спрашивать у Instagram. Поэтому же не может работать ссылка на профиль: разрешать нечего, есть лишь страница, полная постов.
Чтение публичного поста без аккаунта
Резолвер обращается к собственному мобильному медиаэндпоинту Instagram (i.instagram.com/api/v1/media/<id>/info/) с app id, который использует веб-клиент Instagram, и мобильным user agent. Перенаправление на страницу входа — стандартный признак того, что пост не публичный, — трактуется как private, и резолвер на этом останавливается.
Если этот эндпоинт отказывает, следуют два запасных пути: публичная страница встраивания поста, которая всё ещё несёт разметку видео, и проверка существования, отличающая удалённый пост от закрытого. Порядок важен. Удалённый пост отвечает not_found; закрытый отвечает private; ни один не повторяется бесконечно.
Почему список качеств называет короткую сторону
Instagram хранит вертикальный Reels примерно как 1080×1920. Назвать такой файл «1080p» было бы технически верно и практически путано, потому что 1080 здесь — ширина вертикального видео, а не высота. Резолвер использует для каждой подписи более короткую сторону кадра, поэтому Reels 1080×1920 и горизонтальное видео 1920×1080 оба читаются как 1080p.
- Перечисляется до четырёх версий, каждая с другим размером в пикселях.
- Дубликаты и почти-дубликаты схлопываются, поэтому список никогда не показывает один и тот же кадр дважды.
- Список упорядочен от самого высокого: верхняя строка — лучшее, что Instagram опубликовал для этого поста.
- Размеры файлов берутся из запроса HEAD и остаются пустыми, когда Instagram на него не отвечает.
Почему это скачивается прямо в странице
Медиа-CDN Instagram отправляет access-control-allow-origin: *, в отличие от Pinterest или YouTube. Поэтому браузер может прочитать файл — именно это позволяет странице показать настоящее скачивание с прогрессом. Резолвер также добавляет &dl=1 к каждой ссылке, так что если вы скопируете URL в новую вкладку, CDN Instagram всё равно вернёт его как вложение, а не попытается воспроизвести.
Ограничения, прямо
| Случай | Результат |
|---|---|
| Публичный Reels, видео или пост IGTV | Разрешается, до четырёх качеств. |
| Закрытый аккаунт или пост за входом | private — Instagram перенаправляет анонимных читателей на вход. |
| Пост только с изображением или карусель без видео | no_video. |
| Удалённый пост | not_found. |
| Stories, highlights, страницы профилей | Не поддерживается: нет публичного поста для чтения. |
Instagram ещё и самая скупая платформа здесь по объёму запросов: его резолвер допускает двенадцать обращений в минуту на адрес против тридцати или сорока у других. Это намеренный, осторожный потолок — долбить эндпоинты Instagram — быстрейший способ заставить их перестать отвечать.
Коротко
- Короткий код декодируется локально; резолвер начинает с id поста.
- Разрешаются только публичные посты — перенаправление Instagram на вход трактуется как закрытый доступ.
- Подписи качеств называют короткую сторону кадра, перечисляется до четырёх размеров.
- Файл скачивается в странице, прямо с CDN Instagram.
- Ничего не сохраняется, не перекодируется и не размещается заново.
Вопросы
Почему я не могу скачать Reels в 4K?
Потому что Instagram хранит только те версии, которые закодировал для этого поста. Список показывает самые крупные из опубликованных Instagram, а для большинства Reels это файл, который играет само приложение.
Нужен ли аккаунт Instagram для скачивания Reels?
Нет. Публичные посты читаются через собственные публичные эндпоинты Instagram без входа. Закрытые посты, наоборот, прочитать нельзя вовсе — Instagram перенаправляет анонимных читателей на страницу входа.
Что означает подпись «1080p» на вертикальном Reels?
Она называет более короткую сторону кадра. Reels 1080×1920 и горизонтальное видео 1920×1080 оба подписаны как 1080p, так что подпись остаётся сравнимой при любой ориентации.