mirror of
https://github.com/p-stream/providers.git
synced 2026-05-15 20:02:31 +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