mirror of
https://github.com/bizhangjie/CatVodSpider.git
synced 2025-10-28 18:42:19 +00:00
Compare commits
2 Commits
36319e2481
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c9346d49d | ||
|
|
a8e85ca3b7 |
65
README.md
65
README.md
@@ -9,11 +9,6 @@ https://ym.ksjhaoka.com/?s=qaaJsQHd289860
|
||||
|
||||
## 总览 (觉得好用就点个Star吧)
|
||||
|
||||
## 吃瓜频道 实时更新
|
||||
```shell
|
||||
https://t.me/livecgchannle
|
||||
```
|
||||
|
||||
## 机器人
|
||||
```shell
|
||||
https://t.me/liveddjkbot
|
||||
@@ -28,41 +23,41 @@ https://t.me/liveddjkbot
|
||||
> ❌ 无法使用
|
||||
|
||||
| **站点** | **类别** | **调用名称** | **状态** |
|
||||
|----------|--------|---------------| -------- |
|
||||
| 91 | 视频 | csp_J91 | 🟢 |
|
||||
| 51吃瓜 | 吃瓜 | csp_Cg51 | 🟢 |
|
||||
| Jabel | 教学 | csp_Jable | 🟢 |
|
||||
| 7xiTv | 视频 | csp_QxiTv | 🟢 |
|
||||
| Ikanbot | 视频 | csp_Ikanbot | 🟢 |
|
||||
| W55Movie | 视频 | csp_W55Movie | 🟢 |
|
||||
| Douban | 仅推荐 | csp_Douban | 🟢 |
|
||||
| CaoLiu | 视频 | csp_CaoLiu | 🟢 |
|
||||
| MiMei | 视频 | csp_MiMei | 🟢 |
|
||||
| XVideos | 视频 | csp_XVideos | 🟢 |
|
||||
| DaGongRen | 视频 | csp_DaGongRen | 🟢 |
|
||||
| HkTv | 视频 | csp_HkTv | 🟢 |
|
||||
| XMVideo | 视频 | csp_XMVideo | 🟢 |
|
||||
| WWRR | 视频 | csp_WWRR | 🟢 |
|
||||
| YingTan | 视频 | csp_YingTan | 🟢 |
|
||||
| NCat | 视频 | csp_NCat | 🟢 |
|
||||
| ... | 视频 | ... | 🟢 |
|
||||
|----------|--------|---------------| ------- |
|
||||
| 91 | 视频 | csp_J91 | 🟢 |
|
||||
| 51吃瓜 | 吃瓜 | csp_Cg51 | 🟢 |
|
||||
| Jabel | 教学 | csp_Jable | 🟠 |
|
||||
| 7xiTv | 视频 | csp_QxiTv | ❌ |
|
||||
| Ikanbot | 视频 | csp_Ikanbot | 🟢 |
|
||||
| W55Movie | 视频 | csp_W55Movie | 🟢 |
|
||||
| Douban | 仅推荐 | csp_Douban | 🟢 |
|
||||
| CaoLiu | 视频 | csp_CaoLiu | 🟢 |
|
||||
| MiMei | 视频 | csp_MiMei | 🟢 |
|
||||
| XVideos | 视频 | csp_XVideos | ❌ |
|
||||
| DaGongRen | 视频 | csp_DaGongRen | 🟢 |
|
||||
| HkTv | 视频 | csp_HkTv | 🟢 |
|
||||
| XMVideo | 视频 | csp_XMVideo | 🟢 |
|
||||
| WWRR | 视频 | csp_WWRR | ❌ |
|
||||
| YingTan | 视频 | csp_YingTan | ❌ |
|
||||
| NCat | 视频 | csp_NCat | 🟢 |
|
||||
| ... | 视频 | ... | 🟢 |
|
||||
|
||||
|
||||
## jar脚本 (上面状态不稳定哦)
|
||||
```shell
|
||||
https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/jar/custom_spider.jar
|
||||
https://gh-proxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/jar/custom_spider.jar
|
||||
```
|
||||
|
||||
# 点播接口专区
|
||||
|
||||
> 直接使用接口 (正能量)
|
||||
```shell
|
||||
https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/index.json
|
||||
https://gh-proxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/index.json
|
||||
```
|
||||
|
||||
> 纯18接口
|
||||
```shell
|
||||
https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/index18.json
|
||||
https://gh-proxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/index18.json
|
||||
```
|
||||
|
||||
> jsdelivr 免费 CDN
|
||||
@@ -74,32 +69,22 @@ https://cdn.jsdelivr.net/gh/bizhangjie/CatVodSpider/json/index.json
|
||||
|
||||
> 虎牙一起看
|
||||
```shell
|
||||
https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/hy.txt
|
||||
https://gh-proxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/hy.txt
|
||||
```
|
||||
|
||||
> 斗鱼一起看
|
||||
```shell
|
||||
https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/dy.txt
|
||||
https://gh-proxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/dy.txt
|
||||
```
|
||||
|
||||
> 虎牙&斗鱼 一起看
|
||||
```shell
|
||||
https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/zbyqk.txt
|
||||
https://gh-proxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/zbyqk.txt
|
||||
```
|
||||
|
||||
> 成年人爱看的那些
|
||||
```shell
|
||||
https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/sjdy.txt
|
||||
```
|
||||
|
||||
> 韩国熊猫tv 需科学
|
||||
```shell
|
||||
https://api.buxiangyao.link/tvbox/tv.txt
|
||||
```
|
||||
|
||||
> 在线观看(带字幕)需科学
|
||||
```shell
|
||||
https://api.buxiangyao.link/jp
|
||||
https://gh-proxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/json/sjdy.txt
|
||||
```
|
||||
|
||||
# 应用专区
|
||||
|
||||
@@ -6,6 +6,8 @@ import android.widget.Button;
|
||||
|
||||
import com.github.catvod.R;
|
||||
import com.github.catvod.crawler.Spider;
|
||||
import com.github.catvod.spider.Cg51;
|
||||
import com.github.catvod.spider.HiPianZhiBo;
|
||||
import com.github.catvod.spider.Init;
|
||||
import com.github.catvod.spider.J91;
|
||||
import com.github.catvod.spider.RouVideo;
|
||||
@@ -48,7 +50,7 @@ public class MainActivity extends Activity {
|
||||
private void initSpider() {
|
||||
try {
|
||||
Init.init(getApplicationContext());
|
||||
spider = new RouVideo();
|
||||
spider = new HiPianZhiBo();
|
||||
spider.init(this, "");
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
@@ -74,7 +76,7 @@ public class MainActivity extends Activity {
|
||||
public void categoryContent(){
|
||||
|
||||
try {
|
||||
Logger.t("categoryContent").d(spider.categoryContent("latest", "1", true, new HashMap<>()));
|
||||
Logger.t("categoryContent").d(spider.categoryContent("22.html", "1", true, new HashMap<>()));
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -82,7 +84,7 @@ public class MainActivity extends Activity {
|
||||
|
||||
public void detailContent() {
|
||||
try {
|
||||
Logger.t("detailContent").d(spider.detailContent(Arrays.asList("ce11ee5c33035c2c9db0")));
|
||||
Logger.t("detailContent").d(spider.detailContent(Arrays.asList("1034804")));
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -90,7 +92,7 @@ public class MainActivity extends Activity {
|
||||
|
||||
public void playerContent() {
|
||||
try {
|
||||
Logger.t("playerContent").d(spider.playerContent("轉存原畫", "122512-1-0.html", new ArrayList<>()));
|
||||
Logger.t("playerContent").d(spider.playerContent("轉存原畫", "52d776427b3fad9f1536", new ArrayList<>()));
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
public class CaoLiu extends Spider {
|
||||
|
||||
private static final String siteUrl = "https://cl2404a55d.top";
|
||||
private static final String siteUrl = "https://x445daee69.top";
|
||||
private static final String cateUrl = siteUrl + "/thread.php?fid=";
|
||||
private static final String detailUrl = siteUrl + "/video.php?tid=";
|
||||
private static final String searchUrl = "https://api.3bmmjla.life/Api/getSearch";
|
||||
@@ -49,7 +49,7 @@ public class CaoLiu extends Spider {
|
||||
private HashMap<String, String> getCookie() {
|
||||
HashMap<String, String> headers = new HashMap<>();
|
||||
headers.put("User-Agent", Util.CHROME);
|
||||
headers.put("Cookie", "_gid=GA1.2.248781789.1712806176; a2640_winduser=DgUDBlJWATlQXwgIVQACVV0FAgoCUFUAV1RSUQ4ABgkDUQlVVlAJUWs%3D; a2640_ck_info=%2F%09; a2640_appuser=DAQFUQZTCj1WXAANBQlVV1QAAAsEBwEFXFBUUgYFVgBUUwBQVFEPBj8%3D; a2640_ol_offset=51493; a2640_threadlog=%2C6%2C; a2640_readlog=%2C2290382%2C; a2640_lastpos=other; _ga_KCKJL9NRY7=GS1.1.1712806174.1.1.1712806229.0.0.0; a2640_lastvisit=13%091712806229%09%2Fdomainjs.php%3Ftype%3D3%26t%3D094; _ga_3ZHR4YBDVK=GS1.1.1712806174.1.1.1712806233.0.0.0; _ga_QTT9CLMQSW=GS1.1.1712806175.1.1.1712806234.0.0.0; _ga_255J96M2SG=GS1.1.1712806174.1.1.1712806235.0.0.0; _ga_LQZNZ7TBVX=GS1.1.1712806174.1.1.1712806237.0.0.0; _ga=GA1.2.999144089.1712806174; _gat_gtag_UA_207642113_1=1");
|
||||
headers.put("Cookie", "_ga=GA1.1.749718020.1734864602; a2640_winduser=BAkFC1cDCg4xXAxSCAEGCwcPVA5SU1VTUgENVwxXXlYGAlQGAQxQBQU8; a2640_ck_info=%2F%09; a2640_appuser=BAMFXQJVAAM5XQgEVlwHWVJYVARSBQAFWAwFVggBAAsHUAFRAQZQU1Bq; a2640_ol_offset=135332; a2640_threadlog=%2C2%2C; a2640_readlog=%2C2354274%2C; a2640_lastpos=other; a2640_lastvisit=53%091734864735%09%2Fvideo.php%3Ftid%3D2354274%26rnd%3D0356709%26usevipvdourl%3D0; _ga_3ZHR4YBDVK=GS1.1.1734864601.1.1.1734864736.0.0.0");
|
||||
return headers;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class Cg51 extends Spider {
|
||||
|
||||
private static final String siteUrl = "https://h25dz1.efe14f2ce.org";
|
||||
private static final String siteUrl = "https://carrier.ujaumgp.cc";
|
||||
private static final String cateUrl = siteUrl + "/category/";
|
||||
private static final String detailUrl = siteUrl + "/archives/";
|
||||
private static final String searchUrl = siteUrl + "/search?keywords=";
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class HiPianZhiBo extends Spider {
|
||||
|
||||
private static final String siteUrl = "https://www.78dick.com";
|
||||
private static final String siteUrl = "https://78isp.com";
|
||||
private static final String cateUrl = siteUrl + "/index.php/vod/type/id/";
|
||||
private static final String detailUrl = siteUrl + "/index.php/vod/play/id/";
|
||||
private static final String playUrl = siteUrl + "/play/";
|
||||
|
||||
@@ -7,6 +7,8 @@ import com.github.catvod.crawler.Spider;
|
||||
import com.github.catvod.net.OkHttp;
|
||||
import com.github.catvod.utils.Util;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
@@ -16,10 +18,12 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class J91 extends Spider {
|
||||
|
||||
private static final String siteUrl = "https://156c1s.jiuse9928.xyz";
|
||||
private static final String siteUrl = "https://ikk.jiukun66.autos";
|
||||
private static final String cateUrl = siteUrl + "/video/category/";
|
||||
private static final String detailUrl = siteUrl + "/video/view/";
|
||||
private static final String searchUrl = siteUrl + "/search?keywords=";
|
||||
@@ -32,17 +36,19 @@ public class J91 extends Spider {
|
||||
|
||||
private List<Vod> parseVods(Document doc) {
|
||||
List<Vod> list = new ArrayList<>();
|
||||
for (Element element : doc.select("div.video-elem")) {
|
||||
String pic = element.select("div.img").attr("style");
|
||||
for (Element element : doc.select("article")) {
|
||||
String pic = element.select("img").attr("src");
|
||||
String url = element.select("a").attr("href");
|
||||
String name = element.select("a.title").text();
|
||||
String name = element.select("h4").text();
|
||||
if (pic.endsWith(".gif") || name.isEmpty()) continue;
|
||||
if (!url.startsWith("http")) {
|
||||
pic = pic.replace("background-image: url('", "").replace("')", "");
|
||||
if (!pic.startsWith("http")) pic = "https:" + pic;
|
||||
String id = url.split("/")[3];
|
||||
list.add(new Vod(id, name, pic));
|
||||
}
|
||||
// if (!url.startsWith("http")) {
|
||||
// pic = pic.replace("background-image: url('", "").replace("')", "");
|
||||
// if (!pic.startsWith("http")) pic = "https:" + pic;
|
||||
// String id = url.split("/")[3];
|
||||
// list.add(new Vod(id, name, pic));
|
||||
// }
|
||||
String id = url.split("/")[3];
|
||||
list.add(new Vod(id, name, pic));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
@@ -50,8 +56,8 @@ public class J91 extends Spider {
|
||||
@Override
|
||||
public String homeContent(boolean filter) throws Exception {
|
||||
List<Class> classes = new ArrayList<>();
|
||||
String[] typeIdList = {"latest","hd","recent-favorite","hot-list","recent-rating","nonpaid","ori","long-list","longer-list","month-discuss","top-favorite","most-favorite","top-list","top-last"};
|
||||
String[] typeNameList = {"最近更新","高清视频","最近加精","当前最热","最近得分","非付费","91原创","10分钟以上","20分钟以上","本月讨论","本月收藏","收藏最多","本月最热","上月最热"};
|
||||
String[] typeIdList = {"latest", "hd", "recent-favorite", "hot-list", "recent-rating", "nonpaid", "ori", "long-list", "longer-list", "month-discuss", "top-favorite", "most-favorite", "top-list", "top-last"};
|
||||
String[] typeNameList = {"最近更新", "高清视频", "最近加精", "当前最热", "最近得分", "非付费", "91原创", "10分钟以上", "20分钟以上", "本月讨论", "本月收藏", "收藏最多", "本月最热", "上月最热"};
|
||||
for (int i = 0; i < typeNameList.length; i++) {
|
||||
classes.add(new Class(typeIdList[i], typeNameList[i]));
|
||||
}
|
||||
@@ -63,10 +69,14 @@ public class J91 extends Spider {
|
||||
@Override
|
||||
public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> extend) throws Exception {
|
||||
String target = cateUrl + tid + "/" + pg;
|
||||
// System.out.printf("target ===> " + target);
|
||||
Document doc = Jsoup.parse(OkHttp.string(target, getHeaders()));
|
||||
List<Vod> list = parseVods(doc);
|
||||
Integer total = (Integer.parseInt(pg)+1) * 20;
|
||||
return Result.string(Integer.parseInt(pg),Integer.parseInt(pg)+1,20,total,list);
|
||||
// System.out.println("=============================>>>>> ");
|
||||
// System.out.println(list);
|
||||
// System.out.println("=============================>>>>> ");
|
||||
Integer total = (Integer.parseInt(pg) + 1) * 20;
|
||||
return Result.string(Integer.parseInt(pg), Integer.parseInt(pg) + 1, 20, total, list);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -75,7 +85,31 @@ public class J91 extends Spider {
|
||||
String name = doc.select("meta[property=og:title]").attr("content");
|
||||
String pic = doc.select("meta[property=og:image]").attr("content");
|
||||
String year = doc.select("meta[property=video:release_date]").attr("content");
|
||||
String playUrl = doc.select("#video-play").attr("data-src");
|
||||
String html = doc.html();
|
||||
// 打印 HTML 到控制台
|
||||
// System.out.println(html);
|
||||
// 2. 正则提取 window.$avdt 的 JSON 内容
|
||||
Pattern pattern = Pattern.compile("window\\.\\$avdt\\s*=\\s*(\\{.*?\\})\\s*</script>", Pattern.DOTALL);
|
||||
Matcher matcher = pattern.matcher(html);
|
||||
|
||||
String playUrl = "";
|
||||
if (matcher.find()) {
|
||||
String json = matcher.group(1).replaceAll("\\\\/", "/");
|
||||
// System.out.println("✅ 提取到 JSON: " + json); // ✅ 调试输出
|
||||
|
||||
// 3. 解析 JSON 并构造播放地址
|
||||
JSONObject avdt = new JSONObject(json);
|
||||
String hls = avdt.optString("hls");
|
||||
JSONArray cdns = avdt.optJSONArray("cdns");
|
||||
|
||||
if (cdns != null && cdns.length() > 0) {
|
||||
String cdn = cdns.getString(0);
|
||||
playUrl = "https://" + cdn + hls;
|
||||
}
|
||||
} else {
|
||||
System.out.println("❌ 未提取到 window.$avdt JSON");
|
||||
}
|
||||
|
||||
Vod vod = new Vod();
|
||||
vod.setVodId(ids.get(0));
|
||||
vod.setVodPic(pic);
|
||||
|
||||
@@ -26,7 +26,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class MiMei extends Spider {
|
||||
|
||||
private static final String siteUrl = "https://zitfark.info";
|
||||
private static final String siteUrl = "https://oiqmrhm.info";
|
||||
private static final String cateUrl = siteUrl;
|
||||
private static final String detailUrl = siteUrl;
|
||||
private static final String searchUrl = "https://api.3bmmjla.life/Api/getSearch";
|
||||
|
||||
@@ -28,7 +28,8 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class W55Movie extends Spider {
|
||||
|
||||
private static final String siteUrl = "https://55flix.com";
|
||||
// private static final String siteUrl = "https://55flix.com";
|
||||
private static final String siteUrl = "https://www.tmaztdu.wiki";
|
||||
private static final String cateUrl = siteUrl + "/index.php/api/vod";
|
||||
private static final String detailUrl = siteUrl + "/voddetail/";
|
||||
private static final String playUrl = siteUrl + "/vodplay/";
|
||||
|
||||
@@ -33,7 +33,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class XMVideo extends Spider {
|
||||
|
||||
private static final String siteUrl = "https://www.rrpp55.com";
|
||||
private static final String siteUrl = "https://www.qq99pp.com";
|
||||
|
||||
private static final String Init = "https://spiderscloudcn2.51111666.com/getDataInit";
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
a392ca741d7598a3c2fb96a860ddd38a
|
||||
5bfb9c86dc5ebd60fa91c2751f1cfa33
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"spider": "https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/jar/custom_spider.jar;md5;db73d6c30aefbe9b22fb92e8459ad959",
|
||||
"spider": "https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/jar/custom_spider.jar;md5;5bfb9c86dc5ebd60fa91c2751f1cfa33",
|
||||
"lives": [
|
||||
{
|
||||
"name": "直播ipv6",
|
||||
@@ -35,14 +35,6 @@
|
||||
"searchable": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "QxiTv",
|
||||
"name": "\uD83E\uDD70 7喜 | 影视",
|
||||
"type": 3,
|
||||
"api": "csp_QxiTv",
|
||||
"searchable": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "W55Movie",
|
||||
"name": "\uD83C\uDF9E\uFE0F 555电影 | 搜索×",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"spider": "https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/jar/custom_spider.jar;md5;7d0ae69d38c5345dad77eafef1ad620f",
|
||||
"spider": "https://mirror.ghproxy.com/https://github.com/bizhangjie/CatVodSpider/blob/main/jar/custom_spider.jar;md5;5bfb9c86dc5ebd60fa91c2751f1cfa33",
|
||||
"lives": [
|
||||
{
|
||||
"name": "直播ipv6",
|
||||
@@ -27,22 +27,6 @@
|
||||
"searchable": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "MiMei",
|
||||
"name": "\uD83D\uDD1E 迷妹 | 珍惜",
|
||||
"type": 3,
|
||||
"api": "csp_MiMei",
|
||||
"searchable": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "ROU223",
|
||||
"name": "\uD83D\uDD1E 223ROU | 视频",
|
||||
"type": 3,
|
||||
"api": "csp_ROU223",
|
||||
"searchable": 0,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "HiPianZhiBo",
|
||||
"name": "\uD83D\uDD1E 嗨片直播 | 视频",
|
||||
|
||||
Reference in New Issue
Block a user