You are seeing the default behavior of youtube-dl
where since April 2015 and version 2015.04.26 unless told otherwise youtube-dl
will download the best quality video stream and the best quality audio stream.
Two cases arise then:
- If you have either
ffmpeg
or avconv
installed the two best quality streams will be downloaded and then muxed together. If the codecs are incompatible together in either flv or mp4 they will be joined in mkv. This is happening in your case.
- If you don't have either
ffmpeg
or avconv
installed the best quality will be downloaded that is available as a single file.
So, you are seeing normal behavior...
References:
Playlist
youtube-dl -f FORMAT -ciw --output '%(title)s.%(ext)s' --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>
...where <url-of-playlist>
is replaced by the URL of the playlist, replace FORMAT
with any available video format, for example 18
, NUMBER-START
is the number of the video in the playlist to start downloading first, and NUMBER-END
is the number of the video in the playlist to download last.
Channel
If a channel has more than one playlist, click on the first playlist and download all the videos in the selected playlist using the above command. Then repeat for each playlist in the channel.
Explanation
-f, --format FORMAT
video format code. The -F option (capital F) displays all available video
formats for a video link. Example: youtube-dl -F <url-of-video>
-c, --continue
force resume of partially downloaded files
-i, --ignore-errors
continue on download errors, for example to skip unavailable videos
in a channel
-w, --no-overwrites
do not overwrite files
Convert all the video titles to lowercase
youtube-dl -f FORMAT -ciw --output '%(title)s.%(ext)s' --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>
find -type f -exec rename 'y/A-Z/a-z/' {} +
Explanation
--output '%(title)s.%(ext)s'
output file name(s) as the name of the video, followed by a dot character and the video's extension
find -type f
Find all files.
y/source/destination/
Transliterate the characters in the pattern space which appear in source
to the corresponding character in destination.
Best Answer
The best solution I found is: