Cześć,
chciałbym Wam zaprezentować krótki poradnik jak pobierać filmy z serwisu YouTube(jak i innych) przy pomocy prostego darmowego programu napisanego w pythonie.
Program ten nazywa się youtube-dl i jest dostępny dla większości systemów operacyjnych.
Zaletą tego programu jest pobieranie playlist lub całych kanałów w wybranym przez nas formacie i jakości video lub audio za pomocą jednej komendy.
A więc zaczynamy.
Instalacja:
Ubuntu/Debian:
sudo apt-get install python youtube-dl
Arch:
sudo pacman -S python youtube-dl
Windows:
Pobieramy plik .exe ze strony autora.
Link: youtube-dl
Jak korzystać:
Youtube-dl daje nam bardzo wiele możliwości. Nie tylko możemy pobierać filmy lecz również filtrować je np. pobierając tylko takie które mają +10min. czasu trwania lub od określonej liczby wyświetleń. Prócz filmów możemy pobierać informacje o ilości łapek w górę, autorze itp.
By pobrać film wystarczy w konsoli wpisać youtube-dl, a następnie dodać link z YouTube. Możemy oczywiście w ten sam sposób dać link do całej playlisty lub kanału. Wygląda to następująco:
youtube-dl https://www.youtube.com/watch?v=1234567890
Filmy potrafią swoje ważyć, a pobierając cały kanał mający kilkaset filmów zależy nam na zmniejszeniu ich wagi. W tym celu wystarczy dodać opcję -F:
youtube-dl -F https://www.youtube.com/watch?v=1234567890
Po wykonaniu komendy wyświetli nam się lista dostępnych formatów:
Po wybraniu przez nas formatu wystarczy wywołać tą samą komendę zamieniając -F na -f [fomrat_code]:
youtube-dl -f 249 https://www.youtube.com/watch?v=1234567890
No ok, ale co wtedy gdybyśmy chcieli mieć film z najgorszym formatem wideo(video only) i audio(audio only)? Wystarczy po -f wpisać dwa wybrane przez nas formaty(wideo pierwsze) w apostrofach:
youtube-dl -f ‘278+249’ https://www.youtube.com/watch?v=1234567890
Po tej komendzie youtube-dl złączy nam wideo i audio w całość.
Możemy również pobrać najlepsze audio lub wideo:
youtube-dl -f bestaudio https://www.youtube.com/watch?v=1234567890
youtube-dl -f bestvideo https://www.youtube.com/watch?v=1234567890
youtube-dl -f best https://www.youtube.com/watch?v=1234567890
W przypadku gdybyśmy przerwali pobieranie po ponownym wywołaniu komendy program będzie kontynuować pracę od miejsca na którym skończył.
Warto też zwrócić uwagę na tytuł. Domyślnie yt-dl zapisuje filmy jako tytuł + id filmu. Możemy to zmienić opcją -o:
youtube-dl -o "%(title)s.%(ext)s" https://www.youtube.com/watch?v=1234567890
Przy każdym pobieraniu warto dodać również opcje -ic. Ignoruje ona błędy(na przykład gdy film jest prywatny) oraz kontynuuje dalsze pobieranie.
Podsumowując:
Według mnie uniwersalną komendą jest:
youtube-dl -ic -F https://www.youtube.com/watch?v=1234567890
po czym wybieramy format(opcjonalnie zmieniamy tytuł) i pobieramy:
youtube-dl -ic -o "%(title)s.%(ext)s" -f xyz https://www.youtube.com/watch?v=1234567890