为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用关键字而不是带有youtube-dl和 discord.py 的网址?

如何使用关键字而不是带有youtube-dl和 discord.py 的网址?

猛跑小猪 2022-08-16 10:45:48
我正在写一个万能的机器人,基本上我想输入命令,然后一个歌曲名称示例:它将搜索youtube,弹出的第一个视频将下载它的音频?play song-name我让机器人使用普通链接,但如果我必须获取链接来播放音乐,它就会破坏目的client = discord.Client()@client.eventasync def on_message(message):    ydl_opts = {            'format': 'beataudio/best',            'postprocessors': [{                'key': 'FFmpegExtractAudio',                'preferredcodec': 'mp3',                'preferredquality': '192'            }]        }     with youtube_dl.YoutubeDL(ydl_opts) as ydl:          print("Downloading audio now\n")          url: str = message.content.replace('?play ', '')          print(url)          ydl.download([url])我以前没有使用youtube-dl,所以我不知道它是如何工作的。
查看完整描述

1 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

获得不和谐搜索查询后,您可以使用:


import youtube_dl  # youtube-dl-2020.3.1

import traceback, os, json

from youtube_search import YoutubeSearch  # pip install youtube_search 

"""

sources :

https://github.com/ytdl-org/youtube-dl/blob/master/README.md#embedding-youtube-dl

https://stackoverflow.com/questions/23727943/how-to-get-information-from-youtube-dl-in-python/31184514#31184514

https://stackoverflow.com/a/43143553/797495

"""


search = 'carlos paiao playback'

ydl_opts = {

    'format': 'beataudio/best',

    'postprocessors': [{

        'key': 'FFmpegExtractAudio',

        'preferredcodec': 'mp3',

        'preferredquality': '192'

    }]

}

yt = YoutubeSearch(search, max_results=1).to_json()

try:

    yt_id = str(json.loads(yt)['videos'][0]['id'])

    yt_url = 'https://www.youtube.com/watch?v='+yt_id

    with youtube_dl.YoutubeDL(ydl_opts) as ydl:

        ydl.download([yt_url])

        info = ydl.extract_info(yt_url)

        songname = info.get('title', None) + "-" + yt_id + ".mp3"

        if os.path.isfile(songname):

            print("Song Downloaded: " + songname)

        else:

            print("Error: " + songname)

except:

    pass

    print(traceback.print_exc())

    print("no results")


查看完整回答
反对 回复 2022-08-16
  • 1 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信