downflux / HlsClient
Defined in: packages/engines/http/HlsClient.ts:23
HTTP engine for HLS playlists and media segments.
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.
new HlsClient(
progressManager):HlsClient
Defined in: packages/engines/http/HlsClient.ts:24
HlsClient
protectedreadonlyprogressManager:ProgressManager
Defined in: packages/base/BaseHttpClient.ts:16
StreamHttpClient.progressManager
protectedreadonlycookieJar:Map<string,Map<string,string>>
Defined in: packages/base/BaseHttpClient.ts:18
protectedreadonlyCHROME_CIPHERS:string
Defined in: packages/base/BaseHttpClient.ts:19
protectedreadonlyagent:Agent
Defined in: packages/base/BaseHttpClient.ts:37
protectedreadonlyspoofAgent:Agent
Defined in: packages/base/BaseHttpClient.ts:47
protectedrandomHeaders(extra?):object
Defined in: packages/base/BaseHttpClient.ts:60
Record<string, string> = {}
object
protectedbuildHlsHeaders(opts):object
Defined in: packages/base/BaseHttpClient.ts:69
object
User-Agent:
string='Mozilla/5.0'
Accept:
string='*/*'
Referer:
string
Origin:
string
BaseHttpClient.buildHlsHeaders
protecteddelay(attempt):Promise<unknown>
Defined in: packages/base/BaseHttpClient.ts:94
number
Promise<unknown>
protectedreadBody(body):Promise<Buffer<ArrayBufferLike>>
Defined in: packages/base/BaseHttpClient.ts:101
ReadableStream<Uint8Array<ArrayBufferLike>> | null
Promise<Buffer<ArrayBufferLike>>
protecteddecodeBody(buffer,headers):Buffer
Defined in: packages/base/BaseHttpClient.ts:116
Buffer
Headers
Buffer
protectedapplyCookieWithHeader(url,headers):Record<string,string>
Defined in: packages/base/BaseHttpClient.ts:132
string
Record<string, string>
Record<string, string>
BaseHttpClient.applyCookieWithHeader
protectedstoreCookies(url,headers):void
Defined in: packages/base/BaseHttpClient.ts:147
string
Headers
void
protectedaddOriginWithHeader(headers,referer?):Record<string,string>
Defined in: packages/base/BaseHttpClient.ts:170
Record<string, string>
string
Record<string, string>
BaseHttpClient.addOriginWithHeader
protectedheaders(headers):Record<string,string>
Defined in: packages/base/BaseHttpClient.ts:181
Headers
Record<string, string>
protectedisTransportError(error):string|undefined
Defined in: packages/base/BaseHttpClient.ts:185
unknown
string | undefined
BaseHttpClient.isTransportError
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.
string
URL to request.
RequestInit | undefined
Fetch options.
Agent, proxy, and SNI options.
boolean = true
Whether fallback dispatchers may be attempted.
Promise<Response>
Native fetch response.
BaseHttpClient.fetchWithTransportFallback
fetchText(
url,timeoutMs,headers):Promise<string>
Defined in: packages/base/BaseHttpClient.ts:231
string
number
Record<string, any>
Promise<string>
fetchJson(
url,opts):Promise<any>
Defined in: packages/base/BaseHttpClient.ts:235
string
Promise<any>
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.
string
Already fetched manifest content.
string
URL used to resolve relative playlist entries.
number
Segment request timeout.
Writable
Destination stream.
Download and quality options.
Promise<void>
isFmp4(
manifest,manifestUrl,opts):Promise<boolean>
Defined in: packages/engines/http/HlsClient.ts:74
Detects whether the selected playlist uses fMP4 initialization segments.
string
Manifest content.
string
URL used to resolve relative entries.
Download and quality options.
Promise<boolean>
true when an fMP4 init segment is present.
isHlsManifest(
contentType,url):boolean
Defined in: packages/engines/http/HlsClient.ts:192
Checks whether a response should be handled as an HLS manifest.
string
Response content type.
string
Final response URL.
boolean
true when the response appears to be an HLS playlist.