diff --git a/src/main/java/me/kavin/piped/utils/ResponseHelper.java b/src/main/java/me/kavin/piped/utils/ResponseHelper.java index 902acf4..5ed568d 100644 --- a/src/main/java/me/kavin/piped/utils/ResponseHelper.java +++ b/src/main/java/me/kavin/piped/utils/ResponseHelper.java @@ -136,10 +136,15 @@ public class ResponseHelper { }); final List subtitles = new ObjectArrayList<>(); + final List chapters = new ObjectArrayList<>(); final StreamInfo info = futureStream.get(); -// System.out.println(Constants.mapper.writeValueAsString(info.getStreamSegments())); + info.getStreamSegments().forEach(segment -> { + chapters.add( + new ChapterSegment(segment.getTitle(), segment.getPreviewUrl(), segment.getStartTimeSeconds())); + }); + info.getSubtitles() .forEach(subtitle -> subtitles.add(new Subtitle(rewriteURL(subtitle.getUrl()), subtitle.getFormat().getMimeType(), subtitle.getDisplayLanguageName(), @@ -184,8 +189,8 @@ public class ResponseHelper { List segments = new ObjectArrayList<>(); - info.getStreamSegments().forEach( - segment -> segments.add(new ChapterSegment(segment.getTitle(), segment.getStartTimeSeconds()))); + info.getStreamSegments().forEach(segment -> segments + .add(new ChapterSegment(segment.getTitle(), segment.getPreviewUrl(), segment.getStartTimeSeconds()))); long time = info.getUploadDate() != null ? info.getUploadDate().offsetDateTime().toInstant().toEpochMilli() : System.currentTimeMillis(); @@ -198,7 +203,7 @@ public class ResponseHelper { rewriteURL(info.getUploaderAvatarUrl()), rewriteURL(info.getThumbnailUrl()), info.getDuration(), info.getViewCount(), info.getLikeCount(), info.getDislikeCount(), info.isUploaderVerified(), audioStreams, videoStreams, relatedStreams, subtitles, livestream, rewriteURL(info.getHlsUrl()), - rewriteURL(info.getDashMpdUrl()), futureLbryId.get()); + rewriteURL(info.getDashMpdUrl()), futureLbryId.get(), chapters); return Constants.mapper.writeValueAsBytes(streams); diff --git a/src/main/java/me/kavin/piped/utils/obj/ChapterSegment.java b/src/main/java/me/kavin/piped/utils/obj/ChapterSegment.java index 5aba771..059eff1 100644 --- a/src/main/java/me/kavin/piped/utils/obj/ChapterSegment.java +++ b/src/main/java/me/kavin/piped/utils/obj/ChapterSegment.java @@ -2,11 +2,12 @@ package me.kavin.piped.utils.obj; public class ChapterSegment { - public String title; + public String title, image; public int start; - public ChapterSegment(String title, int start) { + public ChapterSegment(String title, String image, int start) { this.title = title; + this.image = image; this.start = start; } } diff --git a/src/main/java/me/kavin/piped/utils/obj/Streams.java b/src/main/java/me/kavin/piped/utils/obj/Streams.java index b8fca4d..72387fc 100644 --- a/src/main/java/me/kavin/piped/utils/obj/Streams.java +++ b/src/main/java/me/kavin/piped/utils/obj/Streams.java @@ -23,11 +23,13 @@ public class Streams { public final String proxyUrl = Constants.PROXY_PART; + public List chapters; + public Streams(String title, String description, String uploadDate, String uploader, String uploaderUrl, String uploaderAvatar, String thumbnailUrl, long duration, long views, long likes, long dislikes, boolean uploaderVerified, List audioStreams, List videoStreams, List relatedStreams, List subtitles, boolean livestream, String hls, String dash, - String lbryId) { + String lbryId, List chapters) { this.title = title; this.description = description; this.uploadDate = uploadDate; @@ -48,5 +50,6 @@ public class Streams { this.hls = hls; this.dash = dash; this.lbryId = lbryId; + this.chapters = chapters; } }