如何js实现看一个,自动 全屏下一个视频?
https://haokan.baidu.com/author/1632769227565990 本帖最后由 闷骚小贱男 于 2021-6-7 17:55 编辑这都带了URL和时间了...直接iframe框架+延时跳转?全屏的话.....按F11?
document.getElementById("iframe").src
<a href="/v?vid=9631057257739147552" class="card-item-link skeleton" target="_blank">
<picture>
<source srcset="https://tukuimg.bdstatic.com/processed/7b548b05823eb35bd2620f295cad72c6.jpeg@s_0,w_660,h_370,q_80,f_webp" type="image/webp">
<img class="video-img" src="https://tukuimg.bdstatic.com/processed/7b548b05823eb35bd2620f295cad72c6.jpeg@s_0,w_660,h_370,q_80" alt="营养土与园土谁更适合养花?有好处也有坏处,网友:难怪养不好">
</picture>
<div class="videotime">06:30</div>
</a> ...这人发了好多视频啊,我滚轮拉了好久,硬是没到底 闷骚小贱男 发表于 2021-6-7 17:41
这都带了URL和时间了...直接iframe框架+延时跳转?
document.getElementById("iframe").src
@闷骚小贱男
加到Tampermonkey这步操作该如何弄? 本帖最后由 闷骚小贱男 于 2021-6-7 18:18 编辑
冥界3大法王 发表于 2021-6-7 17:55
@闷骚小贱男
加到Tampermonkey这步操作该如何弄?
不太好弄吧..Tampermonkey是要调用自带的下一个视频和全屏的代码咯?
我这个是用工具取到1000多个视频ID
源码里面有MP4视频的地址..直接打开的话,算半个全屏了 本帖最后由 闷骚小贱男 于 2021-6-7 20:28 编辑
就类似的吧....根据视频ID取到视频MP4地址并拼接(time和第几个视频)传值,然后setTimeout换下一个视频
// ==UserScript==
// @name 测试 脚本
// @namespace Violentmonkey Scripts
// @match *://haokan.baidu.com/*
// @match *://vd4.bdstatic.com/*
//
//
//
// @grant none
// @version 1.0
// @author -
// @description 2021/1/9 下午2:32:52
// @grant GM_xmlhttpRequest
// @grant GM_download
// ==/UserScript==
(function () {
'use strict';
var time = 0;
var sz_vid = ['9631057257739147552','4523941987622264346','15027326655618396681','8035610557487612877','5220052409357590207','5483192976575138141','16612745094804585524','8212697985514459708','4256221206703732476','7271168943953759336','8863059078166553570','5804605841205654798','14588707672798819502','11905686853846977570','4340610902573633723','11523111702311037968','9961557674945132008','2157728076464065106','1068506781903443284','12027298560095561504']
var id = 1;
var interval = setInterval(function () {
doIt();
clearInterval(interval);
}, 1000);
function doIt() {
if(window.location.href.indexOf("vd4.bdstatic.com")>0){
var URL = window.location.search;
URL = URL.split('?'); //获取参数列表
var params = URL.split('&');
console.error(params);
for (var i = 0; i < params.length; i++) {
var ps = params.split('=');
console.error(ps,ps);
if(ps = 'id'){
id = ps;
}
if(ps = 'time'){
time = ps;
setTimeout(取链接(id), time )//time处理下
}
}
}else{
取链接(id)
}
}
function 取链接(a) {
a = sz_vid ;
console.log("请求成功," + a);
GM_xmlhttpRequest({
method: "POST",
url: "https://haokan.baidu.com/v?vid=" + a,
headers: {
"Content-Type": "application/x-www-form-urlencoded;charset=utf-8"
},
data: "content=erwer",
onload: function (response) {
console.log("请求成功");
var str1 = response.responseText
var str = getStr(str1,'u5149','=","videoBps')
str = str.substring(9);
str = str.replace(/\\/g,"")
console.log('播放地址:' + str);//视频mp4
//,"time_length":"06:30",
str = getStr(str1,'time_length','","dura')
str = str.substring(3);
console.log('视频时间:' + str);//视频mp4
if(str.indexOf(".mp4?") != -1 ){
location.href = str + '&time=' + str + '&id=' + id+1; //传视频时间和视频id进来 然后跳转
}
},
onerror: function (response) {
console.log("请求失败");
}
});
}
function getStr(str, start, end) {
let res = str.match(new RegExp(`${start}(.*?)${end}`))
return res ? res : null
}
})();
首先要明确的是 ***览器不允许自动全屏播放.览器不允许自动全屏播放.览器不允许自动全屏播放***
但可以为video设置css样式控制自适应屏幕,使其尽可能的在浏览器内最大化.但依然**不是全屏**.
如果从视频播放页进入. 则如下步骤
1. 通过`https://haokan.baidu.com/videoui/api/videoauthor?vid=[视频vid]`得到`mthid`
2. 通过`https://haokan.baidu.com/web/author/listall?app_id=&ctime=&rn=10&_api=1`得到作者的作品集
3. 通过作品集得到所有视频播放源(找`__PRELOADED_STATE__`)
4. 播放源有了,就可以随意安排了,你可以使用猴子的@require载入DPlayer,按照DPlayer的说明配置就行了.DPlayer可以自动下一集.
5. 也可以直接在当前播放页为video增加播放完成的处理事件.
页:
[1]