mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-24 06:59:52 +01:00
vidrw work: parse first url from flashvars (experimental), add special case for ustream!
This commit is contained in:
parent
a0b53344f4
commit
8eee469c93
@ -133,6 +133,27 @@ __wbvidrw = (function() {
|
|||||||
var value = child.getAttribute("value");
|
var value = child.getAttribute("value");
|
||||||
obj_url = value;
|
obj_url = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//flashvars extraction: work in progress
|
||||||
|
if (name == "flashvars") {
|
||||||
|
var value = child.getAttribute("value");
|
||||||
|
|
||||||
|
var pairs = value.split('&');
|
||||||
|
|
||||||
|
var result = {};
|
||||||
|
pairs.forEach(function(pair) {
|
||||||
|
if (obj_url) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pair = pair.split('=');
|
||||||
|
var qval = decodeURIComponent(pair[1] || '');
|
||||||
|
//TODO: allow for picking from multiple urls
|
||||||
|
if (qval.indexOf("http") == 0) {
|
||||||
|
obj_url = qval;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -275,13 +296,26 @@ __wbvidrw = (function() {
|
|||||||
if (xhr.status == 200) {
|
if (xhr.status == 200) {
|
||||||
var videoinfo = JSON.parse(xhr.responseText);
|
var videoinfo = JSON.parse(xhr.responseText);
|
||||||
|
|
||||||
// special case
|
// special cases
|
||||||
|
// Soundcloud
|
||||||
if (videoinfo._type == "playlist" && videoinfo.extractor == "soundcloud:playlist") {
|
if (videoinfo._type == "playlist" && videoinfo.extractor == "soundcloud:playlist") {
|
||||||
var player_url = "https://w.soundcloud.com/player/?visual=true&show_artwork=true&url=" + encodeURIComponent(videoinfo.webpage_url);
|
var player_url = "https://w.soundcloud.com/player/?visual=true&show_artwork=true&url=" + encodeURIComponent(videoinfo.webpage_url);
|
||||||
do_replace_iframe(elem, player_url);
|
do_replace_iframe(elem, player_url);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UStream
|
||||||
|
if (videoinfo.extractor == "ustream") {
|
||||||
|
if (!videoinfo.formats) {
|
||||||
|
videoinfo.formats = [{ext: videoinfo.ext,
|
||||||
|
url: videoinfo.url,
|
||||||
|
format_id: videoinfo.format_id
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
do_replace_video(elem, videoinfo);
|
||||||
|
}
|
||||||
|
|
||||||
// end special case
|
// end special case
|
||||||
|
|
||||||
if (videoinfo.formats) {
|
if (videoinfo.formats) {
|
||||||
@ -325,7 +359,7 @@ __wbvidrw = (function() {
|
|||||||
function do_replace_elem(elem, replacement) {
|
function do_replace_elem(elem, replacement) {
|
||||||
var tag_name = elem.tagName.toLowerCase();
|
var tag_name = elem.tagName.toLowerCase();
|
||||||
|
|
||||||
if (tag_name == "iframe" || tag_name == "object") {
|
if (tag_name == "iframe" || tag_name == "object" && elem.parentNode) {
|
||||||
elem.parentNode.replaceChild(replacement, elem);
|
elem.parentNode.replaceChild(replacement, elem);
|
||||||
} else if (tag_name == "embed") {
|
} else if (tag_name == "embed") {
|
||||||
if (elem.parentElement && elem.parentElement.tagName.toLowerCase() == "object") {
|
if (elem.parentElement && elem.parentElement.tagName.toLowerCase() == "object") {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user