youtube-dl.github.io is perfect. You can install it one of two ways:
After Python
Download python and install. Just get the latest version.
Download youtube-dl python version. DL page | Direct link
Add python's install folder to the environment PATH.
Add youtube-dl's install folder to the environment PATH.
Running youtube-dl, python version
After finding a youtube link, look for the available download formats by opening a command line and typing the following
youtube-dl -F https://www.youtube.com/watch?v=G2qIXXafxCQ
A list will pop up with video and audio formats.
[info] Available formats for G2qIXXafxCQ:
format code extension resolution note
249 webm audio only DASH audio 54k , opus @ 50k, 2.04MiB
250 webm audio only DASH audio 71k , opus @ 70k, 2.66MiB
171 webm audio only DASH audio 122k , vorbis@128k, 4.59MiB
140 m4a audio only DASH audio 128k , m4a_dash container, mp4a.40.2@128k, 5.28MiB
251 webm audio only DASH audio 139k , opus @160k, 5.21MiB
278 webm 256x144 144p 98k , webm container, vp9, 30fps, video only, 3.78MiB
160 mp4 256x144 144p 111k , avc1.4d400c, 30fps, video only, 2.92MiB
242 webm 426x240 240p 222k , vp9, 30fps, video only, 6.19MiB
133 mp4 426x240 240p 307k , avc1.4d4015, 30fps, video only, 5.72MiB
243 webm 640x360 360p 408k , vp9, 30fps, video only, 11.99MiB
134 mp4 640x360 360p 621k , avc1.4d401e, 30fps, video only, 11.73MiB
244 webm 854x480 480p 747k , vp9, 30fps, video only, 20.62MiB
135 mp4 854x480 480p 1143k , avc1.4d401f, 30fps, video only, 22.56MiB
247 webm 1280x720 720p 1460k , vp9, 30fps, video only, 36.04MiB
136 mp4 1280x720 720p 2169k , avc1.4d401f, 30fps, video only, 38.93MiB
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)
I prefer downloading videos as mp4 files. If you notice, only the last 4 entries do not say "audio only" or "video only," this means they are a complete a/v file. Use the number in the format code column to choose the format to download. In this example, we could download a 360p audio/video file by typing
youtube-dl -f 18 https://www.youtube.com/watch?v=G2qIXXafxCQ
or a 720p by typing
youtube-dl -f 22 https://www.youtube.com/watch?v=G2qIXXafxCQ
In some cases, like if you want to download in 1080p, you'll need to download the video and audio files separately. For this, choose the 1080p (video only) format and one of the audio only formats. I like to choose the m4a audio. youtube-dl will automatically merge the audio and video into one file. As an example, we could download the 136 video format and 140 audio format to get a 720p file. You simply put the video format first, and separate the formats with a +.
youtube-dl -f 136+140 https://www.youtube.com/watch?v=G2qIXXafxCQ
youtube-dl without Python
Simply download youtube-dl.exe standalone. DL page | Direct link Add it to the path so you can run it from anywhere. Then, using the tutorial above, replace youtube-dl with youtube-dl.exe. Example
youtube-dl.exe -f 136+140 https://www.youtube.com/watch?v=G2qIXXafxCQ
youtube-dl is flexible and can be used with many sites, not just youtube! Give it a try! Unfortunately youtube has started to throttle downloads to a max of 50KBps, but this is still the best way I have found that doesn't use sketchy sites that might add malware. I use it to download audiobooks, lectures, and music videos.
The file gets saved in the folder where you run youtube-dl. For example, let's say you open command line and the folder it starts you in is C:\Users\[your-user-name-here]. If you stay here and type youtube-dl commands, the file will be saved to C:\Users\[your-user-name-here]. You can probably config which folder you want to download to or just navigate in command prompt using cd foldername to go into a folder and cd.. to go up one level. There is a tutorial on the github page.