import { createReadStream } from 'node:fs' import { stat } from 'node:fs/promises' import { Readable } from 'node:stream' import { NextRequest, NextResponse } from 'next/server' import { assertPublicHttpUrl } from '@/lib/server/ssrf' import { getStreamEntry, refreshStreamEntry } from '@/lib/server/stream-store' export const runtime = 'nodejs' export const dynamic = 'force-dynamic' /** * GET /api/audio/stream?token= * Same-origin byte proxy for a resolved upstream audio URL — or, since v7.5, * the server for a CONVERTED MP3 produced by the resolve pipeline. Same-origin * is what keeps the Web Audio analyser untainted (a cross-origin