Javascript 从URL下载视频,无需在chrome浏览器中打开
我注册了一门课程,大约有150个视频 我现在所做的一切: 目前没有可用的下载按钮。 为了获得每个视频文件的URL,我创建了脚本,通过控制台运行,如下所示: 我观看这些视频的网站与xxxxx标记的网站不同。 e、 我在linkedin上看学习视频,在lynda上看视频等等Javascript 从URL下载视频,无需在chrome浏览器中打开,javascript,google-chrome,download,console,html5-video,Javascript,Google Chrome,Download,Console,Html5 Video,我注册了一门课程,大约有150个视频 我现在所做的一切: 目前没有可用的下载按钮。 为了获得每个视频文件的URL,我创建了脚本,通过控制台运行,如下所示: 我观看这些视频的网站与xxxxx标记的网站不同。 e、 我在linkedin上看学习视频,在lynda上看视频等等 console.log(“+document.title)+” + ""); document.getElementsByClassName(“视频下一步按钮”)[0]。单击(); 上述代码的输出示例如下: <h2>
console.log(“+document.title)+”
+
"");
document.getElementsByClassName(“视频下一步按钮”)[0]。单击();
上述代码的输出示例如下:
<h2>Overview of QGIS features: Learning QGIS (2015)</h2>
<a href="https://files3.xxxxx.com/secure/courses/383524/VBR_MP4h264_main_SD/383524_01_01_XR15_Overview.mp4?V0lIWk4afWPs3ejN5lxsCi1SIkGKYcNR_F7ijKuQhDmS1sYUK7Ps5TYBcV-MHzdVTujT5p03HP10F_kqzhwhqi38fhOAPnNJz-dMyvA2-YIpBOI-wGtuOjItlVbRUDn6QUWpwe1sRoAl__IA1zmJn3gPvC7Fu926GViqVdLa3oLB0mxRGa7i> click here </a>
QGIS功能概述:学习QGIS(2015)
我已经用xxxxx替换了域名
通过这种方式,我可以在不单击“下一步”的情况下覆盖所有视频(我想知道我是否也可以通过使用一些超时技术来自动化此过程)
单击每个链接时,chrome窗口如下所示:
通过这种方式,单击3dots->下载后,我可以单独保存视频
我想要什么:
方法保存所有视频,无需单独打开。Challenge
首先,在以下情况下,可以获取和保存大型二进制文件:
- 主机服务器的支持已启用
- 从同一服务器访问主机的网络
- 服务器对服务器
const downloaddvideos=(视频,标记)=>{
//在请求之间进行节流以避免性能或网络问题非常重要
const throttleTime=10000;//以毫秒为单位;调整它以适应您的硬件/网络功能
常数域https://www.sample-videos.com“;//站点的域
如果(标记
... 啊哼!一旦你有了一个视频文件名列表,你就可以使用wget或curl来下载它们-你可以从控制台(bash脚本、powershell或任何你的操作系统支持的)下载,或者如果你想通过浏览器这样做,你可以写到本地磁盘(但需要更多的交互来确认每个文件名)我试过这个,但视频的来源是来自另一个域(与网页不同),因此它在同一选项卡中打开视频URL,再次运行此代码会提示下载。我应该做些什么修改?@TheSwapnilsate您能澄清一下
提示下载的意思吗,以及在新选项卡中再次运行脚本时会发生什么情况?你能报告网络选项卡活动吗?!请检查我在帖子中所做的更改,并告诉我是否仍然需要发布网络选项卡的输出
@theswapnilsate在新选项卡中打开视频表明存在CORS问题,请尝试导航到“”并从那里运行脚本,也不要忘了将域变量更改为“”。
<h2>Overview of QGIS features: Learning QGIS (2015)</h2>
<a href="https://files3.xxxxx.com/secure/courses/383524/VBR_MP4h264_main_SD/383524_01_01_XR15_Overview.mp4?V0lIWk4afWPs3ejN5lxsCi1SIkGKYcNR_F7ijKuQhDmS1sYUK7Ps5TYBcV-MHzdVTujT5p03HP10F_kqzhwhqi38fhOAPnNJz-dMyvA2-YIpBOI-wGtuOjItlVbRUDn6QUWpwe1sRoAl__IA1zmJn3gPvC7Fu926GViqVdLa3oLB0mxRGa7i> click here </a>
const downloadVideos = (videos, marker) => {
// it's important to throttle between requests to dodge performance or network issues
const throttleTime = 10000; // in milliseconds; adjust it to suit your hardware/network capabilities
const domain = 'https://www.sample-videos.com'; // site's domain
if (marker < videos.length) {
console.log(`Download initiated for video ${videos[marker].name} @ marker:${marker}`);
const anchorElement = document.createElement('a');
anchorElement.setAttribute('href', `${domain}${videos[marker].src}`);
anchorElement.setAttribute('download', videos[marker].name);
document.body.appendChild(anchorElement);
// trigger download manually
anchorElement.click();
anchorElement.remove();
marker += 1;
setTimeout(downloadVideos, throttleTime, videos, marker);
}
};
// assuming all videos are stored in an array, each video must have 'src' and 'name' attributes
const videos = [
{ src: '/video123/mp4/480/big_buck_bunny_480p_30mb.mp4', name: 'video_480p.mp4' },
{ src: '/video123/mp4/720/big_buck_bunny_720p_1mb.mp4', name: 'video_720p.mp4' }
];
// fireup
downloadVideos(videos, 0);