스토리

Jak pobrać wideo z bezpośredniego adresu URL wideo

Czym jest bezpośredni adres URL wideo, jak zapisać plik MP4 lub WebM w przeglądarce i dlaczego CORS, HLS lub DASH mogą zablokować pobieranie pliku.

Posiadanie adresu URL wideo to nie to samo co posiadanie pliku wideo. Niektóre adresy wskazują na zasób MP4 lub WebM. Niektóre otwierają stronę HTML, która tylko zawiera odtwarzacz. Inne ładują listę odtwarzania strumieniowego złożoną z wielu małych segmentów.

Dlatego jeden link zapisuje się szybko, a inny odmawia pobrania, choć wideo się odtwarza. Reszta tego artykułu dotyczy rozróżniania tych przypadków i zapisywania pliku tylko wtedy, gdy URL naprawdę jest zasobem wideo.

Czym jest bezpośredni adres URL wideo?

Bezpośredni adres URL wideo to adres, którego odpowiedź HTTP jest zasobem multimediów, a nie stroną internetową wokół niego. Najprostszy przykład wygląda tak:

https://example.com/video.mp4

Gdy przeglądarka żąda tego URL, serwer może zwrócić bajty pliku wideo, często z Content-Type takim jak video/mp4 lub video/webm. Nie ma dokumentu HTML pośrodku. URL jest plikiem.

Rozszerzenie pliku to wskazówka, nie reguła. Link nadal może być zasobem wideo bez .mp4 w ścieżce:

https://example.com/media?id=123

Jeśli serwer odpowiada Content-Type: video/mp4 (lub innym typem wideo) i treścią, która faktycznie jest danymi multimediów, to nadal jest bezpośredni adres URL wideo. Ścieżka kończąca się na .mp4 nadal może być przekierowaniem lub stroną błędu HTML. Traktuj odpowiedź HTTP jako źródło prawdy, nie litery na końcu adresu.

Bezpośredni adres URL wideo a strona z wideo

Porównaj te dwa:

  • Plik bezpośredni: https://example.com/files/movie.mp4
  • Strona internetowa: https://example.com/watch/movie

Pierwszy może być pojedynczym obiektem wideo. Drugi to zwykle dokument HTML. Ta strona może osadzić element <video>, wczytać skrypt odtwarzacza, a następnie pobrać multimedia z innego URL, który nigdy nie pojawia się na pasku adresu.

Wklejenie adresu strony do narzędzia pobierania nie wyciąga pliku ze strony. Przeglądarka żądałaby HTML. Narzędzie działające na bezpośrednich, publicznie dostępnych adresach URL wideo potrzebuje samego adresu multimediów.

Pobieranie wideo z sieci NEXNARA jest przeznaczone do tego publicznego adresu pliku, a nie do strony odtwarzania. Nie wyodrębnia wideo ze stron, nie loguje się na konta ani nie składa strumieni z odtwarzacza.

Jak pobrać wideo z bezpośredniego adresu URL

Gdy masz już kandydujący link:

  1. Uzyskaj bezpośredni URL. Użyj adresu pliku, obiektu lub multimediów — nie strony odtwarzania.
  2. Sprawdź, czy to zasób wideo. Nowa karta powinna pokazać wbudowane odtwarzanie przeglądarki (lub monit o pobranie), a nie stronę z odtwarzaczem w układzie.
  3. Najpierw spróbuj przeglądarki. Wiele przeglądarek pozwala zapisać z menu kontekstowego wideo albo rozpoczyna pobieranie, jeśli serwer wysyła dyspozycję pliku.
  4. Użyj narzędzia w przeglądarce, gdy chcesz najpierw podgląd. Wklej ten sam URL na stronę, która może pokazać format, czas trwania lub rozmiar przed zapisaniem.

Pobieranie wideo z sieci to ten ostatni krok. Wklejasz bezpośredni adres URL wideo. Przeglądarka żąda tego hosta. Jeśli zasób jest odtwarzalnym plikiem, pojawia się podgląd. Gdy serwer wideo zezwala na odczyt z innego źródła, możesz pobrać; gdy nie, nadal możesz otworzyć URL, jeśli podgląd działa. NEXNARA nie przesyła pliku na własne serwery.

Które formaty wideo można pobrać?

W przeglądarce «czy mogę to pobrać?» jest bliskie «czy ta przeglądarka potrafi zdekodować ten plik?». Typowe kontenery dla URL jednego pliku:

  • MP4 — często H.264 lub HEVC w kontenerze ISO BMFF
  • WebM — zwykle VP8, VP9 lub AV1
  • Ogg Video — mniej powszechne; obsługa kodeka zależy od przeglądarki

Kontener i kodek to nie to samo. Plik .mp4 nie jest gwarantowany w każdej przeglądarce na każdym urządzeniu. Obsługa HEVC i AV1 zależy od systemu operacyjnego, sprzętu i wersji przeglądarki. Narzędzie, które używa elementu HTML5 video, pokazuje podgląd tego, co ta przeglądarka potrafi zdekodować. Nie konwertuje ani nie wykonuje remux pliku.

Jeśli przeglądarka zgłasza nieobsługiwany format, plik może nadal odtwarzać się gdzie indziej — albo być źle etykietowanym obiektem lub listą odtwarzania zamiast pojedynczego pliku.

Dlaczego wideo się odtwarza, ale nie da się go pobrać?

Odtwarzanie i zapisywanie używają różnych API przeglądarki.

Element <video> może żądać zasobu (często z żądaniami HTTP range) i renderować klatki. To może się udać nawet wtedy, gdy JavaScript w innym źródle nie może odczytać bajtów i zamienić ich w plik, który użytkownik zachowa.

Typowe powody, dla których podgląd działa, a Pobierz zawodzi:

  • CORS. Host wideo nie udzielił tej witrynie uprawnienia do odczytu odpowiedzi ze skryptu. Zobacz następną sekcję.
  • Poświadczenia międzyźródłowe. Pliki cookie, które działają na oryginalnej stronie, nie są wysyłane w prostym fetch między witrynami, chyba że obie strony się na to zgodzą.
  • Content-Disposition. attachment lub nazwa pliku wpływają na to, jak zapisuje nawigacja najwyższego poziomu, a nie na to, czy skrypt innego źródła może odczytać treść.
  • Konfiguracja serwera. Brakujące nagłówki CORS lub zablokowane kombinacje HEAD/GET mogą zatrzymać narzędzie, które najpierw sprawdza zasób.
  • Uwierzytelnianie. URL, który działa, gdy jesteś zalogowany na hoście, może zwrócić 401/403 z innej witryny.
  • Wygasające lub podpisane URL. Magazyn obiektów często wydaje ograniczony czasowo ciąg zapytania. Po wygaśnięciu ten sam link zawodzi.

Żadne z tego nie oznacza, że plik «nie jest wideo». Oznacza, że ten kontekst przeglądarki nie ma uprawnienia do skopiowania go.

Czym jest CORS?

CORS (Cross-Origin Resource Sharing) to reguła przeglądarki określająca, kiedy JavaScript w jednym źródle może odczytać odpowiedź z innego źródła. To nie jest specjalny produkt «anty-pobieranie». Istnieje po to, by https://a.example nie mógł po cichu czytać Twojej poczty ani plików z https://b.example, chyba że b.example na to zezwoli.

Znacznik video nadal może wyświetlić plik z innego źródła. To, co CORS często blokuje, to fetch() z innej witryny, która chce surowych bajtów jako Blob do okna zapisu. Jeśli serwer wideo nie wysyła wartości Access-Control-Allow-Origin obejmującej źródło narzędzia (lub * dla prostego publicznego pliku), ten odczyt jest odrzucany.

Odtwarzanie nie jest zgodą na to, by skrypt innej witryny zapisał kopię. NEXNARA nie pośredniczy w pliku, by pominąć tę kontrolę. Jeśli pobieranie jest zablokowane, otwarcie URL na hoście wideo jest rozwiązaniem zastępczym — i tylko wtedy, gdy masz prawo je zapisać.

A HLS i DASH?

Wiele odtwarzaczy nie ładuje jednego MP4. Ładują manifest, a potem wiele segmentów.

  • HLS często używa URL kończącego się na .m3u8. Ten plik to lista odtwarzania (tekst), nie kompletny film w jednym obiekcie.
  • DASH często używa .mpd, manifestu XML wskazującego na reprezentacje i segmenty.

Bezpośredni URL MP4/WebM i lista HLS/DASH to różne zasoby. Zapisanie «tego .m3u8» daje mały plik tekstowy, nie film. Zbudowanie jednego pliku z segmentów wymaga parsowania listy, pobierania segmentów i zwykle remux. Pobieranie wideo z sieci nie składa strumieni HLS ani DASH. Jeśli narzędzie zgłasza listę strumieniową, to jest oczekiwane.

Wideo chronione DRM

Komercyjne odtwarzacze mogą owijać multimedia w DRM takie jak Widevine, FairPlay lub PlayReady. Te systemy szyfrują próbki i wymagają licencji. To nie jest publiczny obiekt video/mp4, który można pobrać i zachować. NEXNARA nie odszyfrowuje ani nie omija DRM.

Jak rozpoznać bezpośredni adres URL wideo

Praktyczne sprawdzenia, w kolejności tego, ile udowadniają:

  • Ścieżka kończy się na .mp4, .webm, .ogv lub podobnym rozszerzeniu multimediów. Przydatne, nie rozstrzygające.
  • Otwarcie URL w nowej karcie pokazuje samo wideo (lub pobieranie), nie całą witrynę.
  • Wydawca udokumentował to jako link do pliku lub obiektu (CDN, kubełek magazynu, «pobieranie bezpośrednie»).
  • Nagłówki odpowiedzi zawierają Content-Type: video/* (na przykład video/mp4).

Narzędzia deweloperskie przeglądarki mogą pokazać w panelu Sieć typ i Content-Type żądania, które już wykonałeś jako zwykły użytkownik strony. Pomaga to zrozumieć, co zostało pobrane. To nie jest przewodnik po scrapowaniu ukrytych strumieni ani omijaniu logowania. Jeśli witryna nie daje publicznego adresu pliku, ten tok pracy nie ma zastosowania.

Rozszerzenie i typ zawartości mogą kłamać. URL .mp4 może przekierować do HTML. Typ video/mp4 nadal może być malutkim ciałem błędu. Odtwarzanie w karcie to praktyczne potwierdzenie.

Typowe problemy

URL otwiera stronę internetową.
To nie jest bezpośredni adres URL wideo. Potrzebujesz adresu zasobu multimediów, nie strony odtwarzania.

Wideo się odtwarza, ale Pobierz nic nie daje.
Host prawdopodobnie odmawia odczytu z innego źródła (CORS) albo plik jest za duży do zapisu w przeglądarce. Użyj Otwórz, jeśli podgląd działa, albo zapisz z hosta wideo w karcie najwyższego poziomu, gdy masz uprawnienie.

Link działał, a teraz zawodzi.
Podpisane lub wygasające URL umierają według licznika. Poproś o nowy link w tym samym miejscu, z którego wziąłeś pierwszy.

URL kończy się na .m3u8 lub .mpd.
To lista odtwarzania strumieniowego, nie pojedynczy plik MP4/WebM. Ten downloader nie zszywa tych segmentów.

Przeglądarka mówi, że format nie jest obsługiwany.
Kontener lub kodek może być niedostępny w tej przeglądarce/systemie. Spróbuj innej przeglądarki albo potwierdź, że plik naprawdę jest obiektem wideo.

Przeglądarka nie może dotrzeć do URL.
Sprawdź https://, połączenie i to, czy host zezwala na dostęp publiczny. Plik HTTP na stronie narzędzia HTTPS też może zawieść jako treść mieszana.

Prywatność

NEXNARA nie przesyła pliku wideo na serwery NEXNARA w przypadku tego narzędzia. To nie to samo co twierdzenie, że «URL nigdy nie opuszcza Twojej przeglądarki».

Gdy wklejasz adres, Twoja przeglądarka żąda bezpośrednio tego zewnętrznego hosta wideo. Host może zobaczyć zwykłe żądanie multimediów od Ciebie. NEXNARA nie przechowuje pliku pośrodku. Operator wideo nadal otrzymuje ruch, bo bajty pochodzą z jego URL.

Odpowiedzialne korzystanie

Pobieraj tylko filmy, których jesteś właścicielem lub na których pobranie masz zgodę. Publiczny URL nie jest licencją na kopiowanie.

FAQ

Czym jest bezpośredni adres URL wideo?

Link, którego odpowiedzią jest sam zasób wideo (na przykład obiekt MP4 lub WebM), a nie strona HTML odtwarzania z osadzonym odtwarzaczem.

Czy mogę pobrać MP4 z adresu URL?

Tak, gdy URL jest publicznym plikiem MP4 (lub podobnym) i przeglądarka potrafi go zdekodować. Jeśli adres to strona internetowa lub lista odtwarzania, zapisanie tego adresu nie da Ci pliku filmu.

Dlaczego wideo się odtwarza, ale nie da się go pobrać?

Odtwarzacz może pokazać multimedia bez zezwolenia JavaScriptowi innej witryny na odczyt bajtów. CORS, uwierzytelnianie i polityka serwera to zwykłe przyczyny.

Czy mogę pobrać adres URL m3u8?

Nie jako pojedyncze ukończone wideo tym narzędziem. Plik .m3u8 to lista HLS. NEXNARA nie składa strumieni HLS ani DASH.

Czy NEXNARA przesyła moje wideo?

Nie. Plik nie jest przesyłany do NEXNARA. Twoja przeglądarka komunikuje się z wprowadzonym URL wideo, więc zewnętrzny host i tak widzi to żądanie.

Wiele hostów dołącza podpis i czas wygaśnięcia do URL obiektów. Po tym czasie ten sam ciąg nie jest już autoryzowany. Poproś o świeży link; edycja starego go nie odnowi.