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.
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
.phpmoże zwrócić wideo, a adres kończący się na.mp4może zwrócić stronę błędu. To, co faktycznie wysłał serwer w nagłówkuContent-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.
-
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ą.
-
Sprawdź, czym faktycznie jest kandydat
Zanim zaczniesz, spójrz na podany rozmiar i typ. „Film” o wadze 14 KB to strona HTML. Typ
text/htmltam, gdzie spodziewałeś sięvideo/mp4, oznacza, że masz zły link. -
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.
-
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.
-
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.
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
- Jak pobrać plik ze strony internetowej?
- Czy FoxDL potrafi pobrać strumień HLS (m3u8)?
- Czy pobierania działają dalej, gdy opuszczę aplikację?
- Czy FoxDL dostarcza kanały IPTV, filmy lub strumienie?
Czytaj dalej
Co robi menedżer pobierania, czego nie zrobi przeglądarka internetowa
Dlaczego transfery zatrzymują się przy przełączeniu aplikacji, czego naprawdę wymaga wznawianie i jak strumienie stają się plikami.
Co widzi aplikacja multimedialna na twoim telefonie i czego nigdy nie powinna wysyłać
Co widzi aplikacja multimedialna, jak czytać etykietę prywatności i dlaczego blokada to nie szyfrowanie.
Gdzie naprawdę żyją pliki na iPhonie i kto może je zobaczyć
Sandbox, dokąd naprawdę trafiają pobrania, i dlaczego zmiana nazwy pliku psuje tak wiele aplikacji.
Twoja biblioteka, wreszcie w jednym miejscu.
Darmowe pobieranie. Bez konta i rejestracji — pełny zestaw w darmowej wersji.