问题描述
免责声明:我是我正在写的所有东西的完整入门者。到目前为止,我所做的一切都是经过大量的研究和修补。我实际上不知道自己在做什么。
我想要的内容:要使用youtube-dl将频道列表中的youtube视频自动下载到每个频道的特定文件夹中,每个频道一次最多可以下载10个视频。 >
我为什么要(如果您对我有不同的建议):因为现在我没有足够的存储空间来保存每个频道的大量视频,所以我正在使用plex消费它们,因此观看后我会直接在plex上删除视频。目标是让此脚本运行在预定任务或某些任务上-我还没有考虑过那部分。
到目前为止,我完成了什么(虽然并不完美,但是可以正常工作):
@echo off
set vidfolder="Trello"
set vidsource="https://www.youtube.com/channel/UCRcOkXoOrU6sN1yCz20VmQw"
set /A count=0
for %%x in (%vidfolder%\*.mp4) do set /a count+=1
set /A vidamt=10-%count%
youtube-dl --download-archive downloaded.txt -f mp4 -ciw -o %vidfolder%\%%(title)s.%%(ext)s -v %vidsource% --max-downloads %vidamt%
@echo off
for /R %%x in (*.bat) do (
if not "%%x" == "%~0" call "%%x"
)
我想做什么:
我想拥有一个.txt文件,其中包含我想从中下载的所有频道,然后有一个.bat文件可以通过该列表并提供与上述相同的结果。
我很难从频道网址中获取频道名称。我设法从视频URL中获取了频道名称,但没有从频道URL中获取:
for /f "delims=" %%a in ('youtube-dl --get-filename -o "%%(uploader)s" %vidchannel%') do @set vidfolder=%%a
这使得在获取视频URL之前很难对每个文件夹进行计数。我的最后一个想法是创建一个while循环,并将文件夹中的文件计数作为退出条件。在循环内,我将获取视频,使用--max-downloads 1下载视频并将%(uploader)s存储在变量中。然后,我将使用该变量来计算文件夹中的文件,并确定循环是否应该继续。但是我已经在这个设置上苦苦挣扎了几个小时,我陷入了困境。
由于我不知道自己在做什么,因此我将逐步构建这些脚本。我得到了可以运行的内容,然后尝试添加下一步。我设法从.txt中读取了每一行,但是我无法在for循环中执行任何youtube-dl命令,因此,我什至无法开始使用while循环逻辑。
@echo off
for /f "tokens=*" %%a in (channels.txt) do (
echo %%aa
)
很长的问题,很抱歉。但是我将不胜感激,并且我猜想有一个解决方案比我要走的路要简单得多。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)