You're on the right track with the &
, but you don't want that as part of the file name. You want to run this:
youtube-dl "https://www.youtube.com/watch?v=iXFvkJLqPqo" &
But because you have the &
in the file, you are actually running this:
youtube-dl "https://www.youtube.com/watch?v=iXFvkJLqPqo &"
Also, you probably want to redirect standard error so your terminal isn't polluted by the progress reports. Try this:
while read in; do ./youtube-dl "$in" 2>/dev/null & done < vidfilelist
This should be fine for a list of URLs, but as a general rule when parsing text files in the shell, you also want to clear the input field separator with IFS=
and ensure you don't expand \
-escape sequences, so do this:
while IFS= read -r in; do ./youtube-dl "$in" 2>/dev/null & done < vidfilelist