diff --git a/app/src/main/java/com/github/catvod/api/YunDrive.java b/app/src/main/java/com/github/catvod/api/YunDrive.java index 38ffcbd6..a4fd2539 100644 --- a/app/src/main/java/com/github/catvod/api/YunDrive.java +++ b/app/src/main/java/com/github/catvod/api/YunDrive.java @@ -301,13 +301,14 @@ public class YunDrive { String contentId = split[0]; String linkID = split[1]; playUrl = YunDrive.get().get4kVideoInfo(contentId, linkID); + playUrl = ProxyVideo.buildCommonProxyUrl(playUrl, new HashMap<>()); } else { String contentId = split[0]; String linkID = split[1]; playUrl = YunDrive.get().fetchPlayUrl(contentId, linkID); } - return Result.get().url(ProxyVideo.buildCommonProxyUrl(playUrl, new HashMap<>())).octet().header(getHeader()).string(); + return Result.get().url(playUrl).octet().header(getHeader()).string(); } } diff --git a/app/src/main/java/com/github/catvod/utils/ProxyVideo.java b/app/src/main/java/com/github/catvod/utils/ProxyVideo.java index 9da08cce..4e452389 100644 --- a/app/src/main/java/com/github/catvod/utils/ProxyVideo.java +++ b/app/src/main/java/com/github/catvod/utils/ProxyVideo.java @@ -1,6 +1,5 @@ package com.github.catvod.utils; -import android.os.Debug; import android.os.SystemClock; import android.text.TextUtils; @@ -99,7 +98,7 @@ public class ProxyVideo { public static Object[] proxyMultiThread(String url, Map headers) { ExecutorService service = Executors.newFixedThreadPool(THREAD_NUM); - SpiderDebug.log("--proxyMultiThread: THREAD_NUM "+THREAD_NUM); + SpiderDebug.log("--proxyMultiThread: THREAD_NUM " + THREAD_NUM); SequenceInputStream in = null; try { @@ -206,11 +205,14 @@ public class ProxyVideo { } private static List generatePart(Map rangeObj, String total) { - long start = Long.parseLong(rangeObj.get("start")); - long end = StringUtils.isAllBlank(rangeObj.get("end")) ? start + 1024 * 1024 * 8 : Long.parseLong(rangeObj.get("end")); - - long totalSize = Long.parseLong(total); + //超过10GB,分块是30Mb,不然是4MB + long partSize = totalSize > 8L * 1024L * 1024L * 1024L * 10L ? 1024 * 1024 * 8 * 30L : 1024 * 1024 * 8 * 4L; + + long start = Long.parseLong(rangeObj.get("start")); + long end = StringUtils.isAllBlank(rangeObj.get("end")) ? start + partSize : Long.parseLong(rangeObj.get("end")); + + end = Math.min(end, totalSize - 1); long length = end - start + 1; diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 24363596..2a67fae9 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index 573b56f7..17d6fbd9 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -167365a584618d820c96a12fac7909b5 +eab498637837fc40d738fee62168b41a diff --git a/json/index.json b/json/index.json index a53aacf6..c2f42659 100644 --- a/json/index.json +++ b/json/index.json @@ -1,5 +1,5 @@ { - "spider": "https://andoridspidermt.netlify.app/jar/custom_spider.jar;md5;167365a584618d820c96a12fac7909b5", + "spider": "https://andoridspidermt.netlify.app/jar/custom_spider.jar;md5;eab498637837fc40d738fee62168b41a", "lives": [ { "name": "电视直播",