Python:如何流式传输音频文件(m4a/webm)而不是简单地下载它?

标签 python python-3.x audio youtube pafy

我使用 pafy 模块以 m4a 和 webm 格式获取 YouTube 视频的音频下载链接,我想在不简单下载的情况下进行 Steam 。我怎样才能实现它?

例如:
对于这个链接https://www.youtube.com/watch?v=3tmd-ClpJxA [Taylor Swift - Look What You Made Me Do],我看到了这个质量最好的 m4a 格式链接(还有另一种格式 webm,但我认为 m4a 是最好的,不是吗?很想听听意见)

m4a: http://r2---sn-52vaavvoapox-itql.googlevideo.com/videoplayback?id=ded99df829692710&itag=140&source=youtube&ms=au&ei=DRvmWa-kDtr9oQObxIuACw&pl=24&mv=m&initcwndbps=285000&mn=sn-52vaavvoapox-itql&mm=31&ratebypass=yes&mime=audio/mp4&gir=yes&clen=4061037&lmt=1507168899082254&dur=255.651&mt=1508252315&signature=595AD7F495FC0DA98D8332BDF2A760A3CFA727C5.5FD2DE38A2F5575E0392BA54345D405999A72AE3&key=dg_yt0&ip=103.200.41.86&ipbits=0&expire=1508274029&sparams=ip,ipbits,expire,id,itag,source,ms,ei,pl,mv,initcwndbps,mn,mm,ratebypass,mime,gir,clen,lmt,dur



那么我该如何流式传输而不是简单地下载它。

此外,如果您认为这里已经提出过此类问题,请接受我的歉意并告诉我

最佳答案

如果您只是想从特定 URL 播放/流式传输音频,您可以尝试 vlc绑定(bind) python .更多详情 here

可以安装为pip install python-vlc
这是一个直接从 URL 流式传输音频的示例代码。 player对象增加了音频播放器的优势,例如暂停、恢复、停止等控件。

使用的网址是 m4a url 如问题所述。

源代码

import vlc
import time
url = "http://r2---sn-q4fl6nlr.googlevideo.com/videoplayback?id=ded99df829692710&itag=140&source=youtube&ei=DRvmWa-kDtr9oQObxIuACw&pl=32&ratebypass=yes&mime=audio/mp4&gir=yes&clen=4061037&lmt=1507168899082254&dur=255.651&signature=4380D44827E745850E8034A17DD2CF71493515B2.49EE0269B463E530D2C05D79E658319E3354F4B5&key=cms1&ip=103.200.41.86&ipbits=0&expire=1508274029&sparams=clen,dur,ei,expire,gir,id,initcwndbps,ip,ipbits,ipbypass,itag,lmt,mime,mip,mm,mn,ms,mv,pl,ratebypass,source&rm=sn-52vaavvoapox-itql7l,sn-h55z7z&req_id=ac17cbf87900a3ee&redirect_counter=2&fexp=23702512&cms_redirect=yes&ipbypass=yes&mip=2605:6000:ec02:7e00:6d00:a5a1:a309:abb6&mm=30&mn=sn-q4fl6nlr&ms=nxu&mt=1508259877&mv=m"

#define VLC instance
instance = vlc.Instance('--input-repeat=-1', '--fullscreen')

#Define VLC player
player=instance.media_player_new()

#Define VLC media
media=instance.media_new(url)

#Set player media
player.set_media(media)

#Play the media
player.play()

一些player控制
>>> play.pause()  #pause play back
>>> player.play() #resume play back
>>> player.stop() #stop play back

关于Python:如何流式传输音频文件(m4a/webm)而不是简单地下载它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46793526/

相关文章:

python - 在 CX_Freeze 中从 Python 3.6 脚本创建单个 exe

python - 在 TensorFlow2 中使用 GradientTape() 计算偏导数时出现问题

python - 检查特定的声音(输入:麦克风)

javascript - 在列表中查找不被列表中其他矩形包含的矩形的最快方法

python - 使用索引列表对 pandas DataFrame 进行索引并填充值

python - 创建一个函数来对方程的结果求和。请看,没那么简单?

python-3.x - 使用 Gensim 进行动态主题建模/哪个代码?

audio - PCM/WAV文件样本到实际声音/频率

android - 将简单的音频过滤器挂接到android下播放的音乐

python - 如何避免 'Failed to retrieve access token: { "错误": "invalid_grant" }' in offline GAE cron tasks?