Youtube-dl
http://rg3.github.com/youtube-dl/
Upgrade your installation!
Due to frequent changes to youtube (and other platforms youtube-dl supports), the software change frequently. You often may encounter errors (like that shown below). Use pip to upgrade your installation to the latest version.
sudo pip3 install --upgrade youtube-dl
[youtube] vP4iY1TtS3s: Downloading webpage
[youtube] vP4iY1TtS3s: Downloading video info webpage
ERROR: Signature extraction failed: Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/youtube_dl/extractor/youtube.py", line 1385, in _decrypt_signature
video_id, player_url, s
File "/usr/local/lib/python3.7/dist-packages/youtube_dl/extractor/youtube.py", line 1262, in _extract_signature_function
raise ExtractorError('Cannot identify player %r' % player_url)
youtube_dl.utils.ExtractorError: Cannot identify player 'https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
(caused by ExtractorError("Cannot identify player 'https://www.youtube.com/s/player/e3cd195e/player_ias.vflset/en_US/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.")); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Downloading manually added subtitles
youtube-dl --skip-download --write-sub https://www.youtube.com/watch?v=vP4iY1TtS3s
Downloading only the automatically generated subtitles (in vtt format)
youtube-dl --skip-download --write-auto-sub URL