I am using Ubuntu 16.04 LTS. I want to download some YouTube videos. I came to know about the command line tool youtube-dl
from this question. As mentioned by Yasser, using the command,
youtube-dl youtube.com/videolink --format mp4
I am able to download those video files in mp4 format.
Now I want to download ten videos from different channels. I have a text file with the YouTube links and the names by which I want to save them. The text file with name data.txt
looks like,
http://youtube.com/link1 name1
http://youtube.com/link2 name2
http://youtube.com/link3 name3
......... ......
......... ......
http://youtube.com/link10 name10
Now I want to run the youtube-dl
command only once so that it takes the arguments from that text file automatically and save them with the required names.
If I have only the links in data.txt
, i.e.,
http://youtube.com/link1
http://youtube.com/link2
http://youtube.com/link3
.........
.........
http://youtube.com/link10
I am able to download the videos using the command only once with option -a
,
youtube-dl --format mp4 -a data.txt
But I could not rename them simultaneously. From man
page of youtube-dl
I found that there is an option --output
to set the filename.
How could I do that?
Best Answer
If you are only renaming files because you don't like the style by which
youtube-dl
names them, then you can use--output
(or-o
) with a template to customize the way it names all the files from Youtube metadata.For example,
-o %(title)s.%(ext)s
will cause it to leave out the Youtube IDs from all of the filenames.There are a lot of options, which may depend on your version of
youtube-dl
, so full details on this can be found at the terminal by typing:However if you do want to name each file individually, you could instead run
youtube-dl
once for each line in the text file like this:For each line, split it at the first run of one or more tabs and spaces into a URL and NAME, then if the line is not blank, pass them to
youtube-dl
. If the line just has a URL, the file will not be renamed.