• 视频去水印 部分源码(包含部分php与go)有需要可以联系我


    前段时间写了一个视频去水印的页面,没想到半年过去了,他居然失效了,看来大家都有在进步,只是我倒退了,不过没关系,我又来了
    直接扣页面,可能适合py同学,基于浏览器么,啥都有了
    我们今天说的是的php和go怎们解析
    解析分享数据里的地址
    首先我们获取到分享的数据,我们需要解析出里面的url,那么解析是通用的,我们就交给前端处理吧

    str = "5.10 12/13 h@O.Xm EHi:/  哈哈这也太快乐了吧! # 瑶一瑶小肉包  https://v.xxx.com/id5M9Vm1/ 复制此链接,打开Dou音搜索,直接观看视频!"
    
        const reg = /((?:https?:\/\/)?[\w/\-?=%.]+\.(?:douyin|tiktok|kuaishou)\.com\S+)/i;
        const matches = str.match(reg);
        if (matches) {
            const url = matches[1];
            console.log(url)
            // 处理匹配到的 url
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    前端拿到处理好,再给我们后端
    获取302地址
    分享出来的是一个短连接,我们需要做一些处理,使他变成长链,这里长链有两种一种是pc打开的,一种是手机的
    我们使用的就是手机打开的
    电脑打开的不是不能用,是因为他的参数太多了,你需要获取到各个参数,拼接等等,不适合来搞事情
    我放下代码,大家看看

    func getLocation(baseHost string) string {
    	client := &http.Client{
    		CheckRedirect: func(req *http.Request, via []*http.Request) error {
    			return http.ErrUseLastResponse
    		},
    	}
    	res, err := client.Get(baseHost)
    	if err != nil {
    		return baseHost
    	}
    	if res.StatusCode != 301 {
    		return res.Header.Get("Location")
    	}
    
    	return res.Header.Get("Location")
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    再放个php的

    function restoreUrl($shortUrl)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $shortUrl);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; Android 10; EML-AL00 Build/HUAWEIEML-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/45016 Mobile Safari/537.36 MMWEBID/5800 MicroMessenger/7.0.10.1580(0x27000AFC) Process/tools NetType/4G Language/zh_CN ABI/arm64");
        curl_setopt($curl, CURLOPT_HEADER, true);
        curl_setopt($curl, CURLOPT_NOBODY, false);
        curl_setopt($curl, CURLOPT_TIMEOUT, 15);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
        curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
        $data = curl_exec($curl);
        $curlInfo = curl_getinfo($curl);
        curl_close($curl);
        if ($curlInfo['http_code'] == 301 || $curlInfo['http_code'] == 302) {
            return $curlInfo['redirect_url'];
        }
        return '';
    }
    $url = restoreUrl("https://v.douyin.com/id5M9Vm1/");
    
    echo $url;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    这个时候你就可以找那个api替换参数获取视频了

  • 相关阅读:
    说说考研调剂都有哪些具体要求?
    FDM3D打印系列——黄金弗利萨
    LeetCode刷题---142. 环形链表 II(双指针-快慢指针)
    Linux上后台运行进程(nohub、screen和tmux )
    【owt-server】内部传输机制3 :基础:TransportSession、TransportMessage和 TransportData
    【附源码】计算机毕业设计SSM实验室设备明细管理系统
    [科普文] Web3 中的资产负债表
    LT6211UX是用于VR和Display应用的HDMI2.0到LVDS转换器
    CMU15445 (Fall 2019) 之 Project#3 - Query Execution 详解
    力扣(LeetCode)1732. 找到最高海拔(C++)
  • 原文地址:https://blog.csdn.net/ListFish/article/details/134335974