gitextract_hu9vpdm4/ ├── .github/ │ └── workflows/ │ ├── release.yml │ └── tests.yml ├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── index.ts ├── package.json ├── parse.ts ├── stringify.ts ├── test/ │ ├── fixtures/ │ │ ├── m3u8/ │ │ │ ├── 8.1-Simple-Media-Playlist.m3u8 │ │ │ ├── 8.10-EXT-X-DATERANGE-carrying-SCTE-35-tags.m3u8 │ │ │ ├── 8.11-EXT-X-CUE-OUT-Media-Playlist.m3u8 │ │ │ ├── 8.2-Live-Media-Playlist_using-HTTPS.m3u8 │ │ │ ├── 8.3-Playlist-with-encrypted-Media-Segments.m3u8 │ │ │ ├── 8.4-Master-Playlist.m3u8 │ │ │ ├── 8.5-Master-Playlist-with-I-Frames.m3u8 │ │ │ ├── 8.6-Master-Playlist-with-Alternative-audio.m3u8 │ │ │ ├── 8.7-Master-Playlist-with-Alternative-video.m3u8 │ │ │ ├── 8.8-Session-Data-in-a-Master-Playlist.m3u8 │ │ │ ├── 8.9-CHARACTERISTICS-attribute-containing-multiple-characteristics.m3u8 │ │ │ ├── Low-Latency_Example-01_Low-Latency_HLS_Playlist.m3u8 │ │ │ ├── Low-Latency_Example-02_Playlist_Delta_Update.m3u8 │ │ │ ├── Low-Latency_Example-03_Byterange-addressed_Parts-01.m3u8 │ │ │ ├── Low-Latency_Example-03_Byterange-addressed_Parts-02.m3u8 │ │ │ ├── Low-Latency_Example-03_Byterange-addressed_Parts-03.m3u8 │ │ │ ├── Multiple-rendition-groups.m3u8 │ │ │ ├── RedundantSegments.m3u8 │ │ │ ├── SCTE-35_01.m3u8 │ │ │ ├── SCTE-35_02.m3u8 │ │ │ ├── SCTE-35_03.m3u8 │ │ │ ├── SCTE-35_04.m3u8 │ │ │ ├── SCTE-35_05.m3u8 │ │ │ ├── SCTE-35_06.m3u8 │ │ │ ├── SCTE-35_07.m3u8 │ │ │ ├── Streaming-Examples_bipbop_16x9_variant.m3u8 │ │ │ └── Streaming-Examples_img_bipbop_adv_example_ts_master.m3u8 │ │ └── objects/ │ │ ├── 8.1-Simple-Media-Playlist.js │ │ ├── 8.10-EXT-X-DATERANGE-carrying-SCTE-35-tags.js │ │ ├── 8.11-EXT-X-CUE-OUT-Media-Playlist.js │ │ ├── 8.2-Live-Media-Playlist_using-HTTPS.js │ │ ├── 8.3-Playlist-with-encrypted-Media-Segments.js │ │ ├── 8.4-Master-Playlist.js │ │ ├── 8.5-Master-Playlist-with-I-Frames.js │ │ ├── 8.6-Master-Playlist-with-Alternative-audio.js │ │ ├── 8.7-Master-Playlist-with-Alternative-video.js │ │ ├── 8.8-Session-Data-in-a-Master-Playlist.js │ │ ├── 8.9-CHARACTERISTICS-attribute-containing-multiple-characteristics.js │ │ ├── Low-Latency_Example-01_Low-Latency_HLS_Playlist.js │ │ ├── Low-Latency_Example-02_Playlist_Delta_Update.js │ │ ├── Low-Latency_Example-03_Byterange-addressed_Parts-01.js │ │ ├── Low-Latency_Example-03_Byterange-addressed_Parts-02.js │ │ ├── Low-Latency_Example-03_Byterange-addressed_Parts-03.js │ │ ├── Multiple-rendition-groups.js │ │ ├── RedundantSegments.js │ │ ├── SCTE-35_01.js │ │ ├── SCTE-35_02.js │ │ ├── SCTE-35_03.js │ │ ├── SCTE-35_04.js │ │ ├── SCTE-35_05.js │ │ ├── SCTE-35_06.js │ │ ├── SCTE-35_07.js │ │ ├── Streaming-Examples_bipbop_16x9_variant.js │ │ └── Streaming-Examples_img_bipbop_adv_example_ts_master.js │ ├── helpers/ │ │ ├── fixtures.js │ │ ├── matchers.js │ │ └── utils.js │ └── spec/ │ ├── 4_Playlists/ │ │ └── 4.3_Playlist-Tags/ │ │ ├── 4.3.1_Basic-Tags/ │ │ │ ├── 4.3.1.1_EXTM3U.spec.js │ │ │ └── 4.3.1.2_EXT-X-VERSION.spec.js │ │ ├── 4.3.2_Media-Segment-Tags/ │ │ │ ├── 4.3.2.1_EXTINF.spec.js │ │ │ ├── 4.3.2.2_EXT-X-BYTERANGE.spec.js │ │ │ ├── 4.3.2.3_EXT-X-DISCONTINUITY.spec.js │ │ │ ├── 4.3.2.4_EXT-X-KEY.spec.js │ │ │ ├── 4.3.2.5_EXT-X-MAP.spec.js │ │ │ ├── 4.3.2.6_EXT-X-PROGRAM-DATE-TIME.spec.js │ │ │ ├── 4.3.2.7_EXT-X-DATERANGE.spec.js │ │ │ ├── 4.3.2_Media-Segment-Tags.spec.js │ │ │ └── 4.4.4.7_EXT-X-GAP.spec.js │ │ ├── 4.3.3_Media-Playlist-Tags/ │ │ │ ├── 4.3.3.1_EXT-X-TARGETDURATION.spec.js │ │ │ ├── 4.3.3.2_EXT-X-MEDIA-SEQUENCE.spec.js │ │ │ ├── 4.3.3.3_EXT-X-DISCONTINUITY-SEQUENCE.spec.js │ │ │ ├── 4.3.3.4_EXT-X-ENDLIST.spec.js │ │ │ ├── 4.3.3.5_EXT-X-PLAYLIST-TYPE.spec.js │ │ │ ├── 4.3.3.6_EXT-X-I-FRAMES-ONLY.spec.js │ │ │ ├── 4.3.3.7_EXT-X-CUE-OUT.spec.js │ │ │ └── 4.3.3_Media-Playlist-Tags.spec.js │ │ ├── 4.3.4_Master-Playlist-Tags/ │ │ │ ├── 4.3.4.1_EXT-X-MEDIA.spec.js │ │ │ ├── 4.3.4.2_EXT-X-STREAM-INF.spec.js │ │ │ ├── 4.3.4.2_EXT-X-STREAM-INF_2.spec.js │ │ │ ├── 4.3.4.3_EXT-X-I-FRAME-STREAM-INF.spec.js │ │ │ ├── 4.3.4.4_EXT-X-SESSION-DATA.spec.js │ │ │ ├── 4.3.4.5_EXT-X-SESSION-KEY.spec.js │ │ │ └── 4.3.4_Master-Playlist-Tags.spec.js │ │ └── 4.3.5_Media-or-Master-Playlist-Tags/ │ │ ├── 4.3.5.1_EXT-X-INDEPENDENT-SEGMENTS.spec.js │ │ └── 4.3.5.2_EXT-X-START.spec.js │ ├── 7_Protocol-version-compatibility/ │ │ └── 7_EXT-X-VERSION.spec.js │ ├── Apple-Low-Latency/ │ │ └── New_Media_Playlist_Tags_for_Low-Latency_HLS/ │ │ ├── 01_EXT-X-SERVER-CONTROL.spec.js │ │ ├── 02_EXT-X-PART-INF.spec.js │ │ ├── 03_EXT-X-PART.spec.js │ │ ├── 04_EXT-X-PRELOAD-HINT.spec.js │ │ ├── 05_EXT-X-RENDITION-REPORT.spec.js │ │ └── 06_EXT-X-SKIP.spec.js │ ├── Apple_HLS_Overview/ │ │ └── 02_Using_HLS.spec.js │ ├── HLSJS-LHLS/ │ │ ├── 01_EXT-X-PREFETCH.spec.js │ │ └── 02_EXT-X-PREFETCH-DISCONTINUITY.spec.js │ ├── misc/ │ │ ├── multiple-rendition-groups.js │ │ └── scte-35.spec.js │ ├── parser.spec.js │ ├── stringify.spec.js │ └── utils.spec.js ├── tsconfig.json ├── types.ts └── utils.ts