mirror of
				https://github.com/bizhangjie/CatVodSpider.git
				synced 2025-11-01 04:22:15 +00:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			36319e2481
			...
			main
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 0c9346d49d | ||
|  | a8e85ca3b7 | 
							
								
								
									
										41
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								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     | 🟢       | | ||||
| | Jabel    | 教学     | csp_Jable     | 🟠      | | ||||
| | 7xiTv    | 视频     | csp_QxiTv     | ❌       | | ||||
| | Ikanbot  | 视频     | csp_Ikanbot   | 🟢      | | ||||
| | W55Movie | 视频     | csp_W55Movie  | 🟢      | | ||||
| | Douban   | 仅推荐    | csp_Douban    | 🟢      | | ||||
| | CaoLiu   | 视频     | csp_CaoLiu    | 🟢      | | ||||
| | MiMei    | 视频     | csp_MiMei     | 🟢      | | ||||
| | XVideos  | 视频     | csp_XVideos   | 🟢       | | ||||
| | XVideos  | 视频     | csp_XVideos   | ❌       | | ||||
| | DaGongRen | 视频     | csp_DaGongRen | 🟢      | | ||||
| | HkTv     | 视频     | csp_HkTv      | 🟢      | | ||||
| | XMVideo  | 视频     | csp_XMVideo   | 🟢      | | ||||
| | WWRR     | 视频     | csp_WWRR      | 🟢       | | ||||
| | YingTan  | 视频     | csp_YingTan   | 🟢       | | ||||
| | 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,26 +36,28 @@ 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; | ||||
| //            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; | ||||
|     } | ||||
|  | ||||
|     @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