{"_id":"@ajachukwu/hls-parse-modified","name":"@ajachukwu/hls-parse-modified","dist-tags":{"latest":"0.10.4"},"versions":{"0.10.4":{"name":"@ajachukwu/hls-parse-modified","version":"0.10.4","description":"A simple library to read/write HLS playlists","main":"index.js","browser":"dist/hls-parser.min.js","scripts":{"lint":"xo","audit":"npm audit --audit-level high","coverage":"nyc npm test && nyc report --reporter=text-lcov | coveralls","build":"rm -fR ./dist; webpack --mode development ; webpack --mode production","test":"npm run lint && npm run build && npm run audit && ava --verbose"},"repository":{"type":"git","url":"git+https://github.com/kuu/hls-parser.git"},"keywords":["HLS","media","video","audio","streaming"],"author":{"name":"Kuu Miyazaki"},"license":"MIT","bugs":{"url":"https://github.com/kuu/hls-parser/issues"},"homepage":"https://github.com/kuu/hls-parser#readme","devDependencies":{"@babel/core":"^7.13.15","@babel/preset-env":"^7.13.15","ava":"^3.15.0","babel-loader":"^8.2.2","coveralls":"^3.1.0","nyc":"^15.1.0","rewire":"^5.0.0","terser-webpack-plugin":"^5.1.1","webpack":"^5.33.2","webpack-cli":"^4.6.0","xo":"0.38.2"},"xo":{"esnext":true,"space":true,"rules":{"ava/no-ignored-test-files":0,"camelcase":0,"capitalized-comments":0,"dot-notation":0,"import/no-dynamic-require":0,"new-cap":0,"no-cond-assign":0,"no-mixed-operators":0,"no-multi-assign":0,"padding-line-between-statements":0,"quotes":0,"unicorn/catch-error-name":0,"unicorn/filename-case":0,"unicorn/no-lonely-if":0,"unicorn/no-zero-fractions":0,"unicorn/prevent-abbreviations":0},"overrides":[{"files":"test/**/*.js","rules":{"unicorn/no-array-push-push":0}}],"settings":{"import/resolver":{"node":{}}}},"gitHead":"285e332c61b697312abcadf641177febaac28050","_id":"@ajachukwu/hls-parse-modified@0.10.4","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-6PxVD1bEHLPA+vsytoLMj5pB2Du/RBDnx7dhIdFBTz2PNnrKQWcqUPmLPm7xggB6Cj6RxyxxG7L99xzlfOm4LA==","shasum":"8dd5d198b458fc6cbc54792e4221218821909502","tarball":"https://registry.npmjs.org/@ajachukwu/hls-parse-modified/-/hls-parse-modified-0.10.4.tgz","fileCount":12,"unpackedSize":290794,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7xbQtUbEjYCMJJoL1G5qkZf4ylUITgs96xUzEGtXFmAiARn4bx0Qye+VRv2OoNtZt77nXAL4MOGV6kBj1Spxzleg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi0TOLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZnQ/+OUeoWJnI25zet1cw0mtc9Wy5qP9IGjjuVGSmGTDebX45SmYI\r\nhqE1bk2bSWwGz5BKPS2+WYelghNRt0G94LlcRydZGWyvAi3YCq0QhZbcp8V4\r\nuXlG7D1D0i5GU3PiFaP42ln0Y/1Cpv84v+Ml4y5aYZuR0eM8XlAtK7amv3WT\r\nagYQe9fNKFIm6Dj+EAgiQ0DsHrmK8dvYt72ATPf75XjDeTdb3HiJOReV2b2C\r\nF9fjhn036pyKSGeTSAFIx77n7BM+/oQFIMOXthgcvI9Ie16oxChnUpN2BekM\r\nAzz5E7RKO5h2tb8rZT8/SaOzDrebF9WVPURxr+RbMZDfwyXcn6t6jS7j/P8U\r\nDWrak9NNfwM86FxpmLs6KFhM7iLe+1fTn2xcqpe5Wv/U+79EyWdnsxGkKWBB\r\ngO8/2t92n0u24hBpxnqNgreOKme2UyxnseHhsGIweZc05KwY90ngEI75dwRR\r\ntwo8Wji+GJhYX6dPbM6zg5xOsXX3K2a1Q6v9A9hdeVptmo0nQzvH1oiSmp6b\r\na2YFdgaQSA5pEIegRi/wVFQI5ldbEAPDJp7y1DvhUfR6kEvOKEWR2Z5SsTLU\r\nFhJNdXjTNsvlO1Pxr1eckK5xWXMmSLEQVXMzYEstUmUfy78g8Wy2+DW9147d\r\n0Fuu5S4Vv1vkVWFY3NwgwCPEsDkC02dRQ7w=\r\n=gZgW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ajachukwu","email":"asonyeblissajachi@gmail.com"},"directories":{},"maintainers":[{"name":"ajachukwu","email":"asonyeblissajachi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hls-parse-modified_0.10.4_1657877386826_0.057836371120773444"},"_hasShrinkwrap":false}},"time":{"created":"2022-07-15T09:29:46.750Z","0.10.4":"2022-07-15T09:29:47.038Z","modified":"2022-07-15T09:29:47.197Z"},"maintainers":[{"name":"ajachukwu","email":"asonyeblissajachi@gmail.com"}],"description":"A simple library to read/write HLS playlists","homepage":"https://github.com/kuu/hls-parser#readme","keywords":["HLS","media","video","audio","streaming"],"repository":{"type":"git","url":"git+https://github.com/kuu/hls-parser.git"},"author":{"name":"Kuu Miyazaki"},"bugs":{"url":"https://github.com/kuu/hls-parser/issues"},"license":"MIT","readme":"[![Build Status](https://travis-ci.org/kuu/hls-parser.svg?branch=master)](https://travis-ci.org/kuu/hls-parser)\r\n[![Coverage Status](https://coveralls.io/repos/github/kuu/hls-parser/badge.svg?branch=master)](https://coveralls.io/github/kuu/hls-parser?branch=master)\r\n[![Dependency Status](https://david-dm.org/kuu/hls-parser.svg)](https://david-dm.org/kuu/hls-parser)\r\n[![Development Dependency Status](https://david-dm.org/kuu/hls-parser/dev-status.svg)](https://david-dm.org/kuu/hls-parser#info=devDependencies)\r\n[![Known Vulnerabilities](https://snyk.io/test/github/kuu/hls-parser/badge.svg)](https://snyk.io/test/github/kuu/hls-parser)\r\n[![npm Downloads](https://img.shields.io/npm/dw/hls-parser.svg?style=flat-square)](https://npmjs.com/hls-parser)\r\n[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)\r\n\r\n\r\n# hls-parser\r\n\r\nProvides synchronous functions to read/write HLS playlists (conforms to [the HLS spec rev.23](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23), [the Apple Low-Latency Spec rev. 2020/02/05](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification), and [HLS.js's Low-Latency spec](https://github.com/video-dev/hlsjs-rfcs/blob/lhls-spec/proposals/0001-lhls.md))\r\n\r\n## Install\r\n[![NPM](https://nodei.co/npm/hls-parser.png?mini=true)](https://nodei.co/npm/hls-parser/)\r\n[![](https://data.jsdelivr.com/v1/package/npm/hls-parser/badge)](https://www.jsdelivr.com/package/npm/hls-parser?path=dist)\r\n\r\n## Usage\r\n```js\r\nconst HLS = require('hls-parser'); // For node\r\n// For browsers, just use dist/hls-parser.min.js defined as a UMD module.\r\n\r\n// Parse the playlist\r\nconst playlist = HLS.parse(textData);\r\n// You can access the playlist as a JS object\r\nif (playlist.isMasterPlaylist) {\r\n  // Master playlist\r\n} else {\r\n  // Media playlist\r\n}\r\n// Create a new playlist\r\nconst {MediaPlaylist, Segment} = HLS.types;\r\nconst obj = new MediaPlaylist({\r\n  targetDuration: 9,\r\n  playlistType: 'VOD',\r\n  segments: [\r\n    new Segment({\r\n      uri: 'low/1.m3u8',\r\n      duration: 9\r\n    })\r\n  ]\r\n});\r\n// Convert the object into a text\r\nHLS.stringify(obj);\r\n/*\r\n#EXTM3U\r\n#EXT-X-TARGETDURATION:9\r\n#EXT-X-PLAYLIST-TYPE:VOD\r\n#EXTINF:9,\r\nlow/1.m3u8\r\n*/\r\n```\r\n\r\n## API\r\n\r\n### `HLS.parse(str)`\r\nConverts a text playlist into a structured JS object\r\n\r\n#### params\r\n| Name    | Type   | Required | Default | Description   |\r\n| ------- | ------ | -------- | ------- | ------------- |\r\n| str     | string | Yes      | N/A     | A text data that conforms to [the HLS playlist spec](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.1) |\r\n\r\n#### return value\r\nAn instance of either `MasterPlaylist` or `MediaPlaylist` (See **Data format** below.)\r\n\r\n### `HLS.stringify(obj)`\r\nConverts a JS object into a plain text playlist\r\n\r\n#### params\r\n| Name    | Type   | Required | Default | Description   |\r\n| ------- | ------ | -------- | ------- | ------------- |\r\n| obj     | `MasterPlaylist` or `MediaPlaylist` (See **Data format** below.)  | Yes      | N/A     | An object returned by `HLS.parse()` or a manually created object |\r\n\r\n#### return value\r\nA text data that conforms to [the HLS playlist spec](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.1)\r\n\r\n### `HLS.setOptions(obj)`\r\nUpdates the option values\r\n\r\n#### params\r\n| Name    | Type   | Required | Default | Description   |\r\n| ------- | ------ | -------- | ------- | ------------- |\r\n| obj     | Object | Yes      | {}     | An object holding option values which will be used to overwrite the internal option values.  |\r\n\r\n##### supported options\r\n| Name       | Type    | Default | Description   |\r\n| ---------- | ------- | ------- | ------------- |\r\n| `strictMode` | boolean | false   | If true, the function throws an error when `parse`/`stringify` failed. If false, the function just logs the error and continues to run.|\r\n| `allowClosedCaptionsNone` | boolean | false | If true, `CLOSED-CAPTIONS` attribute on the `EXT-X-STREAM-INF` tag will be set to the enumerated-string value NONE when there are no closed-captions. See [CLOSED-CAPTIONS](https://tools.ietf.org/html/rfc8216#section-4.3.4.2) |\r\n| `silent` | boolean | false   | If true, `console.error` will be suppressed.|\r\n\r\n### `HLS.getOptions()`\r\nRetrieves the current option values\r\n\r\n#### return value\r\nA cloned object containing the current option values\r\n\r\n### `HLS.types`\r\nAn object that holds all the classes described below.\r\n\r\n\r\n## Data format\r\nThis section describes the structure of the object returned by `parse()` method.\r\n\r\n![data structure](./data-structure.png)\r\n\r\n### `Data`\r\n| Property         | Type          | Required | Default | Description   |\r\n| ---------------- | ------------- | -------- | ------- | ------------- |\r\n| `type` | string     | Yes      | N/A     | Either `playlist` or `segment` or `part`}  |\r\n\r\n### `Playlist` (extends `Data`)\r\n| Property         | Type          | Required | Default | Description   |\r\n| ---------------- | ------------- | -------- | ------- | ------------- |\r\n| `isMasterPlaylist` | boolean     | Yes      | N/A     | `true` if this playlist is a master playlist  |\r\n| `uri`              | string | No      | undefined     | Playlist URL  |\r\n| `version`          | number | No       | undefined      | See [EXT-X-VERSION](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.1.2) |\r\n| `independentSegments` | boolean | No       | false      | See [EXT-X-INDEPENDENT-SEGMENTS](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.5.1) |\r\n| `start` | object({offset: number, precise: boolean}) | No       | undefined      | See [EXT-X-START](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.5.2) |\r\n| `source` | string     | No      | undefined     | The unprocessed text of the playlist  |\r\n\r\n### `MasterPlaylist` (extends `Playlist`)\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `variants`        | [`Variant`]  | No       | []        | See [ EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) and [EXT-X-I-FRAME-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.3)  |\r\n| `currentVariant`  | number   | No       | undefined | Array index that points to the chosen item in `variants` |\r\n| `sessionDataList` | [`SessionData`]  | No       | []        | See [EXT-X-SESSION-DATA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.4) |\r\n| `sessionKeyList`      | [`Key`]    | No       | [] | See [EXT-X-SESSION-KEY](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.5) |\r\n\r\n### `Variant`\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `uri`        | string  | Yes       | N/A        | URI of the variant playlist  |\r\n| `isIFrameOnly`  | boolean   | No       | undefined | `true` if the variant is an I-frame media playlist. See [EXT-X-I-FRAME-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.3) |\r\n| `bandwidth` | number  | Yes       | N/A        | See BANDWIDTH attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |\r\n| `averageBandwidth`      | number    | No       | undefined | See AVERAGE-BANDWIDTH attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |\r\n| `score`      | number    | No       | undefined | See SCORE attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-4.4.6.2) |\r\n| `codecs`      | string    | No       | undefined | See CODECS attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |\r\n| `resolution`      | object ({width: number, height: number})   | No       | undefined | See RESOLUTION attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |\r\n| `frameRate`      | number    | No       | undefined | See FRAME-RATE attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |\r\n| `hdcpLevel`      | string    | No       | undefined | See HDCP-LEVEL attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |\r\n| `allowedCpc`   | [object ({format: string, cpcList: [string]})]  | No       | undefined | See ALLOWED-CPC attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-4.4.6.2) |\r\n| `videoRange`      | string {\"SDR\",\"HLG\",\"PQ\"}    | No       | undefined | See VIDEO-RANGE attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-4.4.6.2) |\r\n| `stableVariantId`      | string   | No       | undefined | See STABLE-VARIANT-ID attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-4.4.6.2) |\r\n| `audio`      | [`Rendition`(type='AUDIO')]    | No       | [] | See AUDIO attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |\r\n| `video`      | [`Rendition`(type='VIDEO')]    | No       | [] | See VIDEO attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2)  |\r\n| `subtitles`      | [`Rendition`(type='SUBTITLES')]    | No       | [] | See SUBTITLES attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2)  |\r\n| `closedCaptions`      | [`Rendition`(type='CLOSED-CAPTIONS')]    | No       | [] | See CLOSED-CAPTIONS attribute in [EXT-X-STREAM-INF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.2) |\r\n| `currentRenditions`      | object ({audio: number, video: number, subtitles: number, closedCaptions: number})   | No       | {} | A hash object that contains array indices that points to the chosen `Rendition` for each type |\r\n\r\n### `Rendition`\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `type`  | string   | Yes       | N/A | See TYPE attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n| `uri`        | string  | No       | undefined        | See URI attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1)  |\r\n| `groupId`  | string   | Yes       | N/A | See GROUP-ID attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n| `language` | string  | No       | undefined       | See LANGUAGE attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n| `assocLanguage` | string  | No       | undefined       | See ASSOC-LANGUAGE attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n| `name`  | string   | Yes       | N/A | See NAME attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n| `isDefault`  | boolean   | No       | false | See DEFAULT attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n| `autoselect`  | boolean   | No       | false | See AUTOSELECT attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n| `forced`  | boolean   | No       | false | See FORCED attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n| `instreamId`  | string   | No       | undefined | See INSTREAM-ID attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n| `characteristics`  | string   | No       | undefined | See CHARACTERISTICS attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n| `channels`  | string   | No       | undefined | See CHANNELS attribute in [EXT-X-MEDIA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.1) |\r\n\r\n### `SessionData`\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `id`  | string   | Yes       | N/A | See DATA-ID attribute in [EXT-X-SESSION-DATA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.4) |\r\n| `value`  | string   | No       | undefined | See VALUE attribute in [EXT-X-SESSION-DATA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.4) |\r\n| `uri`        | string  | No       | undefined        | See URI attribute in [EXT-X-SESSION-DATA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.4)  |\r\n| `language`  | string   | No       | undefined | See LANGUAGE attribute in [EXT-X-SESSION-DATA](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.4.4) |\r\n\r\n### `MediaPlaylist` (extends `Playlist`)\r\n| Property                    | Type     | Required | Default   | Description   |\r\n| --------------------------- | -------- | -------- | --------- | ------------- |\r\n| `targetDuration`            | number | Yes       | N/A        | See [EXT-X-TARGETDURATION](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.3.1) |\r\n| `mediaSequenceBase`         | number | No       | 0        | See [EXT-X-MEDIA-SEQUENCE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.3.2) |\r\n| `discontinuitySequenceBase` | number | No       | 0        | See [EXT-X-DISCONTINUITY-SEQUENCE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.3.3) |\r\n| `endlist`                   | boolean | No       | false        | See [EXT-X-ENDLIST](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.3.4) |\r\n| `playlistType`              | string | No       | undefined        | See [EXT-X-PLAYLIST-TYPE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.3.5) |\r\n| `isIFrame`                  | boolean | No       | undefined        | See [EXT-X-I-FRAMES-ONLY](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.3.6) |\r\n| `segments`                  | [`Segment`] | No       | []        | A list of available segments |\r\n| `prefetchSegments`          | [`PrefetchSegment`] | No       | []        | A list of available prefetch segments |\r\n| `lowLatencyCompatibility`  | object ({canBlockReload: boolean, canSkipUntil: number, holdBack: number, partHoldBack: number})   | No       | undefined | See `CAN-BLOCK-RELOAD`, `CAN-SKIP-UNTIL`, `HOLD-BACK`, and `PART-HOLD-BACK` attributes in [EXT-X-SERVER-CONTROL](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3281374) |\r\n| `partTargetDuration`            | number | No*      | undefined        | *Required if the playlist contains one or more `EXT-X-PART` tags. See [EXT-X-PART-INF](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3282434) |\r\n| `renditionReports`  | [`RenditionReport`]   | No       | [] | Update status of the associated renditions |\r\n| `skip`  | number   | No       | 0 | See [EXT-X-SKIP](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3282433) |\r\n\r\n### `Segment` (extends `Data`)\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `uri`        | string  | Yes*       | N/A        | URI of the media segment. *Not required if the segment contains `EXT-X-PRELOAD-HINT` tag |\r\n| `duration`  | number   | Yes*       | N/A | See [EXTINF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.1) *Not required if the segment contains `EXT-X-PRELOAD-HINT` tag |\r\n| `title`  | string   | No       | undefined | See [EXTINF](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.1) |\r\n| `byterange`  | object ({length: number, offset: number})   | No       | undefined | See [EXT-X-BYTERANGE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.2) |\r\n| `discontinuity`  | boolean   | No       | undefined | See [EXT-X-DISCONTINUITY](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.3) |\r\n| `mediaSequenceNumber`  | number   | No       | 0 | See the description about 'Media Sequence Number' in [3. Media Segments](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#page-5) |\r\n| `discontinuitySequence`  | number   | No       | 0 | See the description about 'Discontinuity Sequence Number' in [6.2.1. General Server Responsibilities](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-6.2.1) |\r\n| `key`  | `Key`   | No       | undefined | See [EXT-X-KEY](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.4) |\r\n| `map`  | `MediaInitializationSection`   | No       | undefined | See [EXT-X-MAP](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.5) |\r\n| `programDateTime`  | `Date`   | No       | undefined | See [EXT-X-PROGRAM-DATE-TIME](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.6) |\r\n| `dateRange`  | `DateRange`   | No       | undefined | See [EXT-X-DATERANGE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.7) |\r\n| `markers`  | [`SpliceInfo`]   | No       | [] | SCTE-35 messages associated with this segment|\r\n| `parts`  | [`PartialSegment`]   | No       | [] | Partial Segments that constitute this segment |\r\n\r\n### `PartialSegment` (extends `Data`)\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `hint`        | boolean  | No       | false        | `true` indicates a hinted resource (`TYPE=PART`) See [EXT-X-PRELOAD-HINT](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3526694) |\r\n| `uri`        | string  | Yes       | N/A        | See `URI` attribute in [EXT-X-PART](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3282436) |\r\n| `duration`  | number   | Yes*       | N/A | See `DURATION` attribute in [EXT-X-PART](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3282436) *Not required if `hint` is `true`|\r\n| `independent`  | boolean   | No       | undefined | See `INDEPENDENT` attribute in [EXT-X-PART](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3282436) |\r\n| `byterange`  | object ({length: number, offset: number})   | No       | undefined | See `BYTERANGE` attribute in [EXT-X-PART](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3282436) |\r\n| `gap`  | boolean   | No       | undefined | See `GAP` attribute in [EXT-X-PART](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3282436) |\r\n\r\n### `PrefetchSegment` (extends `Data`)\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `uri`        | string  | Yes       | N/A        | See value of [EXT-X-PREFETCH](https://github.com/video-dev/hlsjs-rfcs/blob/lhls-spec/proposals/0001-lhls.md) |\r\n| `discontinuity`  | boolean   | No       | undefined | See [EXT-X-PREFETCH-DISCONTINUITY](https://github.com/video-dev/hlsjs-rfcs/blob/lhls-spec/proposals/0001-lhls.md) |\r\n| `mediaSequenceNumber`  | number   | No       | 0 | See the description about 'Media Sequence Number' in [3. Media Segments](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#page-5) |\r\n| `discontinuitySequence`  | number   | No       | 0 | See the description about 'Discontinuity Sequence Number' in [6.2.1. General Server Responsibilities](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-6.2.1) |\r\n\r\n### `Key`\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `method`  | string   | Yes       | N/A | See METHOD attribute in [EXT-X-KEY](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.4) |\r\n| `uri`        | string  | No       | undefined        | See URI attribute in [EXT-X-KEY](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.4) |\r\n| `iv`        | `Buffer`(length=16)   | No       | undefined        | See IV attribute in [EXT-X-KEY](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.4) |\r\n| `format`  | string   | No       | undefined | See KEYFORMAT attribute in [EXT-X-KEY](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.4) |\r\n| `formatVersion`  | string   | No       | undefined | See KEYFORMATVERSIONS attribute in [EXT-X-KEY](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.4) |\r\n\r\n### `MediaInitializationSection`\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `hint`        | boolean  | No       | false        | `true` indicates a hinted resource (`TYPE=MAP`) See [EXT-X-PRELOAD-HINT](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3526694) |\r\n| `uri`        | string  | Yes       | N/A        | See URI attribute in [EXT-X-MAP](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.5) |\r\n| `byterange`        | object ({length: number, offset: number})   | No       | undefined        | See BYTERANGE attribute in [EXT-X-MAP](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.5) |\r\n\r\n### `DateRange`\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `id`        | string  | Yes       | N/A        | See ID attribute in [EXT-X-DATERANGE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.7) |\r\n| `classId`        | string   | No       | undefined        | See CLASS attribute in [EXT-X-DATERANGE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.7) |\r\n| `start`        | `Date`  | No       | undefined        | See START-DATE attribute in [EXT-X-DATERANGE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.7) |\r\n| `end`        | `Date`  | No       | undefined        | See END-DATE attribute in [EXT-X-DATERANGE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.7) |\r\n| `duration`        | number  | No       | undefined        | See DURATION attribute in [EXT-X-DATERANGE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.7) |\r\n| `plannedDuration`        | number  | No       | undefined        | See PLANNED-DURATION attribute in [EXT-X-DATERANGE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.7) |\r\n| `endOnNext`        | boolean  | No       | undefined        | See END-ON-NEXT attribute in [EXT-X-DATERANGE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.7) |\r\n| `attributes`        | object  | No       | {}        | A hash object that holds SCTE35 attributes and user defined attributes. See SCTE35-* and X-<client-attribute> attributes in [EXT-X-DATERANGE](https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.7) |\r\n\r\n### `SpliceInfo`\r\nOnly `EXT-X-CUE-OUT` and `EXT-X-CUE-IN` tags are supported. Other SCTE-35-related tags are stored as raw (string) values.\r\n\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `type`  | string   | Yes       | N/A | {'OUT', 'IN', 'RAW'} |\r\n| `duration`        | number   | No       | undefined        | Required if the `type` is 'OUT' |\r\n| `tagName`        | string   | No       | undefined        | Holds the tag name if any unsupported tag are found. Required if the `type` is 'RAW' |\r\n| `value`        | string   | No       | undefined        | Holds a raw (string) value for the unsupported tag. |\r\n\r\n### `RenditionReport`\r\n| Property          | Type     | Required | Default   | Description   |\r\n| ----------------- | -------- | -------- | --------- | ------------- |\r\n| `uri`        | string  | Yes       | N/A        | See `URI` attribute in [EXT-X-RENDITION-REPORT](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3282435) |\r\n| `lastMSN`        | number  | No       | undefined  | See `LAST-MSN` attribute in [EXT-X-RENDITION-REPORT](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3282435) |\r\n| `lastPart`        | number  | No       | undefined | See `LAST-PART` attribute in [EXT-X-RENDITION-REPORT](https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification#3282435) |\r\n","readmeFilename":"README.md"}