From 9fd20dd7b12abc67ef0c7ff5f9fdd8307b3fac71 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Sat, 10 Jun 2023 22:31:57 +0100 Subject: [PATCH] Add itags to the streams api. --- .../kavin/piped/server/handlers/StreamHandlers.java | 6 +++--- .../java/me/kavin/piped/utils/CollectionUtils.java | 6 +++--- .../java/me/kavin/piped/utils/obj/PipedStream.java | 11 +++++++---- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/me/kavin/piped/server/handlers/StreamHandlers.java b/src/main/java/me/kavin/piped/server/handlers/StreamHandlers.java index 320f4b5..9b93784 100644 --- a/src/main/java/me/kavin/piped/server/handlers/StreamHandlers.java +++ b/src/main/java/me/kavin/piped/server/handlers/StreamHandlers.java @@ -214,7 +214,7 @@ public class StreamHandlers { } if (lbryURL != null) - streams.videoStreams.add(0, new PipedStream(lbryURL, "MP4", "LBRY", "video/mp4", false, -1)); + streams.videoStreams.add(0, new PipedStream(-1, lbryURL, "MP4", "LBRY", "video/mp4", false, -1)); // Attempt to get dislikes calculating with the RYD API rating if (streams.dislikes < 0 && streams.likes >= 0) { @@ -260,10 +260,10 @@ public class StreamHandlers { } if (lbryHlsURL != null) - streams.videoStreams.add(0, new PipedStream(lbryHlsURL, "HLS", "LBRY HLS", "application/x-mpegurl", false, -1)); + streams.videoStreams.add(0, new PipedStream(-1, lbryHlsURL, "HLS", "LBRY HLS", "application/x-mpegurl", false, -1)); if (lbryURL != null) - streams.videoStreams.add(0, new PipedStream(lbryURL, "MP4", "LBRY", "video/mp4", false, -1)); + streams.videoStreams.add(0, new PipedStream(-1, lbryURL, "MP4", "LBRY", "video/mp4", false, -1)); long time = info.getUploadDate() != null ? info.getUploadDate().offsetDateTime().toInstant().toEpochMilli() : System.currentTimeMillis(); diff --git a/src/main/java/me/kavin/piped/utils/CollectionUtils.java b/src/main/java/me/kavin/piped/utils/CollectionUtils.java index 8b7ada0..0c46fdf 100644 --- a/src/main/java/me/kavin/piped/utils/CollectionUtils.java +++ b/src/main/java/me/kavin/piped/utils/CollectionUtils.java @@ -45,17 +45,17 @@ public class CollectionUtils { boolean livestream = info.getStreamType() == StreamType.LIVE_STREAM; if (!livestream) { - info.getVideoOnlyStreams().forEach(stream -> videoStreams.add(new PipedStream(rewriteVideoURL(stream.getContent()), + info.getVideoOnlyStreams().forEach(stream -> videoStreams.add(new PipedStream(stream.getItag(), rewriteVideoURL(stream.getContent()), String.valueOf(stream.getFormat()), stream.getResolution(), stream.getFormat().getMimeType(), true, stream.getBitrate(), stream.getInitStart(), stream.getInitEnd(), stream.getIndexStart(), stream.getIndexEnd(), stream.getCodec(), stream.getWidth(), stream.getHeight(), stream.getFps(), stream.getItagItem().getContentLength()))); info.getVideoStreams() .forEach(stream -> videoStreams - .add(new PipedStream(rewriteVideoURL(stream.getContent()), String.valueOf(stream.getFormat()), + .add(new PipedStream(stream.getItag(), rewriteVideoURL(stream.getContent()), String.valueOf(stream.getFormat()), stream.getResolution(), stream.getFormat().getMimeType(), false, stream.getItagItem().getContentLength()))); info.getAudioStreams() - .forEach(stream -> audioStreams.add(new PipedStream(rewriteVideoURL(stream.getContent()), + .forEach(stream -> audioStreams.add(new PipedStream(stream.getItag(), rewriteVideoURL(stream.getContent()), String.valueOf(stream.getFormat()), stream.getAverageBitrate() + " kbps", stream.getFormat().getMimeType(), false, stream.getBitrate(), stream.getInitStart(), stream.getInitEnd(), stream.getIndexStart(), stream.getIndexEnd(), stream.getItagItem().getContentLength(), stream.getCodec(), stream.getAudioTrackId(), diff --git a/src/main/java/me/kavin/piped/utils/obj/PipedStream.java b/src/main/java/me/kavin/piped/utils/obj/PipedStream.java index c798902..1d92129 100644 --- a/src/main/java/me/kavin/piped/utils/obj/PipedStream.java +++ b/src/main/java/me/kavin/piped/utils/obj/PipedStream.java @@ -8,11 +8,12 @@ public class PipedStream { public String url, format, quality, mimeType, codec, audioTrackId, audioTrackName, audioTrackType, audioTrackLocale; public boolean videoOnly; - public int bitrate, initStart, initEnd, indexStart, indexEnd, width, height, fps; + public int itag, bitrate, initStart, initEnd, indexStart, indexEnd, width, height, fps; public long contentLength; - public PipedStream(String url, String format, String quality, String mimeType, boolean videoOnly, long contentLength) { + public PipedStream(int itag, String url, String format, String quality, String mimeType, boolean videoOnly, long contentLength) { + this.itag = itag; this.url = url; this.format = format; this.quality = quality; @@ -21,9 +22,10 @@ public class PipedStream { this.contentLength = contentLength; } - public PipedStream(String url, String format, String quality, String mimeType, boolean videoOnly, int bitrate, + public PipedStream(int itag, String url, String format, String quality, String mimeType, boolean videoOnly, int bitrate, int initStart, int initEnd, int indexStart, int indexEnd, long contentLength, String codec, String audioTrackId, String audioTrackName, String audioTrackType, String audioTrackLocale) { + this.itag = itag; this.url = url; this.format = format; this.quality = quality; @@ -42,8 +44,9 @@ public class PipedStream { this.audioTrackLocale = audioTrackLocale; } - public PipedStream(String url, String format, String quality, String mimeType, boolean videoOnly, int bitrate, + public PipedStream(int itag, String url, String format, String quality, String mimeType, boolean videoOnly, int bitrate, int initStart, int initEnd, int indexStart, int indexEnd, String codec, int width, int height, int fps, long contentLength) { + this.itag = itag; this.url = url; this.format = format; this.quality = quality;