-
Notifications
You must be signed in to change notification settings - Fork 34
/
set-hlsjs-cache.user.js
69 lines (64 loc) · 2.11 KB
/
set-hlsjs-cache.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// ==UserScript==
// @name 优化使用hls.js库的视频站
// @description 设置缓存区大小
// @namespace set-hls.js-cache
// @match https://www.miguvideo.com/p/detail/*
// @match https://vip.1905.com/play/*
// @match https://www.1905.com/vod/play/*
// @match https://www.olevod.com/player/vod/*
// @match https://nnyy.in/*/*.html
// @match https://www.nunuyy5.com/vod/*
// @match https://www.dandanzan.me/vod/*
// @match https://dandanzan.net/*.html
// @match https://www.iyf.tv/play/*
// @match https://www.iyf.tv/watch?v=*
// @version 1.3
// @author ray
// @license MIT
// @run-at document-start
// @grant unsafeWindow
// ==/UserScript==
const buffSize = 80; // 视频缓存区大小:20 - 800秒
(function() {
const fn = MediaSource.isTypeSupported;
unsafeWindow.MediaSource.isTypeSupported = function(...args) {
if (unsafeWindow.Hls) {
unsafeWindow.MediaSource.isTypeSupported = fn;
unsafeWindow.Hls = new Proxy(Hls, {
construct(target, args, newTarget) {
const opts = {
maxBufferSize: 36 << 20, // 36MB
maxBufferLength: buffSize,
maxMaxBufferLength: buffSize + 9,
backBufferLength: 9
};
args[0] = Object.assign(args[0] || {}, opts);
return new target(...args);
}
});
setTimeout(after,99);
}
return fn(args);
};
})();
function after() {
// Object.assign(Hls.DefaultConfig, { });
console.log('成功设置Hls缓存区!');
let tip = document.createElement('span');
if (location.hostname == 'nnyy.in') {
document.querySelector('#e-tip').after(tip);
}
else if (location.hostname == 'dandanzan.net') {
tip = document.querySelector('#mytip');
}
else if (location.hostname.endsWith('nunuyy5.com')||location.hostname.endsWith('dandanzan.me')) {
document.querySelector('span.current-route').after(tip);
}
else return;
const v = document.getElementsByTagName('video')[0];
v.muted = !1;
v.addEventListener('loadedmetadata', () => {
v.playbackRate = +localStorage.mvPlayRate || 1.4;
tip.innerText = ` 分辨率:${v.videoWidth}x${v.videoHeight}P`;
});
}