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

11/06/2017, 18:56 · · · 28

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:

 jQmz0EbLIxs: Downloading webpage
 jQmz0EbLIxs: Downloading video info webpage
 jQmz0EbLIxs: Extracting video information
WARNING: unable to extract uploader nickname
 jQmz0EbLIxs: Downloading js player en_US-vflYNRqAP
 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:

 jQmz0EbLIxs: Downloading webpage
 jQmz0EbLIxs: Downloading video info webpage
 jQmz0EbLIxs: Extracting video information
 jQmz0EbLIxs: Downloading js player vflZ_L_3c
 jQmz0EbLIxs: Downloading js player vflZ_L_3c
 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ć.



28

Wojtek Pietrusiewicz

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