如何仅从YouTube流式传输视频的声音?

时间:2012-04-23 14:53:32

标签: objective-c ios audio stream youtube

我想只播放来自youtube的声音。我需要这个用于IOS,但其他人可以。我搜索了stackoverflow,但我找不到。因为我不想使用其他软件,所以我想直接通过代码直接传输youtube视频的声音。它也应该在背景上工作。

7 个答案:

答案 0 :(得分:7)

Flashgot(适用于Firefox)有一种方法只能下载Youtube视频的音频。它公开了音频的链接,如下所示:

https://r3---sn-p5qlsu7d.googlevideo.com/videoplayback?id=887ce37c617a3225&itag=141&source=youtube&requiressl=yes&gcr=ca&ratebypass=yes&mime=audio%2Fmp4&gir=yes&clen=4012348&lmt=1409362978343745&dur=125.828&signature=0A00B9B16BB6EF3192DF33EEF9B2AB67F66F501F.0B649D407144B914A7CC7BE00E795B5BD1B9D932&upn=VFAbXgDGSU8&key=cms1&fexp=900718%2C924231%2C924637%2C927622%2C930809%2C931354%2C932404%2C9405454%2C941004%2C943917%2C945066%2C947209%2C947218%2C948124%2C952302%2C952605%2C952901%2C955301%2C957103%2C957105%2C957201&sver=3&ip=24.235.37.181&ipbits=0&expire=1419930614&sparams=clen,dur,expire,gcr,gir,id,ip,ipbits,itag,lmt,mime,mm,ms,mv,ratebypass,requiressl,source&cmbypass=yes&req_id=3eb2c618c54ca3ee&redirect_counter=2&cms_redirect=yes&mm=26&ms=tsu&mt=1419909012&mv=m

好的,这是一个非常大的链接。这是分解成碎片的相同链接:

https://r3---sn-p5qlsu7d.googlevideo.com/videoplayback?id=887ce37c617a3225
&itag=141
&source=youtube
&requiressl=yes
&gcr=ca
&ratebypass=yes
&mime=audio/mp4 #Here's where audio only is specified.
&gir=yes
&clen=4012348
&lmt=1409362978343745
&dur=125.828
&signature=0A00B9B16BB6EF3192DF33EEF9B2AB67F66F501F.0B649D407144B914A7CC7BE00E795B5BD1B9D932
&upn=VFAbXgDGSU8
&key=cms1
&fexp=900718,924231,924637,927622,930809,931354,932404,9405454,941004,943917,945066,947209,947218,948124,952302,952605,952901,955301,957103,957105,957201
&sver=3
&ip=24.235.37.181 #Oh, look. My IP address.
&ipbits=0
&expire=1419930614
&sparams=clen,dur,expire,gcr,gir,id,ip,ipbits,itag,lmt,mime,mm,ms,mv,ratebypass,requiressl,source
&cmbypass=yes
&req_id=3eb2c618c54ca3ee
&redirect_counter=2
&cms_redirect=yes
&mm=26
&ms=tsu
&mt=1419909012
&mv=m

非常有趣。这使得Flashgot只能下载音频并跳过视频,从而节省了带宽。我缺少详细信息,比如Flashgot如何创建此链接,但如果Flashgot有办法,那么其他HTTP客户端也可以这样做。

答案 1 :(得分:3)

根据Youtube API blog post,您在iOS上播放youtube的唯一选项是链接到视频(并让内部YouTube应用播放视频),或者从UIWebView链接并从那里播放。  不支持仅音频播放

答案 2 :(得分:2)

你不能。您从youtube收到的数据流包括视频/音频流。

您对数据做了什么,这取决于您。 This thread有关于这个主题的有趣信息。

答案 3 :(得分:1)

我会使用MPMoviePlayerController并隐藏它的视图。

答案 4 :(得分:1)

使用Audacity软件,您可以从任何来源录制计算机上播放的音频。由于Audacity是开源的,你可以找到开源浏览器,你可以将它们组合起来并从youtube获取音频。当然它有很多工作,但我只是说它可能与其他工作不同。

答案 5 :(得分:1)

在Linux中:

  • mps-youtube CLI解决方案。更多详情here

  • VLC 也可以在没有视频的情况下启动 - 更多here

  • mplayer 可与命令mplayer -novideo URL

  • 一起使用
  • mpv 可与命令mpv --no-video URL

  • 一起使用
  • Youtube Viewer ,也可以使用CLI视频播放器here

跨平台解决方案:

another answer 中所述,Firefox的Flashgot插件可识别以下载Youtube视频的音频。它将显示每个视频的可用流列表。

想法是在外部播放器中启动youtube流,但是能够通过将外部播放器添加为Flashgot“downloader”来仅使用Firefox中的Flashgot插件选择音频流(比如here)然后,在Firefox中启动youtube视频后,使用Flashgot通过转到'Available formats / DASH(单独的音频和视频轨道)'来播放音频流

[enter image description here

并选择特定的音轨。

[enter image description here

多媒体播放器可以在Flashgot中分配,而不是像VLC或SMPlayer这样的下载器,因为大多数视频播放器似乎能够完成这项工作(在Linux中;对于Windows,请参见下面的更新);甚至像Clementine这样的音频播放器,虽然有些音频播放器可能无法正常工作。

几秒后它会开始,有些玩家比其他玩家更多。 Linux中最快的似乎是 SMPlayer

<强>更新

  • Flashgot必须是最新的。

  • 在Windows中,Flashgot似乎在与上图不同的位置显示一些音频流,这些位于第一个列表中(在DASH列表之前)。 SMPlayer是最好的AFAICT。 VLC可以工作,但不适用于Flashgot列出的所有音频流。 Clementine,Foobar2000和XMPlay失败了。它可能是整体Windows编解码器问题。 MPC-HC启动但没有正确缓冲并且在它应该停止之前很久就会停止。

答案 6 :(得分:1)

音频视频单独的流。默认情况下,这是mp4到闪存转换。

您可以获得Flash格式的合并流或以mp4格式分开。

例: [耳机立体声测试(高清)] [youtube.com/watch?v=ZjAQylVPU3I]

包含

[flash stream] [youtube.com/v/ZjAQylVPU3I]

包含组合 mp4格式的audio streamvideo stream

*对不起,但链接不起作用,因为它们是根据IP,过期数据和其他内容进行自定义的。

为了获得这些链接,我使用uBlock origin作为chrome,因为它具有记录器功能,显示了对服务器的所有连接。 搜索:mime = video,你可以看到所有链接,然后删除范围以获得全长。与mime = audio相同,您也可以将其用于其他Flash播放器中的流,但违反服务条款