hlx-lib

0.0.29 • Public • Published

Build Status Coverage Status Dependency Status Development Dependency Status Known Vulnerabilities XO code style

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 of hls-parser objects.
  • To process the stream, users just need to insert their own Transform stream between the src and dest.

Install

NPM

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.

Dependents (0)

Package Sidebar

Install

npm i hlx-lib

Weekly Downloads

4

Version

0.0.29

License

MIT

Unpacked Size

7.56 kB

Total Files

5

Last publish

Collaborators

  • kuu