import type { FetchUrlResponse } from "./responseType"; export async function getSourcesFromAmvstrm( watchId: string, ): Promise { const source = await fetch( `https://amvstrm.up.railway.app/api/v2/stream/${watchId}`, ) .then((res) => res.json()) .then(({ stream }) => { const streamObj = stream?.multi; if (!!streamObj) { return streamObj.main ?? streamObj.backup; } }) .then((streamObj) => streamObj?.url); if (!source) { return null; } return { source, subtitles: [], audio: [], }; } interface AmvstrmStreamResponse { code: number; message: string; info: Info; stream: Stream; iframe: Iframe[]; plyr: Nspl; nspl: Nspl; } interface Iframe { name: string; iframe: string; } interface Info { title: string; id: string; episode: string; } interface Nspl { main: string; backup: string; } interface Stream { multi: Multi; tracks: Tracks; } interface Multi { main: Backup; backup: Backup; } interface Backup { url: string; label: string; isM3U8: boolean; quality: string; } interface Tracks { file: string; kind: string; }