29

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

6 Answers6

53

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
  • 687
  • 8
  • 24
Attie
  • 19,231
  • 5
  • 58
  • 73
  • This seems to me as being the best answer for it uses the original tool to do the same and there is a Windows version too. So basically all you need to do is reformat your command according to the answer provided by Attie and just put it in a folder with a batch script and relevant list file. Then all you'll have to do is edit your list file and run your script. Otherwise, though I don't know it properly, I'd suggest looking on PowerShell side. From what I saw it seems they at last included a lot of nice features and commands. – 猫IT Mar 06 '19 at 16:53
  • when I try to use a batch-file I always get ```[youtube] xxxxxx: Downloading webpage ERROR: unable to download video data: HTTP Error 403: Forbidden``` where xxxxxx is the video in ```https://www.youtube.com/watch?v=xxxxxx``` – lbutlr Apr 20 '20 at 21:36
  • @lbutlr It looks like the video is private. – Vertisan May 03 '20 at 14:02
  • No, as it works fine when I do not try to use a batch file. – lbutlr May 13 '20 at 13:12
  • This discussion isn't really supposed to be conducted in comments... but, 1) Have you updated `youtube-dl`?, 2) Can you share the full link so we can try? – Attie May 13 '20 at 13:29
  • if someone is getting 'requested format not available' error, try `-f bestvideo+bestaudio` flag – ssi-anik Jan 23 '21 at 13:26
2

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

milad salimi
  • 121
  • 3
1

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

youtube-dl $(cat my-links.txt | xargs)
whatspoppin
  • 111
  • 1
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,875
  • 11
  • 12
  • 19
  • Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jan 19 '22 at 21:11
-1

Yaxtube is one of the best tools for downloading Youtube videos without signing up. it's very very simple to use, just paste the link and click on download after that save it and Finish, you can download multiple videos, without paying.

  • Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Apr 23 '23 at 18:23