gpt4 book ai didi

audio - 有没有办法在python 3.7中使用youtube-dl或pafy库直接从youtube视频流式传输音频?

转载 作者:行者123 更新时间:2023-12-03 01:23:04 25 4
gpt4 key购买 nike

我不想一次又一次地从 youtube 视频下载音频,而是想流式传输音频并直接从缓冲区访问原始音频字节。换句话说,我想将原始音频字节存储在 RAM 中并在我的 python 脚本中使用它们,而无需在系统上完全下载和保存音频文件以减少内存写入周期。在 youtube-dl 库或 pafy 库中是否有任何解决方法来做同样的事情?

最佳答案

是的,有,我刚刚发现它是如何工作的。
在重写时,您可以使用 discord.FFmpegPCMAudio(url) 要做到这一点。您必须记住,您放置的网址 进入 discord.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

我希望这已经说清楚了。

关于audio - 有没有办法在python 3.7中使用youtube-dl或pafy库直接从youtube视频流式传输音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60745020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com