Перейти к содержимому

Почему скачивание с YouTube останавливается на 360p

YouTube отдаёт полный MP4 — картинку и звук в одном файле — только в скромных разрешениях. Всё выше хранится отдельными потоками, которые нужно объединять, а этот инструмент не объединяет.

Это самая частая неожиданность на странице YouTube, поэтому скажем сразу: потолок обычно 360p, иногда 240p, и это не настройка, которую можно поднять. Загрузчик предлагает прогрессивный MP4, который YouTube публикует как один файл. Версия 1080p на стороне YouTube существует, но не как единый файл.

Смикшированное и адаптивное — две разные вещи

YouTube хранит каждое видео в двух видах. Смикшированные форматы несут картинку и звук вместе в одном MP4 — файл, который можно сохранить и воспроизвести где угодно. Адаптивные форматы разделяют их: видеопоток отдельно и аудиопоток отдельно, каждый закодирован с тем битрейтом, который YouTube выбрал для этого разрешения.

Воспроизвести 1080p в браузере легко, потому что плеер забирает оба потока и соединяет их на лету. Сохранить 1080p одним файлом — другая задача: что-то должно слить дорожки. Этот загрузчик не несёт микшера, поэтому он перечисляет только смикшированные форматы — а YouTube всё чаще отдаёт их в 360p и ниже. Смикшированный формат 720p, который когда-то существовал, больше не отдаётся анонимным клиентам.

Что делает резолвер

Лестница клиентов — причина того, что видео, не удавшееся с одной попытки, может удаться со следующей: разным клиентам предлагаются разные форматы, и YouTube со временем меняет, какие из них доступны.

Почему ссылка открывается в новой вкладке

Байты видео приходят с googlevideo.com, который не отправляет заголовки CORS. Страница не может их прочитать, поэтому кнопка скачивания вместо этого ведёт по ссылке — ваш браузер сохраняет файл прямо с CDN Google. Две детали заставляют этот переход работать правильно: резолвер добавляет к URL параметр title, из-за чего сервер Google отвечает content-disposition: attachment, и файл сохраняется, а не воспроизводится во вкладке.

Почему ничего не кэшируется

Результат каждой другой платформы кэшируется на пару минут или дольше. Результат YouTube не кэшируется никогда, намеренно: ссылки googlevideo.com привязаны к адресу, который их запросил, и быстро истекают. Кэшированная ссылка выглядела бы кнопкой скачивания, а падала бы как мёртвая ссылка, поэтому резолвер каждый раз спрашивает YouTube заново.

Что не поддерживается

СлучайРезультат
Публичное видеоРазрешается; смикшированные форматы MP4, которые предлагает YouTube.
Приватное, только для участников, с возрастным ограничениемprivate — резолвер никогда не входит в аккаунт.
Удалённое или снятое видеоnot_found.
Прямой эфир в процессеПока эфир идёт, смикшированного файла не существует.
ShortsРаботают как любое другое видео, с тем же потолком разрешения.

Коротко

Вопросы

Можно ли этим скачать 1080p с YouTube?

Нет. YouTube хранит 1080p как отдельные видеопоток и аудиопоток, а этот инструмент их не сливает. Он предлагает смикшированный MP4, который YouTube публикует одним файлом, обычно это 360p.

Почему видео открывается в новой вкладке, а не скачивается в странице?

Потому что `googlevideo.com` не отправляет заголовки CORS, и страница не может прочитать байты. Ссылка несёт параметр title, из-за которого Google отвечает `content-disposition: attachment`, и ваш браузер сохраняет файл, а не воспроизводит его.

Почему одна и та же ссылка иногда перечисляет разные качества?

Резолвер спрашивает YouTube через несколько официальных клиентских идентификаторов, и им предлагаются не одни и те же форматы. Повторное получение ссылки через момент может изменить список.

Инструменты в этой статье

Все статьи