Dlaczego pobieranie z YouTube kończy się na 360p
YouTube serwuje kompletny MP4 — obraz i dźwięk w jednym pliku — tylko w skromnych rozdzielczościach. Wszystko powyżej jest przechowywane jako osobne strumienie, które trzeba scalić, a to narzędzie nie scala.
To najczęstsze zaskoczenie na stronie YouTube, więc warto powiedzieć to od razu: sufit to zwykle 360p, czasem 240p, i nie jest to ustawienie, które można podkręcić. Downloader oferuje progresywny MP4, który YouTube publikuje jako jeden plik. Wersja 1080p istnieje po stronie YouTube, ale nie jako pojedynczy plik.
Zmultipleksowany i adaptacyjny to dwie różne rzeczy
YouTube przechowuje każde wideo w dwóch postaciach. Formaty zmultipleksowane niosą obraz i dźwięk razem w jednym MP4 — pliku, który możesz zapisać i odtworzyć gdziekolwiek. Formaty adaptacyjne je rozdzielają: strumień tylko z wideo i osobny strumień tylko z dźwiękiem, każdy zakodowany z przepływnością, jaką YouTube wybrał dla tej rozdzielczości.
Odtwarzanie 1080p w przeglądarce jest łatwe, bo odtwarzacz pobiera oba strumienie i łączy je w locie. Zapisanie 1080p jako jednego pliku to inne zadanie: coś musi scalić te ścieżki. Ten downloader nie ma multipleksera, więc wymienia tylko formaty zmultipleksowane — a YouTube serwuje je coraz częściej w 360p i niżej. Zmultipleksowany format 720p, który kiedyś istniał, nie jest już wydawany anonimowym klientom.
Co robi resolver
- Pyta endpoint odtwarzacza YouTube z drabinką oficjalnych tożsamości klientów, od klienta na Androida po osadzony odtwarzacz webowy.
- Zachowuje tylko wpisy zmultipleksowane MP4, odduplikowane po identyfikatorze formatu.
- Oznacza każdy wiersz własną etykietą jakości YouTube, cofając się do wysokości kadru.
- Jeśli odtwarzacz odmówi, sprawdzenie oEmbed i tak mówi mu, czy wideo istnieje, więc usunięte wideo nie jest mylone z zablokowanym.
Drabinka klientów jest powodem, dla którego wideo, które zawiedzie przy jednej próbie, może się udać przy następnej: różnym klientom oferowane są różne formaty, a YouTube zmienia z czasem, które są dostępne.
Dlaczego link otwiera nową kartę
Bajty wideo pochodzą z googlevideo.com, który nie wysyła nagłówków CORS. Strona nie może ich odczytać, więc przycisk pobierania przechodzi zamiast tego do linku — Twoja przeglądarka zapisuje plik bezpośrednio z CDN Google. Dwa szczegóły sprawiają, że to przejście działa: resolver dopisuje do adresu parametr title, przez co serwer Google odpowiada content-disposition: attachment, więc plik się zapisuje, a nie odtwarza w karcie.
Dlaczego nic nie jest buforowane
Wynik każdej innej platformy jest buforowany na kilka minut lub dłużej. Wynik YouTube nie jest nigdy buforowany, celowo: linki googlevideo.com są przypisane do adresu, który o nie poprosił, i szybko wygasają. Zbuforowany link wyglądałby jak przycisk pobierania, a zawodził jak martwy link, więc resolver pyta YouTube za każdym razem od nowa.
Co nie jest obsługiwane
| Przypadek | Wynik |
|---|---|
| Publiczne wideo | Odczytane; formaty zmultipleksowane MP4, które oferuje YouTube. |
| Prywatne, tylko dla członków, z ograniczeniem wieku | private — resolver nigdy się nie loguje. |
| Usunięte wideo | not_found. |
| Trwająca transmisja na żywo | Nie istnieje zmultipleksowany plik, dopóki transmisja trwa. |
| Shorts | Działa jak każde inne wideo, z tym samym sufitem rozdzielczości. |
W skrócie
- Oferowany jest tylko zmultipleksowany MP4, zwykle w 360p.
- Wyższe rozdzielczości wymagają scalenia osobnych strumieni wideo i audio; to narzędzie ich nie scala.
- Nic nie jest ponownie kodowane, opatrywane znakiem wodnym ani zachowywane.
- Linki nie są nigdy buforowane, bo są przypisane do Twojego adresu i wygasają.
- Tylko publiczne wideo — prywatne i z ograniczeniem wieku pozostają zablokowane.
Pytania
Czy to narzędzie pobierze 1080p z YouTube?
Nie. YouTube trzyma 1080p jako osobne strumienie tylko z wideo i tylko z dźwiękiem, a to narzędzie ich nie scala. Oferuje zmultipleksowany MP4, który YouTube publikuje jako pojedynczy plik, zwykle w 360p.
Dlaczego wideo otwiera się w nowej karcie zamiast pobierać się na stronie?
Bo `googlevideo.com` nie wysyła nagłówków CORS, więc strona nie może odczytać bajtów. Link niesie parametr title, przez który Google odpowiada `content-disposition: attachment`, więc Twoja przeglądarka zapisuje plik, a nie odtwarza go.
Dlaczego ten sam link czasem pokazuje inne jakości?
Resolver pyta YouTube przez kilka oficjalnych tożsamości klientów, którym nie są oferowane te same formaty. Ponowne pobranie linku po chwili może zmienić listę.