diff --git a/src/components/media/VideoPlayer.tsx b/src/components/media/VideoPlayer.tsx index 351d6202..947b782a 100644 --- a/src/components/media/VideoPlayer.tsx +++ b/src/components/media/VideoPlayer.tsx @@ -1,11 +1,12 @@ import { IconPatch } from "components/buttons/IconPatch"; import { Icons } from "components/Icon"; import { Loading } from "components/layout/Loading"; -import { MWMediaStream } from "providers"; +import { MWMediaCaption, MWMediaStream } from "providers"; import { ReactElement, useEffect, useRef, useState } from "react"; export interface VideoPlayerProps { source: MWMediaStream; + captions: MWMediaCaption[]; startAt?: number; onProgress?: (event: ProgressEvent) => void; } @@ -74,6 +75,9 @@ export function VideoPlayer(props: VideoPlayerProps) { {!mustUseHls ? ( ) : null} + {props.captions.map((v) => ( + + ))} ); diff --git a/src/providers/list/theflix/index.ts b/src/providers/list/theflix/index.ts index fadfd53b..16f434c9 100644 --- a/src/providers/list/theflix/index.ts +++ b/src/providers/list/theflix/index.ts @@ -69,7 +69,8 @@ export const theFlixScraper: MWMediaProvider = { } const data = JSON.parse(prop.textContent); - return { url: data.props.pageProps.videoUrl, type: "mp4" }; + + return { url: data.props.pageProps.videoUrl, type: "mp4", captions: [] }; }, async getSeasonDataFromMedia( diff --git a/src/providers/types.ts b/src/providers/types.ts index 1bd47a48..4f3795e0 100644 --- a/src/providers/types.ts +++ b/src/providers/types.ts @@ -13,9 +13,15 @@ export interface MWPortableMedia { } export type MWMediaStreamType = "m3u8" | "mp4"; +export interface MWMediaCaption { + id: string; + url: string; + label: string; +} export interface MWMediaStream { url: string; type: MWMediaStreamType; + captions: MWMediaCaption[]; } export interface MWMediaMeta extends MWPortableMedia { diff --git a/src/views/MediaView.tsx b/src/views/MediaView.tsx index cfceedf3..7b2020d1 100644 --- a/src/views/MediaView.tsx +++ b/src/views/MediaView.tsx @@ -52,6 +52,7 @@ function StyledMediaView(props: StyledMediaViewProps) { return ( updateProgress(e)} startAt={startAtTime} />