diff --git a/src/main/java/io/antmedia/filter/HlsManifestModifierFilter.java b/src/main/java/io/antmedia/filter/HlsManifestModifierFilter.java index ff21c3818..2ba8223d2 100644 --- a/src/main/java/io/antmedia/filter/HlsManifestModifierFilter.java +++ b/src/main/java/io/antmedia/filter/HlsManifestModifierFilter.java @@ -157,35 +157,42 @@ else if (StringUtils.isNullOrEmpty(startDate) || StringUtils.isNullOrEmpty(endDa } if(original != null) { - MediaPlaylistParser parser = new MediaPlaylistParser(); - MediaPlaylist playList = parser.readPlaylist(original); - - List segments = new ArrayList<>(); - for (MediaSegment segment : playList.mediaSegments()) - { - segment.programDateTime().ifPresent(dateTime -> + String newData = ""; + if(StringUtils.isNullOrEmpty(startDate) || StringUtils.isNullOrEmpty(endDate)) { + //I have added this to handle all and partial m3u8 in redirection case + newData = original; + } + else { + MediaPlaylistParser parser = new MediaPlaylistParser(); + MediaPlaylist playList = parser.readPlaylist(original); + + List segments = new ArrayList<>(); + for (MediaSegment segment : playList.mediaSegments()) { - long time = dateTime.toEpochSecond(); - if (time >= start && time <= end) + segment.programDateTime().ifPresent(dateTime -> { - segments.add(MediaSegment.builder() - .duration(segment.duration()) - .uri(segment.uri()) - .build()); - } - }); - } - - MediaPlaylist newPlayList = MediaPlaylist.builder() - .version(playList.version()) - .targetDuration(playList.targetDuration()) - .ongoing(false) - .addAllMediaSegments(segments) - .build(); - - String newData = new MediaPlaylistParser().writePlaylistAsString(newPlayList); - if (parameterExists) { - newData = modifyManifestFileContent(newData, token, subscriberId, subscriberCode, SEGMENT_FILE_REGEX); + long time = dateTime.toEpochSecond(); + if (time >= start && time <= end) + { + segments.add(MediaSegment.builder() + .duration(segment.duration()) + .uri(segment.uri()) + .build()); + } + }); + } + + MediaPlaylist newPlayList = MediaPlaylist.builder() + .version(playList.version()) + .targetDuration(playList.targetDuration()) + .ongoing(false) + .addAllMediaSegments(segments) + .build(); + + newData = new MediaPlaylistParser().writePlaylistAsString(newPlayList); + if (parameterExists) { + newData = modifyManifestFileContent(newData, token, subscriberId, subscriberCode, SEGMENT_FILE_REGEX); + } } // Write final modified data to response