下载/存储Periscope直播流媒体广播

时间:2015-05-06 09:55:24

标签: javascript twitter download video-streaming live-streaming

我正在抓取推文,如果可用,则将信息存储到外部资源(例如,Instagram图片)。现在人们开始使用Periscope,用户可以通过推特链接到Periscope直播流媒体广播(也可以在接下来的24小时内播放)。 Here是一个示例链接,但很快就会失效/过时。

我有什么方法可以获取该广播,即将其作为视频文件存储在本地?

当我查看Periscope广播的源代码时,我会得到类似的内容:

<html>
<head>
  ...
  <script src="https://assets.periscope.tv/assets/bugsnag-2.min.js"></script>
  <script src="https://assets.periscope.tv/js/vendor.a8cd99eb89a488ec6ea465f57d3ad41bcd832eff.js"></script>
</head>
<body>
  <div id="periscope-app" class="u-fullHeight"></div>
  <script src="https://assets.periscope.tv/js/application.min.2a8176c317fb715fd0e6c2728cb04318c5c53941.js"></script>
</body>

所以一切都基本上都是脚本化的。我试着查看Javascript文件,看看我是否能以某种方式至少重建流URL或其他东西。但我没有成功。我还尝试使用谷歌浏览器检查从侧面提出的请求。但这也没有让我更进一步。

编辑:这是我目前的Phantom.js脚本:

var page = require('webpage').create(),
  system = require('system'),
  t, address;

if (system.args.length === 1) {
  console.log('Usage: periscope.js <periscope-url>');
  phantom.exit();
}

page.onResourceRequested = function(request) {
  console.log('Request ' + JSON.stringify(request, undefined, 4));
};

page.onResourceReceived = function(response) {
  console.log('Receive ' + JSON.stringify(response, undefined, 4));
};

address = system.args[1];

page.settings.userAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36';
page.open(address, function(status) {
  if (status !== 'success') {
    console.log('FAIL to load the address');
  } else {

  }
  //phantom.exit();
});

当我使用谷歌浏览器的开发者工具时,我找到了application/vnd.apple.mpegurl请求,但它从未从Phantom.js脚本中弹出。

2 个答案:

答案 0 :(得分:2)

它在Chrome桌面上使用Http Live Streaming(HLS),因此只需要application/vnd.apple.mpegurl类型的代理/嗅探HTTP响应,并获取请求网址。我能够在VLC中观看您的视频流。

您可以使用Phantom.js

答案 1 :(得分:2)

最新版本的精彩livestreamer(1.12.2)可以下载潜望镜视频

livestreamer https://www.periscope.tv/w/aKzPpDIxNDYxN3w2OTg1MTQxNZnjGACxw2Nyl6RSvdnX8T3EaE7z5mSvxfK_-uqS5SQv best --output output.mp4

如果你想以编程方式看到这是StackOverflow,那么python中的periscope插件就在这里: https://github.com/chrippa/livestreamer/blob/develop/src/livestreamer/plugins/periscope.py