【问题标题】:Searching Youtube videos using youtube-dl使用 youtube-dl 搜索 Youtube 视频
【发布时间】:2020-08-13 04:54:33
【问题描述】:

我正在尝试构建一个 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:
            data = data["entries"][0]

        filename = data["url"] if stream else ytdl.prepare_filename(data)
        return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)

【问题讨论】:

    标签: python-3.x youtube discord.py-rewrite


    【解决方案1】:

    Youtube_DL 有一个可以使用的extract_info 方法。而不是给它一个链接,你只需要像这样传递ytsearch:args

    from requests import get
    from youtube_dl import YoutubeDL
    
    YDL_OPTIONS = {'format': 'bestaudio', 'noplaylist':'True'}
    
    def search(arg):
        with YoutubeDL(YDL_OPTIONS) as ydl:
            try:
                get(arg) 
            except:
                video = ydl.extract_info(f"ytsearch:{arg}", download=False)['entries'][0]
            else:
                video = ydl.extract_info(arg, download=False)
    
        return video
    

    此功能的一些重要事项:

    • 它适用于单词和网址
    • 如果您进行 youtube 搜索,输出将是一个字典列表。在这种情况下,它将返回第一个结果
    • 它将返回一个包含以下信息的字典:
      video_infos = search("30 sec video")
      
      #Doesn't contain all the data, some keys are not very important
      cleared_data = {
          'channel': video['uploader'],
          'channel_url': video['uploader_url'],
          'title': video['title'],
          'description': video['description'],
          'video_url': video['webpage_url'],
          'duration': video['duration'], #in seconds
          'upload_date': video['upload_data'], #YYYYDDMM
          'thumbnail': video['thumbnail'],
          'audio_source': video['formats'][0]['url'],
          'view_count': video['view_count'],
          'like_count': video['like_count'],
          'dislike_count': video['dislike_count'],
      }
      

    【讨论】:

      【解决方案2】:

      我不确定 youtube-dl 是否适合使用关键字搜索 youtube 网址。你应该看看youtube-search

      【讨论】:

        猜你喜欢
        • 2012-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-12
        • 1970-01-01
        • 2016-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多