refactor: use parse-hls

This commit is contained in:
Adrian Castro
2024-02-15 19:58:55 +01:00
parent 9147472b84
commit b81ff76d98
3 changed files with 15 additions and 31 deletions

View File

@@ -18,7 +18,6 @@
"@movie-web/eslint-config": "workspace:^0.2.0",
"@movie-web/prettier-config": "workspace:^0.1.0",
"@movie-web/tsconfig": "workspace:^0.1.0",
"@types/hls-parser": "^0.8.7",
"eslint": "^8.56.0",
"prettier": "^3.1.1",
"typescript": "^5.3.3"
@@ -31,7 +30,7 @@
"prettier": "@movie-web/prettier-config",
"dependencies": {
"@movie-web/providers": "^2.2.0",
"hls-parser": "^0.10.8",
"parse-hls": "^1.0.7",
"srt-webvtt": "^2.0.0",
"tmdb-ts": "^1.6.1"
}

View File

@@ -1,4 +1,4 @@
import { parse, types } from "hls-parser";
import hls from "parse-hls";
import { default as toWebVTT } from "srt-webvtt";
import type {
@@ -113,18 +113,12 @@ export async function extractTracksFromHLS(
const response = await fetch(playlistUrl, { headers }).then((res) =>
res.text(),
);
const playlist = parse(response);
if (!playlist.isMasterPlaylist) return null;
if (!(playlist instanceof types.MasterPlaylist)) return null;
const tracks = playlist.variants.map((variant) => {
return {
video: variant.video,
audio: variant.audio,
subtitles: variant.subtitles,
};
});
return tracks;
const playlist = hls.parse(response);
return {
video: playlist.streamRenditions,
audio: playlist.audioRenditions,
subtitles: playlist.subtitlesRenditions,
};
} catch (e) {
return null;
}