Instalowanie i używanie youtube-dl oraz yt-dlp
YouTube trzyma wszystkie treści na swoich serwerach, a my je sobie streamujemy, nieraz wielokrotnie. Nigdy nie trafiają do nas na stałe.
Tak wygląda typowy, zaplanowany dla nas scenariusz.
Istnieje jednak wiele sytuacji, kiedy wolelibyśmy mieć ich filmiki u siebie:
-
Znaleźliśmy filmik, który bardzo nam się podoba, ale może niedługo zniknąć.
W przypadku YouTube’a to nagminne. Znikają amatorskie teledyski ze scenami z komercyjnych produkcji. Filmiki o kontrowersyjnych (ale nie foliarskich) tematach. A czasem po prostu losowe rzeczy, kiedy automat okaże się nadgorliwy.
-
Nie chcemy być zależni od łączności z internetem.
Być może wyruszamy w podróż? Dostęp do internetu może być niepewny albo drogi, jeśli korzystamy z danych mobilnych. Dlatego jest nam na rękę, żeby skompletować biblioteczkę przed wyjazdem.
- Nie chcemy karmić Google’a historią tego, ile razy coś oglądaliśmy, kiedy robiliśmy pauzy i tak dalej. Już i tak za dobrze nas zna.
- Chcemy być wierni przysłowiu „Lepszy wróbel w garści…”.
Niezależnie od naszych powodów, rozwiązaniem jest youtube-dl albo jego alternatywa, yt-dlp.
Bardzo wszechstronny program konsolowy, którym da się pobierać filmiki z YouTube’a (i wielu innych stron).
A ponieważ konsola może być dla wielu osób czymś nowym, napisałem ten przyjazny samouczek pokazujący, jak się z tym programikiem obchodzić. Sam opis instalacji dopasowałem do użytkowników Windowsa, ale reszta jest uniwersalna.
Niedawno kontrowersyjny wyrok niemieckiego sądu doprowadził do ukarania stronki hostującej YtDl.
Walczyli o to producenci: Sony Entertainment, Warner Music Group oraz Universal Music. Wcześniej próbowali również strącić kod źródłowy programu, ale im się nie udało.
Od tego czasu coraz częściej poleca się zamiennik. Nosi nazwę yt-dlp
, obsługuje się go tak samo jak poprzednika. Dopasowałem do niego część instrukcji z tego samouczka.
Poza tym stworzyłem osobny samouczek dotyczący instalacji na smartfonie z systemem Android (w apce Termux).
Jeśli na konsolę reagujemy alergicznie i za żadną cenę nie chcemy z niej skorzystać, to istnieją również programy z graficznym interfejsem. Dobrze oceniany jest na przykład ten od użytkownika jely2002.
Warto jednak pamiętać, że będzie aktualny tylko dopóty, dopóki twórcy się chce. Nie mamy gwarancji, że będzie na bieżąco ze zmianami w podstawowej, konsolowej wersyjce.
Instalacja na Windowsie
Zaczynajmy!
Najpierw pobieramy plik EXE. Ten dla yt-dlp
– nowszej, mniej problematycznej wersji – znajdziemy tutaj.
Ustalanie folderu dla pliku
Gdy już mamy plik na dysku, to warto ustalić, do jakiego specjalnego folderu go wrzucić, żeby dał się przywoływać z dowolnego miejsca. Opcji jest kilka.
-
Możemy spróbować do
C:\Windows
. Zwykle jest domyślnie aktywny, przynajmniej na Windowsie 10. Tylko trzeba kliknąć, że mamy uprawnienia administratora. -
Można też wyklikać drogę do
C:\Użytkownicy\NAZWA\AppData\Local\Microsoft\WindowsApps
.Przy czym
Użytkownicy
będą się nazywali inaczej, jeśli mamy ustawiony inny język systemu. ZamiastNAZWA
będziemy mieli swój login. A po drodze warto włączyć wyświetlanie ukrytych folderów, żeby ujrzećAppData
.
A jeśli chcemy zobaczyć wszystkie możliwości, to warto podejrzeć zmienne systemowe.
W tym celu włączamy konsolę PowerShell. Możemy to zrobić na kilka sposobów:
-
Przez menu startowe.
Klikamy ikonę Windowsa w dolnym lewym rogu, przewijamy do zakładkiWindows PowerShell
, klikamy. -
Z klawiatury.
Naciskamy jednocześnie klawisz z ikoną Windowsa (dolna część klawiatury) oraz przyciskX
. Następnie naciskamyI
(jak Irena). -
Przez Eksplorator Plików.
Możemy przejść do dowolnego folderu i wybrać z górnego paskaPlik
, a następnieOtwórz program Windows PowerShell
.
Gdy pojawi się konsola, to wpisujemy w nią:
$env:path -split ";"
Potwierdzamy Enterem. Wyświetlą nam się, jeden pod drugim, foldery z kategorii PATH
.
To coś w rodzaju przegródek szybkiego dostępu. Kiedy mamy w tych folderach jakieś pliki EXE, to możemy je łatwo uruchamiać. Wystarczy wpisać w PowerShella samą ich nazwę zamiast pełnej ścieżki.
Zatem otwieramy Eksploratora, bierzemy nasz pobrany wyżej plik EXE i przenosimy go do któregoś z folderów z listy (za wyjątkiem System32
! Odradzają to na stronie projektu).
Od teraz, kiedy wpiszemy w PowerShella yt-dlp
, powinno nam wyświetlać, że działa (ale potrzebuje linka):
Alternatywna metoda instalacji
Powyższy sposób – polegający na umieszczeniu pliku w odpowiednim folderze – jest bardzo intuicyjny. I działa.
Tym niemniej instalacja przez pip
(moduł Pythona) ma nieco więcej zalet.
Pozwala szybko i łatwo aktualizować program, gdyby coś przestało działać wskutek zmian YouTube’a. Wystarczy jedna komenda w konsoli zamiast pobierania nowego EXE i zastąpienia nim starego.
Gdybyście byli gotowi spróbować, to polecam opis na stronie yt-dlp. To dosłownie parę komend konsolowych.
Instalacja na Androidzie
Gdyby ktoś chciał używać yt-dlp
również na urządzeniu mobilnym, to mam dobrą wiadomość – na systemie Android to całkiem możliwe! Żeby nie zajmować tu miejsca, wydzieliłem instrukcje do osobnego samouczka.
Zdobywanie linków
Gdy już mamy konsolę i wiemy że działa, możemy pobierać do woli.
Najpierw musimy odwiedzić YouTube’a, żeby zdobyć link do filmu. Jako przykładu użyję satyrycznej reklamy GmailMan sprzed 10 lat.
Wykonał ją Microsoft, żeby reklamować swoje usługi, a przy tym dać prztyczka w nos Google’owi i jego zwyczajowi zbierania danych z maili.
Zgadzam się z jej sednem; ale jest w tym pewna ironia losu, patrząc na to, że sami od teraz wymagają posiadania u siebie konta, żebyśmy mogli w ogóle używać Windowsa.
Wracając do rzeczy! Po wejściu na stronkę klikamy dwukrotnie link z paska i go kopiujemy:
Wygląda tak:
https://www.youtube.com/watch?v=9x4_dozWkq0
Na tym kończy się część dotycząca YouTube’a. Zdobyty link można wysłać znajomym.
Zaś wszystko poniżej dotyczy bliżej nieokreślonych, lubiących się z programikiem filmów.
Korzystanie z programu
Aby pobierać filmik, wystarczy wpisać w konsoli yt-dlp
(w starej wersji youtube-dl
), potem spację, a potem wkleić link do filmu. Zostanie pobrany do tego samego folderu, w którym odpaliliśmy PowerShella, w najlepszej dostępnej jakości.
yt-dlp LINK_DO_FILMU
Czasem jednak nie potrzebujemy najbardziej odpicowanej wersji. W tej sytuacji możemy sobie wyświetlić listę dostępnych formatów, dopisując -F
:
yt-dlp -F LINK_DO_FILMU
Pokaże nam się coś w tym stylu:
Po lewej stronie mamy liczby odpowiadające poszczególnym formatom, a po prawej stronie ich opisy. Żeby pobrać któryś z nich, wpisujemy -f
, a potem liczbę odpowiadającą danej wersji. Czyli na przykład:
yt-dlp -f 242 LINK_DO_FILMU
Uwaga: Zwracajmy uwagę na opisy plików. Czasem, szczególnie w górnej części listy, mamy pliki będące samym dźwiękiem albo obrazem (audio only i video only). Gotowe kombinacje obrazu i dźwięku znajdziemy na końcu listy.
Oprócz liczb mamy też parę gotowych komend. Chcemy sam dźwięk (przydatne przy piosenkach)? Żaden problem, nie trzeba nawet wyświetlać listy formatów! Wpisujemy -f bestaudio
.
yt-dlp -f bestaudio LINK_DO_FILMU
A jeśli chcemy jakieś nietypowe połączenie? Na przykład najniższą jakość obrazu i najwyższą dźwięku? Wpisujemy -f
, liczbę odpowiadającą plikowi wideo, plusa i liczbę odpowiadającą plikowi audio (kolejność ważna!).
Patrzę na listę szczegółów i widzę, że najmniejszy obraz ma rozdzielczość 256x144, odpowiada mu liczba 278. A pliku audio nie wypatruję, tylko wpisuję gotowca:
yt-dlp -f 278+bestaudio LINK_DO_FILMU
To tylko ułamek możliwości tego programiku. Pozwala też m.in. na pobieranie całych playlist. Ale z tej funkcji akurat nie miałem potrzeby korzystać, więc na jej temat się nie wypowiem.
Ten program zapisuje pobierane filmiki do aktywnego folderu. Dlatego, jeśli chcemy je na przykład zapisać do folderu Wideo, to musimy właśnie tam otworzyć naszą konsolę.
W przypadku Windowsa wystarczy włączyć Eksploratora, przejść do tego folderu, a potem uruchomić tam PowerShella przez menu Plik
z górnego paska.
„Hakierzy” mogą też poruszać się po folderach, korzystając z komendy konsolowej cd
.
Rozwiązywanie błędów
Nasz programik musi niestety stale gonić YouTube’a oraz jego wewnętrzne mechanizmy, które nieraz się zmieniają. Nie unikniemy przez to sytuacji, kiedy raz na jakiś czas wyskoczy nam błąd.
Ale bez obaw! Zwykle jest więcej osób mających taki problem jak my, a naprawienie nieraz sprowadza się do pobrania nowszej wersji. A potem na długi czas mamy spokój.
Ogólna zasada – jeśli w konsoli wyświetlił nam się tekst, to patrzymy co mamy na dole, po słowie ERROR:
. Treść takiego komunikatu można wkleić w wyszukiwarkę, żeby poszukać rozwiązania.
A parę powszechnych przypadków omówię dla naszej wygody w tym miejscu.
Zawieszenie programu
Jeśli zerwie nam połączenie, to programik może się zawiesić. Licznik stoi w miejscu, niczego nie pobiera.
W takiej sytuacji otwieramy to samo okno konsoli, w którym pracował. Po czym:
- najpierw naciskamy
Ctrl
+C
, żeby przerwać aktualną komendę; - następnie strzałkę do góry, żeby ponownie wyświetliła się poprzednia komenda (
yt-dlp
…); - potwierdzamy, wciskając
Enter
.
I voila! Jeśli już mamy łączność, to zacznie nam pobierać od miejsca, w którym poprzednio się zatrzymało.
Odmowa dostępu
Wyświetla się jako HTTP Error 403: Forbidden
.
Czasami to chwilowy zgrzyt i wystarczy spróbować ponownie. Strzałka w górę, żeby ponownie wyświetlić komendę. Enter, żeby ją wykonać. Zazwyczaj mi wtedy działa.
Innym razem sam filmik ma jakieś ograniczenia. Na przykład te wprowadzone przez Google, żeby wyciągnąć od nas zdjęcie dowodu albo numer konta. Zwykle omijam je szerokim łukiem, więc chwilowo nie wiem, czy jest jakieś proste obejście.
Film niedostępny/usunięty
W takim przypadku wyświetli nam się komunikat Video unavailable
.
Oznacza to zapewne, że film został usunięty w przedziale czasowym między wejściem na stronę a rozpoczęciem pobierania. Może usunął go autor, może automatyczna moderacja.
Wyjątkowy pech. Zdarzyło mi się to dosłownie raz, niedawno.
A Wasz film? Jeśli macie nadal otwartą stronę, to zapewne jesteście w stanie go nadal oglądać (serwis jeszcze będzie przez chwilę podtrzymywał połączenie, zanim usunie sam plik). Być może możecie go nawet odzyskać z pamięci podręcznej.
W każdym razie w takiej sytuacji gra się toczy o wysoką stawkę – gdy zamkniecie okno przeglądarki z tym filmem, to możecie już go nie zobaczyć. Jeśli jest fajny, ale nie umielibyście go wyłuskać z pamięci podręcznej, to może warto nawet odpalić jakieś OBS Studio i nagrać ekran wraz z dźwiękiem
Inne błędy
Z czasem trafi się jakiś nieoczekiwany błąd. Może wynikać z tego, że co jakiś czas YouTube wprowadza większe zmiany za kulisami, przez co psuje youtube-dl i yt-dlp.
Ale autorzy zwykle szybko nadganiają. Wtedy po prostu bierzemy od nich najnowszą wersję i zastępujemy nią poprzednią.
To równocześnie jeden z argumentów przemawiających za tym, żeby korzystać z wersji konsolowej, a nie graficznej. Łatwiej być na bieżąco.
Wszelkie nakładki graficzne może i są przyjaźniejsze, ale nadal zależą od podstawowego, konsolowego programu. Gdy Google coś popsuje, to najpierw źródło musi naprawić to u siebie, a potem autorzy wersji graficznej (którzy mogą np. być akurat na wakacjach) po swojej stronie.
„Unable to extract uploader_id”
W moim przypadku dotknął wersji 2021.12.17
, czyli najnowszej dostępnej na stronie youtube-dl. Być może nie aktualizują wersji przez to, że organizacje branżowe próbowały im robić problemy. Ale kod na szczęście zmieniają na bieżąco.
W tym wypadku zwykła aktualizacja nie działa, bo numer działającej i niedziałającej wersji jest taki sam. Ale rozwiązanie opisali w dyskusji na Githubie.
Ogólnie: trzeba zdobyć wersję najnowszą i siłowo zastąpić nią wersję poprzednią.
W przypadku „instalacji” przez włożenie pliku EXE do folderu pomogłoby zapewne zdobycie jego nowszej wersji i zastąpienie nią starej (mimo że formalnie mają ten sam numer wersji), ale tego nie testowałem.
Osobiście instalowałem wcześniej youtube-dl
przez Pythona, a dokładniej pip
. W takim wypadku pomogło wpisanie komendy:
…I się naprawiło!
Jeśli mamy Linuksa, na którym pip
odpowiada starszemu Pythonowi 2, to wpisalibyśmy zamiast niego pip3
.
Jeśli instalowaliśmy dla całego systemu, to przed komendą trzeba jeszcze dopisać sudo
i spację, a potem podać hasło.
I to tyle! Życzę szybkich pobrań i miłego oglądania!