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

能否用yt-dlp/youtube-dl搜索music.youtube.com?Python实现问询

解决方案

一、Shell命令直接实现

1. 直接搜索YouTube Music

yt-dlp原生支持YouTube Music的搜索,只需将搜索前缀从ytsearch:替换为ytmsearch:,命令如下:

yt-dlp ytmsearch:"your song query"

该命令会直接在music.youtube.com上检索内容,返回结果均为官方音乐视频、专辑曲目等音乐类资源。

2. 在YouTube.com上筛选音乐视频

如果想在普通YouTube搜索中仅获取音乐类视频,可在搜索关键词后添加filter:music筛选参数:

yt-dlp ytsearch:"your song query filter:music"

YouTube会自动过滤出标记为音乐的视频内容,结果更偏向官方发布的音乐资源。

二、Python代码实现(适配Discord机器人开发)

若需在Python项目中集成该功能,直接调用yt-dlp的Python API即可,步骤如下:

1. 安装依赖

先确保安装yt-dlp的Python包:

pip install yt-dlp

2. 搜索YouTube Music的示例代码

import yt_dlp

def search_youtube_music(query):
    ydl_opts = {
        'quiet': True,  # 关闭冗余日志输出
        'skip_download': True,  # 仅获取资源信息不下载
        'format': 'bestaudio/best',  # 优先获取音频格式资源
    }
    
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:
        # 使用ytmsearch前缀指定搜索源为YouTube Music
        info = ydl.extract_info(f'ytmsearch:{query}', download=False)
        # 提取第一个搜索结果的关键信息
        if 'entries' in info:
            first_result = info['entries'][0]
            return {
                'title': first_result['title'],
                'webpage_url': first_result['webpage_url'],
                'audio_url': first_result['url']
            }
    return None

# 调用示例
result = search_youtube_music("your song query")
if result:
    print(f"找到歌曲:{result['title']},音频链接:{result['audio_url']}")

3. 在YouTube上筛选音乐视频的示例代码

只需将搜索前缀改为ytsearch:并添加filter:music参数:

import yt_dlp

def search_youtube_filter_music(query):
    ydl_opts = {
        'quiet': True,
        'skip_download': True,
        'format': 'bestaudio/best',
    }
    
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:
        # 添加filter:music参数筛选音乐视频
        info = ydl.extract_info(f'ytsearch:{query} filter:music', download=False)
        if 'entries' in info:
            first_result = info['entries'][0]
            return {
                'title': first_result['title'],
                'webpage_url': first_result['webpage_url'],
                'audio_url': first_result['url']
            }
    return None

# 调用示例
result = search_youtube_filter_music("your song query")
if result:
    print(f"找到音乐视频:{result['title']},音频链接:{result['audio_url']}")

注意事项

  • 可根据Discord机器人需求调整ydl_opts参数,比如添加postprocessors配置将音频转成mp3格式。
  • 建议增加异常捕获逻辑,避免因网络问题或无搜索结果导致机器人崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:12:56