如何仅流式传输来自 YouTube 的视频的声音? [关闭]
Posted
技术标签:
【中文标题】如何仅流式传输来自 YouTube 的视频的声音? [关闭]【英文标题】:How can I stream only the sound of a video from YouTube? [closed] 【发布时间】:2012-05-04 04:53:59 【问题描述】:我想只播放来自 youtube 的声音。我需要这个用于ios,但其他人可以。我在***上搜索过,但找不到。因为我不想使用其他软件,所以我想通过代码直接流式传输 youtube 视频的声音。它也应该在后台工作。
【问题讨论】:
这似乎违反了 YouTube 服务条款,请参阅 ***.com/questions/2312179/… @itstame 写道“MusicPiped for android 声称现在可以做到这一点,换句话说,不下载流的视频部分。但它是如何做到的,我不知道,我希望它发生在我的 Linux 系统上。” 【参考方案1】: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 客户端也可以做到这一点是理所当然的。
【讨论】:
如果在 Flashgot 列表中添加了 VLC、SMPlayer 或 Clementine 等外部媒体播放器,无需下载即可开始播放音频流 哇,酷!我不知道!大多数浏览器内播放器都因为高水平的 javascript 而变得糟糕。 还有,unix.stackexchange.com/q/229787/32012,***.com/a/32613680/4098390,【参考方案2】:根据Youtube API blog post,在 iOS 上播放 youtube 的唯一选择是链接到视频(并让内部 YouTube 应用播放视频),或者从 UIWebView 链接并从那里播放。 不支持纯音频播放。
【讨论】:
【参考方案3】:你不能。您从 youtube 收到的数据流包括视频/音频流。
您如何处理数据,由您决定。 This thread 有关于这个主题的有趣信息。
【讨论】:
那么,我怎样才能获得包含视频/音频流的所有数据? 您是否想知道如何下载 youtube 视频(检索正确的 url 并下载数据)?因为这与您提出的问题完全不同,应该在单独的线程中完成。 呃,不完全正确。我现在正在收听一个提供音频和视频的直播流?。为了记录,音频和视频是单独的流。 @Chris 早在 2012 年,这是不可能的。 ;) 看看这个答案有多老?! @karlphillip 是的,显然我的 AOL 关键字搜索不像以前那么有用了。 ¯\_(ツ)_/¯【参考方案4】:我会使用 MPMoviePlayerController 并隐藏它的视图。
【讨论】:
我相信是这样,但用户必须做的一个技巧就是点击主页按钮。音频停止,然后他们必须双击主页按钮,滑动到媒体控件并点击播放。我不知道有没有办法解决这个问题。【参考方案5】:使用 Audacity 软件,您可以录制计算机上播放的任何来源的音频。由于 Audacity 是开源的,您可以找到开源浏览器,您可以将它们组合起来并从 youtube 获取音频。当然,它的工作量很大,但我只是说它可能与其他人不同。
【讨论】:
执行此操作也可能会耗尽磁盘空间?。您以前是否曾在正在运行的系统上填充磁盘?这是一种享受?让我告诉你。【参考方案6】:在 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“下载器”(像here),然后在 Firefox 中启动 youtube 视频后,使用 Flashgot 通过转到“可用格式/DASH(单独的音频和视频轨道)”来仅播放音频流
[
并选择特定的音轨。
[
可以在 Flashgot 中分配多媒体播放器,而不是像 VLC 或 SMPlayer 这样的下载器,因为大多数视频播放器似乎都能完成这项工作(在 Linux 中;对于 Windows,请参阅下面的更新);甚至像 Clementine 这样的音频播放器,尽管有些音频播放器可能无法正常工作。
它会在几秒钟后开始,一些玩家比其他人多。 Linux 中最快的似乎是 SMPlayer。
更新:
Flashgot 必须是最新的。
在 Windows 中,Flashgot 似乎在与上图不同的位置显示一些音频流,该位置已经在第一个列表中(在 DASH 列表之前)。 SMPlayer 是最好的 AFAICT。 VLC 有效,但不适用于 Flashgot 列出的所有音频流。 Clementine、Foobar2000 和 XMPlay 失败。这可能是一个整体的 Windows 编解码器问题。 MPC-HC 启动但不能正确缓冲并提前停止。
【讨论】:
? 为您使用mpv
开箱即用 ? 对我来说。其他基于 CLI 的实用程序都没有按预期工作。
@Chris - 这可能会在以后的更新中在 SMTube 中更正,但我可以确认目前(2018 年 3 月 12 日)SMPlayer 的纯音频功能无法正常工作。跨度>
【参考方案7】:
音频和视频有单独的流。这是在 mp4 到 flash 转换中的默认设置。
您可以获得flash格式的组合流或mp4格式的分离。
示例: [耳机立体声测试(高清)][youtube.com/watch?v=ZjAQylVPU3I]
包含
[闪流][youtube.com/v/ZjAQylVPU3I]
包含的组合 mp4 格式的audio stream 和video stream。
*很抱歉,这些链接无法正常工作,因为它们是根据 ip 、过期数据和其他内容自定义的。
为了获取这些链接,我使用 uBlock origin for chrome,因为它具有记录器功能,显示与服务器建立的所有连接。 搜索:mime=video,您可以看到所有链接,然后删除范围以获得完整长度。与 mime=audio 相同,您也可以将其用于其他 Flash 播放器中的流,但 这违反了服务条款。
【讨论】:
以上是关于如何仅流式传输来自 YouTube 的视频的声音? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何确保 YouTube API 仅返回可在 iPhone 上流式传输的视频?
如何使用 HTML 5 仅播放 Youtube 视频的音频?