Skip to content

Latest commit

 

History

History
569 lines (286 loc) · 11.4 KB

File metadata and controls

569 lines (286 loc) · 11.4 KB

downflux


downflux / HlsClient

Class: HlsClient

Defined in: packages/engines/http/HlsClient.ts:23

HTTP engine for HLS playlists and media segments.

Remarks

HLS handling is isolated from generic streaming because playlists require variant selection, segment stitching, optional AES decryption, and fMP4 detection before storage can finalize the media.

Extends

Constructors

Constructor

new HlsClient(progressManager): HlsClient

Defined in: packages/engines/http/HlsClient.ts:24

Parameters

progressManager

ProgressManager

Returns

HlsClient

Overrides

BaseHttpClient.constructor

Properties

progressManager

protected readonly progressManager: ProgressManager

Defined in: packages/base/BaseHttpClient.ts:16

Inherited from

StreamHttpClient.progressManager


cookieJar

protected readonly cookieJar: Map<string, Map<string, string>>

Defined in: packages/base/BaseHttpClient.ts:18

Inherited from

BaseHttpClient.cookieJar


CHROME_CIPHERS

protected readonly CHROME_CIPHERS: string

Defined in: packages/base/BaseHttpClient.ts:19

Inherited from

BaseHttpClient.CHROME_CIPHERS


agent

protected readonly agent: Agent

Defined in: packages/base/BaseHttpClient.ts:37

Inherited from

BaseHttpClient.agent


spoofAgent

protected readonly spoofAgent: Agent

Defined in: packages/base/BaseHttpClient.ts:47

Inherited from

BaseHttpClient.spoofAgent

Methods

randomHeaders()

protected randomHeaders(extra?): object

Defined in: packages/base/BaseHttpClient.ts:60

Parameters

extra?

Record<string, string> = {}

Returns

object

Inherited from

BaseHttpClient.randomHeaders


buildHlsHeaders()

protected buildHlsHeaders(opts): object

Defined in: packages/base/BaseHttpClient.ts:69

Parameters

opts

DownloadOptions

Returns

object

User-Agent

User-Agent: string = 'Mozilla/5.0'

Accept

Accept: string = '*/*'

Referer

Referer: string

Origin

Origin: string

Inherited from

BaseHttpClient.buildHlsHeaders


delay()

protected delay(attempt): Promise<unknown>

Defined in: packages/base/BaseHttpClient.ts:94

Parameters

attempt

number

Returns

Promise<unknown>

Inherited from

BaseHttpClient.delay


readBody()

protected readBody(body): Promise<Buffer<ArrayBufferLike>>

Defined in: packages/base/BaseHttpClient.ts:101

Parameters

body

ReadableStream<Uint8Array<ArrayBufferLike>> | null

Returns

Promise<Buffer<ArrayBufferLike>>

Inherited from

BaseHttpClient.readBody


decodeBody()

protected decodeBody(buffer, headers): Buffer

Defined in: packages/base/BaseHttpClient.ts:116

Parameters

buffer

Buffer

headers

Headers

Returns

Buffer

Inherited from

BaseHttpClient.decodeBody


applyCookieWithHeader()

protected applyCookieWithHeader(url, headers): Record<string, string>

Defined in: packages/base/BaseHttpClient.ts:132

Parameters

url

string

headers

Record<string, string>

Returns

Record<string, string>

Inherited from

BaseHttpClient.applyCookieWithHeader


storeCookies()

protected storeCookies(url, headers): void

Defined in: packages/base/BaseHttpClient.ts:147

Parameters

url

string

headers

Headers

Returns

void

Inherited from

BaseHttpClient.storeCookies


addOriginWithHeader()

protected addOriginWithHeader(headers, referer?): Record<string, string>

Defined in: packages/base/BaseHttpClient.ts:170

Parameters

headers

Record<string, string>

referer?

string

Returns

Record<string, string>

Inherited from

BaseHttpClient.addOriginWithHeader


headers()

protected headers(headers): Record<string, string>

Defined in: packages/base/BaseHttpClient.ts:181

Parameters

headers

Headers

Returns

Record<string, string>

Inherited from

BaseHttpClient.headers


isTransportError()

protected isTransportError(error): string | undefined

Defined in: packages/base/BaseHttpClient.ts:185

Parameters

error

unknown

Returns

string | undefined

Inherited from

BaseHttpClient.isTransportError


fetchWithTransportFallback()

fetchWithTransportFallback(url, init, options, allowFallback?): Promise<Response>

Defined in: packages/base/BaseHttpClient.ts:208

Runs a fetch request with transport fallback for transient TLS/socket failures.

Parameters

url

string

URL to request.

init

RequestInit | undefined

Fetch options.

options

HttpAgentOptions

Agent, proxy, and SNI options.

allowFallback?

boolean = true

Whether fallback dispatchers may be attempted.

Returns

Promise<Response>

Native fetch response.

Inherited from

BaseHttpClient.fetchWithTransportFallback


fetchText()

fetchText(url, timeoutMs, headers): Promise<string>

Defined in: packages/base/BaseHttpClient.ts:231

Parameters

url

string

timeoutMs

number

headers

Record<string, any>

Returns

Promise<string>

Inherited from

BaseHttpClient.fetchText


fetchJson()

fetchJson(url, opts): Promise<any>

Defined in: packages/base/BaseHttpClient.ts:235

Parameters

url

string

opts

DownloadOptions

Returns

Promise<any>

Inherited from

BaseHttpClient.fetchJson


fetchHlsStream()

fetchHlsStream(manifest, manifestUrl, timeoutMs, stream, opts): Promise<void>

Defined in: packages/engines/http/HlsClient.ts:37

Writes a resolved HLS playlist to a destination stream.

Parameters

manifest

string

Already fetched manifest content.

manifestUrl

string

URL used to resolve relative playlist entries.

timeoutMs

number

Segment request timeout.

stream

Writable

Destination stream.

opts

DownloadOptions

Download and quality options.

Returns

Promise<void>


isFmp4()

isFmp4(manifest, manifestUrl, opts): Promise<boolean>

Defined in: packages/engines/http/HlsClient.ts:74

Detects whether the selected playlist uses fMP4 initialization segments.

Parameters

manifest

string

Manifest content.

manifestUrl

string

URL used to resolve relative entries.

opts

DownloadOptions

Download and quality options.

Returns

Promise<boolean>

true when an fMP4 init segment is present.


isHlsManifest()

isHlsManifest(contentType, url): boolean

Defined in: packages/engines/http/HlsClient.ts:192

Checks whether a response should be handled as an HLS manifest.

Parameters

contentType

string

Response content type.

url

string

Final response URL.

Returns

boolean

true when the response appears to be an HLS playlist.