Jak pobieramy wideo blob url [zamknięte]

218

Chcę pobrać film, którego adres URL nie jest prostym plikiem mp4, ale jego adres URL to np. Typ kropli.

<video id="playerVideo" width="450px" autoplay="autoplay" height="338px" 
       style="height:100%;width:100%;" class="mejs-rai-e"
       src="blob:http://www.example.com/d70a74e1-0324-4b9f-bad4-84e3036ad354">
</video>

Czy jest jakieś rozszerzenie Chrome lub oprogramowanie, którego można użyć do pobrania odtwarzanego wideo.

SidD
źródło
@cdlvcdlv Dzięki, stary! Po przetestowaniu wielu narzędzi, to było to, które zadziałało w moim konkretnym przypadku!
felipeptcho
@felipeptcho Nie ma za co. Cieszę się, że odpowiedź może pomóc komuś innemu.
cdlvcdlv
2
Zobacz rozszerzenie HDS / HLS Video Downloader dla przeglądarek opartych na Chromium.
georgeawg
13
Dlaczego każda odpowiedź na to pytanie zakłada rozszerzenie pliku .m3u8? Tego nigdy nie podano w pytaniu.
numbermaniac
Witaj @SidD, czy udało Ci się rozwiązać ten problem? Jeśli tak, czy możesz dać mi znać, które rozwiązanie działało dla Ciebie?
hagrawal

Odpowiedzi:

229

Właśnie wymyśliłem ogólne rozwiązanie, które powinno działać na większości stron internetowych. Próbowałem tego tylko na Chrome, ale ta metoda powinna jednak działać z każdą inną przeglądarką, ponieważ Narzędzia deweloperskie są w nich prawie takie same.

Kroki:

  1. Otwórz narzędzia deweloperskie przeglądarki (zwykle F12 lub Ctrl-Shift-I lub kliknij prawym przyciskiem myszy, a następnie Sprawdź w menu podręcznym) na stronie z wideo, które Cię interesuje.
  2. Przejdź do karty Sieć , a następnie ponownie załaduj stronę. Zakładka zostanie wypełniona listą żądań (może być ich do stu lub nawet więcej).
  3. Wyszukaj nazwy żądań i znajdź zapytanie z .m3u8rozszerzeniem. Może być ich wiele, ale najprawdopodobniej pierwszym, który znajdziesz, jest ten, którego szukasz. Może mieć dowolną nazwę, np playlist.m3u8.
  4. Otwórz wniosek, aw podsekcji Nagłówki zobaczysz pełny adres URL żądania w polu Adres URL żądania . Skopiuj to. wprowadź opis zdjęcia tutaj
  5. Wyodrębnij wideo z m3u8. Jest wiele sposobów, aby to zrobić, dam ci te, których próbowałem, ale możesz google więcej, „pobierając wideo z m3u8”.
    • Opcja 1. Jeśli masz zainstalowany odtwarzacz VLC, podaj adres URL do VLC za pomocą opcji menu „ Otwórz strumień sieci ... ”. Nie będę tutaj wchodził w szczegóły w tej części, w wielu miejscach jest wiele obszernych przewodników, na przykład: tutaj . Jeśli strona nie działa, zawsze możesz przejść do innej przez Google „vlc download video online”.
    • Opcja 2. Jeśli wolisz wiersz poleceń, użyj FFMPEG lub własnego skryptu, zgodnie z tym pytaniem SuperUser .
Vlad Nikiforov
źródło
48
Opcja 3: użyj adresu URL listy odtwarzania bezpośrednio z youtube-dl, jest to bardzo proste!
Arnaud Tournier
3
youtube-dl działa również w przypadku plików MPD.
Gibado
2
@patricK Możesz spróbować dodać odsyłacz, przykład:youtube-dl --add-header Referer: https://www.google.com/referer-page https://google.com/video.m3u8
Searene
1
myślę, że jeśli zapytam, jak otworzyłeś pasek wyszukiwania w module sieciowym i poszukałem słów kluczowych „m3u8”.
Zhou XF
1
I opcja 4: użyj JDownloadera 2, aby pobrać adres URL listy odtwarzania, moim zdaniem jest to najłatwiejszy sposób.
Robin Hartmann
50

Użyj rozszerzenia Google Chrome HLS Downloader, aby uzyskać link do listy odtwarzania M3U. Jego ikona na pasku przeglądarki pokaże liczbę list odtwarzania znalezionych na bieżącej stronie internetowej. Klikając ikonę, możesz zobaczyć listę linku do listy odtwarzania, a następnie użyć przycisku kopiowania obok linku, aby go skopiować.

Następnie użyj programu youtube-dl , aby pobrać plik.

youtube-dl --all-subs -f mp4 -o "file-name-to-save-as.mp4" "https://link-from-Google_Chrome-HLS_Downloader_extension"

Objaśnienie opcji wiersza poleceń:

Jeśli ciągle używasz tych samych opcji konfiguracji dla youtube-dl, możesz rzucić okiem na opcje konfiguracji dla youtube-dl , ponieważ może to zaoszczędzić dużo pisania.

Rozszerzenie HLS Downloader jest bezpłatne i open source na licencji MIT, jeśli chcesz zobaczyć kod, który można znaleźć na stronie projektu na Github .

Frederickjh
źródło
Działa to naprawdę ładnie, z wyjątkiem mojego przypadku, że MP4 nie miał dźwięku? Czy istnieje sposób na rozwiązanie tego problemu?
Christopher D. Emerson
2
Nie zdarzyło się jego. Musi to być coś z pobieranym plikiem. Uważam, że standard MP4 obsługuje wiele ścieżek audio. Sprawdź, czy nie ma innej ścieżki audio i czy pierwsza to cisza.
frederickjh
1
Świetne rozszerzenie! o wiele łatwiejsze niż robienie wszystkiego wokół siebie za pomocą plików m3u8 i po prostu plików blob strait. Jednak nie potrzebowałem niczego, czym była ta rzecz na YouTube. HLS Downloader daje mi pliki wideo bezpośrednio.
Justin Emlay
spróbuj dodać -x w opcjach
Sir Von Berker
W moim przypadku wypróbowałem HLS Downloader na Twitterze i działało to tak, jak powiedział @Justin: dało plik wideo bezpośrednio. Ale wypróbowałem również sugestie zaproponowane przez @Vlad na drugiej odpowiedzi - w zasadzie wykonując wszystkie kroki ręcznie - z tymi samymi wynikami (tj. Uzyskanie działającego .MP4pliku).
Gwyneth Llewelyn
27

Proces może się różnić w zależności od miejsca i sposobu hostowania wideo. Świadomość, że może to pomóc bardziej szczegółowo odpowiedzieć na pytanie.

Jako przykład; w ten sposób możesz pobierać filmy z linkami kropek na Vimeo.

  1. Wyświetl kod źródłowy iframe odtwarzacza wideo
  2. Wyszukaj mp4
  3. Skopiuj link z zapytaniem tokena
  4. Pobierz przed wygaśnięciem tokena

Źródło i instrukcje krok po kroku tutaj.

wprowadź opis zdjęcia tutaj

chiappa
źródło
2
Ta metoda działa dobrze, nawet jeśli typ pliku urlnie jest w formacie .mp4 , po prostu sprawdź nagłówek pliku i zmień jego nazwę.
eapo
25

W ten sposób udało mi się go „pobrać”:

  1. Użyj elementu inspect, aby zidentyfikować adres URL pliku listy odtwarzania M3U
  2. Pobierz plik M3U
  3. Użyj VLC, aby odczytać plik M3U, przesyłać strumieniowo i konwertować wideo do MP4

W przeglądarce Firefox plik M3U pojawił się jako typ aplikacji / vnd.apple.mpegurl

wprowadź opis zdjęcia tutaj

Zawartość pliku M3U wyglądałaby następująco:

Otwórz odtwarzacz medialny VLC i użyj opcji Media => Konwertuj. Użyj (zapisanego) pliku M3U jako źródła:

wprowadź opis zdjęcia tutaj

Ioannis Drositis
źródło
3
Świetna wskazówka! Wygląda na to, że nie ma potrzeby pobierania m3u8pliku - wystarczy wkleić zewnętrzny adres URL jako źródło.
na karcie sieci znajduje się dodatkowa karta „Media”. łatwiej jest pobrać plik m3u8 z zaledwie kilku elementów.
pcarvalho
19

Istnieje wiele sposobów na uzyskanie adresu URL, .m3u8albo przeglądając źródło strony, patrząc na kartę Sieć w Narzędziach programisty w Chrome, lub używając wtyczki, takiej jak HDL / HLS Video Downloader .

Mając pod ręką adres URL .m3u8, możesz następnie użyć ffmpegdo pobrania wideo do pliku takiego jak:

$ ffmpeg -i 'https://url/to/some/file.m3u8' -bsf:a aac_adtstoasc \
    -vcodec copy -c copy -crf 50 file.mp4
slm
źródło
11

Jeśli NIE możesz znaleźć .m3u8 pliku, musisz wykonać kilka różnych kroków.

1) Przejdź do karty sieci i sortuj według Media

Sortuj według mediów

2) Zobaczysz coś tutaj i wybierz pierwszy element. W moim przykładzie jest tompd plik. następnie skopiuj URL żądania.

3) Następnie pobierz plik za pomocą swojego ulubionego narzędzia wiersza poleceń, używając adresu URL z kroku 2.

youtube-dl -f bestvideo+bestaudio https://url.com/destination/stream.mpd

4) W zależności od kodowania może być konieczne dołączenie plików audio i wideo razem, ale będzie to zależało od przypadku wideo według przypadku wideo.

Stóg
źródło
10

Umieściłem to już na niektórych innych stronach internetowych i chociaż może podzielę się nimi z chłopakami / dziewczętami na stackoverflow.

  1. Zainstaluj rozszerzenie Video DownloadHelper w przeglądarce Firefox.
  2. Po włączeniu DownloadHelper przejdź do strony zawierającej wideo, które chcesz pobrać.
  3. Po zakończeniu transmisji wideo kliknij ikonę DownloadHelper. Daje ci listę wszystkich formatów plików dostępnych w bieżącym wideo.
  4. Przewiń do formatu pliku, który chcesz pobrać
  5. Po prawej stronie zobaczysz strzałkę
  6. Kliknij tę strzałkę, aby uzyskać więcej informacji na temat bieżącego wideo i wybranego formatu
  7. W wyświetlonym oknie na końcu tej strzałki przewiń w dół i wybierz „Szczegóły”
  8. Masz teraz wszystkie szczegóły dotyczące bieżącego wideo i wybranego formatu. To jest coś takiego.

Hit działania Details⊗ _needsAggregate _needsCoapp bitrate pakietowego przedłużenie descrPrefix durationFloat frameId fromCache Grupa
długość HLS id isPrivate masterManifest mediaManifest originalId wywołującej tytuł stan rozmiar topUrl url urlFilename

  1. Teraz spójrz na szczegóły osoby polecającej w tych Szczegółach Hitu. To jest adres URL, który chcesz. Skopiuj i wklej na swoim ulubionym downloaderze.
Johny Flodder
źródło
9
  1. Znajdź listę odtwarzania / manifest na karcie sieci narzędzi dla programistów. Zawsze jest jeden, ponieważ tak to działa. Może mieć rozszerzenie m3u8, które można wpisać w Filtr.
  2. Daj to do narzędzia youtube-dl. Może pobierać znacznie więcej niż tylko YouTube. Automatycznie pobierze każdy segment, a następnie połączy wszystko z FFmpeg, a następnie odrzuci części. Istnieje spora szansa, że ​​obsługuje stronę, którą chcesz pobrać natywnie, i nawet nie musisz robić kroku nr 1.
  3. Jeśli znajdziesz upartą witrynę i napotkasz błędy 403 ... Telerik Fiddler na ratunek. Może przechwytywać i zapisywać wszystko przesyłane (np. Plik wideo), ponieważ działa jako lokalny serwer proxy. Wszystko, co widzisz / słyszysz, można pobrać, chyba że jest to zawartość DRM, taka jak Spotify.
Firsh - LetsWP.io
źródło
2
Jak byś to zrobił za pomocą youtube-dl? właśnie youtube-dl https://....m3u8"?
Aziz Javed
Czy to działa również w przypadku prywatnych filmów?
Aziz Javed
@AzizJaved aye, dokładnie tak. Nie testowałem tego na prywatnych filmach, ale jeśli możesz zobaczyć stronę, na której się znajdują, działają one dokładnie tak, jak na filmach publicznych. Liczy się to, co widzisz w przeglądarce: jeśli możesz to zobaczyć, możesz je skopiować. Prosty! 😉
Gwyneth Llewelyn
Czy chcecie ode mnie artykułu na temat pobierania zaszyfrowanych filmów HLS? Zasadniczo jest to krok 3, ale z ffmpeg do odszyfrowywania i łączenia segmentów ts.
Firsh - LetsWP.io
0

Jeśli wystąpi wystąpienie obiektu blob z danymi z manifestu F4M (sprawdź kartę Sieć w Narzędziach programisty Chrome), możesz pobrać plik wideo za pomocą skryptu php opublikowanego tutaj: https://n1njahacks.wordpress.com/2015/01/29 / how-to-save-hds-flash-stream-from-any-web-page /

Poprzez włożenie:

  if ($manifest == '')
    $manifest = $_GET['manifest'];

przed:

  if ($manifest)

możesz nawet uruchomić go na serwerze WWW, używając żądań z ciągiem zapytania: ?manifest=[manifest url] .

Zauważ, że prawdopodobnie będziesz chciał użyć klienta FTP, aby pobrać pobrany plik wideo i wyczyścić po skrypcie (pozostawia wszystkie pobrane części wideo).

Protektor jeden
źródło
-27

Możesz po prostu kliknąć prawym przyciskiem myszy i zapisać obiekt blob jako MP4.

Kiedy bawiłem się nagrywaniem audio / wideo opartym na przeglądarce, blob wyjściowy był dostępny do bezpośredniego pobrania.

pseudozach
źródło
Nie sądzę, żeby to było możliwe. Czy możesz udostępnić przeglądarkę, którą pobierasz?
Pirate X
Użyłem chrome, ale miałem na myśli nagranie wideo webrtc wykonane na lokalnej maszynie. W przypadku obiektów blob w sieci Web procedura może być inna.
pseudozach
1
działa to w przypadku zwykłych filmów, ale nie wydaje się, że jest to dla obiektów blob.
TankorSmash