Compare commits

...

3 Commits

Author SHA1 Message Date
deven 142dff3a84 SDLive multi-instance 2025-08-22 00:48:16 -04:00
deven 665727562d Add tvg-id to sdlive-playlist 2025-08-22 00:16:38 -04:00
deven 89a829dac0 debugLog 2025-08-22 00:16:10 -04:00
4 changed files with 46 additions and 14 deletions
@@ -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
}
@@ -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
}
+15 -4
View File
@@ -1,18 +1,29 @@
export async function GET(request: Request) {
const response = await fetch('https://sdlive-1-internal.d-ho.me/playlist.m3u8')
import { addSdliveIdsToPlaylist } from "@/utils/iptv/addSdliveIdsToPlaylist"
import { NextRequest } from "next/server"
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 })
}
const playlist = await response.text()
const parsedPlaylist = addSdliveIdsToPlaylist(playlist)
return new Response(playlist, {
return new Response(parsedPlaylist, {
headers: {
'Content-Disposition': 'attachment; filename="sdlive-playlist.m3u8"',
'Content-Type': 'application/vnd.apple.mpegurl',
}
})
}
+5
View File
@@ -0,0 +1,5 @@
export const debugLog = (...data: any[]): void => {
if (process.env.LOG_LEVEL === "DEBUG") {
console.log(...data)
}
}