I am trying to parse HLS m3u8 file and where am stuck at is matching m3u8 links. So, if URI=
exists, from #EXT-X-I-FRAME-STREAM-INF
, grab the one in quotation marks, and if it doesn't, #EXT-X-STREAM-INF
, grab the link from new line.
Text:
#EXT-X-STREAM-INF:BANDWIDTH=263851,CODECS="mp4a.40.2, avc1.4d400d",RESOLUTION=416x234,AUDIO="bipbop_audio",SUBTITLES="subs"
gear1/prog_index.m3u8 <== new line link
#EXT-X-I-FRAME-STREAM-INF:URI="gear1/iframe_index.m3u8",CODECS="avc1.4d400d",BANDWIDTH=28451
Regex:
(?:#EXT-X-STREAM-INF:|#EXT-X-I-FRAME-STREAM-INF:)(?:BANDWIDTH=(?<BANDWIDTH>\d+),?|CODECS=(?<CODECS>"[^"]*"),?|RESOLUTION=(?<RESOLUTION>\d+x\d+),?|AUDIO=(?<AUDIO>"[^"]*"),?|SUBTITLES=(?<SUBTITLES>"[^"]*"),?|URI=(?<URI>"[^"]*"),?)*
URI
group (with(?J)
modifier) if#EXT-X-STREAM-INF
was matched in Group 1. – Wiktor Stribiżew