mirror of
https://github.com/p-stream/providers.git
synced 2026-01-11 20:10:33 +00:00
Add convertPlaylistsToDataUrls util
This commit is contained in:
parent
d096bfadf1
commit
f7c6165314
1 changed files with 23 additions and 0 deletions
23
src/utils/playlist.ts
Normal file
23
src/utils/playlist.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import { parse, stringify } from 'hls-parser';
|
||||
import { MasterPlaylist } from 'hls-parser/types';
|
||||
|
||||
import { UseableFetcher } from '@/fetchers/types';
|
||||
|
||||
export async function convertPlaylistsToDataUrls(
|
||||
fetcher: UseableFetcher,
|
||||
playlistUrl: string,
|
||||
headers?: Record<string, string>,
|
||||
) {
|
||||
const playlistData = await fetcher(playlistUrl, { headers });
|
||||
const playlist = parse(playlistData);
|
||||
|
||||
if (playlist.isMasterPlaylist) {
|
||||
for (const variant of (playlist as MasterPlaylist).variants) {
|
||||
const variantPlaylistData = await fetcher(variant.uri, { headers });
|
||||
const variantPlaylist = parse(variantPlaylistData);
|
||||
variant.uri = `data:application/vnd.apple.mpegurl;base64,${btoa(stringify(variantPlaylist))}`;
|
||||
}
|
||||
}
|
||||
|
||||
return `data:application/vnd.apple.mpegurl;base64,${btoa(stringify(playlist))}`;
|
||||
}
|
||||
Loading…
Reference in a new issue