大佬,我想进交流群,有 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秒