W komentarzu pod artykułem na temat pobierania materiałów wideo z serwisu Vider.info (swoją drogą nie spodziewałem się, że takie edukacyjne tematy cieszą się aż takim zainteresowaniem ;-)) pojawił się komentarz z pytaniem o serwis Freedisc.pl, z którego to ponoć „kompletnie nie da się już stamtąd pobierać za darmo”. Można powiedzieć, że w tym momencie zostałem kupiony, by się tematowi przyjrzeć. Ale do powstania wpisu (artykułu) jeszcze była daleka droga, bo skoro to seria edukacyjna, to ważne było, by nie tylko dało się (relatywnie łatwo) pobrać materiał (wideo), ale też by metoda, która to umożliwia, była inna, niż dotychczas opublikowane. A to nie było takie oczywiste, bo już na wstępie widać, że miejscami te serwisy wyglądają, jakby były rodzeństwem (ale nie chce mi się tego analizować).
Pobieranie filmów z serwisu Freedisc.pl
Zacząłem od przepuszczenia serwisu przez mój standardowy program do analizy linków, w tym potencjalnych linków do zasobów takich jak właśnie wideo. Trafienie było od razu, więc też od razu wiedziałem, że nie tylko się da, ale nie będzie to wymagało skomplikowanych operacji.
Ale jak już wspomniałem, to tylko pierwszy warunek, by artykuł na ten temat powstał. Drugi – być może nawet ważniejszy – jest taki, by dało się wypracować sposób, który jeszcze nie był opisywany, tak by zachować edukacyjny charakter cyklu. No i na szczęście dla autora wspomnianego komentarza, również tutaj szybko udało się wypracować nową – czyli jeszcze nie opisywaną, przynajmniej na naszej stronie – metodę. Zaryzykuję nawet, że to była ta trudniejsza część, bo jednak sporo metod już zostało opisanych i nie zawsze łatwo trafić na nową… ;-)
- Pobieranie filmów z serwisu Vider.info za pomocą narzędzi dla deweloperów i zmodyfikowanego nagłówka UA (user agent)
- Narzędzia dla deweloperów jako sposób wspierający pobieranie (zapisywanie) zabezpieczonych filmów z Vimeo
- Narzędzia dla deweloperów jako sposób wspierający pobieranie (zapisywanie) filmów m.in. z prywatnych grup na Facebooku
- Przez link i miniaturkę do celu („copy link and thumbnail”), czyli pobieranie materiałów wideo hostowanych w serwisie Wistia
- Pobieranie filmów z serwisu TVP VOD za pomocą narzędzi dla deweloperów i programu youtube-dl
Tak więc przechodząc do meritum, zabawę zaczynamy ponownie od narzędzi dla deweloperów (twórców stron) w przeglądarce internetowej (klawisz F12), po uruchomieniu których odświeżamy stronę, przechodzimy do zakładki „sieć”, upewniamy się, że mamy aktywny filtr „wszystkie”, a w oknie wyszukiwania wpisujemy „mp4”.
W tym momencie można włączyć odtwarzanie materiału wideo, a na (filtrowanej) liście pojawi się plik wideo z domeny „stream.freedisc.pl” (obecnie może pojawiać się też „stream2.freedisc.pl”). Jego adres URL będzie miał np. taką postać:
https://stream.freedisc.pl/video/12345678/serial-s16e18-lektor-pl.mp4
Natomiast sam ten link niewiele da, bo bezpośrednia próba pobrania raczej się nie uda.
Ale wystarczy kliknąć prawym klawiszem myszy na tym wierszu, wybrać z menu kontekstowego „kopiuj wartość” i następnie np. „kopiuj jako polecenie cURL (Windows)”, by uzyskać gotowy link do pliku, ze wszystkimi wymaganymi „nagłówkami”, by można było plik pobrać:
curl "https://stream.freedisc.pl/video/12345678/serial-s16e18-lektor-pl.mp4" -H "User-Agent: [...]" -H "Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5" -H "Accept-Language: pl,en;q=0.7,en-US;q=0.3" -H "Range: bytes=0-" -H "DNT: 1" -H "Connection: keep-alive" -H "Referer: https://freedisc.pl/" -H "Cookie: cookie4_sess_ebdd=[...]; cookie4_freedisc_sessions4=[...]" -H "Sec-Fetch-Dest: video" -H "Sec-Fetch-Mode: no-cors" -H "Sec-Fetch-Site: same-site" -H "Accept-Encoding: identity" -H "Pragma: no-cache" -H "Cache-Control: no-cache"
Teraz wystarczy na końcu, po spacji, zdefiniować plik docelowy na dysku, by móc go pobrać i zapisać:
-o serial-s16e02.mp4
A więc całość będzie wyglądać mniej więcej tak:
curl "https://stream.freedisc.pl/video/12345678/serial-s16e18-lektor-pl.mp4" -H "User-Agent: [...]" -H "Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5" -H "Accept-Language: pl,en;q=0.7,en-US;q=0.3" -H "Range: bytes=0-" -H "DNT: 1" -H "Connection: keep-alive" -H "Referer: https://freedisc.pl/" -H "Cookie: cookie4_sess_ebdd=[...]; cookie4_freedisc_sessions4=[...]" -H "Sec-Fetch-Dest: video" -H "Sec-Fetch-Mode: no-cors" -H "Sec-Fetch-Site: same-site" -H "Accept-Encoding: identity" -H "Pragma: no-cache" -H "Cache-Control: no-cache" -o serial-s16e02.mp4
Teraz wystarczy tylko otworzyć wiersz poleceń i wkleić tak przygotowane polecenie:
I to właściwie tyle – plik powinien się zapisać na dysku. A przynajmniej tak to wygląda obecnie, co zweryfikowałem na kilku losowych pozycjach… No i oczywiście zamiast wiersza poleceń i cURL można użyć innego narzędzia – zasada będzie ta sama.
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01
Bardzo dziękuję za ten artykuł! (choć przyznam, że teraz trochę czuję się jak ignorant. ;)
A pisałem, że sposób jest banalny, znaczy prosty ;-)
-H is not recognized as an internal or external command.
Co robić? :/
Raczej robisz błąd w poleceniu, lub Twój cURL nie obsługuje -H (być może jest to możliwe ;-)). Wtedy pomiń ten parametr.
Sprawdź czy przypadkie nie masz enterów w skopiowanym tekście, bo wtedy termnial każdą linijkę traktuje jako osobne polecenie
Cześć,
czy ta metoda działa dalej, czy coś robię nie tak?
Nadal działa, ale oni też przeglądają internet i reagują, i ostatnio chyba dokonali zmian – teraz wybór pozycji z domeny „stream.freedisc.pl” raczej nie pozwoli pobrać pliku. Ale wystarczy wybrać „stream2.freedisc.pl”. Dodałem uwagę o nowym adresie (domenie) do artykułu.
Przepraszam z góry za moje pytanie które może jest głupie ale jestem laikiem w tych sprawach. Czy po wpisaniu w Wierszu poleceń przygotowanego wcześniej polecenia plik sam zacznie się ściągać?. Pytam bo po wpisaniu polecenia nic się nie dzieje a gdy wcisnę ENTER pojawia się komunikat ; Nazwa 'curl’ nie jest rozpoznawana jako polecenie wewnętrzne lub zewnętrzne, program wykonywalny lub plik wsadowy.
Z góry dziękuję za pomoc.
Tak, zazwyczaj trzeba nacisnąć enter. A błąd wynika z tego, że najpewniej w systemie nie ma zainstalowanego programu cURL, stąd polecenie nie działa. Nie wiem jakiego systemu używasz, ale pewnie będzie to Windows starczy niż 10/11, bo tu cURL jest w standardzie dostępny. Poszukaj jak zainstalować cURL dla swojego systemu.
A z vider? próbowałem opisywanych sposobów, ale nie idzie. Może przez captcha.
Też jest opisane: https://webinsider.pl/pobieranie-filmow-z-serwisu-vider-info/
Ślepota umysłowa to straszna rzecz…… Jak ja to przegapiłem?
A co jeśli na stronie nie ma stream2… Tylko samo stream.freedisc? Jest jakiś sposób na to?
Raz, że w artykule jest informacja zarówno o wersji z stream2 jak i stream. Dwa – zanim napisałeś komentarz, to choć spróbowałeś? Pewnie nie, bo inaczej byś nie pytał…
Trochę niedoprecyzowalem pytania, za co przepraszam. Próbowałem i wyświetla się jedynie stream.freedisc. Nie ma stream2.freedisc. próbowałem pobierać przez cmd, ale wyskakiwał błąd. Teraz nie przypomnę sobie dokładnie jaki, ale jak więcej do domu mogę skopiować i wysłać kod błędu. Może coś robię źle, albo coś zmieniło i zabezpieczyli.
Jak pojawia się stream, używamy stream. Jak pojawia się stream2, używamy stream2. W oby przypadkach działa. Testowane dziś, właśnie ze stream zamiast stream2.
Przepraszam za zamieszanie. Niestety próbowałem pobierać, ale za każdym razem wyskakuje mi taki oto błąd/komunikat:
„curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) – Funkcja obsługi odwołań nie może sprawdzić odwołania certyfikatu.”
Mogę prosić o pomoc?
Poszukaj w internecie, zapewne są informacje co to za błąd w cURL, co oznacza i co z nim robić. Może coś blokuje, np. antywirus. Sprawdź też, czy polecenie wygląda podobnie, do tego z przykładu.
Dobra, udało się. Dzięki za poświęcony czas. Wystarczyło dopisać przed zdefiniowaniem pliku docelowego dodać „–ssl-no-revoke”. To jeszcze tylko tak dla ciekawości zapytam, czy to normalne, że pobiera z prędkością 200 -300 kilobajtów? Internet mam na 300,ale Mb ;) Może jest i na to jakiś sposób, aby zwiększyć tę prędkość?
Dokładnie ten parametr miałem na myśli. Ale to też potwierdza, że najpewniej coś monitoruje połączenia SSL u Ciebie na urządzeniu, być może jakieś oprogramowanie antywirusowe. Stąd też być może i taka szybkość pobierania, bo ruch jest analizowany przez „pośrednika”.
Wyłączyłem antywirusa i na początku, po pobraniu tak około 50 Mb z prędkością około 2000Kb zwalnia niestety do tych 200. Testowałem kilkukrotnie.
Hej, a czy jest może jakiś „tutorial” na pobieranie tą metodą z MacBooka? :) Widzę jak dokonać kroki i ścieżka mi się wyświetla jak robię powyższe kroki, ale coś na samym końcu nie działa..
Tak naprawdę nie ma znaczenia, jaki to system, bo większość robisz w przeglądarce. Jedynie zobacz, jak w Twoim systemie użyć polecenia cURL, albo czegoś w zamian. Nie używam Maca, ale z tego, co kojarzę, to bez problemu można tam cURL zainstalować (chyba przez brew).