Przeglądarka internetowa

Co musi się wydarzyć, zanim strona internetowa odda ci swój plik

Widzisz wideo. Gra, tuż tam, w przeglądarce. Więc dlaczego nie ma jak je zachować? Odpowiedź jest taka, że strona internetowa rzadko przekazuje plik — przekazuje instrukcje, a plik, który przeglądarka z nich składa, może w ogóle nie istnieć jako jedna rzecz.

5 min czytania Zaktualizowano 29 lipca 2026

FoxDL

Cztery sposoby dostarczania wideo przez stronę, z których tylko jeden to plik

Najstarszy i najprostszy to bezpośredni plik: strona wskazuje na adres kończący się na .mp4, a przeglądarka go pobiera. Jeśli znajdziesz ten adres, masz plik. Tak nadal działa większość mniejszych stron, forów, portali informacyjnych i hostingów plików.

Drugi to streaming adaptacyjny — HLS albo DASH. Strona ładuje listę odtwarzania z setkami krótkich segmentów na kilku poziomach jakości, a odtwarzacz zszywa je w locie, przełączając jakość, gdy zmienia się twoje połączenie. Nie ma pojedynczego pliku do znalezienia. Zapisanie oznacza pobranie każdego segmentu i odtworzenie pliku z nich na nowo.

Trzeci to adres URL blob. Strona już pobrała dane skryptem JavaScript i przekazała odtwarzaczowi odniesienie do czegoś żyjącego we własnej pamięci przeglądarki. Widoczny adres (blob:https://…) jest bez znaczenia poza tą stroną i tą sesją — nie da się go otworzyć, udostępnić ani pobrać, i to właśnie wywraca większość naiwnych „wyszukiwarek wideo”.

Czwarty to treść chroniona: zaszyfrowane segmenty odtwarzane przez system DRM, gdzie klucz odszyfrowujący jest wydawany przeglądarce pod warunkami wyraźnie zabraniającymi zachowania kopii. To nie jest przeszkoda do obejścia; to mechanizm, na którym zbudowana jest umowa licencyjna, i żadne legalne narzędzie go nie łamie.

Jak przeglądarka internetowa zauważa, że jest coś do zapisania

Przeglądarka wewnątrz aplikacji, która oferuje zapisanie tego, co znajdzie, wykonuje kilka zadań naraz. Każde wychwytuje przypadek, który omijają pozostałe.

Czytanie elementów medialnych strony
Przechodzenie po dokumencie w poszukiwaniu znaczników <video>, <audio> i <source> oraz odczytywanie ich adresów. Wychwytuje od razu przypadek bezpośredniego pliku, pomija wszystko zbudowane przez JavaScript po załadowaniu strony.
Zaglądanie do shadow DOM
Nowoczesne odtwarzacze to niestandardowe elementy, których wnętrze jest celowo odizolowane od strony. Wyszukiwanie zatrzymujące się na zwykłym dokumencie widzi pusty box tam, gdzie jest wideo.
Obserwowanie, o co strona faktycznie poprosiła
Przeglądarka wie o każdym zasobie, który strona pobrała. Plik medialny, który został załadowany — bez względu na to, który skrypt o niego poprosił i kiedy — pojawia się tutaj, nawet jeśli nic w widocznej stronie na niego nie wskazuje.
Sprawdzanie typu odpowiedzi
Adres URL kończący się na .php może zwrócić wideo, a adres kończący się na .mp4 może zwrócić stronę błędu. To, co faktycznie wysłał serwer w nagłówku Content-Type, mówi ci, co jest czym — rozszerzenia to zgadywanie.

Jak wygląda zapisywanie ze strony, gdy się udaje

Kolejność ma znaczenie. Większość niepowodzeń bierze się z pominięcia drugiego kroku i rozpoczęcia czterogigabajtowego transferu strony logowania.

  1. Odtwórz najpierw sekundę materiału

    Wiele stron nic nie ładuje, dopóki nie zacznie się odtwarzanie. Dwie sekundy odtwarzania to często różnica między pustą listą kandydatów a pełną.

  2. Sprawdź, czym faktycznie jest kandydat

    Zanim zaczniesz, spójrz na podany rozmiar i typ. „Film” o wadze 14 KB to strona HTML. Typ text/html tam, gdzie spodziewałeś się video/mp4, oznacza, że masz zły link.

  3. Wybierz jakość, jakiej chcesz

    Strumień zwykle oferuje kilka. Najwyższa nie zawsze jest właściwą odpowiedzią na telefonie, gdzie różnica jest niewidoczna, a miejsce na dysku nie.

  4. Pozwól sesji przejść razem z pobraniem

    Chronione linki sprawdzają, kto pyta: ciasteczka z twojej zalogowanej sesji, stronę, która cię skierowała, czasem tożsamość przeglądarki. Pobranie rozpoczęte bez tego dostaje 403, nawet jeśli strona odtwarzała się bez problemu.

  5. Zweryfikuj, co wylądowało

    Otwórz to. Plik, który odtwarza się przez dwie sekundy i się zatrzymuje, został ucięty — zwykle wygasł link — i lepiej zacząć od nowa niż go zachować.

Co musi robić dobrze przeglądarka wewnątrz aplikacji

Poza znajdowaniem mediów, to są rzeczy decydujące o tym, czy pobieranie faktycznie się zakończy.

  • Przenieś sesję aż do pobrania

    Ciasteczka, referer i identyfikator przeglądarki muszą podróżować razem z żądaniem. Bez nich chroniony link działa na stronie, a zawodzi w pobieraniu.

  • Trzymaj te dane logowania poza magazynem danych

    Ciasteczka sesji są tak samo dobre jak hasło przez czas trwania sesji. Ich miejsce jest w pamięci na czas transferu i nigdzie indziej — nie w bazie danych, nie w dzienniku.

  • Odmawiaj przekazania linku innej aplikacji

    iOS chętnie otworzy dotknięty link w innej aplikacji, jeśli ta zgłasza tę domenę. Przeglądarka przeznaczona do zapisywania mediów musi sama anulować i ponownie wysłać nawigację, albo strona, której chciałeś, zniknie w czyjejś aplikacji.

  • Przytnij stronę, zanim się wyrenderuje

    Bloker treści nie chodzi tu tylko o reklamy — mniej trackerów i nakładek oznacza mniej fałszywych kandydatów na liście mediów.

  • Obsłuż dokumenty tak samo jak wideo

    PDF-y, archiwa ZIP i pliki Office to druga połowa tego, co ludzie zapisują z internetu, i powinny trafiać do tej samej biblioteki co wszystko inne.

Pytania, jakie zadają ludzie

Dlaczego Safari nie potrafi tego samo?

Safari pobiera pliki — robi to od iOS 13. Czego nie robi, to sprawdzanie strony pod kątem mediów, które są streamowane zamiast zwykle linkowane, ani odtwarzanie segmentowego strumienia jako pliku. To przeglądarka internetowa, i ta praca należy do menedżera pobierania.

Czym jest adres URL blob i dlaczego nie mogę go pobrać?

To uchwyt do danych, które strona już trzyma w pamięci. Nie istnieje poza tą kartą, więc wklejenie go gdziekolwiek niczego nie da. Właściwe media zostały pobrane skądś realnego, i to ten adres — nie blob — warto znaleźć.

Strona odtwarza bez problemu, ale pobieranie dostaje 403. Dlaczego?

Żądanie pobrania przyszło bez rzeczy, które miała strona: twojego ciasteczka sesji, strony odsyłającej, czasem pasującej tożsamości przeglądarki. Serwery używają dokładnie tej kombinacji, by odróżnić widza od skrobaka.

Czy da się zapisać wszystko?

Nie, i tak jest z założenia. Treść chroniona DRM jest szyfrowana kluczami wydawanymi na licencji zabraniającej jej zachowania. Niektóre strony podpisują też każdy segment osobno krótko żyjącymi tokenami. Oba działają zgodnie z zamysłem.

FoxDL

Przeglądarka internetowa wewnątrz FoxDL

To zwykła przeglądarka z kartami, której zadaniem jest wprowadzanie rzeczy do twojej biblioteki, a nie bycie codzienną przeglądarką.

  • Sześć kanałów wykrywania, w tym shadow DOM i zapis tego, o co strona faktycznie poprosiła, więc odtwarzacz zbudowany całkowicie w JavaScripcie nadal jest widoczny.
  • Prawdziwy typ jest sprawdzany na podstawie odpowiedzi, a nie zgadywany po rozszerzeniu, a kandydaci blob:, których nie da się pobrać, są odfiltrowywani zamiast być oferowani i zawodzić.
  • Ciasteczka, referer i identyfikator przeglądarki są przenoszone aż do pobrania, żeby chroniony link zadziałał — i żaden z nich nigdy nie jest zapisywany na dysku.
  • Bloker treści przycina stronę, zanim się wyrenderuje.
  • PDF-y, archiwa ZIP i dokumenty zapisują się do tej samej biblioteki co media, jednym dotknięciem.
  • Karty, zakładki i strona startowa z twoimi własnymi skrótami.

FoxDL nie dostarcza żadnej własnej treści. To, co zapisujesz, jest tym, co przyniosłeś, i to ty odpowiadasz za posiadanie prawa do zachowania tego.

Częste pytania

Wszystkie pytania

Czytaj dalej

Twoja biblioteka, wreszcie w jednym miejscu.

Darmowe pobieranie. Bez konta i rejestracji — pełny zestaw w darmowej wersji.

Pobierz w App Store