当前位置: 首页 > 知识库问答 >
问题:

使用youtube-dl在python中使用“ytsearch:string”获取标题和url

林铭
2023-03-14

我一直在做一个不和谐的音乐机器人,它几乎完成了。我还有两件事要弄清楚(它们背后有相同的想法)。

我正在使用youtube_dl下载视频,我最近发现有一种方法可以从youtube上搜索并获取顶级搜索结果并播放该结果,允许我的discord频道的用户通过键入他们记得的几个单词来播放一首歌。当我试图在搜索顶部结果时获得将要播放的youtube视频的标题时,问题就来了。

import youtube_dl

ydl_opts = {
    'quiet': True,
    'skip_download': True,
    'forcetitle': True,
    'forceurl': True,
}

# Extracts information using the "ytsearch:string" method
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    infoSearched = ydl.extract_info("ytsearch:eraser f64")

# Print the available keys
print('\n keys available: \n')
for i in infoSearched:
    print(i)

# Output the information that has potential to be what I am looking for
for i in infoSearched:
    if i is 'webpage_url' or i is 'webpage_url_basename':
        print('\n {}    {}' .format(infoSearched[str(i)], i))

for i in range(2):
    print("\n")

# Extracts information using the actual URL method
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    infoUrlGiven = ydl.extract_info("https://www.youtube.com/watch?v=pb2fwx4O_Ks")

# Outputs the correct information I am looking for
for i in infoUrlGiven:
    if i is 'webpage_url' or i is 'title':
        print('\n {}    {}' .format(infoUrlGiven[str(i)], i))

我试图得到视频的标题和实际的YouTube网址正在使用。当用户自己输入实际URL时(如上图所示),我可以很容易地获得这些信息,但我不确定如何在使用“ytsearch:string”方法查找视频时提取这些信息。

“'forceTitle':true”选项将我想要的标题输出到控制台,这样我就知道它在那里的某个地方,我只需要找到一种方法来提取它。至于webpage_URL输出,我不确定我是否真的可以通过这种方式获得它,因为在搜索第一个结果的情况下,'webpage_URL'输出的全部内容都是返回搜索(“ytsearch:eraser f64”)。

此外,我还包括了“'forceurl':true”选项,以便能够说明forceurl没有输出我正在寻找的url。我专门寻找youtube页面的url,这样我就可以自动添加歌曲到自动播放列表(不确定我是否会这样做,无论如何,由于不同的搜索结果可能重复)。

请建议。

共有1个答案

戚浩淼
2023-03-14

我认为当使用ytsearch:执行extract_info时,它返回的信息字典与使用字符串url执行extract_info时不同。

在执行ytSearch:时,您将执行以下操作:

infosearched['entries'][0]['webpage_url']

或为视频标题:

infosearched['entries'][0]['title']

而不是:

infoSearched[str(i)]

我希望这能有所帮助。

 类似资料:
  • 我想访问以下shell命令的结果, 从python程序中将其输出打印到文件。这就是我所尝试的: 这可能吗?我试图理解源代码中的机制,但却迷路了:,。。。

  • 问题内容: 有几篇关于使用来从文章,但没有一篇是具体的或有用的。我想知道从Python脚本执行此操作的最佳方法是什么。 例如,这是下载视频的README示例: 显然,如果您只关心音频,则不希望下载整个视频… 在YouTube的-DL源仅仅是如此的帮助(即不太)。 任何建议如何编写脚本? 问题答案: 阅读开发者说明中的修改示例: 如果可能/受支持,它将下载音频文件。如果文件还不是mp3,则使用ffm

  • youtube-dl 是一个用来从 YouTube.com 网站上下载视频文件的命令行工具。它采用 Python 开发,运行时需要 Python 的解释环境。支持多个 OS 平台,除 YouTube,还支持包括优酷、土豆、新浪和搜狐等在内的多个视频网站。 安装: sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/l

  • 问题内容: 我知道Linux在/ dev / input / mice中给出了9位2的补码数据。我也知道您可以通过/ dev / hidraw0获得数据,其中hidraw是您的USB设备,可以从HID发出原始数据。我知道发送的数据是运动(位移)的增量而不是位置。另外,我还可以通过“ cat / dev / input / mice”查看乱码数据。我的问题是: 您能否使用Python语言告诉我如何读

  • 本文向大家介绍如何使用youtube dl从youtube视频下载mp3曲目,包括了如何使用youtube dl从youtube视频下载mp3曲目的使用技巧和注意事项,需要的朋友参考一下 有几种方法可以从Youtube下载MP3曲目,例如Linux中的Web应用程序,Windows应用程序和命令行工具。Youtube-DL 是市场上最好的工具之一,可以从youtube下载曲目。它是用 Python

  • youtube-dl-interactive is inactive. This was just an experiment. Yes it was possible make this tiny tool with nodejs, a few shell scripts, python scripts, or bash aliases would have been more helpful.