hlx-lib
v0.0.29
Published
A library for processing HLS streams
Downloads
10
Readme
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 = require('hlx'); // hlx-lib can be transparently referenced via hlx module
const {createDecryptor} = require('hlx-decryptor');
const decryptor = createDecryptor('AES-128');
// Store all decrypted files in /var/www/media/
hlx.src('https://foo.bar/sample.m3u8')
.pipe(decryptor)
.pipe(hlx.dest('/var/www/media/'));
Example 2 - Custom source
const hlx = require('hlx');
const {createReadStream} = require('hlx-src-webdav-pull');
const reader = createReadStream({
url: 'http://foo.bar/webdav',
user: {WebDAV user},
pass: {WebDAV password}
});
// Store all decrypted files in /var/www/media/
hlx.src(reader)
.pipe(decryptor)
.pipe(hlx.dest('/var/www/media/'));
Example 3 - Custom destination
const hlx = require('hlx');
const {createReadStream} = require('hlx-dest-http-server');
const writer = createWriteStream({
port: 8080,
prefix: 'media',
outputDir: '/var/www/media/'
});
// Host the stream at http://localhost:8080/media/sample.m3u8
hlx.src('https://foo.bar/sample.m3u8')
.pipe(decryptor)
.pipe(hlx.dest(writer));
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.