Metadata-Version: 2.0
Name: hlsorigin
Version: 0.0.13
Summary: Command line tools for HLS manipulation at origin or edge server
Home-page: https://github.com/Eyevinn/hls-origin-scripts
Author: Jonas Birme
Author-email: jonas.birme@eyevinn.se
License: MIT
Platform: UNKNOWN
Requires-Dist: m3u8 (>=0.3.0)

# Description
This package contains useful scripts to manipulate HLS manifests at origin or edge server.

| Script         | Description         |
| -------------- | ------------------- |
| hls-capture    | Create a VOD playlist between two timestamps in a LIVE playlist |
| hls-live-from-vod  | Create a LIVE playlist from a set of VOD playlists |
| hls-startover  | Create a LIVE playlist from a specific starttime in another LIVE playlist |

## Preconditions
These scripts are based on the assumption that all HLS manifest files and segments are archived at the origin server where these scripts are executed. The archive for a specific live stream contains the history for all HLS manifest updates. For example:

Live HLS stream called 'foo' is archived in the directory /archive/foo on the server. It contains all updated HLS manifest files with a unix timestamp when it was last updated.

	master800.m3u8-1472977456
	master800.m3u8-1472977465
	master800.m3u8-1472977475

All video segments are also stored in the same directory.

# Installation
>From source

	git clone https://github.com/Eyevinn/hls-origin-scripts.git
	cd hls-origin-scripts
	python setup.py install

>From Python Package Index

	pip install hlsorigin

# Usage

These scripts are executed by the request handler at the origin webserver. The scripts output the generated manifest file to stdout

## hls-capture
Generate a VOD playlist from a LIVE HLS where segments and manifest files are archived at /hlsarchive/stream/. A 20 minutes VOD manifest from 11:45 to 12:05 is created in this case.

	hls-capture /hlsarchive/stream/ --mediaplaylist master800.m3u8 --in "2016-09-04 11:45:00" --out "2016-09-04 12:05:00"

By default any cueout periods (e.g. ads) are removed and a discontinuity tag is added in the generated manifest. Available options:

	--help					show help message and exit
	--in TS				YYYY-mm-dd HH:MM:SS
	--out TS				YYYY-mm-dd HH:MM:SS
	--mediaplaylist PL	name of media playlist
	--noremovecueout		do not remove segments in cue out periods

## hls-startover
Generate a new LIVE HLS playlist with a new start position. This is useful when needing a startover functionality but the user should not be able to watch before the startover position.

	hls-startover /hlsarchive/stream/ --mediaplaylist master800.m3u8 --startover "2016-09-04 16:25:00"

Available options:

	--help					show help message and exit
	--mediaplaylist PL	name of media playlist
	--startover TS		YYYY-mm-dd HH:MM:SS

## hls-live-from-vod

TBD

# Contribution
We welcome contributions to this project. Just follow the normal procedures by forking this repository, create a topic branch for your fix and then submit a pull request.

# License
See LICENSE for details

