有没有一种方法可以使用youtube-dl或python3.7中的pafy库直接从YouTube视频中传输音频? [英] Is there a way to directly stream audio from a youtube video using youtube-dl or pafy library in python 3.7?

查看:0
本文介绍了有没有一种方法可以使用youtube-dl或python3.7中的pafy库直接从YouTube视频中传输音频?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不想一次又一次地从YouTube视频下载音频,而是希望流式传输音频并直接访问缓冲区中的原始音频字节。换句话说,我希望将原始音频字节存储在RAM中,并在我的Python脚本中使用它们,而不需要完全下载并将音频文件保存在系统上,以减少内存写入周期。YouTube-dl库或pafy库中是否有解决办法来执行相同的操作?

推荐答案

有,我刚刚了解了它的工作原理。 在重写时,您可以使用discord.FFmpegPCMAudio(Url)来执行此操作。您必须记住,您放入中的URL不一致。FFmpegPCMAudio()不是您可以从浏览器复制的YouTube链接,例如https://www.youtube.com/watch?v=videoid。 您将从以下代码中获得一个巨大的json字典,其中包含"真正的"url:

# Get a json library with general video information, as well as the url we need to stream the audio.

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
     song_info = ydl.extract_info("https://www.youtube.com/watch?v=INPUTYTLINKHERE", download=False)

如果您愿意,可以打印出Song_info以查看有关视频的更多信息,如播放量、点赞数等:

print(song_info)

以下是最终代码:(我使用@CLIENT和Async def on_Message(Message))

# The "real" url is in song_info["formats"][0]["url].

message.guild.voice_client.play(discord.FFmpegPCMAudio(song_info["formats"][0]["url"]))
message.guild.voice_client.source = discord.PCMVolumeTransformer(message.guild.voice_client.source)
message.guild.voice_client.source.volume = 1

我希望这表明了这一点。

这篇关于有没有一种方法可以使用youtube-dl或python3.7中的pafy库直接从YouTube视频中传输音频?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆