简单写了一个小小的脚本,为了省事一键订阅 咪咕 奇艺 腾讯体育
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";
}
?>