一个网站有一个视频标签元素,结构如下:
<video id="playerVideo" width="450px" autoplay="autoplay" height="338px" style="height:100%;width:100%;" class="mejs-rai-e" src="blob:http%3A//www.example.com/d70a74e1-0324-4b9f-bad4-84e3036ad354"></video>
如您所见,src 元素有一个预先配置为 blob 的 url。
有没有类似脚本或者视频下载器插件的方法来定位文件并下载?
如果您有 blob url,您可以从 <a>
中设置 href 属性(link) 标签下载文件。
在下面的示例中,我使用 xhr 响应创建了 blob url。问题的答案基本上可以在名为 download() 的函数中找到。
function setVideo(blob)
{
var url = URL.createObjectURL(blob);
var video = document.getElementById('playerVideo');
video.type = "video/mp4";
video.src = url;
video.load();
download(url);
}
function download(blob_url)
{
var fileName = "video.mp4";
var a = document.createElement('a');
a.href = blob_url;
a.download = fileName;
a.textContent = "DOWNLOAD " + fileName;
document.getElementById('blobURL').innerHTML = "BLOB URL: <b>"+blob_url+"</b>";
document.getElementById('download').appendChild(a);
}
$(document).ready(function(){
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function() {
setVideo(xhr.response);
};
xhr.open('GET', 'https://cors-anywhere.herokuapp.com/http://techslides.com/demos/sample-videos/small.mp4');
xhr.send();
});
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<h1>My Page</h1>
<p>Some paragraph.</p>
<video id="playerVideo" width="320" height="240" autoplay="autoplay" muted>
Your browser does not support the video tag.
</video><br>
<span id="blobURL"></span><br>
<span id="download"></span>
</body>
</html>