Генератор команд yt-dlp для Instagram
Соберите команду yt-dlp для публикаций и reels в Instagram. Cookies включены сразу — без них почти ничего не работает.
Instagram требует сессию
Instagram почти ничего не отдаёт неавторизованным запросам, поэтому --cookies-from-browser здесь фактически обязателен, а не опционален. Перед запуском команды закройте браузер: Chrome и Edge держат базу cookies заблокированной, пока открыты.
Карусель отдаётся как плейлист, поэтому для всех элементов поставьте обработку плейлиста на «весь плейлист». Для сторис нужна сессия, подписанная на аккаунт, и они исчезают через 24 часа.
Instagram всё меньше доверяет автоматическому доступу, и сессия, скачивающая слишком много слишком быстро, получает просьбу войти снова — примета: команда, работавшая вчера, сегодня возвращает страницу входа. Используйте отдельный аккаунт, а не основной, держите его cookies свежими, время от времени входя как обычно, и примите, что аккаунт, используемый так, помечают время от времени, как бы аккуратно ни была написана команда. Это цена платформы, а не баг yt-dlp.
Посты, reels и хайлайты проходят через один extractor, но разным сессиям показывают разное. Reels аккаунтов, на которые вы подписаны, скачиваются нормально; reels со страницы рекомендаций часто отказывают сессии, никогда не соприкасавшейся с таким контентом. Хайлайты — кружки сторис, закреплённые в профиле, — каждый приходит плейлистом своих сторис. IGTV ушёл на покой: старые ссылки иногда ещё резолвятся, но ничто новое им не пользуется.
Instagram ставит лимиты жёстче, чем любая другая платформа, с которой yt-dlp имеет дело регулярно. Параллельные fragment ухудшают дело, а не улучшают; переживает только паттерн «по одному элементу за раз, с паузами между запусками». Многопредметный запуск, падающий на полпути, — это норма: файл архива плюс продолжение после ошибок превращает повтор в возобновление, а не в рестарт, и это важно, потому что к концу запуска CDN-ссылки самых ранних элементов обычно уже истекли, и полный повтор перекачивал бы страницы, а не медиа.
Что не подлежит возврату: посты приватных аккаунтов, на которые вы не подписаны, сторис старше двадцати четырёх часов и всё, что удалено до запуска команды. CDN-ссылки внутри полученной страницы истекают быстро, поэтому медиа-URL, работавший час назад, может отказать сейчас — заново запрашивайте страницу поста, а не старую ссылку. Этот срок — ещё и аргумент скачивать скорее, а не когда-нибудь: Instagram не обещает держать медиа доступным, и срок соблюдает.