This commit is contained in:
Harold
2026-05-13 16:44:48 +08:00
parent 41cfb24abd
commit 65ee0cc83c
7 changed files with 942 additions and 940 deletions
+695 -695
View File
@@ -1,20 +1,20 @@
{
"generated_at": "2026-05-13T15:55:59+08:00",
"generated_at": "2026-05-13T16:43:40+08:00",
"max_workers": 16,
"total_duration_ms": 50089.319,
"total_duration_ms": 67938.288,
"summary": {
"total": 71,
"success": 59,
"failed": 12,
"success_rate": 0.831,
"success": 61,
"failed": 10,
"success_rate": 0.8592,
"stage_failures": {
"module_load": 0,
"init": 0,
"home": 1,
"category": 1,
"detail": 1,
"detail": 0,
"player": 1,
"url_check": 3,
"url_check": 2,
"unexpected": 5
}
},
@@ -27,14 +27,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 195.3,
"module_load": 150.434,
"init": 0.001,
"home": 0.003,
"category": 1962.854,
"detail": 1227.704,
"player": 0.005,
"url_check": 252.821,
"total": 3655.52
"home": 0.002,
"category": 2909.135,
"detail": 2257.362,
"player": 0.003,
"url_check": 244.495,
"total": 5562.145
},
"counts": {
"classes": 5,
@@ -66,14 +66,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 195.397,
"init": 0.002,
"module_load": 204.495,
"init": 0.004,
"home": 0.001,
"category": 2432.458,
"detail": 1429.613,
"player": 0.003,
"url_check": 0.076,
"total": 4101.285
"category": 2271.474,
"detail": 2792.686,
"player": 0.004,
"url_check": 0.094,
"total": 5306.802
},
"counts": {
"classes": 12,
@@ -105,14 +105,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 196.054,
"module_load": 150.348,
"init": 0.001,
"home": 1618.17,
"category": 1287.402,
"detail": 1256.22,
"player": 1699.478,
"url_check": 313.608,
"total": 6412.791
"home": 2544.77,
"category": 2239.36,
"detail": 2457.843,
"player": 2223.16,
"url_check": 335.229,
"total": 9955.703
},
"counts": {
"classes": 6,
@@ -132,7 +132,7 @@
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://lv-sycdn.kuwo.cn/ee48ed0b47468ed12fd2c8319b6e59c2/6a042e95/resource/1307392909/trackmedia/C200000W91kQ0efKLA.m4a?from=vip",
"final_url": "https://lv-sycdn.kuwo.cn/8e8ecea70f99bd62b395df21fc6ddfdc/6a0439c6/resource/1307392909/trackmedia/C200000W91kQ0efKLA.m4a?from=vip",
"reason": null
}
},
@@ -144,14 +144,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 238.197,
"init": 0.001,
"module_load": 276.54,
"init": 0.0,
"home": 0.001,
"category": 2349.816,
"detail": 1212.539,
"player": 0.009,
"url_check": 697.388,
"total": 4499.387
"category": 2292.488,
"detail": 3340.5,
"player": 0.012,
"url_check": 1724.592,
"total": 7636.222
},
"counts": {
"classes": 2,
@@ -183,14 +183,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 197.311,
"init": 0.015,
"home": 0.007,
"category": 601.143,
"detail": 508.409,
"player": 367.061,
"url_check": 67.102,
"total": 1784.237
"module_load": 231.309,
"init": 0.01,
"home": 0.003,
"category": 505.272,
"detail": 387.249,
"player": 391.631,
"url_check": 121.699,
"total": 1647.585
},
"counts": {
"classes": 6,
@@ -206,50 +206,50 @@
},
"player": {
"parse": 0,
"url": "https://isure.stream.qqmusic.qq.com/F000003Iu5fo0mXVj2.flac?guid=07a6ed25231dbd6eae583d9f30bf2c9b&vkey=2E911C2A201A724AB1A1BD54F1A6F04A33502486729C22216F859BB158CF01224F25BE46CBD567BA23EF329BE2FDF547ABB6A76F5013E35C__v2b94c723&uin=1152921504846230218&fromtag=119114&redirect=1",
"url": "https://isure.stream.qqmusic.qq.com/F000003Iu5fo0mXVj2.flac?guid=2a17446411f9128494f6096cef840212&vkey=5F8FEE60C6262A5E97F7D7658965D097B2B14CFCE07EC43B6376BD278EC374EE3A4AB26362A58BD89D78AF307B1D5AC99F2ACC8143D742D3__v2b9ab97b&uin=1152921504846230218&fromtag=119114&redirect=1",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://isure.stream.qqmusic.qq.com/F000003Iu5fo0mXVj2.flac?guid=07a6ed25231dbd6eae583d9f30bf2c9b&vkey=2E911C2A201A724AB1A1BD54F1A6F04A33502486729C22216F859BB158CF01224F25BE46CBD567BA23EF329BE2FDF547ABB6A76F5013E35C__v2b94c723&uin=1152921504846230218&fromtag=119114&redirect=1",
"final_url": "https://isure.stream.qqmusic.qq.com/F000003Iu5fo0mXVj2.flac?guid=2a17446411f9128494f6096cef840212&vkey=5F8FEE60C6262A5E97F7D7658965D097B2B14CFCE07EC43B6376BD278EC374EE3A4AB26362A58BD89D78AF307B1D5AC99F2ACC8143D742D3__v2b9ab97b&uin=1152921504846230218&fromtag=119114&redirect=1",
"reason": null
}
},
{
"spider": "libvio",
"file": "libvio.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='www.libvio.run', port=443): Max retries exceeded with url: /detail/714893349.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='www.libvio.run', port=443) at 0x77ebb3fe7110>, 'Connection to www.libvio.run 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.libvio.run', port=443) at 0x77ebb3fe7110>, 'Connection to www.libvio.run 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.libvio.run', port=443): Max retries exceeded with url: /detail/714893349.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='www.libvio.run', port=443) at 0x77ebb3fe7110>, 'Connection to www.libvio.run 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/libvio.txt\", line 256, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/libvio.txt\", line 121, in _request_html\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='www.libvio.run', port=443): Max retries exceeded with url: /detail/714893349.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='www.libvio.run', port=443) at 0x77ebb3fe7110>, 'Connection to www.libvio.run timed out. (connect timeout=10)'))\n",
"timings_ms": {
"module_load": 197.798,
"module_load": 190.787,
"init": 0.001,
"home": 0.002,
"category": 1486.709,
"detail": 767.914,
"player": 0.005,
"url_check": 241.177,
"total": 2737.691
"home": 0.001,
"category": 2088.827,
"detail": 10011.918,
"player": 0.0,
"url_check": 0.0,
"total": 12297.358
},
"counts": {
"classes": 6,
"category_videos": 48,
"detail_videos": 1,
"episodes": 2
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "index",
"vod_id": "714893349",
"flag": "夸克",
"play_id": "https://pan.quark.cn/s/ef57107cd16e||7"
"flag": null,
"play_id": null
},
"player": {
"parse": 0,
"url": "https://pan.quark.cn/s/ef57107cd16e||7",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.quark.cn/s/ef57107cd16e%7C%7C7",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
@@ -261,34 +261,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 196.777,
"module_load": 149.131,
"init": 0.001,
"home": 0.001,
"category": 2375.646,
"detail": 1704.09,
"player": 1922.4,
"url_check": 1857.686,
"total": 8101.199
"category": 3381.81,
"detail": 3374.571,
"player": 5934.015,
"url_check": 4466.704,
"total": 17308.417
},
"counts": {
"classes": 7,
"category_videos": 219,
"category_videos": 221,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "index",
"vod_id": "203471",
"vod_id": "203862",
"flag": "YouKnowTV",
"play_id": "eyJ2b2RfaWQiOiIyMDM0NzEiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM0NzEtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM0NzEtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMzEiLCJzb3VyY2VfaWQiOiIyIiwiZXBpc29kZV91cmwiOiJodHRwczovL3d3dy55b3Vrbm93LnR2L3AvMjAzNDcxLTItMS8ifSx7InNvdXJjZSI6Iue6v-i3rzMyIiwic291cmNlX2lkIjoiMiIsImVwaXNvZGVfdXJsIjoiaHR0cHM6Ly93d3cueW91a25vdy50di9wLzIwMzQ3MS0yLTEvIn1dfQ"
"play_id": "eyJ2b2RfaWQiOiIyMDM4NjIiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM4NjItMS0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM4NjItMS0xLyJ9LHsic291cmNlIjoi57q_6LevMTEiLCJzb3VyY2VfaWQiOiIyIiwiZXBpc29kZV91cmwiOiJodHRwczovL3d3dy55b3Vrbm93LnR2L3AvMjAzODYyLTItMS8ifSx7InNvdXJjZSI6Iue6v-i3rzEyIiwic291cmNlX2lkIjoiMiIsImVwaXNvZGVfdXJsIjoiaHR0cHM6Ly93d3cueW91a25vdy50di9wLzIwMzg2Mi0yLTEvIn1dfQ"
},
"player": {
"parse": 0,
"url": "https://vip.dytt-tvs.com/20260426/17963_4a90df08/index.m3u8",
"url": "https://vip.dytt-tvs.com/20260510/19606_6ddeeff7/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cnvod.jimxtc.com/20260426/17963_4a90df08/index.m3u8",
"final_url": "https://cnvod.jimxtc.com/20260510/19606_6ddeeff7/index.m3u8",
"reason": null
}
},
@@ -300,14 +300,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 193.764,
"init": 0.01,
"home": 0.001,
"category": 1486.463,
"detail": 1498.036,
"player": 0.003,
"url_check": 230.004,
"total": 3454.108
"module_load": 200.501,
"init": 0.009,
"home": 0.002,
"category": 5480.774,
"detail": 2326.399,
"player": 0.004,
"url_check": 244.507,
"total": 8282.909
},
"counts": {
"classes": 5,
@@ -339,14 +339,14 @@
"error": "playerContent 未返回播放地址",
"traceback": null,
"timings_ms": {
"module_load": 193.134,
"init": 0.001,
"home": 2495.234,
"category": 1889.216,
"detail": 2753.514,
"player": 0.003,
"module_load": 176.322,
"init": 0.0,
"home": 2203.227,
"category": 3389.568,
"detail": 3025.429,
"player": 0.005,
"url_check": 0.0,
"total": 11618.472
"total": 14176.925
},
"counts": {
"classes": 5,
@@ -373,39 +373,39 @@
{
"spider": "世纪音乐",
"file": "世纪音乐.txt",
"success": false,
"failed_stage": "detail",
"error": "详情缺少播放源或播放列表",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 190.978,
"module_load": 149.38,
"init": 0.001,
"home": 233.706,
"category": 0.008,
"detail": 135.915,
"player": 0.0,
"url_check": 0.0,
"total": 700.275
"home": 245.176,
"category": 162.659,
"detail": 162.963,
"player": 0.01,
"url_check": 353.01,
"total": 1074.238
},
"counts": {
"classes": 5,
"category_videos": 3,
"category_videos": 28,
"detail_videos": 1,
"episodes": 0
"episodes": 1
},
"samples": {
"tid": "rank_list",
"vod_id": "rank:rise",
"flag": null,
"play_id": null
"tid": "home",
"vod_id": "song:hwehcmyhwn",
"flag": "世纪音乐",
"play_id": "music:hwehcmyhwn"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://www.4c44.com/data/down.php?ac=music&id=hwehcmyhwn",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://www.4c44.com/data/down.php?ac=music&id=hwehcmyhwn",
"reason": null
}
},
@@ -417,14 +417,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 208.709,
"init": 0.003,
"module_load": 176.363,
"init": 0.001,
"home": 0.001,
"category": 1123.47,
"detail": 1031.365,
"player": 2019.249,
"url_check": 1393.969,
"total": 5806.232
"category": 2317.982,
"detail": 2023.716,
"player": 17160.733,
"url_check": 2975.882,
"total": 24656.088
},
"counts": {
"classes": 14,
@@ -439,12 +439,12 @@
"play_id": "eyJwaWQiOiIvcGxheS9jaDQ0cXEzdmMiLCJzaWQiOiIvcGxheS9jaDQ0cXEzdmMiLCJuYW1lIjoiMSJ9"
},
"player": {
"parse": 0,
"url": "https://zijieapi.douyinbyte.com/m3u8/b491fa92beb5e4cd411c42fcd6605e93.m3u8",
"parse": 1,
"url": "https://www.bttwoo.com/play/ch44qq3vc",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://zijieapi.douyinbyte.com/m3u8/b491fa92beb5e4cd411c42fcd6605e93.m3u8",
"final_url": "https://www.bttwoo.com/play/ch44qq3vc",
"reason": null
}
},
@@ -456,14 +456,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 191.491,
"init": 0.001,
"home": 1020.347,
"category": 1335.235,
"detail": 3743.724,
"player": 0.031,
"url_check": 4656.085,
"total": 23906.756
"module_load": 233.043,
"init": 0.0,
"home": 1903.225,
"category": 2017.631,
"detail": 6933.755,
"player": 0.034,
"url_check": 3380.253,
"total": 14470.79
},
"counts": {
"classes": 7,
@@ -472,18 +472,18 @@
"episodes": 1
},
"samples": {
"tid": "tv_series",
"vod_id": "41042",
"tid": "movie",
"vod_id": "483203",
"flag": "乌云影视",
"play_id": "eyJtZWRpYUlkIjogIjQxMDQyIiwgInNlYXNvbk5vIjogMSwgImVwTm8iOiAxLCAidmlkZW9JZCI6IDc2MjEyLCAicGxheVVybCI6ICJodHRwczovL2QxamRubWtjMW41Y240LmNsb3VkZnJvbnQubmV0L2dlbl9vdmVyc2Vhcy9odHRwczovL2MxLnJyY2RuYmYyLmNvbS92aWRlby9zaG91d2FuZy_nrKwwMembhi9pbmRleC5tM3U4IiwgIm5hbWUiOiAi56ysMembhiDnrKwwMembhiJ9"
"play_id": "eyJtZWRpYUlkIjogIjQ4MzIwMyIsICJzZWFzb25ObyI6IDEsICJlcE5vIjogMSwgInZpZGVvSWQiOiAxNTc2MjgzMiwgInBsYXlVcmwiOiAiaHR0cHM6Ly9kMWpkbm1rYzFuNWNuNC5jbG91ZGZyb250Lm5ldC9nZW5fb3ZlcnNlYXMvaHR0cHM6Ly9zMi5iZmxsdmlwLmNvbS92aWRlby95YW54aWF4aW5nL2E2ZWY4NTRjMGMxZi9pbmRleC5tM3U4IiwgIm5hbWUiOiAi56ysMembhiDpq5jmuIUifQ"
},
"player": {
"parse": 0,
"url": "https://d1jdnmkc1n5cn4.cloudfront.net/gen_overseas/https://c1.rrcdnbf2.com/video/shouwang/第01集/index.m3u8",
"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/39c1b9cbbb66c060fb43edf1c63293dae63c23af.m3u8",
"final_url": "https://d1jdnmkc1n5cn4.cloudfront.net/hls_overseas/574a2911178825fa774eb81a00490518a1e7fbae.m3u8",
"reason": null
}
},
@@ -495,14 +495,14 @@
"error": "HTTPSConnectionPool(host='www.letu.me', port=443): Read timed out. (read timeout=10)",
"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)\nTimeoutError: _ssl.c:1063: The handshake operation 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/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 490, in increment\n raise reraise(type(error), error, _stacktrace)\n ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/util.py\", line 39, in reraise\n raise value\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 )\nurllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www.letu.me', port=443): Read timed out. (read 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 117, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/乐兔.txt\", line 72, in _request_html\nrequests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.letu.me', port=443): Read timed out. (read timeout=10)\n",
"timings_ms": {
"module_load": 193.153,
"module_load": 168.066,
"init": 0.001,
"home": 0.001,
"category": 10031.26,
"category": 10077.72,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 10268.376
"total": 10250.434
},
"counts": {
"classes": 5,
@@ -534,14 +534,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 192.785,
"module_load": 162.398,
"init": 0.001,
"home": 0.001,
"category": 3936.107,
"detail": 1062.977,
"player": 0.008,
"url_check": 1427.847,
"total": 6661.737
"category": 6034.328,
"detail": 2325.717,
"player": 0.013,
"url_check": 1053.454,
"total": 9576.964
},
"counts": {
"classes": 4,
@@ -551,17 +551,17 @@
},
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/12377.html",
"vod_id": "/index.php/vod/detail/id/12381.html",
"flag": "百度#二小",
"play_id": "https://pan.baidu.com/s/1689HdL9zr7VcSmUwONIWCQ?pwd=d48g"
"play_id": "https://pan.baidu.com/s/1DzV_kWGZPB0aQr6g9ShjfA?pwd=2rqf"
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1689HdL9zr7VcSmUwONIWCQ?pwd=d48g",
"url": "https://pan.baidu.com/s/1DzV_kWGZPB0aQr6g9ShjfA?pwd=2rqf",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=689HdL9zr7VcSmUwONIWCQ&pwd=d48g",
"final_url": "https://pan.baidu.com/share/init?surl=DzV_kWGZPB0aQr6g9ShjfA&pwd=2rqf",
"reason": null
}
},
@@ -573,14 +573,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 188.836,
"module_load": 191.441,
"init": 0.001,
"home": 0.001,
"category": 1702.171,
"detail": 2082.836,
"player": 0.02,
"url_check": 1101.827,
"total": 5122.108
"home": 0.0,
"category": 3382.368,
"detail": 2166.241,
"player": 0.009,
"url_check": 1045.496,
"total": 6786.27
},
"counts": {
"classes": 4,
@@ -612,14 +612,14 @@
"error": "HTTP 403",
"traceback": null,
"timings_ms": {
"module_load": 195.189,
"module_load": 233.855,
"init": 0.001,
"home": 302.112,
"category": 302.626,
"detail": 274.782,
"player": 350.411,
"url_check": 202.652,
"total": 2873.764
"home": 251.133,
"category": 306.878,
"detail": 284.185,
"player": 425.231,
"url_check": 361.883,
"total": 3037.016
},
"counts": {
"classes": 4,
@@ -635,11 +635,11 @@
},
"player": {
"parse": 0,
"url": "https://tfvu1gr3dymt1ge31hcj3gezdrcy.ourdvsssvip.com:20443/ws-302.bwcgee.cn/d03d598a130371f188926733a68f0402/cc6df813bad94a13bce4851918016715-2498cc62f9f8dad4c656ed2c1c108944-ld.mp4?key=ee2c2d505dbbc9ec9cf41de47bb808af&time=1778673361845&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=de49c068f5a143f0863bd6ffc4554ef3&hevc=false&seasonId=56609&wsiphost=ipdbme&wsrid_tag=6a042e91_PS-CTU-01y7n22_39778-23764-s1t1778658961935&x-mamba-business-label=13423&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
"url": "https://a3fkpcul3b4qlid.302.fledgecloud.com:56782/zj-302-cdn.bwcgee.cn/d03d598a130371f188926733a68f0402/cc6df813bad94a13bce4851918016715-2498cc62f9f8dad4c656ed2c1c108944-ld.mp4?auth_key=1778676223-c8bad684733ca3cd11c6b6963774db09-0-40a07dfc0e5f6d000c6a1072161a89c7&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=14f49da3788b488f8f9d402e3782735c&hevc=false&seasonId=56609",
"valid": false,
"reachable": false,
"status_code": 403,
"final_url": "https://tfvu1gr3dymt1ge31hcj3gezdrcy.ourdvsssvip.com:20443/ws-302.bwcgee.cn/d03d598a130371f188926733a68f0402/cc6df813bad94a13bce4851918016715-2498cc62f9f8dad4c656ed2c1c108944-ld.mp4?key=ee2c2d505dbbc9ec9cf41de47bb808af&time=1778673361845&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=de49c068f5a143f0863bd6ffc4554ef3&hevc=false&seasonId=56609&wsiphost=ipdbme&wsrid_tag=6a042e91_PS-CTU-01y7n22_39778-23764-s1t1778658961935&x-mamba-business-label=13423&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
"final_url": "https://a3fkpcul3b4qlid.302.fledgecloud.com:56782/zj-302-cdn.bwcgee.cn/d03d598a130371f188926733a68f0402/cc6df813bad94a13bce4851918016715-2498cc62f9f8dad4c656ed2c1c108944-ld.mp4?auth_key=1778676223-c8bad684733ca3cd11c6b6963774db09-0-40a07dfc0e5f6d000c6a1072161a89c7&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=14f49da3788b488f8f9d402e3782735c&hevc=false&seasonId=56609",
"reason": "HTTP 403"
}
},
@@ -651,14 +651,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 13.074,
"module_load": 12.96,
"init": 0.001,
"home": 0.001,
"category": 311.63,
"detail": 603.41,
"player": 0.004,
"url_check": 262.667,
"total": 1191.225
"category": 359.532,
"detail": 625.292,
"player": 0.003,
"url_check": 267.775,
"total": 1266.07
},
"counts": {
"classes": 6,
@@ -690,14 +690,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.068,
"module_load": 12.615,
"init": 0.001,
"home": 0.001,
"category": 1554.047,
"detail": 1875.878,
"player": 0.01,
"url_check": 181.418,
"total": 3616.783
"home": 0.002,
"category": 2507.882,
"detail": 2956.441,
"player": 0.014,
"url_check": 200.985,
"total": 5678.763
},
"counts": {
"classes": 4,
@@ -724,40 +724,40 @@
{
"spider": "修罗",
"file": "修罗.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='v.xlys.ltd.ua', port=443): Max retries exceeded with url: /s/all/1?type=0 (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_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.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_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: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_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='v.xlys.ltd.ua', port=443): Max retries exceeded with url: /s/all/1?type=0 (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_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 145, in categoryContent\n File \"/home/harold/workspace/atv-spiders/py/base/spider.py\", line 145, in fetch\n rsp = requests.get(url, params=params, cookies=cookies, headers=headers, timeout=timeout, verify=verify,\n stream=stream, allow_redirects=allow_redirects)\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='v.xlys.ltd.ua', port=443): Max retries exceeded with url: /s/all/1?type=0 (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)')))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.439,
"module_load": 12.15,
"init": 0.001,
"home": 0.001,
"category": 3545.131,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 3554.564
"category": 3606.474,
"detail": 1748.977,
"player": 0.006,
"url_check": 0.066,
"total": 15252.448
},
"counts": {
"classes": 4,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
"category_videos": 24,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "movie",
"vod_id": null,
"flag": null,
"play_id": null
"vod_id": "jingsong/3939",
"flag": "磁力合集",
"play_id": "magnet:?xt=urn:btih:ed3eb4c2a243e7679cf23198f56f1b1234b47593"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"parse": 0,
"url": "magnet:?xt=urn:btih:ed3eb4c2a243e7679cf23198f56f1b1234b47593",
"valid": true,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
"final_url": "magnet:?xt=urn:btih:ed3eb4c2a243e7679cf23198f56f1b1234b47593",
"reason": "非 HTTP 地址,按协议格式通过"
}
},
{
@@ -768,14 +768,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.595,
"init": 0.0,
"home": 0.0,
"category": 1762.368,
"detail": 3291.304,
"player": 3114.156,
"url_check": 3022.685,
"total": 11195.454
"module_load": 7.951,
"init": 0.001,
"home": 0.001,
"category": 3036.062,
"detail": 2578.451,
"player": 5889.118,
"url_check": 6038.254,
"total": 17550.879
},
"counts": {
"classes": 8,
@@ -807,14 +807,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.573,
"init": 0.0,
"module_load": 6.588,
"init": 0.001,
"home": 0.0,
"category": 10866.698,
"detail": 9863.832,
"player": 19397.424,
"url_check": 5937.101,
"total": 46071.234
"category": 4391.25,
"detail": 3810.548,
"player": 13769.838,
"url_check": 3433.037,
"total": 25412.061
},
"counts": {
"classes": 5,
@@ -846,14 +846,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.868,
"module_load": 9.154,
"init": 0.001,
"home": 0.001,
"category": 1112.16,
"detail": 1516.943,
"player": 1338.982,
"url_check": 1962.34,
"total": 5936.892
"category": 2093.401,
"detail": 2445.292,
"player": 2128.773,
"url_check": 3097.681,
"total": 9775.024
},
"counts": {
"classes": 6,
@@ -885,14 +885,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.118,
"module_load": 4.046,
"init": 0.0,
"home": 3205.526,
"category": 297.855,
"detail": 795.45,
"home": 3177.911,
"category": 296.831,
"detail": 773.063,
"player": 0.002,
"url_check": 198.377,
"total": 4501.736
"url_check": 198.938,
"total": 4452.189
},
"counts": {
"classes": 11,
@@ -924,14 +924,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.824,
"init": 353.266,
"home": 0.004,
"category": 201.85,
"detail": 186.792,
"module_load": 3.552,
"init": 325.917,
"home": 0.003,
"category": 206.354,
"detail": 185.025,
"player": 0.002,
"url_check": 239.075,
"total": 986.473
"url_check": 228.301,
"total": 951.329
},
"counts": {
"classes": 7,
@@ -963,14 +963,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.934,
"init": 82.766,
"module_load": 3.686,
"init": 79.446,
"home": 0.001,
"category": 192.03,
"detail": 479.948,
"player": 334.591,
"url_check": 112.003,
"total": 1205.913
"category": 1260.777,
"detail": 498.674,
"player": 311.812,
"url_check": 81.201,
"total": 2236.175
},
"counts": {
"classes": 11,
@@ -986,11 +986,11 @@
},
"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=7ca0ab9df5256b6117c608761786a86d&buy_key=FM&token=1422&timestamp=1778658964&duration=453",
"url": "http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=571092b28b79fe81ada13ddfb14897d0&buy_key=FM&token=2362&timestamp=1778661830&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=7ca0ab9df5256b6117c608761786a86d&buy_key=FM&token=1422&timestamp=1778658964&duration=453",
"final_url": "http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=571092b28b79fe81ada13ddfb14897d0&buy_key=FM&token=2362&timestamp=1778661830&duration=453",
"reason": null
}
},
@@ -1002,14 +1002,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.895,
"module_load": 20.992,
"init": 0.0,
"home": 2792.107,
"category": 1860.648,
"detail": 2316.131,
"player": 2608.303,
"url_check": 171.544,
"total": 9756.673
"home": 3428.718,
"category": 2633.236,
"detail": 3347.967,
"player": 5032.11,
"url_check": 187.576,
"total": 14652.444
},
"counts": {
"classes": 8,
@@ -1025,11 +1025,11 @@
},
"player": {
"parse": 0,
"url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778657996&sign=94219b8916163ae517b1dab207c49c2f",
"url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778661842&sign=c4762c32b403cba261718cf09953a4d3",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778657996&sign=94219b8916163ae517b1dab207c49c2f",
"final_url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778661842&sign=c4762c32b403cba261718cf09953a4d3",
"reason": null
}
},
@@ -1041,14 +1041,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 7.25,
"init": 0.005,
"home": 1438.651,
"category": 2305.593,
"detail": 1089.266,
"player": 3493.742,
"url_check": 104.68,
"total": 8439.948
"module_load": 13.278,
"init": 0.004,
"home": 2472.38,
"category": 2102.012,
"detail": 1988.393,
"player": 3273.056,
"url_check": 118.91,
"total": 9968.767
},
"counts": {
"classes": 3,
@@ -1064,11 +1064,11 @@
},
"player": {
"parse": 0,
"url": "https://p26-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809762972&x-signature=o7ssihI0fg4URBasC5gQDz0w5Vk%3D",
"url": "https://p26-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809765838&x-signature=jhSrYaVZZ1PSGkufDo3LNg35PBQ%3D",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://p26-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809762972&x-signature=o7ssihI0fg4URBasC5gQDz0w5Vk%3D",
"final_url": "https://p26-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809765838&x-signature=jhSrYaVZZ1PSGkufDo3LNg35PBQ%3D",
"reason": null
}
},
@@ -1080,14 +1080,14 @@
"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": 4.317,
"module_load": 3.87,
"init": 0.001,
"home": 0.001,
"category": 992.576,
"category": 2905.464,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 1000.949
"total": 2911.001
},
"counts": {
"classes": 5,
@@ -1119,14 +1119,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.64,
"module_load": 5.941,
"init": 0.001,
"home": 0.001,
"category": 880.17,
"detail": 1744.459,
"player": 1267.759,
"url_check": 249.427,
"total": 4149.015
"category": 1845.796,
"detail": 4425.675,
"player": 2383.028,
"url_check": 286.738,
"total": 8947.723
},
"counts": {
"classes": 6,
@@ -1158,14 +1158,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 10.325,
"module_load": 3.968,
"init": 0.001,
"home": 0.002,
"category": 2485.666,
"detail": 2068.18,
"player": 0.007,
"url_check": 1282.291,
"total": 5847.091
"home": 0.0,
"category": 1271.423,
"detail": 1769.146,
"player": 0.004,
"url_check": 1137.438,
"total": 4182.745
},
"counts": {
"classes": 6,
@@ -1197,14 +1197,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.938,
"init": 0.001,
"home": 0.007,
"category": 2967.476,
"detail": 1018.303,
"player": 0.007,
"url_check": 1869.088,
"total": 5860.073
"module_load": 12.612,
"init": 0.003,
"home": 0.101,
"category": 5887.71,
"detail": 2094.196,
"player": 0.004,
"url_check": 2632.965,
"total": 10630.451
},
"counts": {
"classes": 6,
@@ -1236,14 +1236,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 7.64,
"module_load": 6.034,
"init": 0.001,
"home": 0.001,
"category": 1528.18,
"detail": 1082.63,
"player": 1702.142,
"url_check": 319.996,
"total": 4640.994
"category": 2189.773,
"detail": 2109.224,
"player": 2740.913,
"url_check": 348.136,
"total": 7394.817
},
"counts": {
"classes": 4,
@@ -1259,11 +1259,11 @@
},
"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=20260513T075609Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260513%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=10a35bf043b278f1109d8545beba72d8aa1f7af189041c7f96197028b9e198c2",
"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=20260513T084358Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260513%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=862e15fef31a7e37d162e2582e1e83196f46643da8bd7bff1b8fe8a9b305f299",
"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=20260513T075609Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260513%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=10a35bf043b278f1109d8545beba72d8aa1f7af189041c7f96197028b9e198c2",
"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=20260513T084358Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260513%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=862e15fef31a7e37d162e2582e1e83196f46643da8bd7bff1b8fe8a9b305f299",
"reason": null
}
},
@@ -1275,14 +1275,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.763,
"init": 0.017,
"home": 249.373,
"category": 282.302,
"detail": 303.577,
"player": 0.003,
"url_check": 274.798,
"total": 1115.059
"module_load": 3.51,
"init": 0.019,
"home": 198.171,
"category": 312.569,
"detail": 355.131,
"player": 0.002,
"url_check": 143.436,
"total": 1013.359
},
"counts": {
"classes": 30,
@@ -1294,15 +1294,15 @@
"tid": "都市",
"vod_id": "110000044555935694",
"flag": "1080P",
"play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778658966&sign=401eb2dd4a6074cb8135f08f5fe3a014"
"play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778661833&sign=c1e4e82ef7f9896ccb232387d75999c7"
},
"player": {
"parse": 0,
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778658966&sign=401eb2dd4a6074cb8135f08f5fe3a014",
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778661833&sign=c1e4e82ef7f9896ccb232387d75999c7",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778658966&sign=401eb2dd4a6074cb8135f08f5fe3a014",
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778661833&sign=c1e4e82ef7f9896ccb232387d75999c7",
"reason": null
}
},
@@ -1314,14 +1314,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.268,
"module_load": 4.139,
"init": 0.001,
"home": 0.001,
"category": 849.102,
"detail": 1194.539,
"player": 1854.909,
"url_check": 1493.521,
"total": 5398.942
"home": 0.0,
"category": 1836.344,
"detail": 2891.714,
"player": 2482.677,
"url_check": 2529.048,
"total": 9744.691
},
"counts": {
"classes": 5,
@@ -1331,17 +1331,17 @@
},
"samples": {
"tid": "1",
"vod_id": "3669",
"vod_id": "3639",
"flag": "在线云播",
"play_id": "3669_1_1"
"play_id": "3639_1_1"
},
"player": {
"parse": 0,
"url": "https://cdn.vvvip-plays33.cc/20260511/13520_2410f01c/index.m3u8",
"url": "https://player.yzzyvip-35.com/20260429/5623_44bf89b6/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cdn.vvvip-plays33.cc/20260511/13520_2410f01c/index.m3u8",
"final_url": "https://player.yzzyvip-35.com/20260429/5623_44bf89b6/index.m3u8",
"reason": null
}
},
@@ -1353,14 +1353,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.838,
"module_load": 3.157,
"init": 0.001,
"home": 0.001,
"category": 496.54,
"detail": 781.788,
"player": 0.005,
"url_check": 167.536,
"total": 1450.145
"category": 504.23,
"detail": 773.115,
"player": 0.002,
"url_check": 342.137,
"total": 1623.187
},
"counts": {
"classes": 5,
@@ -1392,14 +1392,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.826,
"module_load": 7.551,
"init": 0.001,
"home": 0.001,
"category": 1370.185,
"detail": 1414.446,
"category": 2236.541,
"detail": 1986.709,
"player": 0.007,
"url_check": 273.372,
"total": 3065.315
"url_check": 271.445,
"total": 4503.026
},
"counts": {
"classes": 7,
@@ -1431,14 +1431,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.269,
"module_load": 6.757,
"init": 0.001,
"home": 0.001,
"category": 2441.621,
"detail": 3277.579,
"player": 4835.983,
"url_check": 2658.62,
"total": 18224.888
"category": 4983.528,
"detail": 5262.721,
"player": 5151.375,
"url_check": 2528.769,
"total": 27669.71
},
"counts": {
"classes": 4,
@@ -1470,14 +1470,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.087,
"init": 4021.453,
"home": 1338.27,
"category": 1783.266,
"detail": 2435.528,
"player": 10622.449,
"url_check": 3387.685,
"total": 23594.338
"module_load": 5.679,
"init": 4420.443,
"home": 4900.808,
"category": 2769.277,
"detail": 3214.045,
"player": 9264.821,
"url_check": 2343.62,
"total": 26919.746
},
"counts": {
"classes": 8,
@@ -1493,118 +1493,40 @@
},
"player": {
"parse": 0,
"url": "https://usaydd.5gwcft9h.com/m3u87/share/6937197/7133173/20260414/171420/1080/index.m3u8?sign=1aa35006f6682d042e4256e4d3d47479&t=1778658984",
"url": "https://usaydd.5gwcft9h.com/m3u87/share/6937197/7133173/20260414/171420/1080/index.m3u8?sign=d4eeb99b21aaf19aacf84812789106f8&t=1778661856",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://usaydd.5gwcft9h.com/m3u87/share/6937197/7133173/20260414/171420/1080/index.m3u8?sign=1aa35006f6682d042e4256e4d3d47479&t=1778658984",
"final_url": "https://usaydd.5gwcft9h.com/m3u87/share/6937197/7133173/20260414/171420/1080/index.m3u8?sign=d4eeb99b21aaf19aacf84812789106f8&t=1778661856",
"reason": null
}
},
{
"spider": "欧歌",
"file": "欧歌.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='woog.nxog.eu.org', port=443): Max retries exceeded with url: /index.php/vod/detail/id/29938.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='woog.nxog.eu.org', port=443) at 0x77ebb38a07d0>, 'Connection to woog.nxog.eu.org 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='woog.nxog.eu.org', port=443) at 0x77ebb38a07d0>, 'Connection to woog.nxog.eu.org 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='woog.nxog.eu.org', port=443): Max retries exceeded with url: /index.php/vod/detail/id/29938.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='woog.nxog.eu.org', port=443) at 0x77ebb38a07d0>, 'Connection to woog.nxog.eu.org 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 283, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/欧歌.txt\", line 98, in _request_html\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='woog.nxog.eu.org', port=443): Max retries exceeded with url: /index.php/vod/detail/id/29938.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='woog.nxog.eu.org', port=443) at 0x77ebb38a07d0>, 'Connection to woog.nxog.eu.org timed out. (connect timeout=10)'))\n",
"timings_ms": {
"module_load": 3.899,
"module_load": 4.75,
"init": 0.001,
"home": 0.001,
"category": 961.726,
"detail": 731.602,
"player": 0.005,
"url_check": 1257.994,
"total": 2955.582
"category": 1859.756,
"detail": 10012.255,
"player": 0.0,
"url_check": 0.0,
"total": 11878.707
},
"counts": {
"classes": 6,
"category_videos": 72,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/29938.html",
"flag": "百度",
"play_id": "https://pan.baidu.com/s/1vcYSB0ydxgAzc-1Tvg63oA?pwd=8888"
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1vcYSB0ydxgAzc-1Tvg63oA?pwd=8888",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=vcYSB0ydxgAzc-1Tvg63oA&pwd=8888",
"reason": null
}
},
{
"spider": "河马短剧",
"file": "河马短剧.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.648,
"init": 0.0,
"home": 588.051,
"category": 672.7,
"detail": 1465.829,
"player": 0.02,
"url_check": 65.202,
"total": 13499.686
},
"counts": {
"classes": 10,
"category_videos": 10,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "1102",
"vod_id": "/drama/41000178001@@忘川煞主,黎扶问天",
"flag": "河马剧场",
"play_id": "https://dzzt-video.cbread.cn/b40b446b37f11a11935c37cb9426bae7/6a052ca0/59/1x0/10x0/100x8/10087100014/612118395_1/612118395.720p.narrowv3.mp4"
},
"player": {
"parse": 0,
"url": "https://dzzt-video.cbread.cn/b40b446b37f11a11935c37cb9426bae7/6a052ca0/59/1x0/10x0/100x8/10087100014/612118395_1/612118395.720p.narrowv3.mp4",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://dzzt-video.cbread.cn/b40b446b37f11a11935c37cb9426bae7/6a052ca0/59/1x0/10x0/100x8/10087100014/612118395_1/612118395.720p.narrowv3.mp4",
"reason": null
}
},
{
"spider": "滴答影视",
"file": "滴答影视.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='www.didahd.pro', port=443): Max retries exceeded with url: /show/1--time------1--- (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_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.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_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: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_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='www.didahd.pro', port=443): Max retries exceeded with url: /show/1--time------1--- (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_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 181, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/滴答影视.txt\", line 138, in _request_html\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='www.didahd.pro', port=443): Max retries exceeded with url: /show/1--time------1--- (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)')))\n",
"timings_ms": {
"module_load": 8.067,
"init": 0.001,
"home": 0.001,
"category": 4137.085,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 4147.514
},
"counts": {
"classes": 5,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "1",
"vod_id": null,
"vod_id": "/index.php/vod/detail/id/29938.html",
"flag": null,
"play_id": null
},
@@ -1618,6 +1540,84 @@
"reason": null
}
},
{
"spider": "河马短剧",
"file": "河马短剧.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 7.398,
"init": 0.001,
"home": 651.013,
"category": 718.232,
"detail": 2123.885,
"player": 0.024,
"url_check": 113.64,
"total": 3616.421
},
"counts": {
"classes": 10,
"category_videos": 10,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "462",
"vod_id": "/drama/41000186435@@听见胎宝心声后,我逆袭了",
"flag": "河马剧场",
"play_id": "https://dzzt-video.cbread.cn/3866e98213f52eb74285e31c40ea48ec/6a0572f0/58/5x3/53x4/534x6/53468100014/612428785_1/612428785.720p.narrowv3.mp4"
},
"player": {
"parse": 0,
"url": "https://dzzt-video.cbread.cn/3866e98213f52eb74285e31c40ea48ec/6a0572f0/58/5x3/53x4/534x6/53468100014/612428785_1/612428785.720p.narrowv3.mp4",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://dzzt-video.cbread.cn/3866e98213f52eb74285e31c40ea48ec/6a0572f0/58/5x3/53x4/534x6/53468100014/612428785_1/612428785.720p.narrowv3.mp4",
"reason": null
}
},
{
"spider": "滴答影视",
"file": "滴答影视.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.271,
"init": 0.0,
"home": 0.001,
"category": 2313.86,
"detail": 2165.229,
"player": 0.005,
"url_check": 1164.569,
"total": 5648.506
},
"counts": {
"classes": 5,
"category_videos": 48,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "detail/3033",
"flag": "百度",
"play_id": "https://pan.baidu.com/s/1D_ftrHBRkMlxRs_aLWExxQ?pwd=p4uw"
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1D_ftrHBRkMlxRs_aLWExxQ?pwd=p4uw",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=D_ftrHBRkMlxRs_aLWExxQ&pwd=p4uw",
"reason": null
}
},
{
"spider": "潮流APP",
"file": "潮流APP.txt",
@@ -1626,14 +1626,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.978,
"module_load": 3.902,
"init": 0.002,
"home": 117.346,
"category": 114.231,
"detail": 173.748,
"player": 310.25,
"url_check": 92.331,
"total": 812.299
"home": 118.603,
"category": 136.188,
"detail": 164.531,
"player": 362.251,
"url_check": 85.9,
"total": 871.743
},
"counts": {
"classes": 10,
@@ -1649,11 +1649,11 @@
},
"player": {
"parse": 0,
"url": "http://210.16.164.82:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778658993416&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"url": "http://210.16.164.82:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778661861399&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "http://210.16.164.82:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778658993416&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"final_url": "http://210.16.164.82:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778661861399&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"reason": null
}
},
@@ -1665,14 +1665,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 11.465,
"init": 0.02,
"home": 3329.636,
"category": 896.983,
"detail": 210.558,
"module_load": 12.539,
"init": 0.017,
"home": 4473.064,
"category": 1003.387,
"detail": 122.46,
"player": 0.001,
"url_check": 169.771,
"total": 4619.477
"url_check": 187.005,
"total": 5799.237
},
"counts": {
"classes": 11,
@@ -1704,14 +1704,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.547,
"module_load": 5.735,
"init": 0.001,
"home": 0.001,
"category": 1948.451,
"detail": 980.356,
"player": 961.365,
"url_check": 843.833,
"total": 4739.016
"category": 3996.346,
"detail": 2938.756,
"player": 1801.52,
"url_check": 2126.99,
"total": 10869.996
},
"counts": {
"classes": 6,
@@ -1743,34 +1743,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.608,
"module_load": 13.614,
"init": 0.001,
"home": 0.0,
"category": 804.312,
"detail": 1167.576,
"player": 0.014,
"url_check": 1210.04,
"total": 3186.598
"category": 3835.603,
"detail": 2303.376,
"player": 0.022,
"url_check": 236.119,
"total": 6389.278
},
"counts": {
"classes": 8,
"category_videos": 70,
"detail_videos": 1,
"episodes": 2
"episodes": 1
},
"samples": {
"tid": "1",
"vod_id": "/voddetail/124608.html",
"flag": "百度#玩偶哥哥",
"play_id": "https://pan.baidu.com/s/1s8vor3efYl5lD9zD24tSvA?pwd=wogg"
"vod_id": "/voddetail/124695.html",
"flag": "夸克#玩偶哥哥",
"play_id": "https://pan.quark.cn/s/a2c51a58fc50"
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1s8vor3efYl5lD9zD24tSvA?pwd=wogg",
"url": "https://pan.quark.cn/s/a2c51a58fc50",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=s8vor3efYl5lD9zD24tSvA&pwd=wogg",
"final_url": "https://pan.quark.cn/s/a2c51a58fc50",
"reason": null
}
},
@@ -1782,14 +1782,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.646,
"module_load": 9.809,
"init": 0.001,
"home": 0.106,
"category": 1250.858,
"detail": 943.979,
"player": 0.002,
"url_check": 1007.201,
"total": 3209.328
"home": 0.073,
"category": 1977.64,
"detail": 3054.697,
"player": 0.003,
"url_check": 4739.901,
"total": 9782.842
},
"counts": {
"classes": 10,
@@ -1799,17 +1799,17 @@
},
"samples": {
"tid": "site_wanou",
"vod_id": "site:wanou:/voddetail/124298.html",
"vod_id": "site:wanou:/voddetail/122759.html",
"flag": "百度#玩偶",
"play_id": "https://pan.baidu.com/s/1myNtiFGjSIghUcl7VaL8aw?pwd=wogg"
"play_id": "https://pan.baidu.com/s/1JkqxLY2-ftWiHPvLZSIIwA?pwd=8y9c"
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1myNtiFGjSIghUcl7VaL8aw?pwd=wogg",
"url": "https://pan.baidu.com/s/1JkqxLY2-ftWiHPvLZSIIwA?pwd=8y9c",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=myNtiFGjSIghUcl7VaL8aw&pwd=wogg",
"final_url": "https://pan.baidu.com/share/init?surl=JkqxLY2-ftWiHPvLZSIIwA&pwd=8y9c",
"reason": null
}
},
@@ -1821,14 +1821,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.187,
"module_load": 10.427,
"init": 0.001,
"home": 0.018,
"category": 1107.126,
"detail": 2482.353,
"player": 864.856,
"url_check": 190.435,
"total": 4650.85
"home": 0.027,
"category": 1983.731,
"detail": 3860.637,
"player": 2958.794,
"url_check": 128.949,
"total": 8943.444
},
"counts": {
"classes": 5,
@@ -1844,11 +1844,11 @@
},
"player": {
"parse": 0,
"url": "https://vd.hxcztech.com/6feb7f0ed75309b03d284b2f2ea5a2be/20260513155614/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
"url": "https://vd.hxcztech.com/9a2050ac6a0d63189ebce33fae7219e9/20260513164406/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/6feb7f0ed75309b03d284b2f2ea5a2be/20260513155614/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
"final_url": "https://vd.hxcztech.com/9a2050ac6a0d63189ebce33fae7219e9/20260513164406/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
"reason": null
}
},
@@ -1860,14 +1860,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.441,
"module_load": 3.638,
"init": 0.0,
"home": 411.304,
"category": 273.306,
"detail": 874.975,
"player": 268.847,
"url_check": 71.79,
"total": 1904.101
"home": 393.339,
"category": 242.351,
"detail": 587.833,
"player": 292.153,
"url_check": 72.888,
"total": 1592.762
},
"counts": {
"classes": 29,
@@ -1883,11 +1883,11 @@
},
"player": {
"parse": 0,
"url": "http://vd3.bdstatic.com/mda-rh54j6is12ydd0q3/1080p/mv_cae264_backtrack_1080p_normal/1754453773225130912/mda-rh54j6is12ydd0q3.mp4?v_from_s=haokan-ui-video-hna",
"url": "http://vd3.bdstatic.com/mda-rh54j6is12ydd0q3/1080p/mv_cae264_backtrack_1080p_normal/1754453773225130912/mda-rh54j6is12ydd0q3.mp4?v_from_s=haokan-ui-video-hnb",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "http://vd3.bdstatic.com/mda-rh54j6is12ydd0q3/1080p/mv_cae264_backtrack_1080p_normal/1754453773225130912/mda-rh54j6is12ydd0q3.mp4?v_from_s=haokan-ui-video-hna",
"final_url": "http://vd3.bdstatic.com/mda-rh54j6is12ydd0q3/1080p/mv_cae264_backtrack_1080p_normal/1754453773225130912/mda-rh54j6is12ydd0q3.mp4?v_from_s=haokan-ui-video-hnb",
"reason": null
}
},
@@ -1899,14 +1899,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.097,
"module_load": 5.155,
"init": 0.001,
"home": 349.552,
"category": 357.067,
"detail": 297.081,
"player": 0.04,
"url_check": 188.087,
"total": 1196.478
"home": 317.725,
"category": 303.537,
"detail": 312.871,
"player": 0.023,
"url_check": 182.332,
"total": 1122.328
},
"counts": {
"classes": 8,
@@ -1938,14 +1938,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.607,
"init": 0.001,
"home": 0.001,
"category": 744.649,
"detail": 847.916,
"player": 816.857,
"url_check": 1236.232,
"total": 3651.917
"module_load": 13.389,
"init": 0.002,
"home": 0.002,
"category": 3907.884,
"detail": 2903.834,
"player": 3192.723,
"url_check": 1614.191,
"total": 11632.932
},
"counts": {
"classes": 4,
@@ -1977,14 +1977,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 24.031,
"init": 695.079,
"home": 0.107,
"category": 477.253,
"detail": 346.129,
"player": 0.002,
"url_check": 84.514,
"total": 1627.819
"module_load": 23.767,
"init": 573.112,
"home": 2.32,
"category": 459.756,
"detail": 350.193,
"player": 0.003,
"url_check": 126.544,
"total": 1536.811
},
"counts": {
"classes": 11,
@@ -2016,14 +2016,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.666,
"init": 0.001,
"home": 0.001,
"category": 1626.572,
"detail": 882.804,
"player": 0.005,
"url_check": 254.924,
"total": 2768.412
"module_load": 9.599,
"init": 0.002,
"home": 0.002,
"category": 3026.992,
"detail": 4243.735,
"player": 0.009,
"url_check": 214.314,
"total": 7495.331
},
"counts": {
"classes": 2,
@@ -2055,14 +2055,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.355,
"init": 0.001,
"home": 463.077,
"category": 856.365,
"detail": 159.361,
"player": 330.051,
"url_check": 327.713,
"total": 2142.94
"module_load": 8.581,
"init": 0.0,
"home": 438.433,
"category": 691.319,
"detail": 163.344,
"player": 342.204,
"url_check": 373.129,
"total": 2017.731
},
"counts": {
"classes": 7,
@@ -2094,14 +2094,14 @@
"error": "Expecting value: line 1 column 1 (char 0)",
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/models.py\", line 978, in json\n return complexjson.loads(self.text, **kwargs)\n ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/json/__init__.py\", line 352, in loads\n return _default_decoder.decode(s)\n ~~~~~~~~~~~~~~~~~~~~~~~^^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/json/decoder.py\", line 345, in decode\n obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/json/decoder.py\", line 363, in raw_decode\n raise JSONDecodeError(\"Expecting value\", s, err.value) from None\njson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\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 467, in _validate_from_tid\n player_result = _run_timed(result[\"timings_ms\"], \"player\", spider.playerContent, clock, play[\"flag\"], play[\"play_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 124, in playerContent\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/models.py\", line 982, in json\n raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)\nrequests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
"timings_ms": {
"module_load": 3.726,
"init": 0.001,
"home": 414.176,
"category": 400.569,
"detail": 0.006,
"player": 189.333,
"module_load": 3.347,
"init": 0.0,
"home": 503.226,
"category": 430.981,
"detail": 0.005,
"player": 208.283,
"url_check": 0.0,
"total": 1010.282
"total": 1150.206
},
"counts": {
"classes": 62,
@@ -2133,14 +2133,14 @@
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 4.174,
"init": 0.001,
"home": 0.001,
"category": 4670.677,
"module_load": 5.033,
"init": 0.0,
"home": 0.0,
"category": 3802.163,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 6885.346
"total": 10296.25
},
"counts": {
"classes": 6,
@@ -2172,14 +2172,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.327,
"module_load": 6.091,
"init": 0.001,
"home": 241.758,
"category": 249.507,
"detail": 742.709,
"player": 0.002,
"url_check": 361.72,
"total": 1601.597
"home": 205.022,
"category": 256.236,
"detail": 785.386,
"player": 0.004,
"url_check": 593.328,
"total": 1846.823
},
"counts": {
"classes": 7,
@@ -2211,53 +2211,53 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.612,
"module_load": 3.745,
"init": 0.001,
"home": 0.0,
"category": 1478.213,
"detail": 2003.834,
"player": 0.013,
"url_check": 213.685,
"total": 3699.82
"category": 3263.126,
"detail": 2495.126,
"player": 0.003,
"url_check": 1035.029,
"total": 6797.516
},
"counts": {
"classes": 7,
"category_videos": 72,
"detail_videos": 1,
"episodes": 1
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/20405.html",
"flag": "夸克#至臻",
"play_id": "https://pan.quark.cn/s/bc2199089fe0"
"vod_id": "/index.php/vod/detail/id/20398.html",
"flag": "百度#至臻",
"play_id": "https://pan.baidu.com/s/1KBoFekk6ROhuUssGJN2kpQ?pwd=rpgh"
},
"player": {
"parse": 0,
"url": "https://pan.quark.cn/s/bc2199089fe0",
"url": "https://pan.baidu.com/s/1KBoFekk6ROhuUssGJN2kpQ?pwd=rpgh",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.quark.cn/s/bc2199089fe0",
"final_url": "https://pan.baidu.com/share/init?surl=KBoFekk6ROhuUssGJN2kpQ&pwd=rpgh",
"reason": null
}
},
{
"spider": "茶杯狐",
"file": "茶杯狐.txt",
"success": false,
"failed_stage": "url_check",
"error": "HTTP 404",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.353,
"module_load": 6.514,
"init": 0.0,
"home": 1385.749,
"category": 2475.981,
"detail": 2179.274,
"player": 4392.349,
"url_check": 2114.613,
"total": 34891.424
"home": 2300.006,
"category": 3328.83,
"detail": 2180.2,
"player": 6941.327,
"url_check": 2502.471,
"total": 43880.825
},
"counts": {
"classes": 4,
@@ -2267,18 +2267,18 @@
},
"samples": {
"tid": "2",
"vod_id": "detail/video/120765",
"flag": "LZ有广6",
"play_id": "play/120765-2-1"
"vod_id": "detail/video/121016",
"flag": "YZ有广",
"play_id": "play/121016-2-1"
},
"player": {
"parse": 0,
"url": "https://v.lzcdn27.com/20260429/9522_1d6c5be7/index.m3u8",
"valid": false,
"reachable": false,
"status_code": 404,
"final_url": "https://v.lzcdn27.com/20260429/9522_1d6c5be7/index.m3u8",
"reason": "HTTP 404"
"url": "https://cdn.yzzyvip-29.com/20260513/23691_a08b088d/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cdn.yzzyvip-29.com/20260513/23691_a08b088d/index.m3u8",
"reason": null
}
},
{
@@ -2289,14 +2289,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.268,
"module_load": 6.611,
"init": 0.001,
"home": 0.001,
"category": 2394.683,
"detail": 2905.775,
"player": 0.018,
"url_check": 1258.964,
"total": 6566.261
"category": 2612.624,
"detail": 2963.172,
"player": 0.009,
"url_check": 1276.393,
"total": 6859.317
},
"counts": {
"classes": 6,
@@ -2328,14 +2328,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.793,
"module_load": 6.902,
"init": 0.001,
"home": 0.001,
"category": 1741.846,
"detail": 1988.629,
"home": 0.0,
"category": 2216.492,
"detail": 4027.885,
"player": 0.003,
"url_check": 1225.265,
"total": 4962.002
"url_check": 1065.225,
"total": 7316.945
},
"counts": {
"classes": 7,
@@ -2367,14 +2367,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.926,
"init": 0.001,
"module_load": 4.966,
"init": 0.0,
"home": 0.001,
"category": 3112.303,
"detail": 1912.65,
"player": 1850.944,
"url_check": 2827.346,
"total": 9709.155
"category": 3205.238,
"detail": 1977.097,
"player": 2321.194,
"url_check": 4964.856,
"total": 12474.023
},
"counts": {
"classes": 4,
@@ -2406,14 +2406,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 10.119,
"init": 0.001,
"home": 3359.907,
"category": 2851.078,
"detail": 2468.366,
"player": 2232.035,
"url_check": 2542.056,
"total": 13464.212
"module_load": 8.751,
"init": 0.0,
"home": 4043.911,
"category": 2581.046,
"detail": 2704.168,
"player": 4834.885,
"url_check": 3145.121,
"total": 17318.831
},
"counts": {
"classes": 6,
@@ -2423,17 +2423,17 @@
},
"samples": {
"tid": "20",
"vod_id": "57423",
"vod_id": "135015",
"flag": "备用源(有广勿信)",
"play_id": "https://svip.ffzyplay.com/?url=https://vip.ffzy-online3.com/20251216/40365_0dd3985f/index.m3u8|第一个男人|1"
"play_id": "https://svip.ffzyplay.com/?url=https://vip.ffzy-plays.com/20260513/53524_98158382/index.m3u8|好兆头第三季|1"
},
"player": {
"parse": 0,
"url": "https://svip.ffzyplay.com/?url=https://vip.ffzy-online3.com/20251216/40365_0dd3985f/index.m3u8",
"url": "https://svip.ffzyplay.com/?url=https://vip.ffzy-plays.com/20260513/53524_98158382/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://svip.ffzyplay.com/?url=https://vip.ffzy-online3.com/20251216/40365_0dd3985f/index.m3u8",
"final_url": "https://svip.ffzyplay.com/?url=https://vip.ffzy-plays.com/20260513/53524_98158382/index.m3u8",
"reason": null
}
},
@@ -2445,14 +2445,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.528,
"module_load": 6.605,
"init": 0.001,
"home": 0.001,
"category": 1555.821,
"detail": 2457.675,
"player": 5529.653,
"url_check": 1826.559,
"total": 17037.702
"category": 2910.371,
"detail": 4350.156,
"player": 7021.345,
"url_check": 1700.877,
"total": 21420.66
},
"counts": {
"classes": 6,
@@ -2468,11 +2468,11 @@
},
"player": {
"parse": 0,
"url": "https://v16.toutiao50.com/7fb917023e86868a461f3ef26698bc9a/6a057f90/video/tos/alisg/tos-alisg-ve-0051c001-sg/owL5ueUTlAndDIFpIKiDnbICgDKeI4DFGeGAQG/",
"url": "https://v16.toutiao50.com/3a40416671041e71f64efbf02b5f3c1a/6a058e03/video/tos/alisg/tos-alisg-ve-0051c001-sg/owL5ueUTlAndDIFpIKiDnbICgDKeI4DFGeGAQG/",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://v16.toutiao50.com/7fb917023e86868a461f3ef26698bc9a/6a057f90/video/tos/alisg/tos-alisg-ve-0051c001-sg/owL5ueUTlAndDIFpIKiDnbICgDKeI4DFGeGAQG/",
"final_url": "https://v16.toutiao50.com/3a40416671041e71f64efbf02b5f3c1a/6a058e03/video/tos/alisg/tos-alisg-ve-0051c001-sg/owL5ueUTlAndDIFpIKiDnbICgDKeI4DFGeGAQG/",
"reason": null
}
},
@@ -2484,14 +2484,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.852,
"init": 0.0,
"home": 406.325,
"category": 96.2,
"detail": 3574.616,
"player": 136.93,
"url_check": 110.186,
"total": 4330.112
"module_load": 5.795,
"init": 0.001,
"home": 390.47,
"category": 85.739,
"detail": 3230.049,
"player": 161.163,
"url_check": 57.146,
"total": 3931.372
},
"counts": {
"classes": 4,
@@ -2507,11 +2507,11 @@
},
"player": {
"parse": 0,
"url": "http://lv.sycdn.kuwo.cn/565841b66f5e4aeeec594ccbccaaca04/6a042ea4/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$",
"url": "http://lv.sycdn.kuwo.cn/a6578babdb085287fa42231b4edcc51a/6a0439dc/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/565841b66f5e4aeeec594ccbccaaca04/6a042ea4/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$",
"final_url": "http://lv.sycdn.kuwo.cn/a6578babdb085287fa42231b4edcc51a/6a0439dc/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
}
},
@@ -2523,14 +2523,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 9.515,
"init": 508.349,
"home": 308.196,
"category": 296.91,
"detail": 298.166,
"player": 375.127,
"url_check": 54.977,
"total": 1852.47
"module_load": 13.732,
"init": 506.054,
"home": 317.907,
"category": 241.978,
"detail": 312.572,
"player": 343.2,
"url_check": 68.02,
"total": 1805.375
},
"counts": {
"classes": 12,
@@ -2540,17 +2540,17 @@
},
"samples": {
"tid": "recommend",
"vod_id": "683696681",
"vod_id": "759135799",
"flag": "酷狗音乐",
"play_id": "683696681"
"play_id": "759135799"
},
"player": {
"parse": 0,
"url": "http://fsdg360.tx.kugou.com/202605131556/d08d4b9f24d490998fe2282d70194228/v3/514042531c765ea943c645e3dc9e18ef/yp/p_0_960163/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx683696681_qu128_s375673881.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"url": "http://fsdg360.tx.kugou.com/202605131644/c5d0da2078725366a1323116c450981d/v3/41d8411641d1e9e8c11cc7773ba26be5/yp/p_0_960155/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx759135799_qu128_s306155770.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "http://fsdg360.tx.kugou.com/202605131556/d08d4b9f24d490998fe2282d70194228/v3/514042531c765ea943c645e3dc9e18ef/yp/p_0_960163/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx683696681_qu128_s375673881.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"final_url": "http://fsdg360.tx.kugou.com/202605131644/c5d0da2078725366a1323116c450981d/v3/41d8411641d1e9e8c11cc7773ba26be5/yp/p_0_960155/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx759135799_qu128_s306155770.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"reason": null
}
},
@@ -2562,14 +2562,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.909,
"module_load": 3.881,
"init": 0.001,
"home": 1247.186,
"category": 361.922,
"detail": 270.98,
"player": 263.88,
"url_check": 1104.61,
"total": 3253.04
"home": 996.073,
"category": 334.051,
"detail": 332.854,
"player": 617.686,
"url_check": 567.863,
"total": 2853.218
},
"counts": {
"classes": 4,
@@ -2585,11 +2585,11 @@
},
"player": {
"parse": 0,
"url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778658978-8c8ae46f0efd47f9ba5653d96d56a965-0-d83ea16de07021efc76cc2879f7229dc",
"url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778661852-970276a0d97e405ca30ebb928c93e945-0-d871b9ce1e639e6cdc873ef4856bb6c1",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778658978-8c8ae46f0efd47f9ba5653d96d56a965-0-d83ea16de07021efc76cc2879f7229dc",
"final_url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778661852-970276a0d97e405ca30ebb928c93e945-0-d871b9ce1e639e6cdc873ef4856bb6c1",
"reason": null
}
},
@@ -2601,14 +2601,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.722,
"module_load": 3.603,
"init": 0.001,
"home": 0.001,
"category": 6687.027,
"detail": 7726.549,
"player": 0.013,
"url_check": 213.658,
"total": 14631.47
"category": 5988.113,
"detail": 5696.696,
"player": 0.01,
"url_check": 215.047,
"total": 11904.01
},
"counts": {
"classes": 5,
@@ -2640,14 +2640,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.728,
"init": 0.0,
"home": 0.0,
"category": 5572.069,
"detail": 5668.501,
"player": 5586.602,
"url_check": 2241.232,
"total": 19072.632
"module_load": 11.808,
"init": 0.001,
"home": 0.001,
"category": 5178.632,
"detail": 5361.023,
"player": 6285.864,
"url_check": 4751.601,
"total": 21589.58
},
"counts": {
"classes": 4,
@@ -2657,9 +2657,9 @@
},
"samples": {
"tid": "1",
"vod_id": "/voddetail/239466.html",
"vod_id": "/voddetail/239474.html",
"flag": "魔都资源4",
"play_id": "/vodplay/239466-1-1.html"
"play_id": "/vodplay/239474-1-1.html"
},
"player": {
"parse": 0,
@@ -2679,14 +2679,14 @@
"error": "分类列表为空",
"traceback": null,
"timings_ms": {
"module_load": 4.852,
"module_load": 8.988,
"init": 0.001,
"home": 3180.88,
"home": 3337.717,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 3185.885
"total": 3346.898
},
"counts": {
"classes": 0,
@@ -2715,17 +2715,17 @@
"file": "麦田影院.txt",
"success": false,
"failed_stage": "url_check",
"error": "HTTP 404",
"error": "HTTPSConnectionPool(host='v.lzcdn28.com', port=443): Max retries exceeded with url: /20250923/2326_a9bf234a/index.m3u8 (Caused by ConnectTimeoutError(<HTTPSConnection(host='v.lzcdn28.com', port=443) at 0x77eb98720550>, 'Connection to v.lzcdn28.com timed out. (connect timeout=5)'))",
"traceback": null,
"timings_ms": {
"module_load": 4.843,
"module_load": 6.083,
"init": 0.001,
"home": 0.001,
"category": 1673.415,
"detail": 1772.154,
"player": 0.021,
"url_check": 2629.461,
"total": 12872.745
"category": 4276.278,
"detail": 1745.707,
"player": 0.012,
"url_check": 5006.417,
"total": 20536.421
},
"counts": {
"classes": 6,
@@ -2744,9 +2744,9 @@
"url": "https://v.lzcdn28.com/20250923/2326_a9bf234a/index.m3u8",
"valid": false,
"reachable": false,
"status_code": 404,
"status_code": null,
"final_url": "https://v.lzcdn28.com/20250923/2326_a9bf234a/index.m3u8",
"reason": "HTTP 404"
"reason": "HTTPSConnectionPool(host='v.lzcdn28.com', port=443): Max retries exceeded with url: /20250923/2326_a9bf234a/index.m3u8 (Caused by ConnectTimeoutError(<HTTPSConnection(host='v.lzcdn28.com', port=443) at 0x77eb98720550>, 'Connection to v.lzcdn28.com timed out. (connect timeout=5)'))"
}
},
{
@@ -2757,14 +2757,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.076,
"init": 0.002,
"home": 2289.01,
"category": 2007.951,
"detail": 1876.385,
"player": 2025.645,
"url_check": 424.04,
"total": 22431.227
"module_load": 4.657,
"init": 0.001,
"home": 3229.721,
"category": 3018.487,
"detail": 3940.314,
"player": 2022.628,
"url_check": 290.08,
"total": 26328.602
},
"counts": {
"classes": 5,
@@ -2774,17 +2774,17 @@
},
"samples": {
"tid": "2",
"vod_id": "93641",
"vod_id": "92670",
"flag": "🐈‍⬛高清线路",
"play_id": "高清线路1@@direct@@66ddeb0b0fe39924c19b86fc5dcce841,fdcba9d26d7ee6becd7fb9b41423ccfb,token+,1,1"
"play_id": "高清线路1@@direct@@66ddeb0b0fe39924c19b86fc5dcce841,d4c9187a0fd2e06d874dba6f0eb327ea,token+,1,1"
},
"player": {
"parse": 0,
"url": "https://v3-cold1.douyinvod.com/bf20fa06b4a7e8c55831946d1a15d0a9/6a048bf1/video/tos/cn/tos-cn-v-5f73e7/osQcEbBAgpo1HIulqOIoBBF3aaACDofiBgeqD1/",
"url": "https://v9-show.douyinvod.com/2c0042df132f9d654f1e8a976f39e7c3/6a04995d/video/tos/cn/tos-cn-v-5f73e7/ootsd87GIEXNxlxBURT19D2CfIRzakAfAOmFfr/",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://v3-cold1.douyinvod.com/bf20fa06b4a7e8c55831946d1a15d0a9/6a048bf1/video/tos/cn/tos-cn-v-5f73e7/osQcEbBAgpo1HIulqOIoBBF3aaACDofiBgeqD1/",
"final_url": "https://v9-show.douyinvod.com/2c0042df132f9d654f1e8a976f39e7c3/6a04995d/video/tos/cn/tos-cn-v-5f73e7/ootsd87GIEXNxlxBURT19D2CfIRzakAfAOmFfr/",
"reason": null
}
}