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ą… ;-)

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 raczej należy wybrać „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.

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej