From a57431198c3e00cbc4b89901858e24d06b6317f6 Mon Sep 17 00:00:00 2001 From: Deven Perez Date: Fri, 22 Aug 2025 00:48:16 -0400 Subject: [PATCH] SDLive multi-instance --- src/app/iptv/sdlive-1-playlist.m3u8/route.ts | 8 ++++++++ src/app/iptv/sdlive-2-playlist.m3u8/route.ts | 8 ++++++++ src/app/iptv/sdlive-playlist.m3u8/route.ts | 13 +++++++++++-- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 src/app/iptv/sdlive-1-playlist.m3u8/route.ts create mode 100644 src/app/iptv/sdlive-2-playlist.m3u8/route.ts diff --git a/src/app/iptv/sdlive-1-playlist.m3u8/route.ts b/src/app/iptv/sdlive-1-playlist.m3u8/route.ts new file mode 100644 index 0000000..9325572 --- /dev/null +++ b/src/app/iptv/sdlive-1-playlist.m3u8/route.ts @@ -0,0 +1,8 @@ +import { NextRequest } from "next/server" + +export async function GET(request: NextRequest) { + const url = new URL(request.url) + const baseUrl = `${url.protocol}//${url.host}` + const response = await fetch(`${baseUrl}/iptv/sdlive-playlist.m3u8?id=1`) + return response +} \ No newline at end of file diff --git a/src/app/iptv/sdlive-2-playlist.m3u8/route.ts b/src/app/iptv/sdlive-2-playlist.m3u8/route.ts new file mode 100644 index 0000000..3e296e7 --- /dev/null +++ b/src/app/iptv/sdlive-2-playlist.m3u8/route.ts @@ -0,0 +1,8 @@ +import { NextRequest } from "next/server" + +export async function GET(request: NextRequest) { + const url = new URL(request.url) + const baseUrl = `${url.protocol}//${url.host}` + const response = await fetch(`${baseUrl}/iptv/sdlive-playlist.m3u8?id=2`) + return response +} \ No newline at end of file diff --git a/src/app/iptv/sdlive-playlist.m3u8/route.ts b/src/app/iptv/sdlive-playlist.m3u8/route.ts index d6ab251..bb240c2 100644 --- a/src/app/iptv/sdlive-playlist.m3u8/route.ts +++ b/src/app/iptv/sdlive-playlist.m3u8/route.ts @@ -1,7 +1,15 @@ import { debugLog } from "@/utils/debugLog" +import { NextRequest } from "next/server" -export async function GET(request: Request) { - const response = await fetch('https://sdlive-1-internal.d-ho.me/playlist.m3u8') +export async function GET(request: NextRequest) { + const searchParams = request.nextUrl.searchParams + const id = searchParams.get('id') + + if (!id || !["1", "2"].includes(id)) { + return new Response("Must be supplied with an id 1 or 2", { status: 400 }) + } + + const response = await fetch(`https://sdlive-${id}-internal.d-ho.me/playlist.m3u8`) if (!response.ok) { return new Response('Failed to fetch playlist', { status: 500 }) @@ -56,4 +64,5 @@ export async function GET(request: Request) { 'Content-Type': 'application/vnd.apple.mpegurl', } }) + } \ No newline at end of file