From 21f75fc1875e2bfaf2715e3eb9d13183dc616d4d Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 7 May 2022 18:50:45 +0200 Subject: [PATCH] Set thumbnail aspect ration to 9/16 for MVLive --- .../ctbrec/sites/jasmin/LiveJasminModel.java | 65 ++++++++----------- 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/common/src/main/java/ctbrec/sites/jasmin/LiveJasminModel.java b/common/src/main/java/ctbrec/sites/jasmin/LiveJasminModel.java index d47dcca8..4bce9f9d 100644 --- a/common/src/main/java/ctbrec/sites/jasmin/LiveJasminModel.java +++ b/common/src/main/java/ctbrec/sites/jasmin/LiveJasminModel.java @@ -1,33 +1,12 @@ package ctbrec.sites.jasmin; -import static ctbrec.io.HttpConstants.*; - -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Locale; -import java.util.Random; -import java.util.concurrent.ExecutionException; - -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.iheartradio.m3u8.Encoding; -import com.iheartradio.m3u8.Format; -import com.iheartradio.m3u8.ParseException; -import com.iheartradio.m3u8.ParsingMode; -import com.iheartradio.m3u8.PlaylistException; -import com.iheartradio.m3u8.PlaylistParser; +import com.iheartradio.m3u8.*; import com.iheartradio.m3u8.data.MasterPlaylist; import com.iheartradio.m3u8.data.Playlist; import com.iheartradio.m3u8.data.PlaylistData; import com.iheartradio.m3u8.data.StreamInfo; import com.squareup.moshi.JsonReader; import com.squareup.moshi.JsonWriter; - import ctbrec.AbstractModel; import ctbrec.Config; import ctbrec.StringUtil; @@ -36,10 +15,21 @@ import ctbrec.recorder.download.Download; import ctbrec.recorder.download.StreamSource; import okhttp3.Request; import okhttp3.Response; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.io.InputStream; +import java.util.*; +import java.util.concurrent.ExecutionException; + +import static ctbrec.io.HttpConstants.*; public class LiveJasminModel extends AbstractModel { private static final Logger LOG = LoggerFactory.getLogger(LiveJasminModel.class); + private final Random rng = new Random(); private String id; private boolean online = false; private int[] resolution; @@ -66,7 +56,8 @@ public class LiveJasminModel extends AbstractModel { if (response.isSuccessful()) { String body = response.body().string(); JSONObject json = new JSONObject(body); - // LOG.debug(json.toString(2)); + //LOG.debug(json.toString(2)); + //Files.writeString(Path.of("/tmp/model.json"), json.toString(2)); if (json.optBoolean("success")) { JSONObject data = json.getJSONObject("data"); JSONObject config = data.getJSONObject("config"); @@ -101,16 +92,15 @@ public class LiveJasminModel extends AbstractModel { public static State mapStatus(int status) { switch (status) { - case 0: - return State.OFFLINE; - case 1: - return State.ONLINE; - case 2: - case 3: - return State.PRIVATE; - default: - LOG.debug("Unkown state {}", status); - return State.UNKNOWN; + case 0: + return State.OFFLINE; + case 1: + return State.ONLINE; + case 2, 3: + return State.PRIVATE; + default: + LOG.debug("Unkown state {}", status); + return State.UNKNOWN; } } @@ -132,7 +122,6 @@ public class LiveJasminModel extends AbstractModel { PlaylistParser parser = new PlaylistParser(inputStream, Format.EXT_M3U, Encoding.UTF_8, ParsingMode.LENIENT); Playlist playlist = parser.parse(); MasterPlaylist master = playlist.getMasterPlaylist(); - streamSources.clear(); for (PlaylistData playlistData : master.getPlaylists()) { StreamSource streamsource = new StreamSource(); String baseUrl = masterUrl; @@ -162,18 +151,18 @@ public class LiveJasminModel extends AbstractModel { // generate a fake guest session ID byte[] sessionIdRandom = new byte[16]; - new Random().nextBytes(sessionIdRandom); + rng.nextBytes(sessionIdRandom); String sessionId = 'g' + StringUtil.toHexString(sessionIdRandom, 32); String highResUrl = "https://api-gateway.dditsadn.com/v1/stream/performers/" + getName() + "/streams/free/formats/hls?brandId=jasmin&session=" + sessionId + "&streamName=stream_1280_720_3000"; - String lowResUrl = "https://api-gateway.dditsadn.com/v1/stream/performers/" + getName() + "/streams/free/formats/hls?brandId=jasmin&session=" + sessionId + "&streamName=stream_1280_720_1953"; + String lowResUrl = "https://api-gateway.dditsadn.com/v1/stream/performers/" + getName() + "/streams/free/formats/hls?brandId=jasmin&session=" + sessionId + "&streamName=stream_1280_720_1953"; String body; try { body = getMasterPlaylistUrl(highResUrl); } catch (Exception e) { LOG.debug("High resolution URL not available for {}. Falling back to low res.", getName()); - body= getMasterPlaylistUrl(lowResUrl); + body = getMasterPlaylistUrl(lowResUrl); } JSONObject json = new JSONObject(body); @@ -314,7 +303,7 @@ public class LiveJasminModel extends AbstractModel { @Override public Download createDownload() { - if(Config.isServerMode() && !Config.getInstance().getSettings().recordSingleFile) { + if (Config.isServerMode() && !Config.getInstance().getSettings().recordSingleFile) { return new LiveJasminHlsDownload(getSite().getHttpClient()); } else { return new LiveJasminMergedHlsDownload(getSite().getHttpClient());