I use youtube-dl to download files from YouTube. I have tried downloading multiple files, but it is not working out for me. I have to open multiple terminals and start afresh every time I want to download a video.
Can you help me to download multiple files with a single terminal window by just mentioning all the URLs at once? I use Ubuntu 12.04 64-bit.
Shortcuts
If all of the videos are in the same playlist or the same channel, you can save time by using the following shortcuts.
Playlist
...where
<url-of-playlist>
is replaced by the URL of the playlist and replaceFORMAT
with any available video format, for example18
. You can use the-F
option to see all valid formats like this:Download part of a playlist from start of batch to end of batch
...where
<url-of-playlist>
is replaced by the URL of the playlist, replaceFORMAT
with any available video format, for example18
, andNUMBER
is the number of the video in the playlist to start/end downloading at.Channel
...where
<url-of-channel>
is replaced by the URL of the channel and replaceFORMAT
with any available video format, for example18
.Videos not in the same playlist or channel
First create a batch file which is a text file containing a list of URLs of videos from YouTube that you want to download. The URLs should be arranged in a list having only one URL and nothing else on each line, with a new line for each URL in the list. Save the batch file with a name that is easy to remember like batch-file.txt. If the multiple files are all on the same playlist, channel or user webpage in YouTube, you can generate a text file with a list that has all the links on that page by running the following command:
From the terminal run:
This is the basic command, however you also need to add the formats of the videos that you want to download or else you may find yourself downloading videos with formats that you didn't want. So first simulate your download to see if the format you want is available:
If the video format is not available you will get an error message that says:
requested format not available
. If the video format is available you will not get any error message when you use the--simulate
option. You can also add the -F option to see all valid formats like this:In the third command I have used the common flv 360p video format:
-f 34
. You might prefer to try the flv 480p video format by using-f 35
. So after you have added the video format that you want to the command, the command becomes something like this:Notes:
I didn't add the
--simulate
option to the last command, so this command would be executed for real.You can put the urls one after another, with a space in between. Youtube-dl will download them sequentially. This is a bit simpler than making a batch file.
Notice the --help says
youtube-dl --help Usage: youtube-dl [options] url [url...]
Sample input:
Sample output:
To download multiple files from YouTube
Go to your desktop and make a text document called
list
(or any other name). Copy and paste the URLs if files you want to download into the file, one URL per line.Open terminal and go to desktop
To download the files on your list, type (replace
list
accordingly if you named your file something else)To download a YouTube playlist
Run this command
-c
resume partially downloaded files-i
ignore any errors.-t
use the video title as the file name.-k
keep the video on the disk after the post-processing is finished.--format mp4
save the video files as MP4 files.--yes-playlist
affirms that the URL that follows points to a video playlist.most straightforward solution would be make a bash script like this
just copy and paste the the video links in that txt file in documents folder with each video url in a new line and run this script it will download the videos one by one By default the
-f 18
option is for 360p videoyoutube-dl -cit --format=mp4 --batch-file=./list-of-youtube-videos-link.txt
was what worked for me combining https://askubuntu.com/a/947676/481688 and https://askubuntu.com/a/334097/481688 solutions. I'm recording it here standalone rather than scroll multiple answers again in future.--batch-file=./list-of-youtube-videos-link.txt
file with a list of youtube links--format=mp4
mp4 format output desired-c
resume partially downloaded files-i
ignore any errors.-t
use the video title as the file name.If you have multiple video URLs just add them in one playlist into your YouTube Playlist by creating a new one or using an existing one.
Then use command below.
The option
--yes-playlist
will download the playlist, if the URL refers to a video and a playlist.This is the simplest and quickest option I found for my purpose of downloading hundreds of videos from a website which had videos linked from YouTube.
To download multiple videos you can use this structure. It's similar to @coreyb's response with the addition that you can use it elsewhere in bash, for example with echo. Here are two ways:
Braces
Repeat the last command without the last argument
Try with bash script:
Type the command and then type
&&
and type the next command like:Topic is still relevant, so:
?
use like this :-)
This works for me.