parent
91a0c64930
commit
7002472891
@ -1,49 +0,0 @@ |
|||||||
package com.github.catvod.spider; |
|
||||||
|
|
||||||
import com.github.catvod.net.OkHttp; |
|
||||||
import com.github.catvod.utils.Utils; |
|
||||||
|
|
||||||
import java.util.Arrays; |
|
||||||
import java.util.HashMap; |
|
||||||
import java.util.List; |
|
||||||
import java.util.regex.Matcher; |
|
||||||
import java.util.regex.Pattern; |
|
||||||
|
|
||||||
public class Youtube { |
|
||||||
|
|
||||||
private static HashMap<String, String> getHeader() { |
|
||||||
HashMap<String, String> headers = new HashMap<>(); |
|
||||||
headers.put("User-Agent", Utils.CHROME); |
|
||||||
return headers; |
|
||||||
} |
|
||||||
|
|
||||||
public static String fetch(String url) { |
|
||||||
try { |
|
||||||
String result = OkHttp.string(url, getHeader()); |
|
||||||
Pattern pattern = Pattern.compile("hlsManifestUrl\\S*?(https\\S*?\\.m3u8)"); |
|
||||||
Matcher matcher = pattern.matcher(result); |
|
||||||
if (!matcher.find()) return ""; |
|
||||||
String stable = matcher.group(1); |
|
||||||
result = OkHttp.string(stable, getHeader()); |
|
||||||
String quality = find(result); |
|
||||||
return quality.isEmpty() ? url : quality; |
|
||||||
} catch (Exception e) { |
|
||||||
e.printStackTrace(); |
|
||||||
return url; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
private static String find(String result) { |
|
||||||
String url = ""; |
|
||||||
List<String> items = Arrays.asList("301", "300", "96", "95", "94"); |
|
||||||
for (String item : items) if (!(url = find(result, "https:/.*/" + item + "/.*index.m3u8")).isEmpty()) break; |
|
||||||
return url; |
|
||||||
} |
|
||||||
|
|
||||||
private static String find(String result, String rule) { |
|
||||||
Pattern pattern = Pattern.compile(rule); |
|
||||||
Matcher matcher = pattern.matcher(result); |
|
||||||
if (matcher.find()) return matcher.group(); |
|
||||||
return ""; |
|
||||||
} |
|
||||||
} |
|
||||||
Loading…
Reference in new issue