Das herunterladen/speichern Periskop live-streaming-übertragungen
Ich krabbele tweets und, sofern verfügbar, speichern von Informationen auf externe Ressourcen (z.B. Instagram-Bilder). Jetzt Leute anfangen mit Periskop, wo Nutzer tweet-links, um ein Periskop live-streaming-übertragung (auch dann für die nächsten 24h). Hier ist ein Beispiel-link, aber es ist möglicherweise ungültig/veraltet bald.
Gibt es eine Möglichkeit, ich kann Holen, die-broadcast, d.h., speichern Sie es lokal als video-Datei?
Wenn ich mir den Quellcode von einem Periskop broadcast, bekomme ich sowas:
<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>
Also alles, was ist im wesentlichen ein Skript erstellt. Ich habe versucht, Blick in die Javascript-Datei, um zu sehen, ob ich irgendwie zumindest rekonstruieren, die stream-URL oder so. Aber ich war nicht erfolgreich. Ich habe auch versucht mit Google Chrome zu untersuchen, die Anfragen von der Seite. Aber das auch nicht bringen mich nicht weiter.
EDIT: Hier meine aktuelle Phantom.js Skript:
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();
});
Wenn ich mit Google Chrome ' s Developer Tools finde ich die application/vnd.apple.mpegurl
Anfrage, die aber nie erscheint, von dem Phantom.js script.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwendet es Http Live Streaming (HLS) auf die Chrome-Desktop, so dass nur proxy/sniff HTTP-Antworten vom Typ
application/vnd.apple.mpegurl
und Holen Sie sich die request-URL. Ich war in der Lage zu beobachten, Ihr stream in VLC.Können Sie Phantom.js.
vlc
,ffmpeg
,hls-fetch
). Mitvlc
undffmpeg
habe ich nicht bekommen gute Ergebnisse - kein Ton, falsche Wiedergabe-Geschwindigkeit, Fehler. Die Ergebnisse derhls-fetch
Perl-Skript sind perfekt. Das Ding ist nur, dass es aufhört, nach 3 Segmente, aber ich könnte in der Lage sein zu verlängern die Skript selber. Wie auch immer, ich habe keine Ahnung, wie kann ich extrahieren Sie die URL des Streams in eine programmatische Art und Weise.playlist.m3u8
URL, richtig? Es funktioniert in VLC 2.x einfach nur gut. Wie ich oben sagte, um es im code abfangen der Anfragen. Sie können es tun mit Phantom.js. Ich aktualisierte die Antwort mit einem link zu den docs.application/vnd.apple.mpegurl
unter all den Anfragen -- das finde ich mit Google Chrome die Entwickler-Konsole, zum Beispiel. Was bin ich? Ich würde vermuten, dass der HTTP-Antwort, die ich bekommen einige Javascript-code, der zusätzliche HTTP-Requests, Phantom.js nicht mehr deckt. Aber ich habe keine Ahnung, wirklich.die neueste version des fantastischen livestreamer (1.12.2) herunterladen können Periskop videos
wenn Sie wollen, um es programmatisch zu sehen, wie das ist, StackOverflow, die Periskop-plugin in python ist hier:
https://github.com/chrippa/livestreamer/blob/develop/src/livestreamer/plugins/periscope.py
playlist.m3u8
. Ich konnte den download mit Scopedown und dann haben Sie eine TS-Datei (müssen die richtigen codecs).