uupaa.m3u.js

M3U/M3U8 parser and builder.


Keywords
MPEG2TS, ts, HLS, M3U, M3U8, uupaa, WebModule
License
MIT
Install
npm install uupaa.m3u.js@1.0.0

Documentation

M3U8.js Build Status

npm

M3U8 Parser and Builder.

This module made of WebModule.

Documentation

Browser, NW.js and Electron

<script src="<module-dir>/lib/WebModule.js"></script>
<script src="<module-dir>/lib/M3U8.js"></script>
<script>

var m3u8 = "\n\
#EXTM3U\n\
#EXT-X-VERSION:3\n\
#EXT-X-ALLOW-CACHE:NO\n\
#EXT-X-TARGETDURATION:2\n\
#EXT-X-MEDIA-SEQUENCE:1459\n\
#EXTINF:0.858,\n\
media_w1360442349_1459.ts\n\
#EXTINF:0.886,\n\
media_w1360442349_1460.ts\n\
#EXTINF:0.835,\n\
media_w1360442349_1461.ts\n\
";

var mediaPlaylistObject = M3U8.parse(m3u8);

mediaPlaylistObject.version                 // -> 3
mediaPlaylistObject.targetDuration          // -> 2000 (2.0 * 1000)(msec)
mediaPlaylistObject.mediaSequence           // -> 1459
mediaPlaylistObject.mediaSegments.length    // -> 3

var mediaSegment0 = mediaPlaylistObject.mediaSegments[0];
var mediaSegment1 = mediaPlaylistObject.mediaSegments[1];

mediaSegment0.tsID                          // -> 1459
mediaSegment0.tsURL                         // -> "media_w1360442349_1459.ts"
mediaSegment0.tsDuration                    // -> 858  (0.858 * 1000)(msec)
mediaSegment0.tsTitle                       // -> ""
mediaSegment0.tsRange.startTime             // -> 0    (0.000 * 1000)(msec)
mediaSegment0.tsRange.endTime               // -> 858  (0.858 * 1000)(msec)

mediaSegment1.tsID                          // -> 1460
mediaSegment1.tsURL                         // -> "media_w1360442349_1460.ts"
mediaSegment1.tsDuration                    // -> 886  (msec)
mediaSegment1.tsTitle                       // -> ""
mediaSegment1.tsRange.startTime             // -> 858  (0.858 * 1000)(msec)
mediaSegment1.tsRange.endTime               // -> 1744 ((0.858 + 0.886) * 1000)(msec)

</script>

WebWorkers

importScripts("<module-dir>/lib/WebModule.js");
importScripts("<module-dir>/lib/M3U8.js");

Node.js

require("<module-dir>/lib/WebModule.js");
require("<module-dir>/lib/M3U8.js");