我有一个文件,其中包含一些 YouTube 视频的链接列表。
当我运行命令时:
wget -i list
一切工作正常,但是 wget 会自动将文件重命名为每个链接末尾的乱码。手动运行 wget 不是一个选项,因为链接太多。如何为 wget 能够识别的链接指定自定义名称?
答案1
该-O
选项允许您指定目标文件名。但是,如果您一次下载多个文件,wget
则会将其所有内容保存到您通过 指定的文件中-O
。注意无论哪种情况,文件都会被截断如果它已经存在。看手册页了解更多信息。
您可以通过告诉wget
一一下载链接来利用此选项:
while IFS= read -r url;do
fileName="blah" # Add a rule to define a new name for each file here
wget -O "$fileName" "$url"
done < list
您还可以采取乔乔的建议并在文件中的每个 URL 旁边添加文件名,然后执行以下操作:
while IFS= read -r url fileName;do
wget -O "$fileName" "$url"
done < list
假设您在文件中的每个 URL 后面添加了一个(唯一的)文件名(用空格分隔)。
答案2
让生活变得简单,不要让生活变得复杂...
制作一个 bash 脚本,将其命名为 list.sh 并添加以下行
wget url -O your-filename
wget url2 -O your-filename2
想要多少就多少,并使其可执行
chmod 775 list.sh
运行它./list.sh
答案3
您可能想查看youtube-dl
联机帮助页。
youtube-dl -a URL-file -o '-o "%(autonumber)s-%(title)s.%(ext)s"
(未经测试)