diff --git a/common/src/main/java/ctbrec/sites/camsoda/CamsodaModel.java b/common/src/main/java/ctbrec/sites/camsoda/CamsodaModel.java index d8790792..2ef378e8 100644 --- a/common/src/main/java/ctbrec/sites/camsoda/CamsodaModel.java +++ b/common/src/main/java/ctbrec/sites/camsoda/CamsodaModel.java @@ -73,9 +73,9 @@ public class CamsodaModel extends AbstractModel { StringBuilder url = new StringBuilder("https://"); url.append(edgeServer).append('/'); url.append(streamName); - url.append("_v1/index.m3u8"); + url.append("_v1/index.ll.m3u8?multitrack=true&filter=tracks:v4v3v2v1a1a2"); if (!isPublic(streamName)) { - url.append("?token=").append(token); + url.append("&token=").append(token); } log.trace("Stream URL: {}", url); return url.toString(); @@ -128,8 +128,8 @@ public class CamsodaModel extends AbstractModel { streamSources = new ArrayList<>(); for (PlaylistData playlistData : master.getPlaylists()) { StreamSource streamsource = new StreamSource(); - int cutOffAt = Math.max(playlistUrl.indexOf("index.m3u8"), playlistUrl.indexOf("playlist.m3u8")); - String segmentPlaylistUrl = playlistUrl.substring(0, cutOffAt) + playlistData.getUri(); + int cutOffAt = Math.max(playlistUrl.indexOf("index.ll.m3u8"), playlistUrl.indexOf("playlist.m3u8")); + String segmentPlaylistUrl = playlistData.getUri().startsWith("http") ? playlistData.getUri() : playlistUrl.substring(0, cutOffAt) + playlistData.getUri(); streamsource.setMediaPlaylistUrl(segmentPlaylistUrl); if (playlistData.hasStreamInfo()) { StreamInfo info = playlistData.getStreamInfo();