因此包含在此在线script (Non-existent)中,我试图先确定要下载的视频/音频的长度。注释包含在脚本中。
我的问题:在下载视频作为音频之前,如何确定视频的长度?
请不要使用或提及repl.it的任何部分。我使用IDLE python 3.7.3,而此部分位于PC上的脚本中,可以运行我的机器人。
对不起,如果我说不出更好的话。
答案 0 :(得分:0)
如果视频长度小于或等于某个值,您可以尝试处理数据然后下载:
class AudioTooLongError(commands.CommandError): pass
@classmethod
async def from_url(cls, url, *, loop=None, stream=False):
loop = loop or asyncio.get_event_loop()
to_run = functools.partial(ytdl.extract_info, url=url, download=False)
data = await loop.run_in_executor(None, to_run)
if 'entries' in data:
# take first item from a playlist
data = data['entries'][0]
if data['duration'] > 3600:
# Forbid downloading of sources more than 1 hour long.
raise AudioTooLongError
if not stream:
try: data = ytdl.process_ie_result(data)
except PermissionError: pass
source = ytdl.prepare_filename(data)
return cls(discord.FFmpegPCMAudio(source), data=data, requester=ctx.author)
return data['url']
尝试一下!