1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 08:04:49 +01:00

video fixes: disable adding a fixed buffer on unbounded range requests,

as that messes up FF html5 player.. (it assumes a full stream)
video response: ensure Accept-Ranges: bytes is being added on 206
responses
This commit is contained in:
Ilya Kreymer 2014-12-03 21:59:03 -08:00
parent bbe5068321
commit 8a87966ebd
3 changed files with 22 additions and 5 deletions

View File

@ -33,7 +33,7 @@ class HeaderRewriter:
'xml': ['/xml', '+xml', '.xml', '.rss'],
}
PROXY_HEADERS = ['content-type', 'content-disposition', 'content-range']
PROXY_HEADERS = ['content-type', 'content-disposition', 'content-range', 'accept-ranges']
URL_REWRITE_HEADERS = ['location', 'content-location', 'content-base']

View File

@ -54,14 +54,16 @@ __wbvidrw = (function() {
if (child.tagName == "PARAM" && !obj_url) {
var name = child.getAttribute("name");
name = name.toLowerCase();
if (name == "flashvars") {
/* if (name == "flashvars") {
var value = child.getAttribute("value");
value = decodeURIComponent(value);
var inx = value.indexOf("=http");
if (inx >= 0) {
obj_url = value.substring(inx + 1);
}
} else if (name == "movie") {
}
*/
if (name == "movie") {
var value = child.getAttribute("value");
obj_url = value;
}
@ -86,6 +88,8 @@ __wbvidrw = (function() {
// Wait to see if video is playing, if so, don't replace it
window.setTimeout(function() {
if (ytvideo[0].readyState == 0) {
delete window.yt;
delete window.ytplayer;
check_replacement(ytvideo[0], wbinfo.url);
}
}, 4000);
@ -114,6 +118,13 @@ __wbvidrw = (function() {
}
src = src.replace(VIMEO_RX, "http://player.vimeo.com/video/$1");
if (window.yt) {
delete window.yt;
}
if (window.ytplayer) {
delete window.ytplayer;
}
// end special cases
var xhr = new XMLHttpRequest();
@ -357,5 +368,8 @@ __wbvidrw = (function() {
flashembed(div_id, opts, {"config": config});
}
document.addEventListener("DOMContentLoaded", check_videos);
document.addEventListener("DOMContentLoaded", function() {
window.setTimeout(check_videos, 200);
});
})();

View File

@ -71,7 +71,8 @@ class RangeCache(object):
if len(parts) == 2 and parts[1]:
end = int(parts[1])
else:
end = start + self.DEFAULT_BUFF - 1
#end = start + self.DEFAULT_BUFF - 1
end = ''
return url, start, end, use_206
@ -142,10 +143,12 @@ class RangeCache(object):
status_headers = StatusAndHeaders('206 Partial Content', spec['headers'])
status_headers.replace_header('Content-Range', content_range)
status_headers.replace_header('Accept-Ranges', 'bytes')
else:
status_headers = StatusAndHeaders('200 OK', spec['headers'])
status_headers.replace_header('Content-Length', str(maxlen))
return status_headers, read_range()