Files
tvboxzt/spider_validation.json
T
2026-05-17 07:22:37 +08:00

2870 lines
99 KiB
JSON

{
"generated_at": "2026-05-17T07:22:19+08:00",
"max_workers": 16,
"total_duration_ms": 18076.302,
"summary": {
"total": 73,
"success": 62,
"failed": 11,
"success_rate": 0.8493,
"stage_failures": {
"module_load": 0,
"init": 0,
"home": 1,
"category": 4,
"detail": 1,
"player": 0,
"url_check": 1,
"unexpected": 4
}
},
"results": [
{
"spider": "4K指南",
"file": "4K指南.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 383.139,
"init": 0.002,
"home": 0.003,
"category": 735.471,
"detail": 471.995,
"player": 0.008,
"url_check": 140.465,
"total": 1749.01
},
"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": 224.268,
"init": 0.019,
"home": 0.006,
"category": 684.147,
"detail": 694.9,
"player": 0.004,
"url_check": 0.096,
"total": 1605.643
},
"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": 267.427,
"init": 0.004,
"home": 178.609,
"category": 172.293,
"detail": 191.28,
"player": 160.207,
"url_check": 562.085,
"total": 1535.93
},
"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/d363566211764cbffbe6b1444d37890f/6a08fc2c/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": 430.819,
"init": 0.0,
"home": 0.0,
"category": 422.214,
"detail": 380.764,
"player": 0.009,
"url_check": 167.443,
"total": 1401.751
},
"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": 315.223,
"init": 0.007,
"home": 0.002,
"category": 487.376,
"detail": 587.449,
"player": 276.281,
"url_check": 168.9,
"total": 1837.728
},
"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=fa4306d355905a780252ae22592032f5&vkey=110E1CAA3CDE1F8C2934E8EEB0749D85C3EF248CD8AC5B4457C62659D716656D66A12E73D76ADDDEDD42F1B0CD8B5C95CA0B1C6411A46697__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=fa4306d355905a780252ae22592032f5&vkey=110E1CAA3CDE1F8C2934E8EEB0749D85C3EF248CD8AC5B4457C62659D716656D66A12E73D76ADDDEDD42F1B0CD8B5C95CA0B1C6411A46697__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": 329.243,
"init": 0.004,
"home": 0.059,
"category": 558.573,
"detail": 1043.028,
"player": 0.004,
"url_check": 703.179,
"total": 2636.084
},
"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": 391.228,
"init": 0.001,
"home": 0.001,
"category": 204.289,
"detail": 179.586,
"player": 0.004,
"url_check": 226.274,
"total": 1007.269
},
"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": 373.729,
"init": 0.002,
"home": 0.004,
"category": 1932.74,
"detail": 1459.923,
"player": 1006.398,
"url_check": 1145.369,
"total": 5930.857
},
"counts": {
"classes": 7,
"category_videos": 223,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "index",
"vod_id": "203600",
"flag": "YouKnowTV",
"play_id": "eyJ2b2RfaWQiOiIyMDM2MDAiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM2MDAtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM2MDAtMS0xLyJ9LHsic291cmNlIjoi57q_6LevNiIsInNvdXJjZV9pZCI6IjIiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM2MDAtMi0xLyJ9LHsic291cmNlIjoi57q_6LevNyIsInNvdXJjZV9pZCI6IjIiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM2MDAtMi0xLyJ9XX0"
},
"player": {
"parse": 0,
"url": "https://vip.dytt-tvs.com/20260501/18606_947d5859/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cnvod.jimxtc.com/20260501/18606_947d5859/index.m3u8",
"reason": null
}
},
{
"spider": "七味",
"file": "七味.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 355.939,
"init": 0.003,
"home": 0.001,
"category": 665.411,
"detail": 990.184,
"player": 0.004,
"url_check": 1169.922,
"total": 3182.938
},
"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": 393.907,
"init": 0.001,
"home": 409.102,
"category": 782.558,
"detail": 458.863,
"player": 0.01,
"url_check": 908.7,
"total": 2957.221
},
"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": false,
"failed_stage": "detail",
"error": "详情缺少播放源或播放列表",
"traceback": null,
"timings_ms": {
"module_load": 331.926,
"init": 0.002,
"home": 98.459,
"category": 0.01,
"detail": 101.768,
"player": 0.0,
"url_check": 0.0,
"total": 638.259
},
"counts": {
"classes": 5,
"category_videos": 3,
"detail_videos": 1,
"episodes": 0
},
"samples": {
"tid": "rank_list",
"vod_id": "rank:rise",
"flag": null,
"play_id": null
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
{
"spider": "两个BT",
"file": "两个BT.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 396.064,
"init": 0.001,
"home": 0.001,
"category": 343.66,
"detail": 334.386,
"player": 644.827,
"url_check": 443.194,
"total": 2163.053
},
"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": 319.443,
"init": 0.001,
"home": 255.598,
"category": 311.466,
"detail": 1041.358,
"player": 0.023,
"url_check": 2017.024,
"total": 3947.429
},
"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": 312.847,
"init": 0.0,
"home": 0.0,
"category": 214.996,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 757.059
},
"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": 251.04,
"init": 0.003,
"home": 0.003,
"category": 312.266,
"detail": 185.812,
"player": 0.003,
"url_check": 1014.936,
"total": 1764.985
},
"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": 340.9,
"init": 0.001,
"home": 0.001,
"category": 416.45,
"detail": 375.962,
"player": 0.041,
"url_check": 1293.543,
"total": 2428.992
},
"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": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 13.007,
"init": 0.001,
"home": 169.588,
"category": 228.434,
"detail": 216.704,
"player": 379.234,
"url_check": 383.088,
"total": 2382.085
},
"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://qn-302-m-play.bwcgee.cn/c074943c4e6d71f18ed75017f0e90402/df3c0578d329457b9265317e359bce4a-0839441ca402de22c840b03b4e64e0d2-ld.mp4?sign=a3ac8b93377cad15b1054530946afccf&t=6a09346e&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=6572fe0d3bce4f4b820300f716e45823&hevc=false&seasonId=57046",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://2027855653.ahdohpiechei.com:22443/OzwfcER4VzlnIl4iDWQYIyk1VyZaKRQLOz9bOw/c074943c4e6d71f18ed75017f0e90402/df3c0578d329457b9265317e359bce4a-0839441ca402de22c840b03b4e64e0d2-ld.mp4?sign=a3ac8b93377cad15b1054530946afccf&t=6a09346e&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=6572fe0d3bce4f4b820300f716e45823&hevc=false&seasonId=57046&x-sid=0X11A2GqGBIp7U&x-redirect=0X11AOzwfcER4VzlnIl4iDWcYIyk1VyZZKRR5IzZEMxI-FnolJ1AiASQfMTg3WydaKRU5&x-lid=0X11Ac409f842b4f7&x-st=0X11Ahash",
"reason": null
}
},
{
"spider": "优酷",
"file": "优酷.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 9.171,
"init": 0.001,
"home": 0.001,
"category": 260.65,
"detail": 566.057,
"player": 0.003,
"url_check": 229.107,
"total": 1066.434
},
"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": 4.412,
"init": 0.001,
"home": 0.0,
"category": 1018.042,
"detail": 1298.128,
"player": 0.008,
"url_check": 883.385,
"total": 3204.599
},
"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": 9.018,
"init": 0.001,
"home": 0.001,
"category": 1132.402,
"detail": 189.072,
"player": 1957.826,
"url_check": 1059.031,
"total": 4348.7
},
"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/B64CCA6B980D101660C4A5E7FAA06EC73619350ABBEDC7E3E556325ECB62FA7A",
"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": 7.079,
"init": 0.001,
"home": 0.0,
"category": 1068.259,
"detail": 1275.338,
"player": 1901.517,
"url_check": 2610.662,
"total": 6863.739
},
"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": 9.537,
"init": 0.001,
"home": 0.001,
"category": 723.867,
"detail": 633.931,
"player": 1916.903,
"url_check": 623.295,
"total": 3908.898
},
"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": 20.064,
"init": 0.001,
"home": 0.001,
"category": 252.069,
"detail": 437.921,
"player": 393.491,
"url_check": 1144.318,
"total": 2248.9
},
"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": 7.884,
"init": 0.001,
"home": 2796.918,
"category": 243.152,
"detail": 719.482,
"player": 0.002,
"url_check": 39.594,
"total": 3807.594
},
"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": 24.692,
"init": 319.314,
"home": 0.015,
"category": 172.606,
"detail": 167.579,
"player": 0.009,
"url_check": 150.331,
"total": 835.823
},
"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": 18.37,
"init": 75.565,
"home": 0.001,
"category": 156.475,
"detail": 2484.129,
"player": 306.439,
"url_check": 155.913,
"total": 3199.043
},
"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=7927c77db3ef011377c2ce5623db2408&buy_key=FM&token=1590&timestamp=1778973744&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=7927c77db3ef011377c2ce5623db2408&buy_key=FM&token=1590&timestamp=1778973744&duration=453",
"reason": null
}
},
{
"spider": "听友FM",
"file": "听友FM.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 30.065,
"init": 0.001,
"home": 361.132,
"category": 267.203,
"detail": 1039.676,
"player": 961.902,
"url_check": 129.732,
"total": 2791.686
},
"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": 21.102,
"init": 0.005,
"home": 701.873,
"category": 368.696,
"detail": 363.652,
"player": 1648.888,
"url_check": 259.347,
"total": 3364.608
},
"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://p3-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/cce3008768e54b0ab7d8413653c95ba1~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1810077744&x-signature=Fm2MZTras5N%2B%2BOWp7ep8d7%2BZLFI%3D",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://p3-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/cce3008768e54b0ab7d8413653c95ba1~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1810077744&x-signature=Fm2MZTras5N%2B%2BOWp7ep8d7%2BZLFI%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": 19.697,
"init": 0.001,
"home": 0.001,
"category": 116.677,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 146.633
},
"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": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='www.zxzjhd.com', port=443): Max retries exceeded with url: /vodshow/1--------1---.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='www.zxzjhd.com', port=443) at 0x71259b2fbd90>, 'Connection to www.zxzjhd.com 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: (<HTTPSConnection(host='www.zxzjhd.com', port=443) at 0x71259b2fbd90>, 'Connection to www.zxzjhd.com 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='www.zxzjhd.com', port=443): Max retries exceeded with url: /vodshow/1--------1---.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='www.zxzjhd.com', port=443) at 0x71259b2fbd90>, 'Connection to www.zxzjhd.com 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 301, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/在线之家.txt\", line 245, in _request_html\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='www.zxzjhd.com', port=443): Max retries exceeded with url: /vodshow/1--------1---.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='www.zxzjhd.com', port=443) at 0x71259b2fbd90>, 'Connection to www.zxzjhd.com timed out. (connect timeout=10)'))\n",
"timings_ms": {
"module_load": 8.517,
"init": 0.001,
"home": 0.001,
"category": 10014.471,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 10031.572
},
"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": 28.507,
"init": 0.002,
"home": 0.002,
"category": 506.033,
"detail": 403.132,
"player": 0.006,
"url_check": 925.537,
"total": 1865.002
},
"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": 21.925,
"init": 0.002,
"home": 0.019,
"category": 708.3,
"detail": 327.265,
"player": 0.006,
"url_check": 1789.152,
"total": 2848.117
},
"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": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='bbys.app', port=443): Max retries exceeded with url: /api.php/web/filter/vod?type_name=%E7%94%B5%E5%BD%B1&page=1&sort=hits&class=&area=&year= (Caused by ConnectTimeoutError(<HTTPSConnection(host='bbys.app', port=443) at 0x71259b6f0cd0>, 'Connection to bbys.app timed out. (connect timeout=15)'))",
"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: (<HTTPSConnection(host='bbys.app', port=443) at 0x71259b6f0cd0>, 'Connection to bbys.app timed out. (connect timeout=15)')\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='bbys.app', port=443): Max retries exceeded with url: /api.php/web/filter/vod?type_name=%E7%94%B5%E5%BD%B1&page=1&sort=hits&class=&area=&year= (Caused by ConnectTimeoutError(<HTTPSConnection(host='bbys.app', port=443) at 0x71259b6f0cd0>, 'Connection to bbys.app timed out. (connect timeout=15)'))\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 239, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/布布影视.txt\", line 509, in _get_class_list\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='bbys.app', port=443): Max retries exceeded with url: /api.php/web/filter/vod?type_name=%E7%94%B5%E5%BD%B1&page=1&sort=hits&class=&area=&year= (Caused by ConnectTimeoutError(<HTTPSConnection(host='bbys.app', port=443) at 0x71259b6f0cd0>, 'Connection to bbys.app timed out. (connect timeout=15)'))\n",
"timings_ms": {
"module_load": 22.503,
"init": 0.001,
"home": 0.001,
"category": 15017.472,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 15047.277
},
"counts": {
"classes": 4,
"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": 15.372,
"init": 0.027,
"home": 177.752,
"category": 579.784,
"detail": 323.921,
"player": 0.003,
"url_check": 109.461,
"total": 1207.669
},
"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=1778973743&sign=36354c291b6ae9bb89311996a7c17746"
},
"player": {
"parse": 0,
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778973743&sign=36354c291b6ae9bb89311996a7c17746",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778973743&sign=36354c291b6ae9bb89311996a7c17746",
"reason": null
}
},
{
"spider": "新韩剧网",
"file": "新韩剧网.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 17.138,
"init": 0.001,
"home": 0.001,
"category": 448.748,
"detail": 422.03,
"player": 398.246,
"url_check": 1072.728,
"total": 2359.59
},
"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": 6.943,
"init": 0.001,
"home": 0.001,
"category": 410.054,
"detail": 610.928,
"player": 0.01,
"url_check": 48.967,
"total": 1078.052
},
"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": 15.699,
"init": 0.001,
"home": 0.001,
"category": 259.22,
"detail": 189.861,
"player": 0.013,
"url_check": 227.544,
"total": 693.246
},
"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": 11.21,
"init": 0.002,
"home": 0.001,
"category": 1726.784,
"detail": 1335.82,
"player": 1299.178,
"url_check": 1785.141,
"total": 6158.972
},
"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": 10.376,
"init": 280.124,
"home": 330.843,
"category": 360.909,
"detail": 350.178,
"player": 705.775,
"url_check": 991.978,
"total": 3031.261
},
"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.zvoz3tsd.com/m3u87/share/7404387/7599927/20260511/161239/720/index.m3u8?sign=79e170fc190a62b93c3e61126b4a34b7&t=1778973746",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://usaydd.zvoz3tsd.com/m3u87/share/7404387/7599927/20260511/161239/720/index.m3u8?sign=79e170fc190a62b93c3e61126b4a34b7&t=1778973746",
"reason": null
}
},
{
"spider": "欧歌",
"file": "欧歌.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 11.504,
"init": 0.001,
"home": 0.001,
"category": 221.635,
"detail": 194.34,
"player": 0.017,
"url_check": 923.01,
"total": 1351.218
},
"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.742,
"init": 0.001,
"home": 299.53,
"category": 385.15,
"detail": 1000.1,
"player": 0.025,
"url_check": 46.115,
"total": 1739.927
},
"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/406c33a530c9abd114c395a034cf768f/6a0a3a60/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4"
},
"player": {
"parse": 0,
"url": "https://dzzt-video.cbread.cn/406c33a530c9abd114c395a034cf768f/6a0a3a60/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/406c33a530c9abd114c395a034cf768f/6a0a3a60/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": 6.242,
"init": 0.001,
"home": 0.001,
"category": 201.185,
"detail": 211.372,
"player": 0.015,
"url_check": 922.046,
"total": 1341.64
},
"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": 14.245,
"init": 0.006,
"home": 85.858,
"category": 107.362,
"detail": 140.714,
"player": 264.935,
"url_check": 85.458,
"total": 699.431
},
"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://210.16.164.53:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778973745296&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "http://210.16.164.53:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778973745296&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"reason": null
}
},
{
"spider": "爱奇艺",
"file": "爱奇艺.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 22.212,
"init": 0.018,
"home": 2900.804,
"category": 1037.566,
"detail": 103.788,
"player": 0.001,
"url_check": 122.78,
"total": 4188.257
},
"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": 4.715,
"init": 0.001,
"home": 0.0,
"category": 629.812,
"detail": 322.835,
"player": 317.912,
"url_check": 190.832,
"total": 1466.633
},
"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": 8.186,
"init": 0.001,
"home": 0.001,
"category": 134.251,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 291.347
},
"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": 11.511,
"init": 0.001,
"home": 0.121,
"category": 266.715,
"detail": 200.977,
"player": 0.006,
"url_check": 233.751,
"total": 714.289
},
"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": 6.036,
"init": 0.001,
"home": 0.012,
"category": 541.497,
"detail": 776.74,
"player": 345.026,
"url_check": 71.321,
"total": 1741.774
},
"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/6078a2cd8b8fc2e314d7c10c5e393400/20260517072227/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/6078a2cd8b8fc2e314d7c10c5e393400/20260517072227/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.24,
"init": 0.001,
"home": 412.752,
"category": 265.889,
"detail": 609.532,
"player": 655.283,
"url_check": 55.614,
"total": 2002.689
},
"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.297,
"init": 0.001,
"home": 312.351,
"category": 281.455,
"detail": 301.112,
"player": 0.017,
"url_check": 139.599,
"total": 1048.454
},
"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": 9.15,
"init": 0.001,
"home": 0.0,
"category": 187.969,
"detail": 189.478,
"player": 170.984,
"url_check": 1064.75,
"total": 1622.913
},
"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": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='pinglian.lol', port=443): Max retries exceeded with url: /api/search_pan_links.php?vod_id=75716&_t=1778973746811&keyword=%E5%9C%A3%E5%A5%B3%E4%B9%9F%E7%96%AF%E7%8B%82 (Caused by ConnectTimeoutError(<HTTPSConnection(host='pinglian.lol', port=443) at 0x712598531a90>, 'Connection to pinglian.lol 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: (<HTTPSConnection(host='pinglian.lol', port=443) at 0x712598531a90>, 'Connection to pinglian.lol 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='pinglian.lol', port=443): Max retries exceeded with url: /api/search_pan_links.php?vod_id=75716&_t=1778973746811&keyword=%E5%9C%A3%E5%A5%B3%E4%B9%9F%E7%96%AF%E7%8B%82 (Caused by ConnectTimeoutError(<HTTPSConnection(host='pinglian.lol', port=443) at 0x712598531a90>, 'Connection to pinglian.lol 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/盘链.txt\", line 306, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/盘链.txt\", line 361, in _get_json\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='pinglian.lol', port=443): Max retries exceeded with url: /api/search_pan_links.php?vod_id=75716&_t=1778973746811&keyword=%E5%9C%A3%E5%A5%B3%E4%B9%9F%E7%96%AF%E7%8B%82 (Caused by ConnectTimeoutError(<HTTPSConnection(host='pinglian.lol', port=443) at 0x712598531a90>, 'Connection to pinglian.lol timed out. (connect timeout=10)'))\n",
"timings_ms": {
"module_load": 8.236,
"init": 0.018,
"home": 0.0,
"category": 883.346,
"detail": 10014.049,
"player": 0.0,
"url_check": 0.0,
"total": 10913.084
},
"counts": {
"classes": 5,
"category_videos": 30,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "0",
"vod_id": "75716",
"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": 21.269,
"init": 643.049,
"home": 0.171,
"category": 453.215,
"detail": 296.581,
"player": 0.002,
"url_check": 36.853,
"total": 1451.764
},
"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.577,
"init": 0.0,
"home": 0.001,
"category": 241.964,
"detail": 230.366,
"player": 0.005,
"url_check": 1020.359,
"total": 1496.704
},
"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": 7.189,
"init": 0.001,
"home": 394.919,
"category": 665.376,
"detail": 140.465,
"player": 257.068,
"url_check": 266.004,
"total": 1731.948
},
"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": 2.854,
"init": 0.001,
"home": 499.213,
"category": 431.512,
"detail": 0.006,
"player": 4673.505,
"url_check": 51.86,
"total": 5660.819
},
"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=b21881d9e4597c7f8f9859107a9d6f1f&wsTime=1778973751",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vodkgeyttp8.vod.126.net/cloudmusic/b028/core/d385/7949c1ba77cdfe6a51daf59fceb136cf.mp4?wsSecret=b21881d9e4597c7f8f9859107a9d6f1f&wsTime=1778973751",
"reason": null
}
},
{
"spider": "耐视点播",
"file": "耐视点播.txt",
"success": false,
"failed_stage": "category",
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 5.598,
"init": 0.001,
"home": 0.001,
"category": 5195.965,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 6752.95
},
"counts": {
"classes": 6,
"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": 5.692,
"init": 0.001,
"home": 63.108,
"category": 253.536,
"detail": 958.865,
"player": 0.002,
"url_check": 289.322,
"total": 1571.655
},
"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.701,
"init": 0.001,
"home": 0.0,
"category": 283.423,
"detail": 224.454,
"player": 0.014,
"url_check": 143.104,
"total": 656.309
},
"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": 5.189,
"init": 0.0,
"home": 853.084,
"category": 663.846,
"detail": 704.826,
"player": 1388.813,
"url_check": 1135.68,
"total": 4752.983
},
"counts": {
"classes": 4,
"category_videos": 35,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "detail/video/113726",
"flag": "FF有广",
"play_id": "play/113726-1-1"
},
"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
}
},
{
"spider": "虎斑",
"file": "虎斑.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.617,
"init": 0.001,
"home": 0.001,
"category": 1292.712,
"detail": 5361.979,
"player": 0.007,
"url_check": 1167.668,
"total": 7828.912
},
"counts": {
"classes": 6,
"category_videos": 72,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/462390.html",
"flag": "百度#虎斑",
"play_id": "https://pan.baidu.com/s/1mmLzRjJhp7qoRPGlNChOvg?pwd=ucps"
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1mmLzRjJhp7qoRPGlNChOvg?pwd=ucps",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=mmLzRjJhp7qoRPGlNChOvg&pwd=ucps",
"reason": null
}
},
{
"spider": "蜡笔",
"file": "蜡笔.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.738,
"init": 0.001,
"home": 0.001,
"category": 491.012,
"detail": 646.082,
"player": 0.006,
"url_check": 1002.577,
"total": 2143.885
},
"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": 6.212,
"init": 0.001,
"home": 0.001,
"category": 769.028,
"detail": 178.734,
"player": 179.467,
"url_check": 939.193,
"total": 2074.171
},
"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.582,
"init": 0.001,
"home": 303.926,
"category": 206.887,
"detail": 210.958,
"player": 1084.298,
"url_check": 268.438,
"total": 2082.057
},
"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": 6.005,
"init": 0.001,
"home": 0.001,
"category": 868.409,
"detail": 656.321,
"player": 1615.536,
"url_check": 113.895,
"total": 3260.995
},
"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": 15.552,
"init": 0.002,
"home": 382.904,
"category": 90.738,
"detail": 3208.245,
"player": 157.507,
"url_check": 44.937,
"total": 3901.358
},
"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/795da232893484c2f292a5846abdb8b7/6a08fc37/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/795da232893484c2f292a5846abdb8b7/6a08fc37/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": 12.072,
"init": 428.389,
"home": 241.622,
"category": 213.721,
"detail": 269.899,
"player": 328.612,
"url_check": 313.331,
"total": 1811.304
},
"counts": {
"classes": 12,
"category_videos": 15,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "recommend",
"vod_id": "329672695",
"flag": "酷狗音乐",
"play_id": "329672695"
},
"player": {
"parse": 0,
"url": "http://fsdg360.tx.kugou.com/202605170722/54ded793d6174aea5c9c71804f549c6e/v3/3cce3ae09c60dc1a06f61f26e0a392a5/yp/p_0_960139/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx329672695_qu128_s2818810497.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "http://fsdg360.tx.kugou.com/202605170722/54ded793d6174aea5c9c71804f549c6e/v3/3cce3ae09c60dc1a06f61f26e0a392a5/yp/p_0_960139/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx329672695_qu128_s2818810497.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": 18.256,
"init": 0.001,
"home": 1585.497,
"category": 192.434,
"detail": 214.442,
"player": 189.909,
"url_check": 85.813,
"total": 2990.602
},
"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=6a092667&whip=212.107.29.200&sign=f4d85b6bb6c7fbd92238dc4a58b24ff10e8c6373",
"valid": false,
"reachable": false,
"status_code": 403,
"final_url": "https://ppvod01.kqgfbs.com/splitOut/20260103/1226906/V20260103184854978121226906/index.m3u8?t=6a092667&whip=212.107.29.200&sign=f4d85b6bb6c7fbd92238dc4a58b24ff10e8c6373",
"reason": "HTTP 403"
}
},
{
"spider": "闪电",
"file": "闪电.txt",
"success": false,
"failed_stage": "category",
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 9.143,
"init": 0.001,
"home": 0.001,
"category": 1514.443,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 2613.511
},
"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": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 29.036,
"init": 0.001,
"home": 0.001,
"category": 1621.552,
"detail": 1641.969,
"player": 1636.091,
"url_check": 821.634,
"total": 5751.493
},
"counts": {
"classes": 4,
"category_videos": 40,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "19623",
"flag": "高清316",
"play_id": "/vodplay/19623-2-1.html"
},
"player": {
"parse": 0,
"url": "https://cdn.yzzy31-play.com/20260410/18169_b0cf1ee8/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cdn.yzzy31-play.com/20260410/18169_b0cf1ee8/index.m3u8",
"reason": null
}
},
{
"spider": "魔方APP",
"file": "魔方APP.txt",
"success": false,
"failed_stage": "home",
"error": "分类列表为空",
"traceback": null,
"timings_ms": {
"module_load": 13.193,
"init": 0.001,
"home": 150.591,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 170.769
},
"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": 4.986,
"init": 0.001,
"home": 0.001,
"category": 150.045,
"detail": 187.294,
"player": 0.015,
"url_check": 471.32,
"total": 815.162
},
"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": 4.529,
"init": 0.001,
"home": 1086.485,
"category": 1613.672,
"detail": 1625.344,
"player": 0.033,
"url_check": 948.757,
"total": 5279.851
},
"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
}
}
]
}