Mastodon
Zdjęcie okładkowe wpisu Jak łatwo pobrać film (lub muzykę) z filmu z YouTube’a

Jak łatwo pobrać film (lub muzykę) z filmu z YouTube’a

28
Dodane: 7 lat temu

Kiedyś, dawno temu, za górami, za lasami, istniały rozszerzenia do Safari i innych przeglądarek, które pomagały w pobieraniu treści z YouTube’a na dysk. Niestety, większość wyginęła lub stała się wylęgarnią malware’u, jest podejrzana, lub jest płatna. Jest jednak proste rozwiązanie, które daje ogromne możliwości.

Uwaga – Nie pobierajcie klipów z YouTube’a, które są chronione prawem autorskim. Poniżej stosuję jedynie przykład, aby zilustrować jak ten program działa.

youtube-dl

youtube-dl to open-source’owy program dla macOS, Linuxa i Windows, za pomocą którego można pobrać z YouTube’a dokładnie to, co chcecie. Można go zainstalować na kilka sposobów – instrukcję znajdziecie tutaj – a ja wybrałem Homebrew, co ma sens, skoro korzystam z niego od lat.

Instalacja Homebrew

Jeśli nie macie Homebrew, to należy go zainstalować następującą komendą, wpisywaną w Terminalu:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Jeśli już macie, to uruchomcie Terminal i upewnijcie się, że wszystko gra…

brew doctor

A potem…

brew update

Instalacja youtube-dl

Instalacja za pomocą Homebrew jest banalnie prosta – do Terminala należy wpisać następującą komendę:

brew install youtube-dl

Po jej wpisaniu, na ekranie pojawi się coś takiego:

moridin@Millennium-Falcon ~> brew install youtube-dl
==> Using the sandbox
==> Downloading https://github.com/rg3/youtube-dl/releases/download/2017.06.05/youtube-dl-2017.06.05.tar.gz
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/1039520/dcfa05ea-4988-11e7-8c99-204050b93d2
######################################################################## 100.0%
==> Caveats
Bash completion has been installed to:
 /usr/local/etc/bash_completion.d

zsh completions have been installed to:
 /usr/local/share/zsh/site-functions

fish completions have been installed to:
 /usr/local/share/fish/vendor_completions.d
==> Summary
🍺 /usr/local/Cellar/youtube-dl/2017.06.05: 11 files, 1.8MB, built in 6 seconds

Pobieramy

Program youtube-dl używa się z Terminala. Jeśli nie wiecie jak go użyć, do wystarczy wpisać komendę man youtube-dl, która wyświetli instrukcję obsługi. Strzałkami możecie przewijąc ją góra/dół, a spacją o cały ekran w dół. Oto jej fragment:

NAME
    youtube-dl - download videos from youtube.com or other video platforms

SYNOPSIS
    youtube-dl [OPTIONS] URL [URL...]

DESCRIPTION
    youtube-dl is a command-line program to download videos from YouTube.com and a few more sites. It requires
    the Python interpreter, version 2.6, 2.7, or 3.2+, and it is not platform specific. It should work on your
    Unix box, on Windows or on Mac OS X. It is released to the public domain, which means you can modify it,
    redistribute it or use it however you like.

W dalszej części instrukcji wyświetlą się wszystkie opcje i dostępne funkcje programu. Aby pobrać jeden film lub muzykę z niego, będą nas interesowały tylko dwie z nich.

Najpierw potrzebujemy URL do filmu na YouTubie – znajdziecie go w pasku adresu przeglądarki. Mnie interesowała poniższa muzyka (mój przykładowy URL to https://www.youtube.com/watch?v=jQmz0EbLIxs):

Chciałem pobrać samą muzykę, w odpowiednim formacie (na YouTubie dostępnych formatów jest wiele, zależnie od Waszego urządzenia), więc wpisałem następującą komendę:

youtube-dl -F "https://www.youtube.com/watch?v=jQmz0EbLIxs"

W powyższej komendzie wywołałem nazwę programu z opcją -F (z dużej litery!!!). Ta opcja sprawdza w jakich formatach dany materiał jest dostępny. Zwróćcie też uwagę na to, że URL jest w cudzysłowie. Otrzymałem następujący wynik:

[youtube] jQmz0EbLIxs: Downloading webpage
[youtube] jQmz0EbLIxs: Downloading video info webpage
[youtube] jQmz0EbLIxs: Extracting video information
WARNING: unable to extract uploader nickname
[youtube] jQmz0EbLIxs: Downloading js player en_US-vflYNRqAP
[youtube] jQmz0EbLIxs: Downloading MPD manifest
[info] Available formats for jQmz0EbLIxs:
format code extension resolution note
139     m4a    audio only DASH audio  48k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 750.53KiB
249     webm    audio only DASH audio  62k , opus @ 50k, 820.42KiB
250     webm    audio only DASH audio  81k , opus @ 70k, 1.06MiB
140     m4a    audio only DASH audio 127k , m4a_dash container, mp4a.40.2@128k (44100Hz), 1.95MiB
171     webm    audio only DASH audio 136k , vorbis@128k, 1.81MiB
251     webm    audio only DASH audio 152k , opus @160k, 2.09MiB
278     webm    256x144  144p 105k , webm container, vp9, 30fps, video only, 1.16MiB
160     mp4    256x144  DASH video 114k , avc1.4d400c, 30fps, video only, 1.72MiB
242     webm    426x240  240p 193k , vp9, 30fps, video only, 1.36MiB
133     mp4    426x240  DASH video 253k , avc1.4d4015, 30fps, video only, 3.79MiB
243     webm    640x360  360p 349k , vp9, 30fps, video only, 2.52MiB
134     mp4    640x360  DASH video 387k , avc1.4d401e, 30fps, video only, 4.11MiB
244     webm    854x480  480p 551k , vp9, 30fps, video only, 3.86MiB
135     mp4    854x480  DASH video 670k , avc1.4d401f, 30fps, video only, 7.94MiB
247     webm    1280x720  720p 1041k , vp9, 30fps, video only, 7.19MiB
136     mp4    1280x720  DASH video 1291k , avc1.4d401f, 30fps, video only, 14.89MiB
248     webm    1920x1080 1080p 1785k , vp9, 30fps, video only, 12.19MiB
137     mp4    1920x1080 DASH video 2480k , avc1.640028, 30fps, video only, 29.18MiB
17      3gp    176x144  small , mp4v.20.3, mp4a.40.2@ 24k
36      3gp    320x180  small , mp4v.20.3, mp4a.40.2
43      webm    640x360  medium , vp8.0, vorbis@128k
18      mp4    640x360  medium , avc1.42001E, mp4a.40.2@ 96k
22      mp4    1280x720  hd720 , avc1.64001F, mp4a.40.2@192k (best)

Jako że interesowało mnie tylko audio i że format webm/opus/vorbis jest mi obcy, to wybrałem m4a w jakości 128 Kbps, czyli interesuje mnie ta linia z powyższej listy:

140     m4a    audio only DASH audio 127k , m4a_dash container, mp4a.40.2@128k (44100Hz), 1.95MiB

Ważny tutaj jest numer 140, bo to jego wykorzystamy w następnej komendzie, która pobierze samo audio z tego klipu.

youtube-dl -f 140 "https://www.youtube.com/watch?v=jQmz0EbLIxs"

Tym razem wywołałem youtube-dl z opcją -f 140 (z małej litery!), która pobiera wybraną ścieżkę (wideo lub audio). Numer 140 jest z listy wyników z wcześniejszego kroku. Ta komenda wyrzuciła następujący wynik:

[youtube] jQmz0EbLIxs: Downloading webpage
[youtube] jQmz0EbLIxs: Downloading video info webpage
[youtube] jQmz0EbLIxs: Extracting video information
[youtube] jQmz0EbLIxs: Downloading js player vflZ_L_3c
[youtube] jQmz0EbLIxs: Downloading js player vflZ_L_3c
[youtube] jQmz0EbLIxs: Downloading MPD manifest
[download] Destination: Star Wars - The Force Theme - Epic Cover (Medley 2016) - EMS 019-jQmz0EbLIxs.m4a
[download] 100% of 1.95MiB in 00:00
WARNING: jQmz0EbLIxs: writing DASH m4a. Only some players support this container. Install ffmpeg or avconv to fix this automatically.

Pobrany plik pobierany jest do folderu, z którego wywołujemy komendę, więc u mnie trafił do ~/Desktop/, czyli na Biurko.

Teraz pozostaje uzupełnić metadane w takim pliku audio, opcjonalnie przekonwertować go do innego formatu i można go słuchać.

Wojtek Pietrusiewicz

Wydawca, fotograf, podróżnik, podcaster – niekoniecznie w tej kolejności. Lubię espresso, mechaniczne zegarki, mechaniczne klawiatury i zwinne samochody.

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .

Komentarze: 28

Możesz przedstawić swoje argumenty dlaczego te rozszerzenie jest śmieciowe?
Wnioskuję że narzędzie o którym wspominasz zachwalasz dlatego ze jest open source i sam sprawdziłeś jego źródło lub wierzysz innym ludziom którzy to zrobili za Ciebie. Mam rację?

Jest też savefrom.net (sama stron czy też pod postacią rozszerzenia do przeglądarki).

@Moridin:disqus: Nie oszukujmy się, zwykły użytkownik będzie wolał “patologiczny” przycisk w przeglądarce pod filmem niż wygibasy w terminalu. Poza tym mając rozszerzenie w przeglądarce jest dużo szybciej. Sam korzystałem z youtube-dl, ale nie uważam żeby było to dobre narzędzie dla osób, które często pobierają z YT.

Nie mówię, że nie! Tym bardziej jeżeli stworzysz sobie odpowiedni alias w terminalu. Np.

youtube-dl -f ‘bestvideo[ext=mp4][height<=1080]+bestaudio[ext=m4a]/best[ext=mp4]/best' -o '%(title)s.%(ext)s'

Zwracam tylko uwagę, że istnieją dużo lepsze alternatywy, np. Downie – wspiera ponad 1,100 stron, ma możliwość pobierania napisów, konwertowania (również do formatu audio) i automatycznego łączenia kilku części wideo przy pomocy Permute; dodatkowo Downie posiada rozszerzenie do przeglądarki, więc wystarczy jedno kliknięcie…

Proszę, proszę to Ci ciekawostka! Korzystam z niego w zasadzie od 4 lat i nie zdawałem sobie sprawy; w man jest tylko zapis: “and few more sites”.

Nie rozumiem dlaczego autor ostrzega przed pobieraniem klipów, które są chronione prawem autorskim. Przecież pobieranie jest legalne . Nie można natomiast tych treści udostępniać.

YouTube może mieć swoje EULA, ale polskie prawo jest ważniejsze w tym wypadku.

Wojtek, a nie lepiej po prostu jdownloaderem? Można sobie też wybrać format, bitrate i to dwoma klikami, a nie taką Golgotą w linii poleceń. Kiedy popatrzyłem na te screeny terminala, to się przeraziłem.