Python 3.x 使用Youtube dl搜索Youtube视频
我正在尝试构建一个Discord音乐机器人,我需要使用用户提供的关键字搜索YouTube。目前我知道如何从url播放Python 3.x 使用Youtube dl搜索Youtube视频,python-3.x,youtube,discord.py-rewrite,Python 3.x,Youtube,Discord.py Rewrite,我正在尝试构建一个Discord音乐机器人,我需要使用用户提供的关键字搜索YouTube。目前我知道如何从url播放 loop = loop or asyncio.get_event_loop() data = await loop.run_in_executor( None, lambda: ytdl.extract_info(url, download=not stream)) if "entries" in data:
loop = loop or asyncio.get_event_loop()
data = await loop.run_in_executor( None, lambda: ytdl.extract_info(url, download=not stream))
if "entries" in data:
data = data["entries"][0]
filename = data["url"] if stream else ytdl.prepare_filename(data)
return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)
我不确定youtube dl是否适合使用关键字搜索youtube URL。您可能应该看看这一点。我不确定youtube dl是否适合使用关键字搜索youtube URL。你可能应该看看这一点。Youtube\u DL有一个
extract\u info
方法可以使用。与其给它一个链接,您只需传递ytsearch:args
如下:
从请求导入获取
从youtube\u dl导入YoutubeDL
YDL_选项={'format':'bestaudio','noplaylist':'True'}
def搜索(arg):
使用YoutubeDL(YDL_选项)作为YDL:
尝试:
获取(arg)
除:
video=ydl.extract_info(f“ytsearch:{arg}”,download=False)['entries'][0]
其他:
video=ydl.extract\u info(arg,download=False)
返回视频
此功能的几个重要方面:
- 它同时适用于单词和URL
- 如果进行youtube搜索,输出将是一个词汇列表。在这种情况下,它将返回第一个结果
- 它将返回包含以下信息的词汇:
video\u infos=搜索(“30秒视频”) #不包含所有数据,有些键不是很重要 清除的\u数据={ “频道”:视频[“上传器”], “频道url”:视频['uploader\u url'], “标题”:视频[“标题”], “说明”:视频[“说明”], “视频url”:视频[“网页url”], “持续时间”:视频[“持续时间],#以秒为单位 “上传日期”:视频[“上传数据”],#YYYYDDMM “缩略图”:视频[“缩略图”], “音频源”:视频['formats'][0]['url'], “查看计数”:视频[“查看计数”], “like_count”:视频[“like_count”], “不喜欢计数”:视频[“不喜欢计数”], }
- Youtube\u DL有一个
extract\u info
方法可以使用。与其给它一个链接,您只需传递ytsearch:args
如下:
从请求导入获取
从youtube\u dl导入YoutubeDL
YDL_选项={'format':'bestaudio','noplaylist':'True'}
def搜索(arg):
使用YoutubeDL(YDL_选项)作为YDL:
尝试:
获取(arg)
除:
video=ydl.extract_info(f“ytsearch:{arg}”,download=False)['entries'][0]
其他:
video=ydl.extract\u info(arg,download=False)
返回视频
此功能的几个重要方面:
- 它同时适用于单词和URL
- 如果进行youtube搜索,输出将是一个词汇列表。在这种情况下,它将返回第一个结果
- 它将返回包含以下信息的词汇:
video\u infos=搜索(“30秒视频”) #不包含所有数据,有些键不是很重要 清除的\u数据={ “频道”:视频[“上传器”], “频道url”:视频['uploader\u url'], “标题”:视频[“标题”], “说明”:视频[“说明”], “视频url”:视频[“网页url”], “持续时间”:视频[“持续时间],#以秒为单位 “上传日期”:视频[“上传数据”],#YYYYDDMM “缩略图”:视频[“缩略图”], “音频源”:视频['formats'][0]['url'], “查看计数”:视频[“查看计数”], “like_count”:视频[“like_count”], “不喜欢计数”:视频[“不喜欢计数”], }