Sleazy Fork is available in English.

红杏视频破解会员

针对红杏视频的优化脚本,此脚本可以让用户观看VIP视频,免费无任何注入,兄弟们走过路过不要错过啊,真心良心脚本,肝出来的。。。

Verzia zo dňa 24.11.2022. Pozri najnovšiu verziu.

// ==UserScript==
// @name                红杏视频破解会员
// @namespace           https://tampermonkey.net.cn/
// @version             0.5.6
// @license             MIT
// @match               *://www.hxaa18.com/*
// @match               *://www.hxaa19.com/*
// @match               *://www.hxaa20.com/*
// @match               *://www.hxaa21.com/*
// @match               *://www.hxaa22.com/*
// @match               *://www.hxaa23.com/*
// @match               *://www.hxaa24.com/*
// @require             https://cdn.bootcdn.net/ajax/libs/hls.js/1.2.7/hls.js
// @require             https://cdn.bootcdn.net/ajax/libs/dplayer/1.27.0/DPlayer.min.js
// @description         针对红杏视频的优化脚本,此脚本可以让用户观看VIP视频,免费无任何注入,兄弟们走过路过不要错过啊,真心良心脚本,肝出来的。。。
// @author              Niko
// ==/UserScript==

function getLocalStorage(){
    let storage = localStorage.getItem('move-client-user-info')
    return JSON.parse(storage)
}

async function getLogin(){
    let registerUrl = 'https://api.hxff88.com/WebApp/Register'
    let prefixArray = ["130", "131", "132", "133", "135", "137", "138", "170", "187", "189"]
    let i = Math.floor(10 * Math.random());
    let prefix = prefixArray[i];
    for (let j=0; j<8; j++){
        prefix = prefix + Math.floor(Math.random() * 10)
    }
    let phone = prefix
    let pwd = '123456'
    let registerData = {"client_system":0,"referral_code":"m2RsTs3d","password":pwd,"phone":phone}
    let res = await fetch(registerUrl, {
        method:'post',
        body:JSON.stringify(registerData),
        headers: new Headers({
            'Content-Type': 'application/json'
        })
     })
    let response = await res.json()
    let token = response.data.token
    document.querySelector('#app > div > div.top_bar > div.container.top > div.top_right > div.top_right_photo > div:nth-child(2)').click()
    let event = document.createEvent('HTMLEvents')
    event.initEvent("input", true, true)
    event.eventType = 'message'
    setTimeout(() => {
        let account = document.getElementsByClassName('van-field__control')[0]
        account.value = phone
        account.dispatchEvent(event)
        let password = document.getElementsByClassName('van-field__control')[1]
        password.value = pwd
        password.dispatchEvent(event)
        document.getElementsByClassName('van-button')[0].click()
    }, 1000)
    return token
}

/* storage-用户的json格式数据 */
async function getToken(storage){
    let token = storage.user.token
    if (token === ''){
        token = await getLogin()
        return token
        }
    return token
}

function getId(){
    let videoInfo = document.location
    let url = videoInfo.href
    let videoInfoList = url.split('/')
    if (videoInfoList.find(element => element === 'playvideo')){
        return videoInfoList[6]
    }
    else{
        return 0
    }
}

async function play(token){
    let videoM3u8 = 'https://api.hxff88.com/WebApp/WebVideo/CheckSeeVideoAccess'
    let token1 = await token
    let videoId = getId()
    if (videoId){
        let res = await fetch(`${videoM3u8}?id=${videoId}`, {
            method:'get',
            headers: new Headers({
                'Content-Type': 'application/json',
                'token': token1
            })
        })
        let response = await res.json()
        let url = response.data.url
        let splitList = url.split("&")
        console.log(`${splitList[0]}&${splitList[1]}`)
        let playUrl = `${splitList[0]}&${splitList[1]}`
        await player(playUrl)
    }
}

async function player(playUrl){
     window.dp = new DPlayer({
            element: document.querySelector(".play_video"),
            autoplay: true,
            theme: '#FADFA3',
            loop: true,
            lang: 'zh',
            screenshot: true,
            hotkey: true,
            preload: 'auto',
            video: {
                url: playUrl,
                type: 'hls'
            }
        });
}

(function() {
    setInterval(async () =>{
        let el = document.getElementsByClassName('play_video_zhec')[0]
        let userInfo = getLocalStorage()
        let token = await getToken(userInfo);
        console.log(token)
        if (el){
            await play(token)
        }
    }, 1000)
}
)();