Laboratorium Komputerowe Progmar
Marcin Załęczny

Na stronie używamy cookies. Korzystając z witryny wyrażasz zgodę na ich wykorzystywanie.      Zamknij

Jak pobierać kursy wideo z Udemy

  1. Instalacja Pythona.

    Pobieramy najnowszego Pythona 3.x ze strony https://www.python.org i instalujemy w katalogu c:\python3.

    Ważne: Pod koniec instalacji klikamy opcję "Disable path length limit" (screen poniżej), żeby zezwolić systemowi przechowywać długie ścieżki w zmiennej PATH.

    Po instalacji katalog z binarkami Pythona powinien być dodany do ścieżki.

    Otwieramy okno konsoli (klawisze WIN+R, wpisujemy "cmd" i wciskamy Enter) i wydajemy komendę:

    pip install youtube-dl

    żeby zainstalować program youtube-dl. Jest to program do pobieraniu materiałów video z internetu.
    Bardzo prawdopodobnie, że po wydaniu tej komendy program youtube-dl się nie zainstaluje ponieważ pip poinformuje że wyszła jego nowa wersja i trzeba go zaktualizować.
    Wydajemy więc polecenie:

    python.exe -m pip install --upgrade pip

    Po tej operacji zarządca pakietów i bibliotek pythona pip się zaktualizuje. Wydajemy ponownie polecenie:

    pip install youtube-dl
    Bardzo prawdopodobnie program youtube-dl zainstalował się podczas instalacji Pythona i otrzymamy komunikat:
    Requirement already satisfied: youtube-dl in c:\python3\lib\site-packages (2021.12.17)
    W przeciwnym razie youtube-dl powinien zostać zainstalowany.
    Teraz polecenie:
    youtube-dl --version
    powinno wyświetlić wersję downloadera youtube-dl.
  2. Instalacja XAMPP

    Pobieramy instalkę najnowszej wersji pakietu XAMPP ze strony https://www.apachefriends.org/pl/download.html (w chwili pisania tego poradnika jest to wersja: 8.1.10 / PHP 8.1.10 64 bit). Z tego pakietu jest nam potrzebny program php.exe działający w linii komend cmd. Na następnym screenie możemy wybrać składniki jakie chcemy zainstalować:

    Możesz poodznaczać wszystkie jeśli nie wiesz do czego służy pełny pakiet XAMPP, gdyż instalacja PHP dokonywana jest domyślnie i nie da się jej odznaczyć. Ja na screenie mam je wszystkie zazanczone, gdyż korzystam na co dzień nie tylko z PHP. Ale na potrzeby tego poradnika PHP w zupełności wystarczy. Jako miejsce docelowe instalacji wybierz katalog C:\xampp. Wybierz język instalacji (domyślnie angielski), po czym rozpocznij instalację:

    Na koniec odznacz opcję:
    "Do you want to start Control Panel now?"
    gdyż nie potrzebujemy uruchamiać panelu kontrolnego XAMPP-a.

    Pozostało jeszcze dodać ścieżkę do PHP do ustawień systemowych, gdyż instalator tego nie zrobił. W tym celu otwórz menu Start (Windows 11) i kliknij przycisk "Ustawienia":

    Następnie na liście kliknij opcję "Informacje":

    W kolejnym okienku kliknij opcję "Zaawansowane ustawienia systemu":

    W oknie dialogowym "Właściwości systemu", które się otworzy przejdź do zakładki "Zaawansowane" i kliknij tam przycisk "Zmienne środowiskowe...":

    Na górnej liście zazancz zmienną Path i kliknij przycisk "Edytuj..." poniżej:

    W kolejnym okienku wciśnij przycisk "Nowy" i dodaj ścieżkę "c:\xampp\php":

    Kliknij przycisk "OK" we wszystkich otwartych okienkach dialogowych, żeby zmiany odniosły skutek. Jeśli teraz uruchmisz konsolę "Cmd", to polecenie:

    php --version

    powinno wyświeltić wersję zainstalowanego programu PHP.

  3. Instalacja konwertera ffmpeg

    Niezbędne programy do tworzenia plików mp4 pobierzesz ze strony: https://ffmpeg.org/download.html Tam kliknij dużą ikonę windowsa i kliknij opcję "Windows builds by BtbN". Z listy, która się pojawi pobierz plik ffmpeg-master-latest-win64-gpl.zip. Z pobranego archiwum rozpakuj pliki ffmpeg.exe, ffplay.exe, ffprobe.exe do katalogu c:\bin. Dodaj ten katalog do ścieżki w taki sam sposób jak to już opisałem w punkcie poprzednim dotyczącym dodawania ścieżki c:\xampp\php.

  4. Tworzymy skrypty potrzebne do pobierania kursów.

    Tworzymy w katalogu, do którego będziemy pobierali materiały wideo skrypty:
    dl.bat o zawartości:

    youtube-dl -v --ignore-config -a "%1"

    oraz convert2mp4.php o zawartości:

    <?php
    
    $files = scandir(".");
    $base = "";
    $counter = 0;
    for ($i = 0; $i < count($files); $i++) {
        $ext = pathinfo($files[$i], PATHINFO_EXTENSION);
        if ($ext == 'm3u8') {
            $base = str_replace(".$ext", "", pathinfo($files[$i], PATHINFO_BASENAME));
        }
        if ($ext == 'ts') {
            $counter++;
        }
    }
    
    
    for ($i = 0; $i < $counter; $i++) {
        $fn = $base . $i . "-" . $base . $i . ".ts";
        if (!is_file($fn)) {
            echo "ERROR: $fn not exists\n";
            exit(0);
        }
        echo "$fn\n";
        $c = file_get_contents($fn);
        file_put_contents("$base.ts", $c, FILE_APPEND);
    }
    
    system("ffmpeg -i $base.ts -acodec copy -vcodec copy $base.mp4");
    
    if (is_file("$base.mp4")) {
        for ($i = 0; $i < $counter; $i++) {
            $fn = $base . $i . "-" . $base . $i . ".ts";
            if (is_file($fn)) {
                unlink($fn);
            }
        }
        unlink("$base.ts");
        unlink("$base.m3u8");
    }
  5. Pobieranie materiałów wideo

    Uruchamiamy Firefoksa, wciskamy klawisz F12, żeby otworzyć panel deweloperski, przechodzimy na nim do zakładki "Sieć" i w polu wyszukiwania wpisujemy frazę "m3u8" a następnie przechodzimy do strony z kursem:

    Na liście na dole zostaną wyświetlone odwołania do podanej frazy. Szukamy w nich wpisu odwołującego się do filmiku o najlepszej jakości. W tym celu najeżdżamy kursorem myszki na każdy wpis i patrzymy na zawartość wyświetlonego w dymku adresu lub klikamy go i patrzymy na link po prawej stronie. Bieżemy pod uwagę ten, który zawiera frazę "1920x1080":

    Klikamy na tej pozycji i z menu kontekstowego wybieramy opcję: "Otwórz w nowej karcie" i w okienku "Zapisz jako", które się pojawi:

    przechodzimy do katalogu z dwoma powyższymi skryptami i zapisujemy plik pod domyślną nazwą. Ważne! nie zmieniamy jego nazwy bo inaczej skrypt tworzący plik mp4 nie utworzy go poprawnie.
    Następnie otwieramy konsolę "Cmd", przechodzimy do katalogu z zapisanym plikiem i wydajemy polecenie (gdzie nazwa pliku po dl.bat powinna odpowiadać twojej nazwie):

    dl.bat aa0080ab0c89fc2e25fc3a77e1548856cef2.m3u8

    Zostaną pobrane meteriały wideo w postaci wielu fragmentów w formacie *.ts. Teraz wydajemy polecenie:

    php convert2mp4.php
    Po tej operacji w katalogu powstanie wynikowy plik *.mp4 z materiałem wideo, któremu możemy nadać bardziej znaczącą nazwę i skopiować do katalogu w którym trzymamy wynikowe lekcje.