export function generateM3U8Playlist(
  urls: {
    url: string;
    duration: string;
    resolution?: string;
    bandwidth?: string;
  }[]
) {
  const baseM3U8Content = `#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
`;

  let m3u8Content = baseM3U8Content;
  urls.forEach((segment) => {
    const { url, duration } = segment;
    m3u8Content += `#EXTINF:${duration},\n${url.replace(
      "https://capso.s3.us-east-1.amazonaws.com",
      "https://v.cap.so"
    )}\n`;
  });

  m3u8Content += "#EXT-X-ENDLIST";

  return m3u8Content;
}

export async function generateMasterPlaylist(
  resolution: string,
  bandwidth: string,
  videoPlaylistUrl: string,
  audioPlaylistUrl: string | null,
  xStreamInfo: string
) {
  const streamInfo = xStreamInfo
    ? xStreamInfo + ',AUDIO="audio"'
    : `BANDWIDTH=${bandwidth},RESOLUTION=${resolution},AUDIO="audio"`;
  const masterPlaylist = `#EXTM3U
#EXT-X-VERSION:4
#EXT-X-INDEPENDENT-SEGMENTS
${
  audioPlaylistUrl
    ? `#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="Audio",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="en",URI="${audioPlaylistUrl}"`
    : ""
}
#EXT-X-STREAM-INF:${streamInfo}
${videoPlaylistUrl}
`;

  return masterPlaylist;
}
