Youtube-dl:从单独的文件夹中的不同渠道下载大量文件,每个文件夹最多下载

问题描述

免责声明:我是我正在写的所有东西的完整入门者。到目前为止,我所做的一切都是经过大量的研究和修补。我实际上不知道自己在做什么。

我想要的内容:要使用youtube-dl将频道列表中的youtube视频自动下载到每个频道的特定文件夹中,每个频道一次最多可以下载10个视频。 >

我为什么要(如果您对我有不同的建议):因为现在我没有足够的存储空间来保存每个频道的大量视频,所以我正在使用plex消费它们,因此观看后我会直接在plex上删除视频。目标是让此脚本运行在预定任务或某些任务上-我还没有考虑过那部分。

到目前为止,我完成了什么(虽然并不完美,但是可以正常工作):

我为每个频道创建了一个.bat文件

@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%

我创建了一个.bat文件来运行目录中的所有.bat文件

@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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...