简单写了一个小小的脚本,为了省事一键订阅 咪咕 奇艺 腾讯体育
1.创建一个 php 文件名字为 Livednow.php 或者自己随便写个名字主要自己记住即可
3.订阅地址为 http://域名/aiyayaya_playlist.m3u
4.输出的结果为当前时间前 120 分钟前开始的内容,写入到 m3u
<?php
// 设置时区为Asia/Shanghai
date_default_timezone_set("Asia/Shanghai");
// 获取今天的日期(格式为 MM/DD)和过滤时间戳(当前时间的前120分钟)
$today_date = date("m/d");
$filterTime = strtotime("-120 minutes");
// 定义URL链接,每个链接有一个分类名称
$urls = [
"咪咕体育" => "XXXXXXXXXXXXXXXXXXXX",
"奇艺体育" => "XXXXXXXXXXXXXXXXXXXX",
"腾讯体育" => "XXXXXXXXXXXXXXXXXXXX"
];
// 获取URL内容的函数
function getUrlContent($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36");
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
// 初始化M3U内容
$m3uContent = "#EXTM3U\n\n";
// 遍历每个URL并获取数据
foreach ($urls as $category => $url) {
$response = getUrlContent($url);
if ($response === FALSE) {
echo "无法获取 $category 的数据。\n";
continue;
}
$m3uContent .= "\n#------ $category 分类开始 ------\n\n";
if (strpos($response, '#EXTINF') !== false) {
$lines = explode("\n", $response);
$includeLine = false;
foreach ($lines as $index => $line) {
// 检查是否是#EXTINF行
if (strpos($line, '#EXTINF') !== false) {
// 检查行中的日期和时间信息格式是否为 MM/DD HH:MM
if (preg_match('/' . preg_quote($today_date, '/') . ' (\d{2}:\d{2})/', $line, $matches)) {
$timeString = $matches[1]; // 提取时间字符串
$dateTimeString = date('Y') . '-' . date('m') . '-' . date('d') . ' ' . $timeString;
$time = strtotime($dateTimeString); // 将日期时间组合转换为时间戳
// 比较时间戳,判断是否在过滤时间之内
if ($time >= $filterTime) {
// 在符合时间条件的行添加 group-title 属性
$line = str_replace('#EXTINF:', "#EXTINF:-1 group-title=\"$category\",", $line);
$includeLine = true;
} else {
$includeLine = false;
}
} else {
// 如果没有时间信息,默认不包含
$includeLine = false;
}
}
// 如果符合条件,输出当前的 #EXTINF 行和下一个 URL 行
if ($includeLine) {
$m3uContent .= $line . "\n";
// 检查下一行是否为URL行,若是则包含
if (isset($lines[$index + 1]) && strpos($lines[$index + 1], 'http') === 0) {
$m3uContent .= $lines[$index + 1] . "\n";
}
}
}
} else {
echo "$category 数据格式不符合预期结构。\n";
}
$m3uContent .= "\n#------ $category 分类结束 ------\n";
}
// 将生成的M3U内容写入文件
if (empty(trim($m3uContent))) {
echo "M3U内容为空,未写入文件。\n";
} else {
$result = file_put_contents("aiyayaya_playlist.m3u", $m3uContent);
echo $result !== false ? "M3U文件已生成:aiyayaya_playlist.m3u\n" : "写入文件失败。\n";
}
?>
以下代码可以代理群主的域名(俗称反向代理)在自己服务器创建网站,然后你自己的域名反向代理到https://api.livednow.org/ (不会问百度怎么反向代理或者问 GPT)
<?php
// 设置时区为 Asia/Shanghai
date_default_timezone_set("Asia/Shanghai");
// 获取今天的日期(格式为 MM/DD)
$today_date = date("m/d");
// 定义URL链接,每个链接有一个分类名称
$urls = [
"咪咕体育" => "xxxxxx",
"奇艺体育" => "xxxxxx",
"腾讯体育" => "xxxxxx"
];
// 获取URL内容的函数
function getUrlContent($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 增加超时时间
curl_setopt($ch, CURLOPT_USERAGENT, "okhttp/5.2.0");
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
// 初始化M3U内容
$m3uContent = "#EXTM3U\n\n";
// 遍历每个URL并获取数据
foreach ($urls as $category => $url) {
$response = getUrlContent($url);
// 检查获取的响应内容
if ($response === FALSE || empty($response)) {
continue;
}
$m3uContent .= "\n#------ $category 分类开始 ------\n\n";
// 如果响应包含#EXTINF行,则处理内容
if (strpos($response, '#EXTINF') !== false) {
$lines = explode("\n", $response);
foreach ($lines as $index => $line) {
// 仅处理包含 #EXTINF 的行
if (strpos($line, '#EXTINF') !== false) {
// 添加 group-title 信息
$m3uContent .= str_replace('#EXTINF:', "#EXTINF:-1 group-title=\"$category\",", $line) . "\n";
// 收集所有接下来的 URL 直到下一个 #EXTINF 或文件结尾
for ($urlIndex = $index + 1; $urlIndex < count($lines); $urlIndex++) {
$urlLine = $lines[$urlIndex];
if (strpos($urlLine, '#EXTINF') === 0) {
$index = $urlIndex - 1; // 跳出到下一个 #EXTINF
break;
}
if (strpos($urlLine, 'http') === 0) {
// 替换域名 https://api.livednow.org/migu/ 为 https://自己的域名/
$modifiedUrlLine = str_replace('https://api.livednow.org/', '这里填写自己反代的域名/', $urlLine);
$m3uContent .= $modifiedUrlLine . "\n";
}
}
}
}
}
$m3uContent .= "\n#------ $category 分类结束 ------\n";
}
// 输出或写入文件
file_put_contents("aiyayaya_playlist.m3u", $m3uContent);
echo "优化的M3U文件已生成:aiyayaya_playlist.m3u\n";
?>