From fb8222d6555334273a8f020ccf03c02ebaee2554 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 8 Apr 2023 13:19:58 +0200 Subject: [PATCH] Fix recording of Stripchat models --- .../recorder/download/hls/AbstractHlsDownload.java | 8 ++++++++ .../java/ctbrec/sites/stripchat/StripchatModel.java | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java b/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java index d28154a4..77a5d0af 100644 --- a/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java +++ b/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java @@ -334,6 +334,14 @@ public abstract class AbstractHlsDownload extends AbstractDownload { List tracks = mediaPlaylist.getTracks(); for (TrackData trackData : tracks) { + if (trackData.hasMapInfo()) { + var mapInfoUri = trackData.getMapInfo().getUri(); + if (!mapInfoUri.startsWith("http")) { + URL context = new URL(segmentPlaylistUrl); + mapInfoUri = new URL(context, mapInfoUri).toExternalForm(); + } + lsp.segments.add(new Segment(mapInfoUri, Math.max(0, trackData.getTrackInfo().duration))); + } String uri = trackData.getUri(); if (!uri.startsWith("http")) { URL context = new URL(segmentPlaylistUrl); diff --git a/common/src/main/java/ctbrec/sites/stripchat/StripchatModel.java b/common/src/main/java/ctbrec/sites/stripchat/StripchatModel.java index 5092a6ed..c69c9e70 100644 --- a/common/src/main/java/ctbrec/sites/stripchat/StripchatModel.java +++ b/common/src/main/java/ctbrec/sites/stripchat/StripchatModel.java @@ -7,7 +7,10 @@ import com.iheartradio.m3u8.data.PlaylistData; import ctbrec.AbstractModel; import ctbrec.Config; import ctbrec.io.HttpException; +import ctbrec.recorder.download.Download; import ctbrec.recorder.download.StreamSource; +import ctbrec.recorder.download.hls.HlsdlDownload; +import ctbrec.recorder.download.hls.MergedFfmpegHlsDownload; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; @@ -259,4 +262,13 @@ public class StripchatModel extends AbstractModel { } } } + + @Override + public Download createDownload() { + if (Config.getInstance().getSettings().useHlsdl) { + return new HlsdlDownload(); + } else { + return new MergedFfmpegHlsDownload(getSite().getHttpClient()); + } + } }