hellsakura / wm Goto Github PK
View Code? Open in Web Editor NEW万门大学课程视频批量下载
万门大学课程视频批量下载
要反复抓取很多次才能把m3u8文件抓齐
m3u8批量下载器的网址打不开了
【求助】大佬提供的M3U8下载链接失效了,且新版下载器不能拖文件进去
// ==UserScript==
// @name New Userscript
// @namespace http://tampermonkey.net/
// @Version 0.1
// @description try to take over the world!
// @author You
// @match https://www.wanmen.org/courses/6088d14d9c18905ac53f6693/lectures/6088d23fa7e1840e3ce5c076
// @ICON https://www.google.com/s2/favicons?domain=wanmen.org
// @grant none
// ==/UserScript==
// ==UserScript==
// @name 万门大学课程视频批量下载
// @namespace http://tampermonkey.net/
// @Version 1.0
// @description 只能批量下载免费的或者已经购买的课程
// @author none
// @match https://www.wanmen.org/courses/*
// @grant none
// ==/UserScript==
// 本文件由 src/index.ts 生成,请修改 src/index.ts 后执行 yarn build 生成,勿直接修改此文件。
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator"throw"); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
function getChapterElements() {
return document.querySelector("#root > div.course__course-page--3J8Sy > div.course__video-row--20SaE > div.course__playlist-container--17tSE > div.components__container--1fgQp > div > div:nth-child(1) > ul");
}
function checkClientStatus() {
return __awaiter(this, void 0, void 0, function* () {
try {
let response = yield fetch("http://localhost:5678/status", {
method: "get",
mode: "cors",
});
if (!response.ok) {
throw Error(response.statusText);
}
return true;
}
catch (error) {
alert("客户端未启动,请启动客户端之后再开始");
return false;
}
});
}
function sleep(ms) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve) => setTimeout(resolve, ms));
});
}
function waitValue({ predicate, waitInterval, timeout, timeoutRetry, }) {
return __awaiter(this, void 0, void 0, function* () {
let value = null;
let waitTime = 0;
do {
value = yield predicate();
yield sleep(waitInterval);
waitTime += waitInterval;
if (typeof timeout !== "undefined" && waitTime >= timeout) {
timeoutRetry === null || timeoutRetry === void 0 ? void 0 : timeoutRetry();
waitTime = 0;
}
} while (!value);
return value;
});
}
function addTask() {
return __awaiter(this, void 0, void 0, function* () {
if (!(yield checkClientStatus())) {
return;
}
const cptEles = getChapterElements();
if (!cptEles) {
alert("未获取到课程列表");
return;
}
const courseName = prompt("请输入课程名称", document.title);
if (!courseName) {
alert("课程名称不能为空");
return;
}
const chapters = [];
for (let chapterElement = cptEles.firstElementChild, cptIdx = 1; chapterElement; chapterElement = chapterElement.nextElementSibling, cptIdx++) {
const subChapterTitle = chapterElement.querySelector("div");
if (!subChapterTitle) {
continue;
}
if (subChapterTitle.className.indexOf("presentation") < 0) {
subChapterTitle.click();
}
else {
continue;
}
const subChapters = yield waitValue({
predicate: () => __awaiter(this, void 0, void 0, function* () { return chapterElement.querySelector("ul"); }),
waitInterval: 50,
timeout: 2000,
timeoutRetry: () => subChapterTitle.click(),
});
for (let subCptEle = subChapters.firstElementChild; subCptEle; subCptEle = subCptEle.nextElementSibling) {
const anchor = subCptEle.querySelector("a");
if (anchor) {
chapters.push({
Link: anchor.href,
Name: anchor.innerText.split("\n")[0],
});
}
}
subChapterTitle.click();
}
try {
let addResponse = yield fetch("http://localhost:5678/add", {
method: "post",
mode: "cors",
body: JSON.stringify({
Name: courseName,
chapters,
}),
});
if (!addResponse.ok) {
throw new Error(addResponse.statusText);
}
}
catch (error) {
alert("已将任务发送到客户端,处理中...");
}
});
}
function getM3u8Source() {
var _a;
return __awaiter(this, void 0, void 0, function* () {
return (_a = document.querySelector("video > source")) === null || _a === void 0 ? void 0 : _a.getAttribute("src");
});
}
function finishTask() {
return __awaiter(this, void 0, void 0, function* () {
const source = yield waitValue({
predicate: getM3u8Source,
waitInterval: 100,
});
try {
const m3u8Response = yield fetch(source, {
method: "get",
});
const m3u8Content = yield m3u8Response.text();
let saveResponse = yield fetch("http://localhost:5678/finish", {
method: "post",
mode: "cors",
body: JSON.stringify({
Link: document.location.href,
Content: m3u8Content,
}),
});
if (!saveResponse.ok) {
throw Error(saveResponse.statusText);
}
}
catch (error) {
console.log(error);
return;
}
});
}
function getTask() {
return __awaiter(this, void 0, void 0, function* () {
while (true) {
try {
let taskResponse = yield fetch("http://localhost:5678/get", {
method: "get",
mode: "cors",
});
if (!taskResponse.ok) {
throw Error(taskResponse.statusText);
}
else {
const link = yield taskResponse.text();
if (link) {
document.location.replace(link);
}
}
}
catch (error) {
console.log("未获取到任务:" + error);
}
yield sleep(5000);
}
});
}
function main() {
return __awaiter(this, void 0, void 0, function* () {
let startBtn = document.createElement("button");
startBtn.onclick = addTask;
startBtn.innerText = "添加任务";
startBtn.setAttribute("style", "position: fixed;top: 50%;left:0;");
document.body.appendChild(startBtn);
yield finishTask();
getTask();
});
}
main();
(function() {
'use strict';
// Your code here...
})();
这个是复制的脚本
在第二步分配任务就一直卡在已被领取的状态
比如下面的这个 m3u8:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-TARGETSIZE:143924
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high0.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high1.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high2.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high3.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high4.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high5.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high6.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high7.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high8.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high9.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high10.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high11.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high12.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high13.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high14.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high15.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high16.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high17.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high18.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high19.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high20.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high21.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high22.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high23.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high24.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high25.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high26.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high27.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high28.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high29.ts
#EXTINF:4.920000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high30.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high31.ts
#EXTINF:7.400000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high32.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high33.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high34.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high35.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high36.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high37.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high38.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high39.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high40.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high41.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high42.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high43.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high44.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high45.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high46.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high47.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high48.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high49.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high50.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high51.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high52.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high53.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high54.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high55.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high56.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high57.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high58.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high59.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high60.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high61.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high62.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high63.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high64.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high65.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high66.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high67.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high68.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high69.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high70.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high71.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high72.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high73.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high74.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high75.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high76.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high77.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high78.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high79.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high80.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high81.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high82.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high83.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high84.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high85.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high86.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high87.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high88.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high89.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high90.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high91.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high92.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high93.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high94.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high95.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high96.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high97.ts
#EXTINF:5.400000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high98.ts
#EXT-X-ENDLIST
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-TARGETSIZE:143924
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high0.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high1.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high2.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high3.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high4.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high5.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high6.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high7.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high8.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high9.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high10.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high11.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high12.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high13.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high14.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high15.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high16.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high17.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high18.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high19.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high20.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high21.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high22.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high23.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high24.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high25.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high26.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high27.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high28.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high29.ts
#EXTINF:4.920000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high30.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high31.ts
#EXTINF:7.400000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high32.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high33.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high34.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high35.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high36.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high37.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high38.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high39.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high40.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high41.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high42.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high43.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high44.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high45.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high46.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high47.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high48.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high49.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high50.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high51.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high52.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high53.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high54.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high55.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high56.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high57.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high58.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high59.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high60.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high61.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high62.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high63.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high64.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high65.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high66.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high67.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high68.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high69.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high70.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high71.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high72.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high73.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high74.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high75.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high76.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high77.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high78.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high79.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high80.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high81.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high82.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high83.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high84.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high85.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high86.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high87.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high88.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high89.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high90.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high91.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high92.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high93.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high94.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high95.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high96.ts
#EXTINF:10.000000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high97.ts
#EXTINF:5.400000,
c6382da7-adf7-4246-a606-018cc1659590_pc_high98.ts
#EXT-X-ENDLIST
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.