冥界3大法王 发表于 2021-6-7 17:13

如何js实现看一个,自动 全屏下一个视频?

https://haokan.baidu.com/author/1632769227565990

闷骚小贱男 发表于 2021-6-7 17:41

本帖最后由 闷骚小贱男 于 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>

badyun 发表于 2021-6-7 17:42

...这人发了好多视频啊,我滚轮拉了好久,硬是没到底

冥界3大法王 发表于 2021-6-7 17:55

闷骚小贱男 发表于 2021-6-7 17:41
这都带了URL和时间了...直接iframe框架+延时跳转?

document.getElementById("iframe").src


@闷骚小贱男
加到Tampermonkey这步操作该如何弄?

闷骚小贱男 发表于 2021-6-7 18:00

本帖最后由 闷骚小贱男 于 2021-6-7 18:18 编辑

冥界3大法王 发表于 2021-6-7 17:55
@闷骚小贱男
加到Tampermonkey这步操作该如何弄?
不太好弄吧..Tampermonkey是要调用自带的下一个视频和全屏的代码咯?
我这个是用工具取到1000多个视频ID
源码里面有MP4视频的地址..直接打开的话,算半个全屏了

闷骚小贱男 发表于 2021-6-7 19:34

本帖最后由 闷骚小贱男 于 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
}


})();






               

cube 发表于 2021-6-8 15:38


首先要明确的是 ***览器不允许自动全屏播放.览器不允许自动全屏播放.览器不允许自动全屏播放***

但可以为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]
查看完整版本: 如何js实现看一个,自动 全屏下一个视频?