Greasy Fork

Bjtu VideoPlatform Downloader

Download videos in batches.

// ==UserScript==
// @name         Bjtu VideoPlatform Downloader
// @namespace    https://greasyfork.org/zh-CN/users/605474
// @version      0.2
// @description  Download videos in batches.
// @author       Ziu
// @match        http://video.bjtu.edu.cn/video/index/cid/*
// @icon         https://fastly.jsdelivr.net/gh/ZiuChen/ZiuChen@main/avatar.jpg
// @require      https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js
// @require      https://fastly.jsdelivr.net/gh/eligrey/FileSaver.js@b5e61ec88969461ce0504658af07c2b56650ee8c/dist/FileSaver.min.js
// @license      MIT
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    let liList = $('.item-lists .cf-o>li').find('a');
    let aList = $('.video-header').find('a')
    let header = $(aList[aList.length-1]).html();
    let liListHref = [];
    let content = '[Bjtu VideoPlatform Downloader] '+header+'\n';
    for (let i = 0; i < liList.length; i++) {
        liListHref.push($(liList[i]).attr('href'));
    }
    alert('[Bjtu VideoPlatform Downloader]\n点击确定开始解析当前页视频链接');
    liListHref.forEach(function (value, index) {
        let xReq1 = new XMLHttpRequest();
        xReq1.open('GET', 'http://video.bjtu.edu.cn'+value);
        xReq1.addEventListener('load', onSuccess);
        xReq1.send();
        function onSuccess () {
            let videoLink = this.responseText.split("var video=['")[1].split("'];")[0];
            content = content + ('http://video.bjtu.edu.cn'+videoLink) + '\n';
            if(index==liListHref.length-1){
                alert('[Bjtu VideoPlatform Downloader]\n视频链接解析完毕 点击确定开始下载');
                let blob = new Blob([content], {
                    type: 'text/plain'
                    });
                saveAs(blob, 'videoLinks.txt');
            }
        }
    })
})();