如何获取YouTube直播流的实时m3u8文件而不是DVR m3u8文件?

5

我希望获取一个实时的m3u8文件,而不是包含太多分段(4小时)且下载和处理速度较慢的DVR m3u8文件。

例如,Sky News的直播频道:

www.youtube.com/watch?v=y60wDzZt8yg

我的做法:

更改user-agent字符串为iPad或者访问

www.youtube.com/get_video_info?&video_id=y60wDzZt8yg

我可以获得类似于

manifest.googlevideo.com/api/manifest/hls_variant/playlist_type/DVR/signature/11D1EE619ACDCA91661CB6F42597F96F0C86CC1F.742A7B383F4B10A099B1C7AAEF1E15DCD2F160C6/ipbits/0/fexp/9416126%2C9420452%2C9422596%2C9423459%2C9423661%2C9423662/source/yt_live_broadcast/id/y60wDzZt8yg.2/sver/3/key/yt6/upn/0y8ab4RaX_U/expire/1454380402/sparams/gcr%2Cid%2Cip%2Cipbits%2Citag%2Cmaudio%2Cplaylist_type%2Cpmbypass%2Csource%2Cexpire/ip/86.172.63.152/itag/0/pmbypass/yes/maudio/1/gcr/gb/file/index.m3u8

其中包含多个分辨率的子m3u8文件。

打开这个720p子m3u8文件时:

它包含了最近4小时的ts片段,处理和进一步操作速度非常缓慢。我发现如果在上述链接中添加查询字符串
?start_seq=344610
我可以得到一个更短的m3u8文件,它以特定序列开始。然而,除非同时增加start_seq参数,否则文件中的序列数将随时间增加。
相比之下,对于由频道提供者禁用回放的直播流,YouTube会自动返回一个只包含几个不到一分钟的序列的直播m3u8文件。链接最显著的区别是 playlist_type/LIVE
而不是 playlist_type/DVR
我想知道是否可以获取那些允许回放的YouTube直播流的LIVE m3u8文件?也许有一些类似于"start_seq=XXX"的参数?或者有一些API可以直接返回直播m3u8链接吗?非常感谢。

你找到答案了吗? - John Bassos
1个回答

0

我不确定这是否完全符合您的要求,但是使用Firefox和将用户代理设置为iOS上的Safari,再结合Charles Proxy,我能够获取带有DVR链接的m3u8播放列表。

HTTP GET: https://manifest.googlevideo.com/api/manifest/hls_variant/upn/wLKv6OL3J1A/sparams/gcr%2Cid%2Cip%2Cipbits%2Citag%2Cplaylist_type%2Cpmbypass%2Cratebypass%2Csource%2Cexpire/expire/1454656348/signature/D1ADDA66092157D87C5DBAB0ECD81AB1D4467291.646FFD703F6ADA2C2E9769F7F3590274C9555148/id/y60wDzZt8yg.2/key/yt6/ip/209.122.120.50/ratebypass/yes/pmbypass/yes/gcr/us/itag/0/ipbits/0/fexp/9405349%2C9408491%2C9418223%2C9419543%2C9420452%2C9421886%2C9422596%2C9422780%2C9423661%2C9424135%2C9424163%2C9425065%2C9425200%2C9425744%2C9426402%2C9427000%2C9427753/playlist_type/DVR/source/yt_live_broadcast/sver/3/keepalive/yes/file/index.m3u8?cpn=OjahYpsGmZq6lLAS

带有头部的完整curl命令:

curl -H "Host: manifest.googlevideo.com" \
-H "User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16" \
-H "Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5" \
-H "Accept-Language: en-US,en;q=0.5" \
-H "Range: bytes=0-" \
-H "Referer: https://m.youtube.com/watch?v=y60wDzZt8yg" \
https://manifest.googlevideo.com/api/manifest/hls_variant/upn/wLKv6OL3J1A/sparams/gcr%2Cid%2Cip%2Cipbits%2Citag%2Cplaylist_type%2Cpmbypass%2Cratebypass%2Csource%2Cexpire/expire/1454656348/signature/D1ADDA66092157D87C5DBAB0ECD81AB1D4467291.646FFD703F6ADA2C2E9769F7F3590274C9555148/id/y60wDzZt8yg.2/key/yt6/ip/209.122.120.50/ratebypass/yes/pmbypass/yes/gcr/us/itag/0/ipbits/0/fexp/9405349%2C9408491%2C9418223%2C9419543%2C9420452%2C9421886%2C9422596%2C9422780%2C9423661%2C9424135%2C9424163%2C9425065%2C9425200%2C9425744%2C9426402%2C9427000%2C9427753/playlist_type/DVR/source/yt_live_broadcast/sver/3/keepalive/yes/file/index.m3u8?cpn=OjahYpsGmZq6lLAS

这个链接包含一个cpn参数,它是一个频道隐私号码。我认为这是一个可选的URL请求参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接