2
好吧,所以我用我写的bash脚本有这个小问题。youtube-dl问题(脚本)
这个脚本应该是这样运行的:
bash script.sh https://www.youtube.com/user/<channel name>
OR
bash script.sh https://www.youtube.com/user/<random characters that make up a youtube channel ID>
它下载一个完整的YouTube频道,以一个名为
<uploader>{<uploader_id>}/
文件夹或者,至少它应该...
我得到的问题是youtube-dl创建的archive.txt文件不是与视频在同一个目录中创建的。它在运行脚本的目录中创建。
是否有grep或sed命令,我可以用它来获取archive.txt文件到视频文件夹?
或者可能创建文件夹第一,然后cd到它,并从那里运行命令? 我不知道
这里是我的脚本:
#!/bin/bash
pwd
sleep 1
echo "You entered: $1 for the URL"
sleep 1
echo "Now downloading all videos from URL "$1""
youtube-dl -iw \
--no-continue $1 \
-f bestvideo+bestaudio --merge-output-format mkv \
-o "%(uploader)s{%(uploader_id)s}/[%(upload_date)s] %(title)s" \
--add-metadata --download-archive archive.txt
exit 0
您正在告诉它将存档创建为'archive.txt',以便在当前目录中发生。除非'youtube-dl'在这个参数中支持'%(uploader)s'等等,否则你只会用一个命令(或者任何一组命令,除非你有其他方法以某种方式获取上传者姓名和ID)。 –
@EtanReisner,是的,%(上传)s,&tc是youtube-dl使用的变量。如果youtube-dl只是将它作为bash变量导出,那么这会更容易,然后我可以做一个简单的“cd” – TheSqrtMinus1
它不能这样做。这是不可能的。它*可以*支持'--download-archive'参数中的格式。除此之外,您需要“解析”输出并在下载后手动将文件移动到正确的目录。这可能是值得提交的东西,但与youtube-dl有关。 –