{ "generated_at": "2026-05-17T07:27:14+08:00", "max_workers": 16, "total_duration_ms": 21437.185, "summary": { "total": 73, "success": 64, "failed": 9, "success_rate": 0.8767, "stage_failures": { "module_load": 0, "init": 0, "home": 1, "category": 3, "detail": 0, "player": 0, "url_check": 2, "unexpected": 3 } }, "results": [ { "spider": "4K指南", "file": "4K指南.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 278.62, "init": 0.001, "home": 0.004, "category": 692.308, "detail": 532.398, "player": 0.003, "url_check": 150.917, "total": 1656.487 }, "counts": { "classes": 5, "category_videos": 50, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "zuixin", "vod_id": "18385", "flag": "夸克网盘4k原盘", "play_id": "push://https://pan.quark.cn/s/386badc811b3" }, "player": { "parse": 0, "url": "https://pan.quark.cn/s/386badc811b3", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.quark.cn/s/386badc811b3", "reason": null } }, { "spider": "6V磁力", "file": "6V磁力.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 311.045, "init": 0.003, "home": 0.001, "category": 692.247, "detail": 666.484, "player": 0.004, "url_check": 0.066, "total": 1673.955 }, "counts": { "classes": 12, "category_videos": 18, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "dianshiju/guoju", "vod_id": "/dianshiju/guoju/28754.html", "flag": "01-07.1080p.HD国语中字无水印.mkv", "play_id": "magnet:?xt=urn:btih:179e2e96aecc2ff52e16b81e3b3c1e89a6010b05&dn=%E4%B8%BB%E8%A7%9201-07" }, "player": { "parse": 0, "url": "magnet:?xt=urn:btih:179e2e96aecc2ff52e16b81e3b3c1e89a6010b05&dn=%E4%B8%BB%E8%A7%9201-07", "valid": true, "reachable": null, "status_code": null, "final_url": "magnet:?xt=urn:btih:179e2e96aecc2ff52e16b81e3b3c1e89a6010b05&dn=%E4%B8%BB%E8%A7%9201-07", "reason": "非 HTTP 地址,按协议格式通过" } }, { "spider": "AAZ音乐", "file": "AAZ音乐.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 229.257, "init": 0.001, "home": 194.016, "category": 168.432, "detail": 179.007, "player": 179.482, "url_check": 306.941, "total": 1258.681 }, "counts": { "classes": 6, "category_videos": 60, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "new", "vod_id": "song:e0f3c77fa564632f924f77fc5943ba7e", "flag": "AAZ音乐", "play_id": "song:e0f3c77fa564632f924f77fc5943ba7e" }, "player": { "parse": 0, "url": "https://s.5bb3.com/m4a/3374e5b4a4d9d8e8f967976747b5c2ca.m4a", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://lv-sycdn.kuwo.cn/cce9b61cd1a9df08a9ff97ffd0e25ef3/6a08fd53/resource/1307392909/trackmedia/C200000W91kQ0efKLA.m4a?from=vip", "reason": null } }, { "spider": "PPnix", "file": "PPnix.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 317.888, "init": 0.001, "home": 0.001, "category": 433.294, "detail": 645.76, "player": 0.011, "url_check": 175.323, "total": 1573.241 }, "counts": { "classes": 2, "category_videos": 24, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "1", "vod_id": "movie/8169.html", "flag": "PPnix", "play_id": "8169|1080P" }, "player": { "parse": 0, "url": "https://www.ppnix.com/info/m3u8/8169/1080P.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://www.ppnix.com/info/m3u8/8169/1080P.m3u8", "reason": null } }, { "spider": "QQ音乐", "file": "QQ音乐.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 239.037, "init": 0.009, "home": 0.003, "category": 431.571, "detail": 456.564, "player": 249.881, "url_check": 214.956, "total": 1595.192 }, "counts": { "classes": 6, "category_videos": 30, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "playlist", "vod_id": "playlist:9495798654", "flag": "QQ音乐", "play_id": "qqmusic:001Zxgfp1Tu1gH:649285246|人生路漫漫 - 白小白" }, "player": { "parse": 0, "url": "https://isure.stream.qqmusic.qq.com/F000001Zxgfp1Tu1gH.flac?guid=374463241a812126354fa9876f986567&vkey=045B141217B259C04B8A8EB6DB3BDE5AD61F3CF5788CB8AC03447B51EFF3BC0CAD1846206BBF770C3C012DE2A49682982025139A4DF40A10__v2b9a8941&uin=896389745&fromtag=119114&redirect=1", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://isure.stream.qqmusic.qq.com/F000001Zxgfp1Tu1gH.flac?guid=374463241a812126354fa9876f986567&vkey=045B141217B259C04B8A8EB6DB3BDE5AD61F3CF5788CB8AC03447B51EFF3BC0CAD1846206BBF770C3C012DE2A49682982025139A4DF40A10__v2b9a8941&uin=896389745&fromtag=119114&redirect=1", "reason": null } }, { "spider": "YouTube", "file": "YouTube.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 235.381, "init": 0.003, "home": 0.043, "category": 707.437, "detail": 1005.889, "player": 0.004, "url_check": 607.346, "total": 2557.211 }, "counts": { "classes": 28, "category_videos": 20, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "cat_recommend", "vod_id": "yt:video:0SLXJa_q7xo", "flag": "YouTube", "play_id": "yt:video:0SLXJa_q7xo" }, "player": { "parse": 0, "url": "https://www.youtube.com/watch?v=0SLXJa_q7xo", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://www.youtube.com/watch?v=0SLXJa_q7xo", "reason": null } }, { "spider": "libvio", "file": "libvio.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 245.094, "init": 0.001, "home": 0.001, "category": 217.516, "detail": 182.412, "player": 0.004, "url_check": 159.018, "total": 805.613 }, "counts": { "classes": 6, "category_videos": 48, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "index", "vod_id": "714893335", "flag": "夸克", "play_id": "https://pan.quark.cn/s/d46508121399" }, "player": { "parse": 0, "url": "https://pan.quark.cn/s/d46508121399", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.quark.cn/s/d46508121399", "reason": null } }, { "spider": "youknow", "file": "youknow.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 283.208, "init": 0.001, "home": 0.001, "category": 1912.033, "detail": 1471.649, "player": 1037.913, "url_check": 1112.805, "total": 5818.398 }, "counts": { "classes": 7, "category_videos": 223, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "index", "vod_id": "202954", "flag": "YouKnowTV", "play_id": "eyJ2b2RfaWQiOiIyMDI5NTQiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDI5NTQtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDI5NTQtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMTAiLCJzb3VyY2VfaWQiOiIzIiwiZXBpc29kZV91cmwiOiJodHRwczovL3d3dy55b3Vrbm93LnR2L3AvMjAyOTU0LTMtMS8ifSx7InNvdXJjZSI6Iue6v-i3rzExIiwic291cmNlX2lkIjoiMyIsImVwaXNvZGVfdXJsIjoiaHR0cHM6Ly93d3cueW91a25vdy50di9wLzIwMjk1NC0zLTEvIn0seyJzb3VyY2UiOiLnur_ot68xNiIsInNvdXJjZV9pZCI6IjIiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDI5NTQtMi0xLyJ9LHsic291cmNlIjoi57q_6LevMTciLCJzb3VyY2VfaWQiOiIyIiwiZXBpc29kZV91cmwiOiJodHRwczovL3d3dy55b3Vrbm93LnR2L3AvMjAyOTU0LTItMS8ifV19" }, "player": { "parse": 0, "url": "https://vip.dytt-tvs.com/20260404/15292_cfc34923/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://cnvod.jimxtc.com/20260404/15292_cfc34923/index.m3u8", "reason": null } }, { "spider": "七味", "file": "七味.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 260.968, "init": 0.007, "home": 0.002, "category": 732.13, "detail": 1047.575, "player": 0.003, "url_check": 1035.921, "total": 3080.43 }, "counts": { "classes": 5, "category_videos": 42, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "492461", "flag": "百度1", "play_id": "https://pan.baidu.com/s/1MZa4NhXR02WdMOXlmINHCA?pwd=Yu66" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1MZa4NhXR02WdMOXlmINHCA?pwd=Yu66", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=MZa4NhXR02WdMOXlmINHCA&pwd=Yu66", "reason": null } }, { "spider": "不太灵", "file": "不太灵.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 269.643, "init": 0.001, "home": 499.343, "category": 844.395, "detail": 481.793, "player": 0.015, "url_check": 1014.558, "total": 3111.213 }, "counts": { "classes": 5, "category_videos": 25, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "1937946", "flag": "百度", "play_id": "https://pan.baidu.com/s/1lmPdIeXPCMSkROKdVOZgYw?pwd=Yu66" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1lmPdIeXPCMSkROKdVOZgYw?pwd=Yu66", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=lmPdIeXPCMSkROKdVOZgYw&pwd=Yu66", "reason": null } }, { "spider": "世纪音乐", "file": "世纪音乐.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 250.993, "init": 0.001, "home": 157.563, "category": 144.686, "detail": 124.0, "player": 0.005, "url_check": 804.047, "total": 1482.461 }, "counts": { "classes": 5, "category_videos": 28, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "home", "vod_id": "song:ydchnneteh", "flag": "世纪音乐", "play_id": "music:ydchnneteh" }, "player": { "parse": 0, "url": "https://www.4c44.com/data/down.php?ac=music&id=ydchnneteh", "valid": true, "reachable": true, "status_code": 200, "final_url": "http://m701.music.126.net/20260517075215/5cf78c68c62b7201036815f2f34b5d67/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/14809090000/1d47/71e9/0d49/30f23efad99b55efa1817370a9530225.mp3?vuutv=0ghhLMosHHdG5xHkdacG/kqOEbBRd3xLHEt4fn1f1G3lhoXKibNVOcCpRp6Am5k7qE7pw18B6Zky5NDiQrAwPC6uxWqeJJXmi/90e+CU4iE=", "reason": null } }, { "spider": "两个BT", "file": "两个BT.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 298.515, "init": 0.001, "home": 0.001, "category": 395.432, "detail": 345.942, "player": 676.782, "url_check": 440.329, "total": 2157.934 }, "counts": { "classes": 14, "category_videos": 24, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "zgjun", "vod_id": "ch455phy4", "flag": "两个BT", "play_id": "eyJwaWQiOiIvcGxheS9jaDQ1NXBoeTQiLCJzaWQiOiJjaDQ1NXBoeTQiLCJuYW1lIjoiMSJ9" }, "player": { "parse": 0, "url": "https://zijieapi.douyinbyte.com/m3u8/1f41cc037752f6a45a59235b3188dc83.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://zijieapi.douyinbyte.com/m3u8/1f41cc037752f6a45a59235b3188dc83.m3u8", "reason": null } }, { "spider": "乌云影视", "file": "乌云影视.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 224.233, "init": 0.001, "home": 248.945, "category": 319.242, "detail": 955.54, "player": 0.068, "url_check": 1754.442, "total": 3505.52 }, "counts": { "classes": 7, "category_videos": 24, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "movie", "vod_id": "483203", "flag": "乌云影视", "play_id": "eyJtZWRpYUlkIjogIjQ4MzIwMyIsICJzZWFzb25ObyI6IDEsICJlcE5vIjogMSwgInZpZGVvSWQiOiAxNTc2MjgzMiwgInBsYXlVcmwiOiAiaHR0cHM6Ly9kMWpkbm1rYzFuNWNuNC5jbG91ZGZyb250Lm5ldC9nZW5fb3ZlcnNlYXMvaHR0cHM6Ly9zMi5iZmxsdmlwLmNvbS92aWRlby95YW54aWF4aW5nL2E2ZWY4NTRjMGMxZi9pbmRleC5tM3U4IiwgIm5hbWUiOiAi56ysMembhiDpq5jmuIUifQ" }, "player": { "parse": 0, "url": "https://d1jdnmkc1n5cn4.cloudfront.net/gen_overseas/https://s2.bfllvip.com/video/yanxiaxing/a6ef854c0c1f/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://d1jdnmkc1n5cn4.cloudfront.net/hls_overseas/b3a772783c2907ad85a8812f4406224e4e8f7193.m3u8", "reason": null } }, { "spider": "乐兔", "file": "乐兔.txt", "success": false, "failed_stage": "category", "error": "分类视频列表为空", "traceback": null, "timings_ms": { "module_load": 224.187, "init": 0.001, "home": 0.0, "category": 216.665, "detail": 0.0, "player": 0.0, "url_check": 0.0, "total": 674.025 }, "counts": { "classes": 5, "category_videos": 0, "detail_videos": 0, "episodes": 0 }, "samples": { "tid": "2", "vod_id": null, "flag": null, "play_id": null }, "player": { "parse": null, "url": "", "valid": false, "reachable": null, "status_code": null, "final_url": "", "reason": null } }, { "spider": "二小", "file": "二小.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 231.188, "init": 0.001, "home": 0.001, "category": 527.649, "detail": 446.886, "player": 0.007, "url_check": 1215.513, "total": 2422.536 }, "counts": { "classes": 4, "category_videos": 72, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "12394", "flag": "百度#二小", "play_id": "https://pan.baidu.com/s/13NubF-EJjexfh6F5107e8A?pwd=x2u9" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/13NubF-EJjexfh6F5107e8A?pwd=x2u9", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=3NubF-EJjexfh6F5107e8A&pwd=x2u9", "reason": null } }, { "spider": "人人电影", "file": "人人电影.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 223.54, "init": 0.001, "home": 0.001, "category": 436.021, "detail": 373.339, "player": 0.023, "url_check": 1029.145, "total": 2063.751 }, "counts": { "classes": 4, "category_videos": 10, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "movie/list_2", "vod_id": "/movie/2026/0516/59204.html", "flag": "baidu", "play_id": "https://pan.baidu.com/s/1n6AIYm7rmLiULlMrrvWaAg?pwd=kuq2" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1n6AIYm7rmLiULlMrrvWaAg?pwd=kuq2", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=n6AIYm7rmLiULlMrrvWaAg&pwd=kuq2", "reason": null } }, { "spider": "人人视频", "file": "人人视频.txt", "success": false, "failed_stage": "url_check", "error": "HTTP 403", "traceback": null, "timings_ms": { "module_load": 5.542, "init": 0.0, "home": 151.138, "category": 281.33, "detail": 234.477, "player": 296.074, "url_check": 206.711, "total": 2218.704 }, "counts": { "classes": 4, "category_videos": 30, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "MOVIE", "vod_id": "57046", "flag": "人人专线", "play_id": "57046@382015" }, "player": { "parse": 0, "url": "https://tfvx3grhdgmt1gc41hcjz8yzdk.ourdvsssvip.com:20443/ws-302.bwcgee.cn/c074943c4e6d71f18ed75017f0e90402/df3c0578d329457b9265317e359bce4a-0839441ca402de22c840b03b4e64e0d2-ld.mp4?key=ca3e7007be11c35cab3f25d2ce1f1d91&time=1778988437305&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=87726c081068466d99fd06310ddfd07b&hevc=false&seasonId=57046&wsiphost=ipdbme&wsrid_tag=6a08fd55_PS-CTU-01tJO23_25092-17362-s1t1778974037366&x-mamba-business-label=13679&redirect_cnt=0&ip_type=0&wshc=C&requery=0", "valid": false, "reachable": false, "status_code": 403, "final_url": "https://tfvx3grhdgmt1gc41hcjz8yzdk.ourdvsssvip.com:20443/ws-302.bwcgee.cn/c074943c4e6d71f18ed75017f0e90402/df3c0578d329457b9265317e359bce4a-0839441ca402de22c840b03b4e64e0d2-ld.mp4?key=ca3e7007be11c35cab3f25d2ce1f1d91&time=1778988437305&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=87726c081068466d99fd06310ddfd07b&hevc=false&seasonId=57046&wsiphost=ipdbme&wsrid_tag=6a08fd55_PS-CTU-01tJO23_25092-17362-s1t1778974037366&x-mamba-business-label=13679&redirect_cnt=0&ip_type=0&wshc=C&requery=0", "reason": "HTTP 403" } }, { "spider": "优酷", "file": "优酷.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 23.186, "init": 0.001, "home": 0.001, "category": 317.291, "detail": 528.171, "player": 0.002, "url_check": 218.512, "total": 1087.953 }, "counts": { "classes": 6, "category_videos": 23, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "电视剧", "vod_id": "show:afcb2d65c6a34b798d77", "flag": "优酷", "play_id": "https://v.youku.com/v_show/id_XNjUzNDA5NDEwNA==.html" }, "player": { "parse": 1, "url": "https://v.youku.com/v_show/id_XNjUzNDA5NDEwNA==.html", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://v.youku.com/v_show/id_XNjUzNDA5NDEwNA==.html", "reason": null } }, { "spider": "低端影视", "file": "低端影视.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 14.24, "init": 0.001, "home": 0.001, "category": 1044.882, "detail": 1361.1, "player": 0.006, "url_check": 895.875, "total": 3316.838 }, "counts": { "classes": 4, "category_videos": 24, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "series", "vod_id": "movie/untamed-season-1", "flag": "播放源 1 (1080P)", "play_id": "https://v.cdnlz22.com/20250717/19912_440037b1/index.m3u8" }, "player": { "parse": 0, "url": "https://v.cdnlz22.com/20250717/19912_440037b1/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://v.cdnlz22.com/20250717/19912_440037b1/index.m3u8", "reason": null } }, { "spider": "修罗", "file": "修罗.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 15.595, "init": 0.001, "home": 0.001, "category": 1118.208, "detail": 223.829, "player": 1485.131, "url_check": 591.105, "total": 3436.086 }, "counts": { "classes": 4, "category_videos": 24, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "movie", "vod_id": "kongbu/3777", "flag": "修罗直连", "play_id": "play/3777-0" }, "player": { "parse": 0, "url": "https://v.xlys.ltd.ua/obj/8336FA10FB9E8CB0C3A15D20391A987E6EDE1D72CE7C61D7FBCC16D0B04FE66E", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://lf26-imcloud-file-sign.bytetos.com/ad-penny-bucket/o0EEIAAAt4uBCWDq8FAdfNTiQIzRVEAgCeOhCd?x-expires=1778975699&x-signature=%2FTbAkxHvTd1l89duzC5usbYwWLo%3D", "reason": null } }, { "spider": "凡客TV", "file": "凡客TV.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 30.42, "init": 0.002, "home": 0.002, "category": 1042.99, "detail": 1219.201, "player": 1793.46, "url_check": 2950.712, "total": 7038.27 }, "counts": { "classes": 8, "category_videos": 32, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "d0371b7920b771c7", "flag": "高速线路", "play_id": "{\"movie_id\":\"d0371b7920b771c7\",\"link_id\":\"f0dacbe7a99090ebe53eff7947f06d1a\",\"line_id\":\"line1\",\"line_name\":\"高速线路\",\"episode_name\":\"1080p\",\"type\":\"switch\",\"page\":\"https://fktv.me/movie/detail/d0371b7920b771c7\"}" }, "player": { "parse": 0, "url": "https://fktv.me/ysapi/m3u8/p/54a9492f0e8defc9121e61640fa53485.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://fktv.me/ysapi/m3u8/p/54a9492f0e8defc9121e61640fa53485.m3u8", "reason": null } }, { "spider": "剧圈圈", "file": "剧圈圈.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 43.351, "init": 0.001, "home": 0.001, "category": 677.144, "detail": 628.253, "player": 12216.493, "url_check": 607.034, "total": 14173.024 }, "counts": { "classes": 5, "category_videos": 16, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "dianying", "vod_id": "63034", "flag": "FF备用", "play_id": "play/63034-1-1" }, "player": { "parse": 1, "url": "https://www.jqqzx.cc/play/63034-1-1.html", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://www.jqqzx.one/play/63034-1-1.html", "reason": null } }, { "spider": "剧迷", "file": "剧迷.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 6.834, "init": 0.001, "home": 0.001, "category": 221.675, "detail": 437.275, "player": 415.588, "url_check": 1150.163, "total": 2232.231 }, "counts": { "classes": 6, "category_videos": 150, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "443094", "flag": "高清线路 ᴴᴰ", "play_id": "443094-11-1" }, "player": { "parse": 0, "url": "https://play.phimgood.com/20260511/26651_2f4d94b1/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://play.phimgood.com/20260511/26651_2f4d94b1/index.m3u8", "reason": null } }, { "spider": "博看听书", "file": "博看听书.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 12.568, "init": 0.001, "home": 2841.179, "category": 245.227, "detail": 706.974, "player": 0.006, "url_check": 40.636, "total": 3847.478 }, "counts": { "classes": 11, "category_videos": 24, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "1319", "vod_id": "902849", "flag": "博看听书", "play_id": "http://audio.bookan.com.cn/video1/audio/20200706001/aache64_133068a2.m4a" }, "player": { "parse": 0, "url": "http://audio.bookan.com.cn/video1/audio/20200706001/aache64_133068a2.m4a", "valid": true, "reachable": true, "status_code": 200, "final_url": "http://audio.bookan.com.cn/video1/audio/20200706001/aache64_133068a2.m4a", "reason": null } }, { "spider": "双星", "file": "双星.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 5.979, "init": 317.33, "home": 0.005, "category": 165.145, "detail": 166.652, "player": 0.009, "url_check": 149.177, "total": 809.619 }, "counts": { "classes": 7, "category_videos": 15, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "ju", "vod_id": "/ju/10461.html", "flag": "夸克", "play_id": "https://pan.quark.cn/s/9e546b70dcfd" }, "player": { "parse": 0, "url": "https://pan.quark.cn/s/9e546b70dcfd", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.quark.cn/s/9e546b70dcfd", "reason": null } }, { "spider": "听书", "file": "听书.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 5.693, "init": 82.549, "home": 0.001, "category": 167.011, "detail": 1942.015, "player": 235.992, "url_check": 112.83, "total": 2546.958 }, "counts": { "classes": 11, "category_videos": 10, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "6", "vod_id": "63", "flag": "直链", "play_id": "2926931|||63" }, "player": { "parse": 0, "url": "http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=4c47e0d461cc2e2ece6d0737d7b58360&buy_key=FM&token=4845×tamp=1778974039&duration=453", "valid": true, "reachable": true, "status_code": 200, "final_url": "http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=4c47e0d461cc2e2ece6d0737d7b58360&buy_key=FM&token=4845×tamp=1778974039&duration=453", "reason": null } }, { "spider": "听友FM", "file": "听友FM.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 27.031, "init": 0.001, "home": 376.293, "category": 262.223, "detail": 789.778, "player": 457.051, "url_check": 146.723, "total": 2061.026 }, "counts": { "classes": 8, "category_videos": 20, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "46", "vod_id": "9783312385", "flag": "听友FM", "play_id": "9783312385|1" }, "player": { "parse": 0, "url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778972071&sign=ce002fc5c097450a447eab829e63f692", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778972071&sign=ce002fc5c097450a447eab829e63f692", "reason": null } }, { "spider": "咕咕动漫", "file": "咕咕动漫.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 16.343, "init": 0.004, "home": 719.318, "category": 350.372, "detail": 671.229, "player": 1979.262, "url_check": 78.396, "total": 3816.124 }, "counts": { "classes": 3, "category_videos": 30, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "6", "vod_id": "4868", "flag": "咕咕新线(国内高速)", "play_id": "parse_api=a2796a09189261bcaf3cc4542d7c5ac2&url=lP2R+fQhIhERka2gIaipagHQsWKazkceP23lb9jG0yeOhUKQ437rokxlEtXsJd2U&token=|勇者之屑|1" }, "player": { "parse": 0, "url": "https://p9-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/cce3008768e54b0ab7d8413653c95ba1~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1810078040&x-signature=0nC8QxGJ5xOr7WZFlqVX0udcOJo%3D", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://p9-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/cce3008768e54b0ab7d8413653c95ba1~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1810078040&x-signature=0nC8QxGJ5xOr7WZFlqVX0udcOJo%3D", "reason": null } }, { "spider": "四万影视", "file": "四万影视.txt", "success": false, "failed_stage": "unexpected", "error": "HTTPSConnectionPool(host='40000.me', port=443): Max retries exceeded with url: /api/maccms?ac=detail&t=20&pg=1&by=time (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)')))", "traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 464, in _make_request\n self._validate_conn(conn)\n ~~~~~~~~~~~~~~~~~~~^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 1093, in _validate_conn\n conn.connect()\n ~~~~~~~~~~~~^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 796, in connect\n sock_and_verified = _ssl_wrap_socket_and_match_hostname(\n sock=sock,\n ...<14 lines>...\n assert_fingerprint=self.assert_fingerprint,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 975, in _ssl_wrap_socket_and_match_hostname\n ssl_sock = ssl_wrap_socket(\n sock=sock,\n ...<8 lines>...\n tls_in_tls=tls_in_tls,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/ssl_.py\", line 483, in ssl_wrap_socket\n ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)\nssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 488, in _make_request\n raise new_e\nurllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 535, in increment\n raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nurllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='40000.me', port=443): Max retries exceeded with url: /api/maccms?ac=detail&t=20&pg=1&by=time (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)')))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/四万影视.txt\", line 238, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/四万影视.txt\", line 212, in _api_get\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='40000.me', port=443): Max retries exceeded with url: /api/maccms?ac=detail&t=20&pg=1&by=time (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)')))\n", "timings_ms": { "module_load": 11.41, "init": 0.001, "home": 0.001, "category": 125.21, "detail": 0.0, "player": 0.0, "url_check": 0.0, "total": 156.499 }, "counts": { "classes": 5, "category_videos": 0, "detail_videos": 0, "episodes": 0 }, "samples": { "tid": "20", "vod_id": null, "flag": null, "play_id": null }, "player": { "parse": null, "url": "", "valid": false, "reachable": null, "status_code": null, "final_url": "", "reason": null } }, { "spider": "在线之家", "file": "在线之家.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 17.404, "init": 0.001, "home": 0.001, "category": 577.481, "detail": 960.346, "player": 2332.693, "url_check": 198.044, "total": 4092.245 }, "counts": { "classes": 6, "category_videos": 12, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "1", "vod_id": "4601", "flag": "zxzj", "play_id": "vodplay/4601-1-1.html" }, "player": { "parse": 0, "url": "https://media-sxty-fy-corp.sx3oss.ctyunxs.cn/CORPCLOUD/f076ccf5-a095-45a2-b086-cbf66f4aa40d.mp4?response-content-disposition=attachment%3Bfilename%3D%22%E9%93%81%E8%A1%80%E6%88%98%E5%A3%AB%E6%9D%80%E6%88%AE%E4%B9%8B%E5%9C%B02025HD1080P.mp4%22%3Bfilename*%3DUTF-8%27%27%25E9%2593%2581%25E8%25A1%2580%25E6%2588%2598%25E5%25A3%25AB%25E6%259D%2580%25E6%2588%25AE%25E4%25B9%258B%25E5%259C%25B02025HD1080P.mp4&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=CORP&x-amz-CLIENTTYPEIN=UNKNOWN&Signature=oubmeQnjqGd5W0mono8h/BSx9jo%3D&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&Expires=1778975934&x-amz-limitrate=102400&response-content-type=video/mp4&x-amz-FSIZE=2183471772&x-amz-UID=10000004591358&x-amz-UFID=31374317010337932", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://media-sxty-fy-corp.sx3oss.ctyunxs.cn/CORPCLOUD/f076ccf5-a095-45a2-b086-cbf66f4aa40d.mp4?response-content-disposition=attachment%3Bfilename%3D%22%E9%93%81%E8%A1%80%E6%88%98%E5%A3%AB%E6%9D%80%E6%88%AE%E4%B9%8B%E5%9C%B02025HD1080P.mp4%22%3Bfilename*%3DUTF-8%27%27%25E9%2593%2581%25E8%25A1%2580%25E6%2588%2598%25E5%25A3%25AB%25E6%259D%2580%25E6%2588%25AE%25E4%25B9%258B%25E5%259C%25B02025HD1080P.mp4&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=CORP&x-amz-CLIENTTYPEIN=UNKNOWN&Signature=oubmeQnjqGd5W0mono8h/BSx9jo%3D&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&Expires=1778975934&x-amz-limitrate=102400&response-content-type=video/mp4&x-amz-FSIZE=2183471772&x-amz-UID=10000004591358&x-amz-UFID=31374317010337932", "reason": null } }, { "spider": "多多", "file": "多多.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 20.788, "init": 0.001, "home": 0.001, "category": 521.121, "detail": 408.851, "player": 0.005, "url_check": 1220.11, "total": 2171.853 }, "counts": { "classes": 6, "category_videos": 72, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "9461", "flag": "百度#多多", "play_id": "https://pan.baidu.com/s/1pwIj24HVw6lpAUcUrJE-QQ?pwd=yyds" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1pwIj24HVw6lpAUcUrJE-QQ?pwd=yyds", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=pwIj24HVw6lpAUcUrJE-QQ&pwd=yyds", "reason": null } }, { "spider": "如意资源", "file": "如意资源.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 14.786, "init": 0.001, "home": 0.011, "category": 885.099, "detail": 325.519, "player": 0.013, "url_check": 1836.916, "total": 3063.963 }, "counts": { "classes": 6, "category_videos": 20, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "77365", "flag": "rym3u8", "play_id": "https://svip.ryiplay18.com/20260515/6453_8cf2f155/index.m3u8" }, "player": { "parse": 0, "url": "https://svip.ryiplay18.com/20260515/6453_8cf2f155/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://svip.ryiplay18.com/20260515/6453_8cf2f155/index.m3u8", "reason": null } }, { "spider": "布布影视", "file": "布布影视.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 5.935, "init": 0.0, "home": 0.001, "category": 668.734, "detail": 661.326, "player": 955.661, "url_check": 338.331, "total": 2630.969 }, "counts": { "classes": 4, "category_videos": 24, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "69765", "flag": "JD蓝光(1)", "play_id": "JD4K@1@JD-5f4f247d6dfbc0b5d5cb1efeaa2303790" }, "player": { "parse": 0, "url": "https://c167-obsdaz-ykj-01.obs.dualstack.cidc-rp-2006.joint.cmecloud.cn/1810c8ff2a78456b9348fadfe7ab0fd0086?response-content-disposition=attachment%3B%20filename%2A%3DUTF-8%27%274K.mp4&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260516T231809Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260516%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=ee722f117f47a7734a61ef574cee198226d93b959021bd450b97848469bc317c", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://c167-obsdaz-ykj-01.obs.dualstack.cidc-rp-2006.joint.cmecloud.cn/1810c8ff2a78456b9348fadfe7ab0fd0086?response-content-disposition=attachment%3B%20filename%2A%3DUTF-8%27%274K.mp4&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260516T231809Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260516%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=ee722f117f47a7734a61ef574cee198226d93b959021bd450b97848469bc317c", "reason": null } }, { "spider": "微观短剧", "file": "微观短剧.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 8.326, "init": 0.02, "home": 180.234, "category": 253.529, "detail": 315.63, "player": 0.002, "url_check": 96.632, "total": 856.1 }, "counts": { "classes": 30, "category_videos": 30, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "都市", "vod_id": "110000044555935694", "flag": "1080P", "play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778974038&sign=8b0298bd195b1500df7f2779aa1f991c" }, "player": { "parse": 0, "url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778974038&sign=8b0298bd195b1500df7f2779aa1f991c", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778974038&sign=8b0298bd195b1500df7f2779aa1f991c", "reason": null } }, { "spider": "新韩剧网", "file": "新韩剧网.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 23.631, "init": 0.001, "home": 0.001, "category": 595.97, "detail": 423.346, "player": 404.996, "url_check": 995.934, "total": 2444.954 }, "counts": { "classes": 5, "category_videos": 16, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "1", "vod_id": "3653", "flag": "在线云播", "play_id": "3653_1_1" }, "player": { "parse": 0, "url": "https://cdn.yzzy31-play.com/20260418/19681_becb8597/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://cdn.yzzy31-play.com/20260418/19681_becb8597/index.m3u8", "reason": null } }, { "spider": "星星短剧", "file": "星星短剧.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 2.939, "init": 0.0, "home": 0.0, "category": 490.494, "detail": 605.175, "player": 0.006, "url_check": 120.463, "total": 1219.841 }, "counts": { "classes": 5, "category_videos": 10, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "1287", "vod_id": "422599939194881@@穿越诡计爱上你@@苏清韵为了给妹妹治病,卖身富豪被卓熙辰所救,答应卓熙辰的契约婚姻。苏清韵受到了爱慕卓熙辰的上官溪玲的疯狂攻击与算计,导致妹妹离世。苏清韵误会记恨卓熙辰因此拿刀伤了他,自己也被判入狱五年。", "flag": "星星短剧", "play_id": "https://img.novel.wsljf.xyz/shortPlay-mp4/420424102051841/EvnIm1746774634078/abc6208e-390b-4533-a1a4-b9e5741cc384/540x960/output.m3u8" }, "player": { "parse": 0, "url": "https://img.novel.wsljf.xyz/shortPlay-mp4/420424102051841/EvnIm1746774634078/abc6208e-390b-4533-a1a4-b9e5741cc384/540x960/output.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://img.novel.wsljf.xyz/shortPlay-mp4/420424102051841/EvnIm1746774634078/abc6208e-390b-4533-a1a4-b9e5741cc384/540x960/output.m3u8", "reason": null } }, { "spider": "木偶", "file": "木偶.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 13.795, "init": 0.002, "home": 0.002, "category": 286.932, "detail": 216.495, "player": 0.026, "url_check": 244.009, "total": 762.185 }, "counts": { "classes": 7, "category_videos": 72, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "25", "vod_id": "7920", "flag": "115#木偶", "play_id": "https://115cdn.com/s/swf2d3336dh?password=if81" }, "player": { "parse": 0, "url": "https://115cdn.com/s/swf2d3336dh?password=if81", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://115cdn.com/s/swf2d3336dh?password=if81", "reason": null } }, { "spider": "樱花动漫", "file": "樱花动漫.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 17.187, "init": 0.003, "home": 0.003, "category": 1644.544, "detail": 1300.723, "player": 1316.582, "url_check": 1845.819, "total": 6125.782 }, "counts": { "classes": 4, "category_videos": 36, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "guoman", "vod_id": "234", "flag": "高清", "play_id": "/play/234-1-1/" }, "player": { "parse": 0, "url": "https://yzzy.play-cdn8.com/20220731/11908_8b017ccd/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://yzzy.play-cdn8.com/20220731/11908_8b017ccd/index.m3u8", "reason": null } }, { "spider": "橘子TV", "file": "橘子TV.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 9.103, "init": 333.905, "home": 328.895, "category": 332.599, "detail": 378.509, "player": 699.6, "url_check": 992.894, "total": 3077.065 }, "counts": { "classes": 8, "category_videos": 18, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "50", "vod_id": "397266", "flag": "一起看APP", "play_id": "25385531" }, "player": { "parse": 0, "url": "https://usaydd.5gwcft9h.com/m3u87/share/7404387/7599927/20260511/161239/720/index.m3u8?sign=6d2b63ae7bcd54844fbfff2c6c8c0ea1&t=1778974041", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://usaydd.5gwcft9h.com/m3u87/share/7404387/7599927/20260511/161239/720/index.m3u8?sign=6d2b63ae7bcd54844fbfff2c6c8c0ea1&t=1778974041", "reason": null } }, { "spider": "欧歌", "file": "欧歌.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 14.951, "init": 0.001, "home": 0.001, "category": 212.641, "detail": 175.093, "player": 0.006, "url_check": 4866.921, "total": 5270.323 }, "counts": { "classes": 6, "category_videos": 72, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "29949", "flag": "百度", "play_id": "https://pan.baidu.com/s/1jrvd3aW7MiXaZOm5AOpXfw?pwd=8888" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1jrvd3aW7MiXaZOm5AOpXfw?pwd=8888", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=jrvd3aW7MiXaZOm5AOpXfw&pwd=8888", "reason": null } }, { "spider": "河马短剧", "file": "河马短剧.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 7.861, "init": 0.001, "home": 638.596, "category": 617.483, "detail": 994.25, "player": 0.022, "url_check": 70.318, "total": 2329.374 }, "counts": { "classes": 10, "category_videos": 10, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "462", "vod_id": "41000188058", "flag": "河马剧场", "play_id": "https://dzzt-video.cbread.cn/07b5ef7e1a94de48bddcdfcb5a25683e/6a0a4870/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4" }, "player": { "parse": 0, "url": "https://dzzt-video.cbread.cn/07b5ef7e1a94de48bddcdfcb5a25683e/6a0a4870/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://dzzt-video.cbread.cn/07b5ef7e1a94de48bddcdfcb5a25683e/6a0a4870/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4", "reason": null } }, { "spider": "滴答影视", "file": "滴答影视.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 7.684, "init": 0.001, "home": 0.001, "category": 197.479, "detail": 208.997, "player": 0.004, "url_check": 963.437, "total": 1378.345 }, "counts": { "classes": 5, "category_videos": 48, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "3034", "flag": "百度", "play_id": "https://pan.baidu.com/s/1iUOPtAOz3ypj2nyY7Wv9Ww?pwd=969e" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1iUOPtAOz3ypj2nyY7Wv9Ww?pwd=969e", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=iUOPtAOz3ypj2nyY7Wv9Ww&pwd=969e", "reason": null } }, { "spider": "潮流APP", "file": "潮流APP.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 3.586, "init": 0.002, "home": 78.598, "category": 93.3, "detail": 131.771, "player": 244.778, "url_check": 102.528, "total": 656.299 }, "counts": { "classes": 10, "category_videos": 12, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "10", "vod_id": "75722", "flag": "线路二 (点击换线)", "play_id": "75722@@0@@0" }, "player": { "parse": 0, "url": "http://43.248.100.143:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778974040141&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "http://43.248.100.143:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778974040141&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8", "reason": null } }, { "spider": "爱奇艺", "file": "爱奇艺.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 19.701, "init": 0.021, "home": 2830.145, "category": 961.105, "detail": 181.57, "player": 0.005, "url_check": 84.97, "total": 4079.206 }, "counts": { "classes": 11, "category_videos": 48, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "pcw:1", "vod_id": "pcw:1$6003108394876300", "flag": "爱奇艺", "play_id": "http://www.iqiyi.com/v_1mmd1991kgw.html" }, "player": { "parse": 1, "url": "http://www.iqiyi.com/v_1mmd1991kgw.html", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://www.iqiyi.com/v_1mmd1991kgw.html", "reason": null } }, { "spider": "独播库", "file": "独播库.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 12.377, "init": 0.001, "home": 0.001, "category": 429.339, "detail": 353.208, "player": 315.898, "url_check": 187.763, "total": 1299.292 }, "counts": { "classes": 6, "category_videos": 48, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "index", "vod_id": "143470", "flag": "独播库", "play_id": "143470-1-1" }, "player": { "parse": 0, "url": "https://vid.dbokutv.com/20260411/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBsnsRsGlR7XgBJ8nSsfaQcPoBJ0nBJ0oCJaqD4CrCIvjS34/chunklist.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://vid.dbokutv.com/20260411/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBsnsRsGlR7XgBJ8nSsfaQcPoBJ0nBJ0oCJaqD4CrCIvjS34/chunklist.m3u8", "reason": null } }, { "spider": "玩偶哥哥", "file": "玩偶哥哥.txt", "success": false, "failed_stage": "category", "error": "分类视频列表为空", "traceback": null, "timings_ms": { "module_load": 14.613, "init": 0.001, "home": 0.0, "category": 132.766, "detail": 0.0, "player": 0.0, "url_check": 0.0, "total": 270.749 }, "counts": { "classes": 8, "category_videos": 0, "detail_videos": 0, "episodes": 0 }, "samples": { "tid": "2", "vod_id": null, "flag": null, "play_id": null }, "player": { "parse": null, "url": "", "valid": false, "reachable": null, "status_code": null, "final_url": "", "reason": null } }, { "spider": "玩偶聚合", "file": "玩偶聚合.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 15.997, "init": 0.002, "home": 0.153, "category": 265.179, "detail": 225.013, "player": 0.005, "url_check": 250.98, "total": 757.948 }, "counts": { "classes": 10, "category_videos": 72, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "site_muou", "vod_id": "site:muou:/index.php/vod/detail/id/7920.html", "flag": "115#木偶", "play_id": "https://115cdn.com/s/swf2d3336dh?password=if81" }, "player": { "parse": 0, "url": "https://115cdn.com/s/swf2d3336dh?password=if81", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://115cdn.com/s/swf2d3336dh?password=if81", "reason": null } }, { "spider": "瓜子", "file": "瓜子.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 4.866, "init": 0.001, "home": 0.032, "category": 471.316, "detail": 729.312, "player": 363.279, "url_check": 68.982, "total": 1638.814 }, "counts": { "classes": 5, "category_videos": 30, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "128782", "flag": "1080", "play_id": "vod_d_id=128782&vurl_id=3323715&domain_type=8&resolution=1080&type=play" }, "player": { "parse": 0, "url": "https://vd.hxcztech.com/ece52126a0784c60eed661778774ee86/20260517072721/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://vd.hxcztech.com/ece52126a0784c60eed661778774ee86/20260517072721/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8", "reason": null } }, { "spider": "百度短剧", "file": "百度短剧.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 3.245, "init": 0.001, "home": 406.155, "category": 245.795, "detail": 664.803, "player": 255.735, "url_check": 47.241, "total": 1623.391 }, "counts": { "classes": 29, "category_videos": 9, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "3", "vod_id": "10284595040762396431", "flag": "百度短剧", "play_id": "4723147730512611191|||10284595040762396431" }, "player": { "parse": 0, "url": "http://vd3.bdstatic.com/mda-rgu31fx13xnschwc/1080p/mv_cae264_backtrack_1080p_normal/1753858859061604699/mda-rgu31fx13xnschwc.mp4?v_from_s=haokan-ui-video-hnb", "valid": true, "reachable": true, "status_code": 200, "final_url": "http://vd3.bdstatic.com/mda-rgu31fx13xnschwc/1080p/mv_cae264_backtrack_1080p_normal/1753858859061604699/mda-rgu31fx13xnschwc.mp4?v_from_s=haokan-ui-video-hnb", "reason": null } }, { "spider": "盘Ta", "file": "盘Ta.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 13.099, "init": 0.001, "home": 326.049, "category": 233.686, "detail": 257.162, "player": 0.036, "url_check": 121.284, "total": 952.533 }, "counts": { "classes": 8, "category_videos": 30, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "?tagId=39765285016165", "vod_id": "264430", "flag": "移动", "play_id": "https://yun.139.com/shareweb/%23/w/i/2sUfBKpu5QBqz" }, "player": { "parse": 0, "url": "https://yun.139.com/shareweb/#/w/i/2sUfBKpu5QBqz", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://yun.139.com/shareweb/#/w/i/2sUfBKpu5QBqz", "reason": null } }, { "spider": "盘聚", "file": "盘聚.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 11.361, "init": 0.001, "home": 0.0, "category": 181.33, "detail": 203.532, "player": 174.407, "url_check": 870.934, "total": 1442.254 }, "counts": { "classes": 4, "category_videos": 20, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "/", "vod_id": "117684", "flag": "百度1", "play_id": "push://https://www.seedhub.cc/link_start/?redirect_to=pan_id_576185&movie_title=▶️▶️▶️【挽救计划】【4K 1080P】更新于 ✅ 今天" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1e6bRvilOqU11I0aregqndA?pwd=ojmk", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=e6bRvilOqU11I0aregqndA&pwd=ojmk", "reason": null } }, { "spider": "盘链", "file": "盘链.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 7.328, "init": 0.02, "home": 0.001, "category": 867.178, "detail": 168.084, "player": 0.002, "url_check": 1321.135, "total": 2364.154 }, "counts": { "classes": 5, "category_videos": 30, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "0", "vod_id": "75716", "flag": "百度", "play_id": "push://https://pan.baidu.com/s/1rbhXV3rLNKd1wVta_hMYnw?pwd=8888" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1rbhXV3rLNKd1wVta_hMYnw?pwd=8888", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=rbhXV3rLNKd1wVta_hMYnw&pwd=8888", "reason": null } }, { "spider": "短剧优选", "file": "短剧优选.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 25.382, "init": 436.231, "home": 0.141, "category": 487.895, "detail": 611.268, "player": 0.006, "url_check": 44.222, "total": 1606.381 }, "counts": { "classes": 11, "category_videos": 72, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "七猫", "vod_id": "七猫@24333", "flag": "七猫短剧", "play_id": "https://cdn-vod-playlet.wtzw.com/asset/b936eac78f199fd865afbe3c5b707e7f/play_multi_video/6f7310c287644b7c813ab8e2eb7a4a0c/f1223068052dd7f1bc88718af4b2c0e4.m3u8" }, "player": { "parse": 0, "url": "https://cdn-vod-playlet.wtzw.com/asset/b936eac78f199fd865afbe3c5b707e7f/play_multi_video/6f7310c287644b7c813ab8e2eb7a4a0c/f1223068052dd7f1bc88718af4b2c0e4.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://cdn-vod-playlet.wtzw.com/asset/b936eac78f199fd865afbe3c5b707e7f/play_multi_video/6f7310c287644b7c813ab8e2eb7a4a0c/f1223068052dd7f1bc88718af4b2c0e4.m3u8", "reason": null } }, { "spider": "短剧网", "file": "短剧网.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 3.611, "init": 0.001, "home": 0.0, "category": 252.342, "detail": 217.789, "player": 0.015, "url_check": 1082.326, "total": 1556.666 }, "counts": { "classes": 2, "category_videos": 20, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "https://sm3.cc/?id=50820", "flag": "百度", "play_id": "https://pan.baidu.com/s/1uKNPs2l7fvRp-JpP8btPCw?pwd=6666" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1uKNPs2l7fvRp-JpP8btPCw?pwd=6666", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=uKNPs2l7fvRp-JpP8btPCw&pwd=6666", "reason": null } }, { "spider": "糯米", "file": "糯米.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 5.523, "init": 0.0, "home": 223.162, "category": 614.692, "detail": 136.915, "player": 243.967, "url_check": 224.521, "total": 1449.951 }, "counts": { "classes": 7, "category_videos": 81, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "/vod-type-id-1-pg-1.html", "vod_id": "90063", "flag": "uvw", "play_id": "/vod-play-id-90063-src-1-num-1.html" }, "player": { "parse": 0, "url": "https://vip.123pan.cn/1853039965/dy/东北往事极恶不赦.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://vip.123pan.cn/1853039965/dy/%E4%B8%9C%E5%8C%97%E5%BE%80%E4%BA%8B%E6%9E%81%E6%81%B6%E4%B8%8D%E8%B5%A6.m3u8", "reason": null } }, { "spider": "网易云音乐", "file": "网易云音乐.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 4.01, "init": 0.001, "home": 425.076, "category": 410.392, "detail": 0.005, "player": 1341.515, "url_check": 51.46, "total": 2233.84 }, "counts": { "classes": 62, "category_videos": 100, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "/discover/toplist?id=19723756", "vod_id": "3382154270@Make Them Know@Drake👉MV", "flag": "网易云音乐", "play_id": "3382154270" }, "player": { "parse": 0, "url": "https://vodkgeyttp8.vod.126.net/cloudmusic/b028/core/d385/7949c1ba77cdfe6a51daf59fceb136cf.mp4?wsSecret=735d04d697a54bde56a247a1b951f8cd&wsTime=1778974043", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://vodkgeyttp8.vod.126.net/cloudmusic/b028/core/d385/7949c1ba77cdfe6a51daf59fceb136cf.mp4?wsSecret=735d04d697a54bde56a247a1b951f8cd&wsTime=1778974043", "reason": null } }, { "spider": "耐视点播", "file": "耐视点播.txt", "success": false, "failed_stage": "unexpected", "error": "HTTPSConnectionPool(host='nsvod.me', port=443): Max retries exceeded with url: /index.php/vod/show/id/1.html?page=1 (Caused by ConnectTimeoutError(, 'Connection to nsvod.me timed out. (connect timeout=10)'))", "traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 204, in _new_conn\n sock = connection.create_connection(\n (self._dns_host, self.port),\n ...<2 lines>...\n socket_options=self.socket_options,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/connection.py\", line 85, in create_connection\n raise err\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/connection.py\", line 73, in create_connection\n sock.connect(sa)\n ~~~~~~~~~~~~^^^^\nTimeoutError: timed out\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 488, in _make_request\n raise new_e\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 464, in _make_request\n self._validate_conn(conn)\n ~~~~~~~~~~~~~~~~~~~^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 1093, in _validate_conn\n conn.connect()\n ~~~~~~~~~~~~^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 759, in connect\n self.sock = sock = self._new_conn()\n ~~~~~~~~~~~~~~^^\nurllib3.exceptions.ConnectTimeoutError: (, 'Connection to nsvod.me timed out. (connect timeout=10)')\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 535, in increment\n raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nurllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='nsvod.me', port=443): Max retries exceeded with url: /index.php/vod/show/id/1.html?page=1 (Caused by ConnectTimeoutError(, 'Connection to nsvod.me timed out. (connect timeout=10)'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/耐视点播.txt\", line 174, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/耐视点播.txt\", line 76, in _request_html\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='nsvod.me', port=443): Max retries exceeded with url: /index.php/vod/show/id/1.html?page=1 (Caused by ConnectTimeoutError(, 'Connection to nsvod.me timed out. (connect timeout=10)'))\n", "timings_ms": { "module_load": 14.638, "init": 0.001, "home": 0.001, "category": 10013.04, "detail": 0.0, "player": 0.0, "url_check": 0.0, "total": 10029.367 }, "counts": { "classes": 6, "category_videos": 0, "detail_videos": 0, "episodes": 0 }, "samples": { "tid": "1", "vod_id": null, "flag": null, "play_id": null }, "player": { "parse": null, "url": "", "valid": false, "reachable": null, "status_code": null, "final_url": "", "reason": null } }, { "spider": "腾讯视频", "file": "腾讯视频.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 5.818, "init": 0.001, "home": 141.207, "category": 277.945, "detail": 934.898, "player": 0.006, "url_check": 222.833, "total": 1583.332 }, "counts": { "classes": 7, "category_videos": 12, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "choice", "vod_id": "choice$mzc002009g0nh88", "flag": "腾讯视频", "play_id": "https://v.qq.com/x/cover/mzc002009g0nh88/w4102d4f4ur.html" }, "player": { "parse": 1, "url": "https://v.qq.com/x/cover/mzc002009g0nh88/w4102d4f4ur.html", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://v.qq.com/x/cover/mzc002009g0nh88/w4102d4f4ur.html", "reason": null } }, { "spider": "至臻", "file": "至臻.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 4.35, "init": 0.001, "home": 0.001, "category": 272.689, "detail": 270.746, "player": 0.011, "url_check": 143.697, "total": 691.891 }, "counts": { "classes": 7, "category_videos": 72, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "1", "vod_id": "20436", "flag": "夸克#至臻", "play_id": "https://pan.quark.cn/s/76aa8cdbc04e" }, "player": { "parse": 0, "url": "https://pan.quark.cn/s/76aa8cdbc04e", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.quark.cn/s/76aa8cdbc04e", "reason": null } }, { "spider": "茶杯狐", "file": "茶杯狐.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 10.52, "init": 0.001, "home": 809.509, "category": 883.127, "detail": 688.323, "player": 1332.059, "url_check": 778.923, "total": 10797.632 }, "counts": { "classes": 4, "category_videos": 35, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "detail/video/113726", "flag": "BF有广", "play_id": "play/113726-2-1" }, "player": { "parse": 0, "url": "https://8.bf8bf.com/video/zhimingzhilv2025/HD/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://8.bf8bf.com/video/zhimingzhilv2025/HD/index.m3u8", "reason": null } }, { "spider": "虎斑", "file": "虎斑.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 6.979, "init": 0.001, "home": 0.0, "category": 1252.494, "detail": 5784.35, "player": 0.012, "url_check": 1150.746, "total": 8195.116 }, "counts": { "classes": 6, "category_videos": 72, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "/index.php/vod/detail/id/457553.html", "flag": "百度#虎斑", "play_id": "https://pan.baidu.com/s/1ix_xUKoNzXygByZVQWQ7yQ?pwd=7495" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1ix_xUKoNzXygByZVQWQ7yQ?pwd=7495", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=ix_xUKoNzXygByZVQWQ7yQ&pwd=7495", "reason": null } }, { "spider": "蜡笔", "file": "蜡笔.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 13.461, "init": 0.001, "home": 0.0, "category": 694.293, "detail": 460.065, "player": 0.008, "url_check": 950.346, "total": 2118.652 }, "counts": { "classes": 7, "category_videos": 72, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "29", "vod_id": "9231", "flag": "百度#蜡笔", "play_id": "https://pan.baidu.com/s/1LZC9v0B6ETfpQWooAqqxJA?pwd=jcx5" }, "player": { "parse": 0, "url": "https://pan.baidu.com/s/1LZC9v0B6ETfpQWooAqqxJA?pwd=jcx5", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://pan.baidu.com/share/init?surl=LZC9v0B6ETfpQWooAqqxJA&pwd=jcx5", "reason": null } }, { "spider": "袋鼠影视", "file": "袋鼠影视.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 10.002, "init": 0.001, "home": 0.001, "category": 756.471, "detail": 175.754, "player": 169.982, "url_check": 909.535, "total": 2022.478 }, "counts": { "classes": 4, "category_videos": 36, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "414893", "flag": "蓝光专线4", "play_id": "play/414893-1-0" }, "player": { "parse": 0, "url": "https://play.phimgood.com/20260516/26886_f6f20ada/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://play.phimgood.com/20260516/26886_f6f20ada/index.m3u8", "reason": null } }, { "spider": "视界", "file": "视界.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 6.908, "init": 0.001, "home": 301.044, "category": 204.81, "detail": 245.395, "player": 411.415, "url_check": 308.899, "total": 1480.258 }, "counts": { "classes": 6, "category_videos": 30, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "20", "vod_id": "134162", "flag": "4K源", "play_id": "parse_api=d9f9042eda382ed2f70e1768a99bb4dd&url=VTwg7uZlpTmKIVX/FbQWKRMf8g5ZwPKGrutlbvnFvO9z1EB4qn2YfEe0rTCuumHq&token=a542089c501379d5828dcc86d48563f9|努力克服自卑的我们|1" }, "player": { "parse": 0, "url": "https://media-bjcy-fy-person01.bjoss.ctyunxs.cn/PERSONCLOUD/e4c3ddb3-e567-4dd5-a8ae-bba59a76de13.m3u8?x-amz-CLIENTTYPEIN=UNKNOWN&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&x-amz-userLevel=0&x-amz-limitrate=51200&x-amz-UID=269636103&x-amz-APPID=828221&response-content-disposition=attachment%3Bfilename%3D%2201.m3u8%22%3Bfilename*%3DUTF-8%27%2701.m3u8&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=PERSON&Signature=Ei1IYNPyjOslRsz063M%2B5Iu0hBg%3D&Expires=1778974049&x-amz-FSIZE=89859&x-amz-UFID=823271248265142587", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://media-bjcy-fy-person01.bjoss.ctyunxs.cn/PERSONCLOUD/e4c3ddb3-e567-4dd5-a8ae-bba59a76de13.m3u8?x-amz-CLIENTTYPEIN=UNKNOWN&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&x-amz-userLevel=0&x-amz-limitrate=51200&x-amz-UID=269636103&x-amz-APPID=828221&response-content-disposition=attachment%3Bfilename%3D%2201.m3u8%22%3Bfilename*%3DUTF-8%27%2701.m3u8&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=PERSON&Signature=Ei1IYNPyjOslRsz063M%2B5Iu0hBg%3D&Expires=1778974049&x-amz-FSIZE=89859&x-amz-UFID=823271248265142587", "reason": null } }, { "spider": "路漫漫", "file": "路漫漫.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 4.631, "init": 0.001, "home": 0.001, "category": 906.614, "detail": 647.867, "player": 1600.538, "url_check": 93.997, "total": 3254.107 }, "counts": { "classes": 6, "category_videos": 20, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "6", "vod_id": "detail/8036.html", "flag": "播放节点列表X 聚合线路 box聚合", "play_id": "play/8036_1_1.html" }, "player": { "parse": 0, "url": "https://video-sh.cloudvideocdn.taobao.com/pc_video_daren_publish/1775328690971/3f48edfdc3979ed7.mp4?auth_key=1779033497-0-0-f393307fc675a96792780080f0c57cf5&biz=guangguang-22e0ed3e0d4bd43d&t=213e031217789734973475468e0fcc", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://video-sh.cloudvideocdn.taobao.com/pc_video_daren_publish/1775328690971/3f48edfdc3979ed7.mp4?auth_key=1779033497-0-0-f393307fc675a96792780080f0c57cf5&biz=guangguang-22e0ed3e0d4bd43d&t=213e031217789734973475468e0fcc", "reason": null } }, { "spider": "酷我听书", "file": "酷我听书.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 13.392, "init": 0.001, "home": 389.096, "category": 89.493, "detail": 3168.787, "player": 158.938, "url_check": 39.994, "total": 3860.708 }, "counts": { "classes": 4, "category_videos": 21, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "2", "vod_id": "13492273", "flag": "酷我听书", "play_id": "free|94448942" }, "player": { "parse": 0, "url": "http://lv.sycdn.kuwo.cn/82e5ff96b140f52453f49b7ec0d65410/6a08fd5e/resource/30106/trackmedia/long/M500002ZiI9a1sctnS.mp3?bitrate$128&format$mp3&source$kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type$convert_url_with_sign&user$&loginUid$", "valid": true, "reachable": true, "status_code": 200, "final_url": "http://lv.sycdn.kuwo.cn/82e5ff96b140f52453f49b7ec0d65410/6a08fd5e/resource/30106/trackmedia/long/M500002ZiI9a1sctnS.mp3?bitrate$128&format$mp3&source$kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type$convert_url_with_sign&user$&loginUid$", "reason": null } }, { "spider": "酷狗音乐", "file": "酷狗音乐.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 23.365, "init": 460.668, "home": 256.125, "category": 221.991, "detail": 252.577, "player": 315.841, "url_check": 25.402, "total": 1559.996 }, "counts": { "classes": 12, "category_videos": 15, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "recommend", "vod_id": "676594792", "flag": "酷狗音乐", "play_id": "676594792" }, "player": { "parse": 0, "url": "http://fsdg360.tx.kugou.com/202605170727/0d74e833183de79733b469ecac3c3e25/v3/1bf98ac2dc230c816bcbfa122ee4e729/yp/p_0_960127/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx676594792_qu128_s1038393002.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3", "valid": true, "reachable": true, "status_code": 200, "final_url": "http://fsdg360.tx.kugou.com/202605170727/0d74e833183de79733b469ecac3c3e25/v3/1bf98ac2dc230c816bcbfa122ee4e729/yp/p_0_960127/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx676594792_qu128_s1038393002.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3", "reason": null } }, { "spider": "金牌", "file": "金牌.txt", "success": false, "failed_stage": "url_check", "error": "HTTP 403", "traceback": null, "timings_ms": { "module_load": 15.575, "init": 0.001, "home": 1607.582, "category": 180.064, "detail": 192.929, "player": 184.983, "url_check": 136.15, "total": 2957.519 }, "counts": { "classes": 4, "category_videos": 30, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "2", "vod_id": "141585", "flag": "金牌线路", "play_id": "141585@1258194" }, "player": { "parse": 0, "url": "https://ppvod01.kqgfbs.com/splitOut/20260103/1226906/V20260103184854978121226906/index.m3u8?t=6a09278e&whip=212.107.29.200&sign=5a72522827e99fbe82ce1827bdbbc63c734a4e0e", "valid": false, "reachable": false, "status_code": 403, "final_url": "https://ppvod01.kqgfbs.com/splitOut/20260103/1226906/V20260103184854978121226906/index.m3u8?t=6a09278e&whip=212.107.29.200&sign=5a72522827e99fbe82ce1827bdbbc63c734a4e0e", "reason": "HTTP 403" } }, { "spider": "闪电", "file": "闪电.txt", "success": false, "failed_stage": "category", "error": "分类视频列表为空", "traceback": null, "timings_ms": { "module_load": 3.776, "init": 0.001, "home": 0.001, "category": 1137.577, "detail": 0.0, "player": 0.0, "url_check": 0.0, "total": 2179.288 }, "counts": { "classes": 5, "category_videos": 0, "detail_videos": 0, "episodes": 0 }, "samples": { "tid": "2", "vod_id": null, "flag": null, "play_id": null }, "player": { "parse": null, "url": "", "valid": false, "reachable": null, "status_code": null, "final_url": "", "reason": null } }, { "spider": "飞快TV", "file": "飞快TV.txt", "success": false, "failed_stage": "unexpected", "error": "HTTPSConnectionPool(host='feikuai.in', port=443): Max retries exceeded with url: /voddetail/239943.html (Caused by ConnectTimeoutError(, 'Connection to feikuai.in timed out. (connect timeout=10)'))", "traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 204, in _new_conn\n sock = connection.create_connection(\n (self._dns_host, self.port),\n ...<2 lines>...\n socket_options=self.socket_options,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/connection.py\", line 85, in create_connection\n raise err\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/connection.py\", line 73, in create_connection\n sock.connect(sa)\n ~~~~~~~~~~~~^^^^\nTimeoutError: timed out\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 488, in _make_request\n raise new_e\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 464, in _make_request\n self._validate_conn(conn)\n ~~~~~~~~~~~~~~~~~~~^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 1093, in _validate_conn\n conn.connect()\n ~~~~~~~~~~~~^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 759, in connect\n self.sock = sock = self._new_conn()\n ~~~~~~~~~~~~~~^^\nurllib3.exceptions.ConnectTimeoutError: (, 'Connection to feikuai.in timed out. (connect timeout=10)')\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 535, in increment\n raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nurllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='feikuai.in', port=443): Max retries exceeded with url: /voddetail/239943.html (Caused by ConnectTimeoutError(, 'Connection to feikuai.in timed out. (connect timeout=10)'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 428, in _validate_from_tid\n detail_result = _run_timed(result[\"timings_ms\"], \"detail\", spider.detailContent, clock, [vod_id])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/飞快TV.txt\", line 222, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/飞快TV.txt\", line 71, in _request_html\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='feikuai.in', port=443): Max retries exceeded with url: /voddetail/239943.html (Caused by ConnectTimeoutError(, 'Connection to feikuai.in timed out. (connect timeout=10)'))\n", "timings_ms": { "module_load": 4.011, "init": 0.001, "home": 0.001, "category": 1673.215, "detail": 10701.385, "player": 0.0, "url_check": 0.0, "total": 12380.2 }, "counts": { "classes": 4, "category_videos": 40, "detail_videos": 0, "episodes": 0 }, "samples": { "tid": "1", "vod_id": "239943", "flag": null, "play_id": null }, "player": { "parse": null, "url": "", "valid": false, "reachable": null, "status_code": null, "final_url": "", "reason": null } }, { "spider": "魔方APP", "file": "魔方APP.txt", "success": false, "failed_stage": "home", "error": "分类列表为空", "traceback": null, "timings_ms": { "module_load": 9.56, "init": 0.001, "home": 134.324, "category": 0.0, "detail": 0.0, "player": 0.0, "url_check": 0.0, "total": 144.146 }, "counts": { "classes": 0, "category_videos": 0, "detail_videos": 0, "episodes": 0 }, "samples": { "tid": null, "vod_id": null, "flag": null, "play_id": null }, "player": { "parse": null, "url": "", "valid": false, "reachable": null, "status_code": null, "final_url": "", "reason": null } }, { "spider": "麦田影院", "file": "麦田影院.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 11.27, "init": 0.002, "home": 0.001, "category": 436.829, "detail": 186.691, "player": 0.02, "url_check": 484.451, "total": 1120.444 }, "counts": { "classes": 6, "category_videos": 20, "detail_videos": 1, "episodes": 2 }, "samples": { "tid": "1", "vod_id": "171427", "flag": "LZ源", "play_id": "eyJ1cmwiOiJodHRwczovL3YubHpjZG4yNy5jb20vMjAyNTA3MzEvNjc5XzUwYTJiMDQ3L2luZGV4Lm0zdTgiLCJwYXJzZV9hcGkiOiJodHRwczovL2RlbC5tdDMyMC5jb20vbHpmZi5waHA_dXJsPSIsImhlYWRlcnMiOnt9LCJ1c2VyX2FnZW50IjoiIn0=" }, "player": { "parse": 0, "url": "https://v.lzcdn27.com/20250731/679_50a2b047/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://v.lzcdn27.com/20250731/679_50a2b047/index.m3u8", "reason": null } }, { "spider": "黑猫APP", "file": "黑猫APP.txt", "success": true, "failed_stage": null, "error": null, "traceback": null, "timings_ms": { "module_load": 6.294, "init": 0.001, "home": 2161.27, "category": 636.542, "detail": 1586.033, "player": 0.008, "url_check": 1097.639, "total": 5488.316 }, "counts": { "classes": 5, "category_videos": 30, "detail_videos": 1, "episodes": 1 }, "samples": { "tid": "1", "vod_id": "93764", "flag": "🐈‍⬛标清线路2", "play_id": "标清线路3@@direct@@,https://vip.ffzy-play9.com/20260517/41455_299d8968/index.m3u8,token+,1,0" }, "player": { "parse": 0, "url": "https://vip.ffzy-play9.com/20260517/41455_299d8968/index.m3u8", "valid": true, "reachable": true, "status_code": 200, "final_url": "https://vip.ffzy-play9.com/20260517/41455_299d8968/index.m3u8", "reason": null } } ] }