36

If you are familiar to Linux, see the following script...

I have a text file with a (list.txt) of Youtube URLs separated by new line... and I use

cat list.txt | youtube-dl -f best 

to download all in the list

This works fine but I want to emulate it on a Windows Batch file..

set /p data=<list.txt
youtube-dl -f best %data%

This works too.. BUT it downloads only the first video on the list.

A Simple solution w.r.t coding would be preferred.

PS:Also it is certain that I'm not looking for solutions using youtube-dl commands

5 Answers5

65

Rather than piping it in, you could use functionality provided by youtube-dl - it has a parameter that allows you to point at a text file containing a list of URLs - one per line.

-a, --batch-file FILE

File containing URLs to download (- for stdin), one URL per line. Lines starting with #, ; or ] are considered as comments and ignored.

In your situation you'd use:

youtube-dl -f best -a list.txt
pbarney
  • 793
Attie
  • 20,734
4

You can just use youtube-dl -a yourList.txt where yourList is a file containing URL's delimited by linebreaks.

1

Youtube-dl allow downloading multiple URL at once, so here is a simple solution:

youtube-dl $(cat my-links.txt | xargs)
0

if you're looking for a strictly batch file solution with youtube-dl i suggest you use this

for /f "tokens=*" %i in (videolinks.txt) do (youtube-dl -f best %i)

it goes through the whole file line by line and downloads whatever is on the line (if its a valid link)

if you want to use it in a *.bat file make sure to use double % link

Use a single percent sign (%) to carry out the for command at the command prompt. Use double percent signs (%%) to carry out the for command within a batch file.

0

First you need a file with URLs or explicit YouTube-IDs. Then you can make a script as follows:

FILE=YT-List.txt #the file with the urls or youtube-ids: 1 item per line
while read line
do
  F1=$(echo $line)
  youtube-dl  -f22 -c -R infinite "$F1" &
done < $FILE
sleep 7
echo "I AM READY"
DarkDiamond
  • 1,919
  • 11
  • 15
  • 21