mirror of
https://github.com/p-stream/providers.git
synced 2026-03-11 17:55:36 +00:00
add support for variant playlists in data urls
This commit is contained in:
parent
56198be0c9
commit
44af9a3bc3
1 changed files with 14 additions and 1 deletions
|
|
@ -12,9 +12,22 @@ export async function convertPlaylistsToDataUrls(
|
|||
const playlist = parse(playlistData);
|
||||
|
||||
if (playlist.isMasterPlaylist) {
|
||||
// Extract base URL from the playlist URL for resolving relative variant URLs
|
||||
const baseUrl = new URL(playlistUrl).origin;
|
||||
|
||||
await Promise.all(
|
||||
(playlist as MasterPlaylist).variants.map(async (variant) => {
|
||||
const variantPlaylistData = await fetcher(variant.uri, { headers });
|
||||
// Resolve relative URLs against the base URL
|
||||
let variantUrl = variant.uri;
|
||||
if (!variantUrl.startsWith('http')) {
|
||||
// Handle relative URLs - add leading slash if it doesn't exist
|
||||
if (!variantUrl.startsWith('/')) {
|
||||
variantUrl = `/${variantUrl}`;
|
||||
}
|
||||
variantUrl = baseUrl + variantUrl;
|
||||
}
|
||||
|
||||
const variantPlaylistData = await fetcher(variantUrl, { headers });
|
||||
const variantPlaylist = parse(variantPlaylistData);
|
||||
variant.uri = `data:application/vnd.apple.mpegurl;base64,${btoa(stringify(variantPlaylist))}`;
|
||||
}),
|
||||
|
|
|
|||
Loading…
Reference in a new issue