diff --git a/src/main/java/com/wbq/zuoye/BVExtractor.java b/src/main/java/com/wbq/zuoye/BVExtractor.java index 39c955b..88ae6ff 100644 --- a/src/main/java/com/wbq/zuoye/BVExtractor.java +++ b/src/main/java/com/wbq/zuoye/BVExtractor.java @@ -6,7 +6,7 @@ import java.util.regex.Pattern; public class BVExtractor { public static String getBVid(String url) { String bv = extractBV(url); - if (bv != null) {git + if (bv != null) { System.out.println("Extracted BV: " + bv); return bv; } else { diff --git a/src/main/java/com/wbq/zuoye/BilibiliCidFetcher.java b/src/main/java/com/wbq/zuoye/BilibiliCidFetcher.java new file mode 100644 index 0000000..3d18b4f --- /dev/null +++ b/src/main/java/com/wbq/zuoye/BilibiliCidFetcher.java @@ -0,0 +1,41 @@ +package com.wbq.zuoye; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; + +public class BilibiliCidFetcher { + public static String getCid(String bvid) { + String apiUrl = "https://api.bilibili.com/x/player/pagelist?bvid=" + bvid; + + try (CloseableHttpClient httpClient = HttpClients.createDefault()) { + HttpGet request = new HttpGet(apiUrl); + request.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"); + try (CloseableHttpResponse response = httpClient.execute(request)) { + String jsonResponse = EntityUtils.toString(response.getEntity(), "UTF-8"); + JsonObject jsonObject = JsonParser.parseString(jsonResponse).getAsJsonObject(); + JsonArray dataArray = jsonObject.getAsJsonArray("data"); + + if (dataArray.size() > 0) { + JsonObject firstPage = dataArray.get(0).getAsJsonObject(); + String cid = firstPage.get("cid").getAsString(); + System.out.println("Found cid: " + cid); + return cid; + } else { + System.out.println("No data found."); + return null; + } + } + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } +}