hlx-lib
A library for processing HLS streams in Node.js
Features
- It exposes
gulp
like interface for processing an HLS stream as Node's object mode stream. - The stream is represented as a series of
data
events ofhls-parser
objects. - To process the stream, users just need to insert their own
Transform
stream between thesrc
anddest
.
Install
Usage
Example 1 - Default source / destination
const hlx = ; // hlx-lib can be transparently referenced via hlx moduleconst createDecryptor = ;const decryptor = ; // Store all decrypted files in /var/www/media/hlx;
Example 2 - Custom source
const hlx = ;const createReadStream = ;const reader = ; // Store all decrypted files in /var/www/media/hlx;
Example 3 - Custom destination
const hlx = ;const createReadStream = ;const writer = ; // Host the stream at http://localhost:8080/media/sample.m3u8hlx;
API
src(location[, options])
Creates a new stream.Readable
object.
params
Name | Type | Required | Default | Description |
---|---|---|---|---|
location | string or stream.Readable | Yes | N/A | It should be either of a local file path, a url of the playlist, or a custom source object (stream.Readable ) |
options | object | No | {} | See below |
options
Name | Type | Default | Description |
---|---|---|---|
noUriConversion | boolean | false | Passing true will prevent any URI conversions done internally. The default behavior is to convert all URIs into paths relative to the master playlist |
You can also pass the options for hlx-file-reader
's createReadStream
and hlx-url-rewriter
's 'createUrlRewriter
, which will be relayed to those modules internally.
return value
An instance of stream.Readable
.
When the location
is a local file path or a url, the hlx-file-reader
stream will be created. Otherwise, the passed readable stream will be returned back.
dest(location[, options])
Creates a new stream.Writable
object.
params
Name | Type | Required | Default | Description |
---|---|---|---|---|
location | string or stream.Writable | No | null | It should be either of a local file path or a custom destination object (stream.Writable ) |
options | object | No | {} | See below |
options
Name | Type | Default | Description |
---|---|---|---|
inputDir | string | / | The root directory from which all the files are read (This option is only used in case of file: urls) |
return value
When the location
is a local file path, the hlx-file-writer
stream will be created. Otherwise, the passed writable stream will be returned back.