• 大佬,我想进交流群,有 q 群吗

  • 感谢分享,我给修改一下,实现免翻直接看。

    这些 mpd 源的视频流本身没有被墙,但是解密的 key 所在的域名是 vercel-php-clearkey-hex-base64-json.vercel.app 这边被屏蔽,所以,只要反代这个接口就可以实现播放。

    首先去准备一个 php,用来反代 key 的文本

    <?php
    $url = $_GET['url'] ?? '';
    if (strpos($url, 'http') !== 0) {
            $url = base64_decode($url);
        }
    $html_code = pachongbo($url);
    echo $html_code;
    function pachongbo($url){
        $headers = [
        'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'];
    
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_TIMEOUT, 100);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data; 
    }       
    ?>
    

    php 存放在海外服务器中,接着上面那份 python 代码我修改如下

    原来代码中的

    m3uContent += `#KODIPROP:inputstream.adaptive.license_key=${licenseKey}\n`;
    

    修改为

    m3u_content += f"#KODIPROP:inputstream.adaptive.license_key=http://【你自己的服务器ip】/【上面那个php代码】.php?url=" +  base64.b64encode(
                            license_key.encode('utf-8')).decode('utf-8')   + "\n"
    

    此目的为反代 key

    再把上面的程序主体部分,定义为一个循环函数,接着让这个函数每 2 小时运行一次,或者你可以自己修改。

    def pachongbo():
        # 创建或打开文件用于写入
        with open('mytvfree.m3u', 'w', encoding='utf-8') as m3u_file:
            # 写入 M3U 文件的头部
            m3u_file.write("#EXTM3U url-tvg=\"http://【你自己的服务器ip】/【上面那个php代码】.php?url=https://xmltv.bph.workers.dev\"\n")
    
            # 遍历所有频道并写入每个频道的 M3U 内容
            for channel_code in CHANNEL_LIST.keys():
                m3u_content = get_mytvsuper(channel_code)
                m3u_file.write(m3u_content)
    
        print("所有频道的 M3U 播放列表已生成并保存为 'mytvfree.m3u'")
    
    while True:
        pachongbo()
        time.sleep(7200)  #2小时*60分钟*60秒