You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用youtube_dl按关键词搜索如何返回多个结果

youtube_dl关键词搜索仅返回单条结果解决方法

原因

使用ytsearchN格式的搜索前缀调用extract_info时,返回的结果是搜索结果集合对象,你需要的5条结果并没有丢失,全部存储在返回字典的entries数组字段中。直接打印顶层的info字典只会展示集合的基础元数据和第一条结果的概览,所以会产生只返回了一条结果的错觉。

修复后代码示例

from youtube_dl import YoutubeDL

ydl_option = {
    'format': 'bestaudio',
    # 可选配置:仅拉取标题、ID等基础信息,不需要拉取每个视频的完整详情,可大幅提升搜索速度
    'extract_flat': True
}

query = input() # 用户输入搜索关键词
with YoutubeDL(ydl_option) as ydl:
    # 前缀和关键词之间加英文冒号分隔,避免关键词带特殊字符时匹配异常
    info = ydl.extract_info(f"ytsearch5:{query}", download=False)

# 遍历获取全部5条搜索结果
all_results = info['entries']
for idx, result in enumerate(all_results, 1):
    if result: # 跳过拉取失败的空条目
        print(f"第{idx}条结果:")
        print(result)
        print("-"*50)

补充注意事项

  • 如果关闭extract_flat配置,返回的每个entry都会包含视频的全量元数据(分辨率、时长、资源直链等),但搜索耗时会相应变长
  • 原版youtube_dl已经停止维护,部分老旧版本存在搜索结果条数不匹配、接口失效的问题,遇到这类问题可以切换到同接口的活跃维护分支yt-dlp,兼容性更高

内容的提问来源于stack exchange,提问作者TimG233

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:15:04