This commit is contained in:
Harold
2026-05-12 16:55:48 +08:00
parent 75e2b417ab
commit 4b78bed51b
24 changed files with 1050 additions and 1055 deletions
+700 -700
View File
@@ -1,21 +1,21 @@
{
"generated_at": "2026-05-12T15:11:15+08:00",
"generated_at": "2026-05-12T16:55:08+08:00",
"max_workers": 16,
"total_duration_ms": 52790.973,
"total_duration_ms": 40160.016,
"summary": {
"total": 69,
"success": 53,
"failed": 16,
"success_rate": 0.7681,
"success": 48,
"failed": 21,
"success_rate": 0.6957,
"stage_failures": {
"module_load": 0,
"init": 0,
"home": 1,
"category": 4,
"detail": 1,
"player": 1,
"url_check": 3,
"unexpected": 6
"detail": 2,
"player": 0,
"url_check": 5,
"unexpected": 9
}
},
"results": [
@@ -27,14 +27,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 386.999,
"module_load": 124.167,
"init": 0.001,
"home": 0.003,
"category": 1855.771,
"detail": 1287.098,
"player": 0.004,
"url_check": 225.315,
"total": 3757.688
"home": 0.002,
"category": 2898.625,
"detail": 1183.789,
"player": 0.008,
"url_check": 237.828,
"total": 4450.895
},
"counts": {
"classes": 5,
@@ -63,17 +63,17 @@
"file": "AAZ音乐.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='www.aaz.cx', 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.aaz.cx', 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 628, in validate_spider_file\n home_result = _run_timed(result[\"timings_ms\"], \"home\", spider.homeContent, clock, False)\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 290, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/AAZ音乐.txt\", line 220, in homeContent\n File \"/home/harold/workspace/tvbox-resources/py/AAZ音乐.txt\", line 57, in _fetch_html\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.ReadTimeout: HTTPSConnectionPool(host='www.aaz.cx', port=443): Read timed out. (read timeout=10)\n",
"error": "HTTPSConnectionPool(host='www.aaz.cx', port=443): Max retries exceeded with url: /list/new.html (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.aaz.cx', port=443): Max retries exceeded with url: /list/new.html (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 628, in validate_spider_file\n home_result = _run_timed(result[\"timings_ms\"], \"home\", spider.homeContent, clock, False)\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 290, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/AAZ音乐.txt\", line 220, in homeContent\n File \"/home/harold/workspace/tvbox-resources/py/AAZ音乐.txt\", line 57, in _fetch_html\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='www.aaz.cx', port=443): Max retries exceeded with url: /list/new.html (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)')))\n",
"timings_ms": {
"module_load": 403.13,
"module_load": 196.352,
"init": 0.001,
"home": 10032.843,
"home": 3572.588,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 10447.593
"total": 3771.926
},
"counts": {
"classes": 0,
@@ -105,14 +105,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 545.797,
"module_load": 241.24,
"init": 0.001,
"home": 0.001,
"category": 1236.212,
"detail": 1229.885,
"player": 0.01,
"url_check": 1388.371,
"total": 4403.756
"category": 1241.005,
"detail": 1205.691,
"player": 0.009,
"url_check": 781.016,
"total": 3469.711
},
"counts": {
"classes": 2,
@@ -139,39 +139,39 @@
{
"spider": "QQ音乐",
"file": "QQ音乐.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='music.har01d.cn', port=443): Max retries exceeded with url: /api/playlist?id=9271247911&num=1000 (Caused by ConnectTimeoutError(<HTTPSConnection(host='music.har01d.cn', port=443) at 0x77457803e350>, 'Connection to music.har01d.cn 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='music.har01d.cn', port=443) at 0x77457803e350>, 'Connection to music.har01d.cn 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='music.har01d.cn', port=443): Max retries exceeded with url: /api/playlist?id=9271247911&num=1000 (Caused by ConnectTimeoutError(<HTTPSConnection(host='music.har01d.cn', port=443) at 0x77457803e350>, 'Connection to music.har01d.cn 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 644, 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 420, 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 290, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/QQ音乐.txt\", line 3228, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/QQ音乐.txt\", line 2063, in _get_json\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='music.har01d.cn', port=443): Max retries exceeded with url: /api/playlist?id=9271247911&num=1000 (Caused by ConnectTimeoutError(<HTTPSConnection(host='music.har01d.cn', port=443) at 0x77457803e350>, 'Connection to music.har01d.cn timed out. (connect timeout=10)'))\n",
"timings_ms": {
"module_load": 505.342,
"init": 0.013,
"home": 0.01,
"category": 475.142,
"detail": 807.85,
"player": 320.566,
"url_check": 78.761,
"total": 2194.699
"module_load": 158.262,
"init": 0.007,
"home": 0.002,
"category": 543.969,
"detail": 10011.393,
"player": 0.0,
"url_check": 0.0,
"total": 10719.554
},
"counts": {
"classes": 6,
"category_videos": 30,
"detail_videos": 1,
"episodes": 1
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "playlist",
"vod_id": "playlist:9271247911",
"flag": "QQ音乐",
"play_id": "qqmusic:0014qLXa1JrJ11:618693022|偏向 (摇滚版) - 孟维来"
"flag": null,
"play_id": null
},
"player": {
"parse": 0,
"url": "https://isure.stream.qqmusic.qq.com/F0000014qLXa1JrJ11.flac?guid=baf3bc1b5d8f113cf6708878b59b89fc&vkey=8A14C9621FA90A02DBEA2E62FCA3F709CDE30AD4EE8EC4DB536D4ABD965806B2BD0DF7C12F22D57B69B6015370117FE8BDD33DADA3D031A3__v2b9abc73&uin=1152921504846230218&fromtag=119114&redirect=1",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://isure.stream.qqmusic.qq.com/F0000014qLXa1JrJ11.flac?guid=baf3bc1b5d8f113cf6708878b59b89fc&vkey=8A14C9621FA90A02DBEA2E62FCA3F709CDE30AD4EE8EC4DB536D4ABD965806B2BD0DF7C12F22D57B69B6015370117FE8BDD33DADA3D031A3__v2b9abc73&uin=1152921504846230218&fromtag=119114&redirect=1",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
@@ -183,14 +183,14 @@
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 375.326,
"init": 0.002,
"home": 0.002,
"category": 846.913,
"module_load": 184.292,
"init": 0.001,
"home": 0.001,
"category": 1813.881,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 2205.15
"total": 2916.712
},
"counts": {
"classes": 6,
@@ -222,34 +222,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 417.436,
"module_load": 180.241,
"init": 0.001,
"home": 0.001,
"category": 2471.538,
"detail": 1988.147,
"player": 1542.595,
"url_check": 856.886,
"total": 7280.265
"home": 0.0,
"category": 1607.157,
"detail": 1584.503,
"player": 3473.813,
"url_check": 817.828,
"total": 19539.851
},
"counts": {
"classes": 7,
"category_videos": 212,
"category_videos": 72,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "index",
"vod_id": "203862",
"tid": "drama",
"vod_id": "203693",
"flag": "YouKnowTV",
"play_id": "eyJ2b2RfaWQiOiIyMDM4NjIiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM4NjItMS0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM4NjItMS0xLyJ9LHsic291cmNlIjoi57q_6LevOSIsInNvdXJjZV9pZCI6IjIiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM4NjItMi0xLyJ9LHsic291cmNlIjoi57q_6LevMTAiLCJzb3VyY2VfaWQiOiIyIiwiZXBpc29kZV91cmwiOiJodHRwczovL3d3dy55b3Vrbm93LnR2L3AvMjAzODYyLTItMS8ifV19"
"play_id": "eyJ2b2RfaWQiOiIyMDM2OTMiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM2OTMtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM2OTMtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMjMiLCJzb3VyY2VfaWQiOiIyIiwiZXBpc29kZV91cmwiOiJodHRwczovL3d3dy55b3Vrbm93LnR2L3AvMjAzNjkzLTItMS8ifSx7InNvdXJjZSI6Iue6v-i3rzI0Iiwic291cmNlX2lkIjoiMiIsImVwaXNvZGVfdXJsIjoiaHR0cHM6Ly93d3cueW91a25vdy50di9wLzIwMzY5My0yLTEvIn1dfQ"
},
"player": {
"parse": 0,
"url": "https://vip.dytt-tvs.com/20260510/19606_6ddeeff7/index.m3u8",
"url": "https://vip.dytt-tvs.com/20260505/19001_5f2150c4/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cnvod.jimxtc.com/20260510/19606_6ddeeff7/index.m3u8",
"final_url": "https://cnvod.jimxtc.com/20260505/19001_5f2150c4/index.m3u8",
"reason": null
}
},
@@ -257,67 +257,28 @@
"spider": "不太灵",
"file": "不太灵.txt",
"success": false,
"failed_stage": "player",
"error": "playerContent 未返回播放地址",
"failed_stage": "detail",
"error": "详情缺少播放源或播放列表",
"traceback": null,
"timings_ms": {
"module_load": 425.829,
"module_load": 120.068,
"init": 0.001,
"home": 1051.218,
"category": 1286.17,
"detail": 1098.893,
"player": 0.008,
"home": 2152.763,
"category": 1888.451,
"detail": 1182.134,
"player": 0.0,
"url_check": 0.0,
"total": 6121.347
"total": 8036.212
},
"counts": {
"classes": 5,
"category_videos": 25,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "2",
"vod_id": "35922594",
"flag": "baidu#1",
"play_id": "baidu"
},
"player": {
"parse": 0,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
{
"spider": "世纪音乐",
"file": "世纪音乐.txt",
"success": false,
"failed_stage": "detail",
"error": "详情缺少播放源或播放列表",
"traceback": null,
"timings_ms": {
"module_load": 395.509,
"init": 0.001,
"home": 172.016,
"category": 0.004,
"detail": 173.934,
"player": 0.0,
"url_check": 0.0,
"total": 881.828
},
"counts": {
"classes": 5,
"category_videos": 3,
"detail_videos": 1,
"episodes": 0
},
"samples": {
"tid": "rank_list",
"vod_id": "rank:rise",
"tid": "2",
"vod_id": "36310138",
"flag": null,
"play_id": null
},
@@ -331,6 +292,45 @@
"reason": null
}
},
{
"spider": "世纪音乐",
"file": "世纪音乐.txt",
"success": false,
"failed_stage": "url_check",
"error": "HTTP 403",
"traceback": null,
"timings_ms": {
"module_load": 186.226,
"init": 0.001,
"home": 199.759,
"category": 0.008,
"detail": 139.217,
"player": 0.007,
"url_check": 198.843,
"total": 1226.376
},
"counts": {
"classes": 5,
"category_videos": 3,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "rank_list",
"vod_id": "rank:rise",
"flag": "世纪音乐",
"play_id": "music:hkwyytdecc"
},
"player": {
"parse": 0,
"url": "https://www.4c44.com/data/down.php?ac=music&id=hkwyytdecc",
"valid": false,
"reachable": false,
"status_code": 403,
"final_url": "https://www.4c44.com/data/down.php?ac=music&id=hkwyytdecc",
"reason": "HTTP 403"
}
},
{
"spider": "两个BT",
"file": "两个BT.txt",
@@ -339,14 +339,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 457.194,
"module_load": 187.162,
"init": 0.001,
"home": 0.001,
"category": 2454.804,
"detail": 1007.067,
"player": 1986.282,
"url_check": 1413.528,
"total": 7329.261
"category": 2153.408,
"detail": 1067.339,
"player": 1953.897,
"url_check": 1452.195,
"total": 6816.428
},
"counts": {
"classes": 14,
@@ -362,11 +362,11 @@
},
"player": {
"parse": 0,
"url": "https://zijieapi.douyinbyte.com/m3u8/28dd3fda4575e630c0d0a49b069e9f12.m3u8",
"url": "https://zijieapi.douyinbyte.com/m3u8/3cb3acf52e75d732149a3d473dfa8a8e.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://zijieapi.douyinbyte.com/m3u8/28dd3fda4575e630c0d0a49b069e9f12.m3u8",
"final_url": "https://zijieapi.douyinbyte.com/m3u8/3cb3acf52e75d732149a3d473dfa8a8e.m3u8",
"reason": null
}
},
@@ -378,14 +378,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 434.847,
"module_load": 125.638,
"init": 0.001,
"home": 934.484,
"category": 1110.565,
"detail": 2879.913,
"player": 0.02,
"url_check": 3173.326,
"total": 8536.633
"home": 6889.997,
"category": 979.383,
"detail": 2883.706,
"player": 0.082,
"url_check": 1676.787,
"total": 12558.649
},
"counts": {
"classes": 7,
@@ -405,7 +405,7 @@
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://d1jdnmkc1n5cn4.cloudfront.net/hls_overseas/3116efca936e799e9fb0d680368fe01d2028f183.m3u8",
"final_url": "https://d1jdnmkc1n5cn4.cloudfront.net/hls_overseas/459cad3d303492f77b77a9a9f5e4b19f0d0abc64.m3u8",
"reason": null
}
},
@@ -417,14 +417,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 644, 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 404, 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 290, 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": 442.571,
"module_load": 160.25,
"init": 0.001,
"home": 0.001,
"category": 10064.161,
"category": 10024.738,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 10517.241
"total": 10202.432
},
"counts": {
"classes": 5,
@@ -456,14 +456,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 427.921,
"module_load": 118.914,
"init": 0.001,
"home": 0.002,
"category": 4596.959,
"detail": 1507.02,
"player": 0.007,
"url_check": 1024.446,
"total": 7566.844
"home": 0.001,
"category": 2481.149,
"detail": 967.149,
"player": 0.005,
"url_check": 1028.227,
"total": 4605.03
},
"counts": {
"classes": 4,
@@ -474,7 +474,7 @@
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/12361.html",
"flag": "baidu#二小",
"flag": "百度#二小",
"play_id": "https://pan.baidu.com/s/170zLzoHZ_Cr677FnLppGAA?pwd=4y9j"
},
"player": {
@@ -495,14 +495,14 @@
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 444.978,
"init": 0.001,
"home": 0.001,
"category": 2588.472,
"module_load": 192.811,
"init": 0.0,
"home": 0.0,
"category": 1510.627,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5686.439
"total": 3465.188
},
"counts": {
"classes": 4,
@@ -534,14 +534,14 @@
"error": "HTTP 403",
"traceback": null,
"timings_ms": {
"module_load": 413.111,
"module_load": 163.776,
"init": 0.001,
"home": 216.032,
"category": 269.95,
"detail": 254.44,
"player": 408.197,
"url_check": 178.631,
"total": 2898.704
"home": 220.583,
"category": 289.586,
"detail": 240.137,
"player": 357.734,
"url_check": 150.436,
"total": 2453.342
},
"counts": {
"classes": 4,
@@ -557,11 +557,11 @@
},
"player": {
"parse": 0,
"url": "https://a3fkpcui142jgve.302.fledgecloud.com:56782/zj-302-cdn.bwcgee.cn/307ba6dcef6871ef85774531959c0402/67389eb6001c4a1e9b1f2f7ca2a82dc1-1b1785a818fc693827ab9628d26d600b-ld.mp4?auth_key=1778584277-0ae87816f2d060a1204852d27f5c8f73-0-75cf9e215d72d4211f3bbd9dd11674a9&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=9d07dc10fc404304bfb95a1608efa71e&hevc=false&seasonId=51705",
"url": "https://tfvt1gr3demttga51hctt8rzdkpy.ourdvsssvip.com:20443/ws-302.bwcgee.cn/307ba6dcef6871ef85774531959c0402/67389eb6001c4a1e9b1f2f7ca2a82dc1-1b1785a818fc693827ab9628d26d600b-ld.mp4?key=4ac0514f22d01d0a42a1a065c636993a&time=1778590510845&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=36c90b6f41864170b4c225ed8298b5e7&hevc=false&seasonId=51705&wsiphost=ipdbme&wsrid_tag=6a02eaee_PS-CTU-01y7n22_19048-41043-s1t1778576110927&x-mamba-business-label=13551&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
"valid": false,
"reachable": false,
"status_code": 403,
"final_url": "https://a3fkpcui142jgve.302.fledgecloud.com:56782/zj-302-cdn.bwcgee.cn/307ba6dcef6871ef85774531959c0402/67389eb6001c4a1e9b1f2f7ca2a82dc1-1b1785a818fc693827ab9628d26d600b-ld.mp4?auth_key=1778584277-0ae87816f2d060a1204852d27f5c8f73-0-75cf9e215d72d4211f3bbd9dd11674a9&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=9d07dc10fc404304bfb95a1608efa71e&hevc=false&seasonId=51705",
"final_url": "https://tfvt1gr3demttga51hctt8rzdkpy.ourdvsssvip.com:20443/ws-302.bwcgee.cn/307ba6dcef6871ef85774531959c0402/67389eb6001c4a1e9b1f2f7ca2a82dc1-1b1785a818fc693827ab9628d26d600b-ld.mp4?key=4ac0514f22d01d0a42a1a065c636993a&time=1778590510845&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=36c90b6f41864170b4c225ed8298b5e7&hevc=false&seasonId=51705&wsiphost=ipdbme&wsrid_tag=6a02eaee_PS-CTU-01y7n22_19048-41043-s1t1778576110927&x-mamba-business-label=13551&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
"reason": "HTTP 403"
}
},
@@ -573,14 +573,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 460.849,
"init": 0.002,
"home": 0.003,
"category": 373.546,
"detail": 627.749,
"player": 0.003,
"url_check": 274.329,
"total": 1786.639
"module_load": 199.21,
"init": 0.001,
"home": 0.001,
"category": 371.939,
"detail": 584.846,
"player": 0.002,
"url_check": 286.215,
"total": 1443.57
},
"counts": {
"classes": 6,
@@ -612,14 +612,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 444.778,
"init": 0.002,
"home": 0.004,
"category": 1614.294,
"detail": 1999.95,
"player": 0.01,
"url_check": 238.54,
"total": 4355.733
"module_load": 168.042,
"init": 0.0,
"home": 0.001,
"category": 1514.139,
"detail": 2969.707,
"player": 0.004,
"url_check": 216.753,
"total": 4870.1
},
"counts": {
"classes": 4,
@@ -646,39 +646,39 @@
{
"spider": "修罗",
"file": "修罗.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='v.xlys.ltd.ua', port=443): Max retries exceeded with url: /dongzuo/26872.htm (Caused by ConnectTimeoutError(<HTTPSConnection(host='v.xlys.ltd.ua', port=443) at 0x77457803d090>, 'Connection to v.xlys.ltd.ua 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='v.xlys.ltd.ua', port=443) at 0x77457803d090>, 'Connection to v.xlys.ltd.ua 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='v.xlys.ltd.ua', port=443): Max retries exceeded with url: /dongzuo/26872.htm (Caused by ConnectTimeoutError(<HTTPSConnection(host='v.xlys.ltd.ua', port=443) at 0x77457803d090>, 'Connection to v.xlys.ltd.ua 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 644, 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 420, 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 290, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/修罗.txt\", line 464, in detailContent\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.ConnectTimeout: HTTPSConnectionPool(host='v.xlys.ltd.ua', port=443): Max retries exceeded with url: /dongzuo/26872.htm (Caused by ConnectTimeoutError(<HTTPSConnection(host='v.xlys.ltd.ua', port=443) at 0x77457803d090>, 'Connection to v.xlys.ltd.ua timed out. (connect timeout=15)'))\n",
"timings_ms": {
"module_load": 10.55,
"module_load": 6.836,
"init": 0.001,
"home": 0.002,
"category": 2212.83,
"detail": 1558.691,
"player": 3034.005,
"url_check": 715.322,
"total": 16620.259
"home": 0.001,
"category": 3748.766,
"detail": 15018.034,
"player": 0.0,
"url_check": 0.0,
"total": 18775.974
},
"counts": {
"classes": 4,
"category_videos": 24,
"detail_videos": 1,
"episodes": 1
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "tv",
"vod_id": "guoju/26874",
"flag": "修罗直连",
"play_id": "guoju/play/26874-0"
"tid": "movie",
"vod_id": "dongzuo/26872",
"flag": null,
"play_id": null
},
"player": {
"parse": 0,
"url": "https://v16m-default.akamaized.net/9cdf18b2dd4ad589579d6c41467602aa/862bc9d9/video/tos/alisg/tos-alisg-v-26190a-sg/osERzcA0Kf5u6i4Y2dHBowAgqWAPYjAAkEAmim/",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://v16m-default.akamaized.net/9cdf18b2dd4ad589579d6c41467602aa/862bc9d9/video/tos/alisg/tos-alisg-v-26190a-sg/osERzcA0Kf5u6i4Y2dHBowAgqWAPYjAAkEAmim/",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
@@ -690,14 +690,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.672,
"module_load": 5.932,
"init": 0.001,
"home": 0.0,
"category": 1522.099,
"detail": 1845.164,
"player": 3228.225,
"url_check": 3520.09,
"total": 10121.642
"home": 0.001,
"category": 1533.467,
"detail": 1720.499,
"player": 3219.214,
"url_check": 3398.245,
"total": 9877.83
},
"counts": {
"classes": 8,
@@ -729,14 +729,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.448,
"init": 0.001,
"home": 0.0,
"category": 5092.668,
"detail": 4250.311,
"player": 13128.99,
"url_check": 4856.83,
"total": 50593.676
"module_load": 5.109,
"init": 0.0,
"home": 0.001,
"category": 2772.373,
"detail": 2967.248,
"player": 5398.713,
"url_check": 1433.555,
"total": 12577.945
},
"counts": {
"classes": 5,
@@ -745,18 +745,18 @@
"episodes": 1
},
"samples": {
"tid": "juji",
"vod_id": "vod/62426",
"tid": "dianying",
"vod_id": "vod/62935",
"flag": "BF备用",
"play_id": "play/62426-2-1"
"play_id": "play/62935-3-1"
},
"player": {
"parse": 1,
"url": "https://www.jqqzx.cc/play/62426-2-1.html",
"url": "https://www.jqqzx.cc/play/62935-3-1.html",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://www.jqqzx.one/play/62426-2-1.html",
"final_url": "https://www.jqqzx.one/play/62935-3-1.html",
"reason": null
}
},
@@ -768,14 +768,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.915,
"module_load": 10.672,
"init": 0.001,
"home": 0.001,
"category": 1135.488,
"detail": 1281.978,
"player": 3305.577,
"url_check": 1459.531,
"total": 13580.713
"category": 1496.553,
"detail": 1592.245,
"player": 3433.013,
"url_check": 1022.989,
"total": 13434.46
},
"counts": {
"classes": 6,
@@ -791,11 +791,11 @@
},
"player": {
"parse": 0,
"url": "https://img.ruyijx.com/m3u8/K6dNWiYX2OHlmq.m3u8?KcYw0ZTyndhUe48HFC",
"url": "https://img.ruyijx.com/m3u8/0xtzop0l8UK8x0.m3u8?RgnvZvQ4xxmyJlCJ0k",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://img.ruyijx.com/m3u8/K6dNWiYX2OHlmq.m3u8?KcYw0ZTyndhUe48HFC",
"final_url": "https://img.ruyijx.com/m3u8/0xtzop0l8UK8x0.m3u8?RgnvZvQ4xxmyJlCJ0k",
"reason": null
}
},
@@ -807,14 +807,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.19,
"module_load": 10.36,
"init": 0.0,
"home": 3159.964,
"category": 272.207,
"detail": 789.792,
"player": 0.002,
"url_check": 114.642,
"total": 4341.292
"home": 3104.433,
"category": 301.263,
"detail": 818.321,
"player": 0.008,
"url_check": 255.543,
"total": 4490.678
},
"counts": {
"classes": 11,
@@ -846,14 +846,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.208,
"init": 339.105,
"home": 0.005,
"category": 204.632,
"detail": 190.426,
"module_load": 6.579,
"init": 336.734,
"home": 0.004,
"category": 181.325,
"detail": 194.497,
"player": 0.002,
"url_check": 230.903,
"total": 971.154
"url_check": 199.495,
"total": 919.634
},
"counts": {
"classes": 7,
@@ -864,7 +864,7 @@
"samples": {
"tid": "ju",
"vod_id": "/ju/10438.html",
"flag": "quark",
"flag": "夸克",
"play_id": "https://pan.quark.cn/s/0955c2284f45"
},
"player": {
@@ -885,14 +885,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.719,
"init": 81.922,
"module_load": 7.119,
"init": 83.106,
"home": 0.001,
"category": 208.618,
"detail": 2350.439,
"player": 333.516,
"url_check": 107.079,
"total": 3086.907
"category": 198.382,
"detail": 475.03,
"player": 292.328,
"url_check": 81.204,
"total": 1137.837
},
"counts": {
"classes": 11,
@@ -908,11 +908,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=ffde82f54cbe133a51d342293bf51019&buy_key=FM&token=1733&timestamp=1778569882&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=4be68442c82a6168ad4020667de88805&buy_key=FM&token=9724&timestamp=1778576113&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=ffde82f54cbe133a51d342293bf51019&buy_key=FM&token=1733&timestamp=1778569882&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=4be68442c82a6168ad4020667de88805&buy_key=FM&token=9724&timestamp=1778576113&duration=453",
"reason": null
}
},
@@ -924,14 +924,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 7.292,
"module_load": 10.717,
"init": 0.001,
"home": 2040.901,
"category": 1600.038,
"detail": 2961.01,
"player": 2254.579,
"url_check": 167.241,
"total": 9032.266
"home": 2814.057,
"category": 1485.699,
"detail": 3367.524,
"player": 1985.997,
"url_check": 206.71,
"total": 9871.919
},
"counts": {
"classes": 8,
@@ -947,11 +947,11 @@
},
"player": {
"parse": 0,
"url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778567342&sign=78f18fa6a1ffe3be0392ee24b07f882b",
"url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778573265&sign=55d441a977112b0ecb97d8bde9f98ebb",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778567342&sign=78f18fa6a1ffe3be0392ee24b07f882b",
"final_url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778573265&sign=55d441a977112b0ecb97d8bde9f98ebb",
"reason": null
}
},
@@ -963,14 +963,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 644, 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 404, 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 290, 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": 3.67,
"init": 0.001,
"home": 0.0,
"category": 884.404,
"module_load": 6.66,
"init": 0.002,
"home": 0.001,
"category": 833.983,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 890.439
"total": 843.077
},
"counts": {
"classes": 5,
@@ -1002,14 +1002,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.91,
"init": 0.0,
"module_load": 16.563,
"init": 0.001,
"home": 0.001,
"category": 972.233,
"detail": 2581.941,
"player": 1501.413,
"url_check": 300.078,
"total": 5363.703
"category": 980.482,
"detail": 2202.688,
"player": 1371.618,
"url_check": 278.544,
"total": 4850.998
},
"counts": {
"classes": 6,
@@ -1025,11 +1025,11 @@
},
"player": {
"parse": 0,
"url": "https://media-sxty-fy-corp.sx3oss.ctyunxs.cn/CORPCLOUD/f076ccf5-a095-45a2-b086-cbf66f4aa40d.mp4?response-content-disposition=attachment%3Bfilename%3D%22%E9%93%81%E8%A1%80%E6%88%98%E5%A3%AB%E6%9D%80%E6%88%AE%E4%B9%8B%E5%9C%B02025HD1080P.mp4%22%3Bfilename*%3DUTF-8%27%27%25E9%2593%2581%25E8%25A1%2580%25E6%2588%2598%25E5%25A3%25AB%25E6%259D%2580%25E6%2588%25AE%25E4%25B9%258B%25E5%259C%25B02025HD1080P.mp4&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=CORP&x-amz-CLIENTTYPEIN=UNKNOWN&Signature=9bYHmMUlwKc%2BA8FUnKwIzWv7ALI%3D&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&Expires=1778573042&x-amz-limitrate=102400&response-content-type=video/mp4&x-amz-FSIZE=2183471772&x-amz-UID=10000004591358&x-amz-UFID=31374317010337932",
"url": "https://media-sxty-fy-corp.sx3oss.ctyunxs.cn/CORPCLOUD/f076ccf5-a095-45a2-b086-cbf66f4aa40d.mp4?response-content-disposition=attachment%3Bfilename%3D%22%E9%93%81%E8%A1%80%E6%88%98%E5%A3%AB%E6%9D%80%E6%88%AE%E4%B9%8B%E5%9C%B02025HD1080P.mp4%22%3Bfilename*%3DUTF-8%27%27%25E9%2593%2581%25E8%25A1%2580%25E6%2588%2598%25E5%25A3%25AB%25E6%259D%2580%25E6%2588%25AE%25E4%25B9%258B%25E5%259C%25B02025HD1080P.mp4&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=CORP&x-amz-CLIENTTYPEIN=UNKNOWN&Signature=kr2NtOhidU8XxeECKVBjuLaQR0k%3D&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&Expires=1778583898&x-amz-limitrate=102400&response-content-type=video/mp4&x-amz-FSIZE=2183471772&x-amz-UID=10000004591358&x-amz-UFID=31374317010337932",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://media-sxty-fy-corp.sx3oss.ctyunxs.cn/CORPCLOUD/f076ccf5-a095-45a2-b086-cbf66f4aa40d.mp4?response-content-disposition=attachment%3Bfilename%3D%22%E9%93%81%E8%A1%80%E6%88%98%E5%A3%AB%E6%9D%80%E6%88%AE%E4%B9%8B%E5%9C%B02025HD1080P.mp4%22%3Bfilename*%3DUTF-8%27%27%25E9%2593%2581%25E8%25A1%2580%25E6%2588%2598%25E5%25A3%25AB%25E6%259D%2580%25E6%2588%25AE%25E4%25B9%258B%25E5%259C%25B02025HD1080P.mp4&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=CORP&x-amz-CLIENTTYPEIN=UNKNOWN&Signature=9bYHmMUlwKc%2BA8FUnKwIzWv7ALI%3D&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&Expires=1778573042&x-amz-limitrate=102400&response-content-type=video/mp4&x-amz-FSIZE=2183471772&x-amz-UID=10000004591358&x-amz-UFID=31374317010337932",
"final_url": "https://media-sxty-fy-corp.sx3oss.ctyunxs.cn/CORPCLOUD/f076ccf5-a095-45a2-b086-cbf66f4aa40d.mp4?response-content-disposition=attachment%3Bfilename%3D%22%E9%93%81%E8%A1%80%E6%88%98%E5%A3%AB%E6%9D%80%E6%88%AE%E4%B9%8B%E5%9C%B02025HD1080P.mp4%22%3Bfilename*%3DUTF-8%27%27%25E9%2593%2581%25E8%25A1%2580%25E6%2588%2598%25E5%25A3%25AB%25E6%259D%2580%25E6%2588%25AE%25E4%25B9%258B%25E5%259C%25B02025HD1080P.mp4&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=CORP&x-amz-CLIENTTYPEIN=UNKNOWN&Signature=kr2NtOhidU8XxeECKVBjuLaQR0k%3D&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&Expires=1778583898&x-amz-limitrate=102400&response-content-type=video/mp4&x-amz-FSIZE=2183471772&x-amz-UID=10000004591358&x-amz-UFID=31374317010337932",
"reason": null
}
},
@@ -1041,14 +1041,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.319,
"module_load": 6.914,
"init": 0.001,
"home": 0.0,
"category": 3006.791,
"detail": 12366.16,
"player": 0.004,
"url_check": 1373.655,
"total": 16751.366
"home": 0.001,
"category": 1508.009,
"detail": 4852.847,
"player": 0.003,
"url_check": 1157.392,
"total": 7525.883
},
"counts": {
"classes": 6,
@@ -1059,7 +1059,7 @@
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/9447.html",
"flag": "baidu#多多",
"flag": "百度#多多",
"play_id": "https://pan.baidu.com/s/1tCpt9UMVoL9OxQyvpKUYZA?pwd=yyds"
},
"player": {
@@ -1080,14 +1080,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.088,
"module_load": 3.681,
"init": 0.001,
"home": 0.0,
"category": 1895.563,
"detail": 1539.397,
"player": 0.003,
"url_check": 223.956,
"total": 3664.746
"home": 0.001,
"category": 1925.628,
"detail": 1373.129,
"player": 0.002,
"url_check": 223.204,
"total": 3526.433
},
"counts": {
"classes": 6,
@@ -1098,7 +1098,7 @@
"samples": {
"tid": "dy",
"vod_id": "/dy/29706.html",
"flag": "quark",
"flag": "夸克",
"play_id": "https://pan.quark.cn/s/e5345bdd71f6"
},
"player": {
@@ -1119,14 +1119,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.551,
"module_load": 3.825,
"init": 0.001,
"home": 0.007,
"category": 2830.459,
"detail": 1446.628,
"home": 0.005,
"category": 2699.192,
"detail": 2025.406,
"player": 0.003,
"url_check": 1576.216,
"total": 5859.635
"url_check": 1575.664,
"total": 6304.584
},
"counts": {
"classes": 6,
@@ -1158,14 +1158,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.735,
"module_load": 9.591,
"init": 0.001,
"home": 0.001,
"category": 1680.503,
"detail": 1239.481,
"player": 1928.146,
"url_check": 506.307,
"total": 5359.738
"category": 2129.092,
"detail": 1097.769,
"player": 2006.867,
"url_check": 397.82,
"total": 5647.453
},
"counts": {
"classes": 4,
@@ -1181,11 +1181,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=20260512T071127Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260512%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=21c4ef0da597952a46fb6ad6808fb49ef3c625fd2e0afe801345bc99954dac08",
"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=20260512T085520Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260512%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=4907e2b114a0260b7f7224c5e301695ac0e6dde569fef4b2edffcf32a685c7e8",
"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=20260512T071127Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260512%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=21c4ef0da597952a46fb6ad6808fb49ef3c625fd2e0afe801345bc99954dac08",
"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=20260512T085520Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260512%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=4907e2b114a0260b7f7224c5e301695ac0e6dde569fef4b2edffcf32a685c7e8",
"reason": null
}
},
@@ -1197,14 +1197,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.452,
"module_load": 3.32,
"init": 0.015,
"home": 190.824,
"category": 290.003,
"detail": 356.845,
"home": 212.669,
"category": 284.744,
"detail": 1971.346,
"player": 0.002,
"url_check": 145.769,
"total": 987.53
"url_check": 130.882,
"total": 2603.721
},
"counts": {
"classes": 30,
@@ -1216,15 +1216,15 @@
"tid": "都市",
"vod_id": "110000044555935694",
"flag": "1080P",
"play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778569883&sign=30699dd3f7962ffed2752ec480aa5f92"
"play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778576117&sign=692be92efd258c4fdfb376a5cd770a10"
},
"player": {
"parse": 0,
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778569883&sign=30699dd3f7962ffed2752ec480aa5f92",
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778576117&sign=692be92efd258c4fdfb376a5cd770a10",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778569883&sign=30699dd3f7962ffed2752ec480aa5f92",
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778576117&sign=692be92efd258c4fdfb376a5cd770a10",
"reason": null
}
},
@@ -1236,14 +1236,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.317,
"module_load": 4.305,
"init": 0.001,
"home": 0.0,
"category": 906.394,
"detail": 1406.238,
"player": 801.006,
"url_check": 1668.026,
"total": 4787.881
"home": 0.001,
"category": 779.261,
"detail": 1355.324,
"player": 732.882,
"url_check": 1314.867,
"total": 4187.294
},
"counts": {
"classes": 5,
@@ -1275,14 +1275,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.112,
"module_load": 7.448,
"init": 0.001,
"home": 0.0,
"category": 541.289,
"detail": 652.457,
"home": 0.001,
"category": 539.388,
"detail": 794.159,
"player": 0.002,
"url_check": 253.54,
"total": 1451.082
"url_check": 151.132,
"total": 1492.624
},
"counts": {
"classes": 5,
@@ -1314,14 +1314,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.528,
"module_load": 3.691,
"init": 0.001,
"home": 0.001,
"category": 1465.184,
"detail": 1116.148,
"player": 0.006,
"url_check": 293.303,
"total": 2880.722
"home": 0.0,
"category": 1215.032,
"detail": 1563.83,
"player": 0.013,
"url_check": 267.932,
"total": 3051.056
},
"counts": {
"classes": 7,
@@ -1332,7 +1332,7 @@
"samples": {
"tid": "25",
"vod_id": "/index.php/vod/detail/id/7873.html",
"flag": "a115#木偶",
"flag": "115#木偶",
"play_id": "https://115cdn.com/s/swf0al236dh?password=y244"
},
"player": {
@@ -1350,17 +1350,17 @@
"file": "樱花动漫.txt",
"success": false,
"failed_stage": "url_check",
"error": "HTTP 404",
"error": "HTTP 403",
"traceback": null,
"timings_ms": {
"module_load": 3.736,
"module_load": 3.886,
"init": 0.001,
"home": 0.0,
"category": 5479.436,
"detail": 4142.055,
"player": 4369.55,
"url_check": 2490.303,
"total": 28305.503
"home": 0.001,
"category": 4324.913,
"detail": 4381.61,
"player": 4480.944,
"url_check": 4340.0,
"total": 30003.334
},
"counts": {
"classes": 4,
@@ -1370,18 +1370,18 @@
},
"samples": {
"tid": "riman",
"vod_id": "/detail/18760/",
"vod_id": "/detail/18812/",
"flag": "高清",
"play_id": "/play/18760-1-1/"
"play_id": "/play/18812-1-1/"
},
"player": {
"parse": 0,
"url": "https://v.lzcdn27.com/20260403/8132_ca6ebb90/index.m3u8",
"url": "https://vip.ffzy-plays.com/20260407/52135_b7adf8c9/index.m3u8",
"valid": false,
"reachable": false,
"status_code": 404,
"final_url": "https://v.lzcdn27.com/20260403/8132_ca6ebb90/index.m3u8",
"reason": "HTTP 404"
"status_code": 403,
"final_url": "https://vip.ffzy-plays.com/20260407/52135_b7adf8c9/index.m3u8",
"reason": "HTTP 403"
}
},
{
@@ -1392,14 +1392,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.95,
"init": 4231.04,
"home": 1382.217,
"category": 1940.954,
"detail": 1388.0,
"player": 5559.544,
"url_check": 79.345,
"total": 14587.855
"module_load": 9.705,
"init": 3716.669,
"home": 1302.219,
"category": 1295.741,
"detail": 1800.927,
"player": 6279.876,
"url_check": 101.864,
"total": 14509.519
},
"counts": {
"classes": 8,
@@ -1415,50 +1415,50 @@
},
"player": {
"parse": 0,
"url": "https://ad.kpyy258.com/m3u87/share/7256561/7452333/20260503/185008/1080/index.m3u8?sign=c12fba23ae39f2f047776ae470ceba6d&t=1778569895",
"url": "https://tt0923.abc7722.com/m3u87/share/7256561/7452333/20260503/185008/1080/index.m3u8?sign=5b3496094bfce0d1707f4b24b3adc5c6&t=1778576130",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://ad.kpyy258.com/m3u87/share/7256561/7452333/20260503/185008/1080/index.m3u8?sign=c12fba23ae39f2f047776ae470ceba6d&t=1778569895",
"final_url": "https://tt0923.abc7722.com/m3u87/share/7256561/7452333/20260503/185008/1080/index.m3u8?sign=5b3496094bfce0d1707f4b24b3adc5c6&t=1778576130",
"reason": null
}
},
{
"spider": "欧歌",
"file": "欧歌.txt",
"success": true,
"failed_stage": null,
"error": null,
"success": false,
"failed_stage": "detail",
"error": "详情缺少播放源或播放列表",
"traceback": null,
"timings_ms": {
"module_load": 6.737,
"module_load": 6.16,
"init": 0.001,
"home": 0.001,
"category": 1535.163,
"detail": 883.273,
"player": 0.01,
"url_check": 1333.914,
"total": 3759.646
"category": 1518.206,
"detail": 1068.533,
"player": 0.0,
"url_check": 0.0,
"total": 5590.71
},
"counts": {
"classes": 6,
"category_videos": 72,
"detail_videos": 1,
"episodes": 1
"episodes": 0
},
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/29924.html",
"flag": "baidu",
"play_id": "https://pan.baidu.com/s/1QrS21UinfBlr6zbUBxFCVA?pwd=8888"
"tid": "2",
"vod_id": "/index.php/vod/detail/id/29918.html",
"flag": null,
"play_id": null
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1QrS21UinfBlr6zbUBxFCVA?pwd=8888",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=QrS21UinfBlr6zbUBxFCVA&pwd=8888",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
@@ -1470,14 +1470,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 14.662,
"init": 0.001,
"home": 399.207,
"category": 422.797,
"detail": 1210.593,
"player": 0.022,
"url_check": 155.515,
"total": 2204.064
"module_load": 9.83,
"init": 0.0,
"home": 699.445,
"category": 687.992,
"detail": 822.409,
"player": 0.042,
"url_check": 75.594,
"total": 2296.135
},
"counts": {
"classes": 10,
@@ -1489,15 +1489,15 @@
"tid": "462",
"vod_id": "/drama/41000186435@@听见胎宝心声后,我逆袭了",
"flag": "河马剧场",
"play_id": "https://dzzt-video.cbread.cn/03f8f9fbaff5b5444b071ff4bb071f9a/6a041360/58/5x3/53x4/534x6/53468100014/612428785_1/612428785.720p.narrowv3.mp4"
"play_id": "https://dzzt-video.cbread.cn/a8c3c0746ccd9d0080c149291682cd3a/6a042f80/58/5x3/53x4/534x6/53468100014/612428785_1/612428785.720p.narrowv3.mp4"
},
"player": {
"parse": 0,
"url": "https://dzzt-video.cbread.cn/03f8f9fbaff5b5444b071ff4bb071f9a/6a041360/58/5x3/53x4/534x6/53468100014/612428785_1/612428785.720p.narrowv3.mp4",
"url": "https://dzzt-video.cbread.cn/a8c3c0746ccd9d0080c149291682cd3a/6a042f80/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/03f8f9fbaff5b5444b071ff4bb071f9a/6a041360/58/5x3/53x4/534x6/53468100014/612428785_1/612428785.720p.narrowv3.mp4",
"final_url": "https://dzzt-video.cbread.cn/a8c3c0746ccd9d0080c149291682cd3a/6a042f80/58/5x3/53x4/534x6/53468100014/612428785_1/612428785.720p.narrowv3.mp4",
"reason": null
}
},
@@ -1509,14 +1509,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 9.795,
"init": 0.002,
"home": 0.002,
"category": 1128.463,
"detail": 795.346,
"player": 0.004,
"url_check": 293.178,
"total": 2227.668
"module_load": 4.02,
"init": 0.001,
"home": 0.001,
"category": 1177.215,
"detail": 762.911,
"player": 0.007,
"url_check": 1144.172,
"total": 3088.8
},
"counts": {
"classes": 5,
@@ -1526,17 +1526,17 @@
},
"samples": {
"tid": "1",
"vod_id": "detail/2965",
"flag": "quark",
"play_id": "https://pan.quark.cn/s/98a640e2e3ee"
"vod_id": "detail/3033",
"flag": "百度",
"play_id": "https://pan.baidu.com/s/1D_ftrHBRkMlxRs_aLWExxQ?pwd=p4uw"
},
"player": {
"parse": 0,
"url": "https://pan.quark.cn/s/98a640e2e3ee",
"url": "https://pan.baidu.com/s/1D_ftrHBRkMlxRs_aLWExxQ?pwd=p4uw",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.quark.cn/s/98a640e2e3ee",
"final_url": "https://pan.baidu.com/share/init?surl=D_ftrHBRkMlxRs_aLWExxQ&pwd=p4uw",
"reason": null
}
},
@@ -1548,14 +1548,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 34.717,
"module_load": 4.076,
"init": 0.002,
"home": 112.878,
"category": 119.899,
"detail": 180.036,
"player": 301.251,
"url_check": 79.648,
"total": 829.107
"home": 122.366,
"category": 122.482,
"detail": 155.464,
"player": 319.689,
"url_check": 86.162,
"total": 810.643
},
"counts": {
"classes": 10,
@@ -1571,11 +1571,11 @@
},
"player": {
"parse": 0,
"url": "http://210.16.164.82:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778569909147&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"url": "http://210.16.164.53:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778576120933&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=1778569909147&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"final_url": "http://210.16.164.53:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778576120933&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"reason": null
}
},
@@ -1587,14 +1587,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 12.509,
"module_load": 12.428,
"init": 0.018,
"home": 3610.544,
"category": 1126.545,
"detail": 179.155,
"home": 2959.265,
"category": 1161.957,
"detail": 222.73,
"player": 0.001,
"url_check": 181.601,
"total": 5111.118
"url_check": 178.515,
"total": 4535.68
},
"counts": {
"classes": 11,
@@ -1626,14 +1626,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 11.393,
"module_load": 4.342,
"init": 0.001,
"home": 0.001,
"category": 976.553,
"detail": 1035.317,
"player": 1032.812,
"url_check": 1157.162,
"total": 4213.743
"category": 840.411,
"detail": 1213.407,
"player": 862.998,
"url_check": 929.46,
"total": 3851.333
},
"counts": {
"classes": 6,
@@ -1665,14 +1665,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.541,
"init": 0.0,
"module_load": 3.741,
"init": 0.001,
"home": 0.0,
"category": 1386.059,
"detail": 1001.301,
"player": 0.004,
"url_check": 1750.447,
"total": 4141.696
"category": 1062.961,
"detail": 984.362,
"player": 0.006,
"url_check": 266.012,
"total": 2317.747
},
"counts": {
"classes": 8,
@@ -1682,17 +1682,17 @@
},
"samples": {
"tid": "1",
"vod_id": "/voddetail/124601.html",
"flag": "baidu#玩偶哥哥",
"play_id": "https://pan.baidu.com/s/1JWpCgA1P2Qmo0T0hR4vfmQ?pwd=wogg"
"vod_id": "/voddetail/109667.html",
"flag": "夸克#玩偶哥哥",
"play_id": "https://pan.quark.cn/s/e7bc66696dec"
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1JWpCgA1P2Qmo0T0hR4vfmQ?pwd=wogg",
"url": "https://pan.quark.cn/s/e7bc66696dec",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=JWpCgA1P2Qmo0T0hR4vfmQ&pwd=wogg",
"final_url": "https://pan.quark.cn/s/e7bc66696dec",
"reason": null
}
},
@@ -1704,14 +1704,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 38.632,
"init": 0.005,
"home": 0.46,
"category": 1561.427,
"detail": 3095.291,
"module_load": 9.124,
"init": 0.001,
"home": 0.074,
"category": 2284.273,
"detail": 1525.797,
"player": 0.002,
"url_check": 1082.751,
"total": 5780.735
"url_check": 235.895,
"total": 4055.823
},
"counts": {
"classes": 10,
@@ -1721,17 +1721,17 @@
},
"samples": {
"tid": "site_wanou",
"vod_id": "site:wanou:/voddetail/123914.html",
"flag": "baidu#玩偶",
"play_id": "https://pan.baidu.com/s/1iWPRtosX_cFj4DyuIYg1lw?pwd=wogg"
"vod_id": "site:wanou:/voddetail/109726.html",
"flag": "夸克#玩偶",
"play_id": "https://pan.quark.cn/s/24f7a693b75a"
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1iWPRtosX_cFj4DyuIYg1lw?pwd=wogg",
"url": "https://pan.quark.cn/s/24f7a693b75a",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=iWPRtosX_cFj4DyuIYg1lw&pwd=wogg",
"final_url": "https://pan.quark.cn/s/24f7a693b75a",
"reason": null
}
},
@@ -1743,14 +1743,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.222,
"module_load": 7.916,
"init": 0.001,
"home": 0.015,
"category": 1199.318,
"detail": 2235.709,
"player": 836.497,
"url_check": 183.072,
"total": 4460.794
"home": 0.023,
"category": 1025.491,
"detail": 1986.091,
"player": 817.379,
"url_check": 180.528,
"total": 4018.866
},
"counts": {
"classes": 5,
@@ -1766,7 +1766,7 @@
},
"player": {
"parse": 0,
"url": "https://vd.hxcztech.com/2b3bc2e7bcf1bd7b8d0344c9d2616dae/20260512151132/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
"url": "https://vd.hxcztech.com/f14c85a6c2ae668d57d045b9576ffd74/20260512165524/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
@@ -1782,14 +1782,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.546,
"module_load": 4.515,
"init": 0.001,
"home": 465.625,
"category": 233.443,
"detail": 665.268,
"player": 269.152,
"url_check": 67.709,
"total": 1705.167
"home": 481.779,
"category": 313.604,
"detail": 688.354,
"player": 277.555,
"url_check": 91.36,
"total": 1857.708
},
"counts": {
"classes": 29,
@@ -1821,14 +1821,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.25,
"module_load": 6.23,
"init": 0.001,
"home": 326.656,
"category": 281.633,
"detail": 304.867,
"player": 0.024,
"url_check": 180.407,
"total": 1098.243
"home": 649.631,
"category": 345.406,
"detail": 297.191,
"player": 0.026,
"url_check": 182.826,
"total": 1481.92
},
"counts": {
"classes": 8,
@@ -1839,7 +1839,7 @@
"samples": {
"tid": "?tagId=39765285016165",
"vod_id": "thread?topicId=264430",
"flag": "yd",
"flag": "移动",
"play_id": "https://yun.139.com/shareweb/%23/w/i/2sUfBKpu5QBqz"
},
"player": {
@@ -1860,14 +1860,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.166,
"module_load": 4.604,
"init": 0.001,
"home": 0.0,
"category": 1273.123,
"detail": 918.205,
"player": 1014.344,
"url_check": 1367.844,
"total": 4582.427
"category": 725.454,
"detail": 828.294,
"player": 702.225,
"url_check": 976.199,
"total": 3237.477
},
"counts": {
"classes": 4,
@@ -1878,7 +1878,7 @@
"samples": {
"tid": "/",
"vod_id": "/movies/134742/",
"flag": "baidu1",
"flag": "百度1",
"play_id": "push://https://www.seedhub.cc/link_start/?redirect_to=pan_id_571535&movie_title=❤️❤️❤️【飞驰人生3】【4K 1080P】更新于 ✅ 今天"
},
"player": {
@@ -1899,14 +1899,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 29.137,
"init": 706.395,
"home": 0.182,
"category": 442.347,
"detail": 612.625,
"player": 0.003,
"url_check": 79.478,
"total": 1870.797
"module_load": 30.132,
"init": 594.508,
"home": 0.71,
"category": 433.693,
"detail": 619.965,
"player": 0.001,
"url_check": 78.713,
"total": 1759.445
},
"counts": {
"classes": 11,
@@ -1938,14 +1938,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.927,
"module_load": 30.693,
"init": 0.001,
"home": 0.001,
"category": 1256.563,
"detail": 928.397,
"player": 0.006,
"url_check": 1123.175,
"total": 3312.73
"home": 0.0,
"category": 4713.961,
"detail": 993.031,
"player": 0.009,
"url_check": 1485.419,
"total": 7223.695
},
"counts": {
"classes": 2,
@@ -1956,7 +1956,7 @@
"samples": {
"tid": "1",
"vod_id": "https://sm3.cc/?id=50035",
"flag": "baidu",
"flag": "百度",
"play_id": "https://pan.baidu.com/s/14I16GcD2cPUoCb1C0QZFeg?pwd=6666"
},
"player": {
@@ -1972,39 +1972,39 @@
{
"spider": "糯米",
"file": "糯米.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='vip.wwgz.cn', port=5200): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='vip.wwgz.cn', port=5200) at 0x77457803e350>, 'Connection to vip.wwgz.cn 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='vip.wwgz.cn', port=5200) at 0x77457803e350>, 'Connection to vip.wwgz.cn 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='vip.wwgz.cn', port=5200): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='vip.wwgz.cn', port=5200) at 0x77457803e350>, 'Connection to vip.wwgz.cn 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 628, in validate_spider_file\n home_result = _run_timed(result[\"timings_ms\"], \"home\", spider.homeContent, clock, False)\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 290, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/糯米.txt\", line 133, in homeContent\n File \"/home/harold/workspace/tvbox-resources/py/糯米.txt\", line 123, in _load_home\n File \"/home/harold/workspace/tvbox-resources/py/糯米.txt\", line 63, in _request_html\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='vip.wwgz.cn', port=5200): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='vip.wwgz.cn', port=5200) at 0x77457803e350>, 'Connection to vip.wwgz.cn timed out. (connect timeout=10)'))\n",
"timings_ms": {
"module_load": 5.542,
"init": 0.001,
"home": 500.746,
"category": 745.696,
"detail": 156.6,
"player": 330.775,
"url_check": 353.269,
"total": 2093.364
"module_load": 5.212,
"init": 0.0,
"home": 10012.32,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 10024.133
},
"counts": {
"classes": 7,
"category_videos": 81,
"detail_videos": 1,
"episodes": 1
"classes": 0,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "/vod-type-id-1-pg-1.html",
"vod_id": "/vod-detail-id-90063.html",
"flag": "uvw",
"play_id": "/vod-play-id-90063-src-1-num-1.html"
"tid": null,
"vod_id": null,
"flag": null,
"play_id": null
},
"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",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
@@ -2016,14 +2016,14 @@
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 4.955,
"module_load": 4.826,
"init": 0.001,
"home": 0.001,
"category": 179.631,
"category": 207.167,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 391.122
"total": 428.339
},
"counts": {
"classes": 60,
@@ -2055,14 +2055,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 644, 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 445, 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 290, 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": 7.37,
"module_load": 18.011,
"init": 0.001,
"home": 432.538,
"category": 443.276,
"detail": 0.004,
"player": 177.595,
"home": 394.3,
"category": 409.685,
"detail": 0.005,
"player": 190.492,
"url_check": 0.0,
"total": 1062.888
"total": 1016.251
},
"counts": {
"classes": 62,
@@ -2094,14 +2094,14 @@
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 4.109,
"module_load": 7.253,
"init": 0.001,
"home": 0.001,
"category": 2453.203,
"home": 0.0,
"category": 3036.682,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5330.52
"total": 6531.148
},
"counts": {
"classes": 6,
@@ -2133,14 +2133,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.51,
"module_load": 8.184,
"init": 0.001,
"home": 258.014,
"category": 269.606,
"detail": 668.123,
"player": 0.004,
"url_check": 509.923,
"total": 1715.302
"home": 76.446,
"category": 338.501,
"detail": 1509.476,
"player": 0.002,
"url_check": 174.466,
"total": 2108.164
},
"counts": {
"classes": 7,
@@ -2172,14 +2172,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.372,
"module_load": 6.691,
"init": 0.001,
"home": 0.0,
"category": 1299.231,
"detail": 1326.868,
"player": 0.005,
"url_check": 222.026,
"total": 2852.981
"home": 0.001,
"category": 2388.939,
"detail": 1754.113,
"player": 0.003,
"url_check": 1102.327,
"total": 5252.563
},
"counts": {
"classes": 7,
@@ -2189,36 +2189,36 @@
},
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/20384.html",
"flag": "quark#至臻",
"play_id": "https://pan.quark.cn/s/b3e194803b59"
"vod_id": "/index.php/vod/detail/id/20133.html",
"flag": "百度#至臻",
"play_id": "https://pan.baidu.com/s/1sYiHujtqpIJSR5rdk1NQlg?pwd=rebd"
},
"player": {
"parse": 0,
"url": "https://pan.quark.cn/s/b3e194803b59",
"url": "https://pan.baidu.com/s/1sYiHujtqpIJSR5rdk1NQlg?pwd=rebd",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.quark.cn/s/b3e194803b59",
"final_url": "https://pan.baidu.com/share/init?surl=sYiHujtqpIJSR5rdk1NQlg&pwd=rebd",
"reason": null
}
},
{
"spider": "茶杯狐",
"file": "茶杯狐.txt",
"success": true,
"failed_stage": null,
"error": null,
"success": false,
"failed_stage": "url_check",
"error": "HTTP 404",
"traceback": null,
"timings_ms": {
"module_load": 6.415,
"init": 0.001,
"home": 2632.616,
"category": 3428.134,
"detail": 2225.135,
"player": 4483.624,
"url_check": 304.164,
"total": 26205.574
"module_load": 5.508,
"init": 0.0,
"home": 1515.555,
"category": 2978.323,
"detail": 2209.81,
"player": 4402.785,
"url_check": 2899.595,
"total": 23690.324
},
"counts": {
"classes": 4,
@@ -2228,18 +2228,18 @@
},
"samples": {
"tid": "2",
"vod_id": "detail/video/120717",
"flag": "自营b25",
"play_id": "play/120717-1-1"
"vod_id": "detail/video/117665",
"flag": "BF有广22",
"play_id": "play/117665-1-1"
},
"player": {
"parse": 0,
"url": "https://eos-huhehaote-1.cmecloud.cn/dsp-ecpan-zone3/b918246064f74beb93fd0f10caf12290?response-content-disposition=attachment%3Bfilename%3D%22gcj-%E9%BB%91%E5%A4%9C%E5%91%8A%E7%99%BD01.mp4%22&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260512T040416Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=R2V91UGDM1447A0VTB86%2F20260512%2Fdefault%2Fs3%2Faws4_request&X-Amz-Signature=3f51a9ea930205724caf1f3c25a213bc2d71cdf96c7b3224d0bd53e13c0b9290",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://eos-huhehaote-1.cmecloud.cn/dsp-ecpan-zone3/b918246064f74beb93fd0f10caf12290?response-content-disposition=attachment%3Bfilename%3D%22gcj-%E9%BB%91%E5%A4%9C%E5%91%8A%E7%99%BD01.mp4%22&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260512T040416Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=R2V91UGDM1447A0VTB86%2F20260512%2Fdefault%2Fs3%2Faws4_request&X-Amz-Signature=3f51a9ea930205724caf1f3c25a213bc2d71cdf96c7b3224d0bd53e13c0b9290",
"reason": null
"url": "https://s1.fengbao9.com/video/shiyiyishengdierji/3e725897d3e5/index.m3u8",
"valid": false,
"reachable": false,
"status_code": 404,
"final_url": "https://s1.fengbao9.com/video/shiyiyishengdierji/3e725897d3e5/index.m3u8",
"reason": "HTTP 404"
}
},
{
@@ -2250,14 +2250,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 8.308,
"init": 0.001,
"home": 0.001,
"category": 2277.273,
"detail": 2387.18,
"player": 0.011,
"url_check": 1111.721,
"total": 5785.013
"module_load": 9.6,
"init": 0.003,
"home": 0.002,
"category": 2592.764,
"detail": 2985.217,
"player": 0.008,
"url_check": 1348.703,
"total": 6937.31
},
"counts": {
"classes": 6,
@@ -2268,7 +2268,7 @@
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/460085.html",
"flag": "baidu#虎斑",
"flag": "百度#虎斑",
"play_id": "https://pan.baidu.com/s/1ihJuI7m_8IgZeXiWDk17ZQ?pwd=6574"
},
"player": {
@@ -2289,14 +2289,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.143,
"module_load": 4.086,
"init": 0.001,
"home": 0.001,
"category": 1504.746,
"detail": 821.957,
"category": 1342.972,
"detail": 935.307,
"player": 0.003,
"url_check": 1039.23,
"total": 3371.491
"url_check": 1284.974,
"total": 3567.653
},
"counts": {
"classes": 7,
@@ -2307,7 +2307,7 @@
"samples": {
"tid": "29",
"vod_id": "/index.php/vod/detail/id/11277.html",
"flag": "baidu#蜡笔",
"flag": "百度#蜡笔",
"play_id": "https://pan.baidu.com/s/1NiPgbk9_FIhSYfmGm-Cqxg?pwd=q5m6"
},
"player": {
@@ -2328,14 +2328,14 @@
"error": "HTTP 403",
"traceback": null,
"timings_ms": {
"module_load": 23.332,
"module_load": 6.582,
"init": 0.001,
"home": 0.001,
"category": 2645.608,
"detail": 2034.599,
"player": 3175.426,
"url_check": 3055.176,
"total": 19561.56
"category": 2235.529,
"detail": 1940.525,
"player": 2019.343,
"url_check": 2992.09,
"total": 15830.382
},
"counts": {
"classes": 4,
@@ -2345,17 +2345,17 @@
},
"samples": {
"tid": "2",
"vod_id": "movie/index414157",
"vod_id": "movie/index414559",
"flag": "蓝光专线4",
"play_id": "play/414157-0-0"
"play_id": "play/414559-0-0"
},
"player": {
"parse": 0,
"url": "https://vip.dytt-kan.com/20260330/12924_fae034d2/index.m3u8",
"url": "https://vip.dytt-kan.com/20260414/13529_57b838f0/index.m3u8",
"valid": false,
"reachable": false,
"status_code": 403,
"final_url": "https://vip.dytt-kan.com/20260330/12924_fae034d2/index.m3u8",
"final_url": "https://vip.dytt-kan.com/20260414/13529_57b838f0/index.m3u8",
"reason": "HTTP 403"
}
},
@@ -2367,14 +2367,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 7.842,
"module_load": 4.852,
"init": 0.001,
"home": 0.001,
"category": 1624.1,
"detail": 1251.554,
"player": 3225.576,
"url_check": 2469.256,
"total": 8578.875
"category": 1402.802,
"detail": 1229.622,
"player": 3934.85,
"url_check": 902.198,
"total": 7474.776
},
"counts": {
"classes": 6,
@@ -2384,17 +2384,17 @@
},
"samples": {
"tid": "6",
"vod_id": "detail/8054.html",
"flag": "播放节点列表X box聚合",
"play_id": "play/8054_1_1.html"
"vod_id": "detail/8044.html",
"flag": "播放节点列表X dev云播 聚合线路",
"play_id": "play/8044_1_1.html"
},
"player": {
"parse": 1,
"url": "https://www.lmm85.com/play/8054_1_1.html",
"parse": 0,
"url": "https://groupvideo.photo.qq.com/1071_0bc3iyaaaaaabiamwiqcxjvc6rqeabdaaaca.f0.mp4?dis_k=f90d7ee86eab5eb951db40ea107a3b7a&dis_t=1778575904",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://www.lmm85.com/play/8054_1_1.html",
"final_url": "https://groupvideo.photo.qq.com/1071_0bc3iyaaaaaabiamwiqcxjvc6rqeabdaaaca.f0.mp4?dis_k=f90d7ee86eab5eb951db40ea107a3b7a&dis_t=1778575904",
"reason": null
}
},
@@ -2406,14 +2406,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.73,
"init": 0.0,
"home": 381.641,
"category": 96.628,
"detail": 224.028,
"player": 140.112,
"url_check": 313.887,
"total": 4878.056
"module_load": 4.882,
"init": 0.001,
"home": 413.793,
"category": 97.59,
"detail": 182.897,
"player": 137.547,
"url_check": 666.869,
"total": 5485.131
},
"counts": {
"classes": 4,
@@ -2429,50 +2429,50 @@
},
"player": {
"parse": 0,
"url": "http://cz.sycdn.kuwo.cn/74ae210c16e0cb7f272370a3b6a43b46/6a02d2a9/resource/m1/34/31/3390639861.wma?bitrate$128&format$wma&source$kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type$convert_url_with_sign&user$&loginUid$",
"url": "http://cz.sycdn.kuwo.cn/9db3f3822d0cdaabbe1d66d74888f5cc/6a02eb02/resource/m1/34/31/3390639861.wma?bitrate$128&format$wma&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://cz.sycdn.kuwo.cn/74ae210c16e0cb7f272370a3b6a43b46/6a02d2a9/resource/m1/34/31/3390639861.wma?bitrate$128&format$wma&source$kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type$convert_url_with_sign&user$&loginUid$",
"final_url": "http://cz.sycdn.kuwo.cn/9db3f3822d0cdaabbe1d66d74888f5cc/6a02eb02/resource/m1/34/31/3390639861.wma?bitrate$128&format$wma&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,
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='thirdsso.kugou.com', port=443): Max retries exceeded with url: /v2/playlist/category (Caused by ConnectTimeoutError(<HTTPSConnection(host='thirdsso.kugou.com', port=443) at 0x77457807efd0>, 'Connection to thirdsso.kugou.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='thirdsso.kugou.com', port=443) at 0x77457807efd0>, 'Connection to thirdsso.kugou.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='thirdsso.kugou.com', port=443): Max retries exceeded with url: /v2/playlist/category (Caused by ConnectTimeoutError(<HTTPSConnection(host='thirdsso.kugou.com', port=443) at 0x77457807efd0>, 'Connection to thirdsso.kugou.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 628, in validate_spider_file\n home_result = _run_timed(result[\"timings_ms\"], \"home\", spider.homeContent, clock, False)\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 290, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/酷狗音乐.txt\", line 325, in homeContent\n File \"/home/harold/workspace/tvbox-resources/py/酷狗音乐.txt\", line 233, in kg_post\n File \"/home/harold/workspace/tvbox-resources/py/酷狗音乐.txt\", line 219, in post_json\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='thirdsso.kugou.com', port=443): Max retries exceeded with url: /v2/playlist/category (Caused by ConnectTimeoutError(<HTTPSConnection(host='thirdsso.kugou.com', port=443) at 0x77457807efd0>, 'Connection to thirdsso.kugou.com timed out. (connect timeout=10)'))\n",
"timings_ms": {
"module_load": 8.122,
"init": 488.978,
"home": 325.162,
"category": 267.612,
"detail": 346.187,
"player": 387.953,
"url_check": 53.381,
"total": 1878.999
"module_load": 8.349,
"init": 524.512,
"home": 10172.561,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 10709.167
},
"counts": {
"classes": 12,
"category_videos": 15,
"detail_videos": 1,
"episodes": 1
"classes": 0,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "recommend",
"vod_id": "309059490",
"flag": "酷狗音乐",
"play_id": "309059490"
"tid": null,
"vod_id": null,
"flag": null,
"play_id": null
},
"player": {
"parse": 0,
"url": "http://fsdg360.tx.kugou.com/202605121511/53f72c53a45edfa09df26a32779309db/v3/9199603d1f136c6daa2e38eca15a3306/yp/p_0_960117/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx309059490_qu128_s2738294673.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "http://fsdg360.tx.kugou.com/202605121511/53f72c53a45edfa09df26a32779309db/v3/9199603d1f136c6daa2e38eca15a3306/yp/p_0_960117/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx309059490_qu128_s2738294673.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
@@ -2484,14 +2484,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 10.434,
"init": 0.0,
"home": 730.302,
"category": 262.943,
"detail": 372.332,
"player": 238.562,
"url_check": 542.846,
"total": 2158.066
"module_load": 5.693,
"init": 0.001,
"home": 1086.105,
"category": 919.526,
"detail": 237.964,
"player": 232.654,
"url_check": 541.341,
"total": 3023.968
},
"counts": {
"classes": 4,
@@ -2507,11 +2507,11 @@
},
"player": {
"parse": 0,
"url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778569894-5be7407b89a442548171daa4e8c95757-0-51b63d49b8d03d7ec4765a6129934845",
"url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778576129-205821b1b4c54226bf7c7bb94b0b0537-0-7d1b2d9960f2f8bd41ef88d63d1a5e86",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778569894-5be7407b89a442548171daa4e8c95757-0-51b63d49b8d03d7ec4765a6129934845",
"final_url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778576129-205821b1b4c54226bf7c7bb94b0b0537-0-7d1b2d9960f2f8bd41ef88d63d1a5e86",
"reason": null
}
},
@@ -2523,14 +2523,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.027,
"module_load": 3.658,
"init": 0.001,
"home": 0.001,
"category": 5987.334,
"detail": 6555.469,
"player": 0.004,
"url_check": 1114.046,
"total": 13663.088
"home": 0.0,
"category": 6039.125,
"detail": 6335.941,
"player": 0.006,
"url_check": 979.253,
"total": 13358.493
},
"counts": {
"classes": 5,
@@ -2541,7 +2541,7 @@
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/185903.html",
"flag": "baidu#闪电",
"flag": "百度#闪电",
"play_id": "https://pan.baidu.com/s/1hxalL4JYwZ5Td9Hc-V4qpw?pwd=6688"
},
"player": {
@@ -2562,14 +2562,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.197,
"module_load": 4.177,
"init": 0.001,
"home": 0.0,
"category": 5599.514,
"detail": 5679.825,
"player": 6434.368,
"url_check": 2605.394,
"total": 20324.757
"home": 0.001,
"category": 5884.084,
"detail": 5370.825,
"player": 6303.356,
"url_check": 2675.886,
"total": 20238.88
},
"counts": {
"classes": 4,
@@ -2579,17 +2579,17 @@
},
"samples": {
"tid": "1",
"vod_id": "/voddetail/239006.html",
"vod_id": "/voddetail/239020.html",
"flag": "高清31",
"play_id": "/vodplay/239006-2-1.html"
"play_id": "/vodplay/239020-3-1.html"
},
"player": {
"parse": 0,
"url": "https://cdn.yzzy28-play.com/20260511/30085_b4bee9fe/index.m3u8",
"url": "https://cdn.yzzyvip-29.com/20260511/23670_235d345c/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cdn.yzzy28-play.com/20260511/30085_b4bee9fe/index.m3u8",
"final_url": "https://cdn.yzzyvip-29.com/20260511/23670_235d345c/index.m3u8",
"reason": null
}
},
@@ -2601,14 +2601,14 @@
"error": "分类列表为空",
"traceback": null,
"timings_ms": {
"module_load": 4.753,
"module_load": 5.185,
"init": 0.001,
"home": 1254.777,
"home": 3206.41,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 1259.668
"total": 3211.738
},
"counts": {
"classes": 0,
@@ -2640,14 +2640,14 @@
"error": "('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))",
"traceback": "Traceback (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 534, in _make_request\n response = conn.getresponse()\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 571, in getresponse\n httplib_response = super().getresponse()\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 1450, in getresponse\n response.begin()\n ~~~~~~~~~~~~~~^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 336, in begin\n version, status, reason = self._read_status()\n ~~~~~~~~~~~~~~~~~^^\nhttp.client.RemoteDisconnected: Remote end closed connection without response\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/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 38, in reraise\n raise value.with_traceback(tb)\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.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))\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 644, 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 404, 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 290, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/麦田影院.txt\", line 101, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/麦田影院.txt\", line 68, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))\n",
"timings_ms": {
"module_load": 3.742,
"init": 0.0,
"module_load": 4.565,
"init": 0.001,
"home": 0.0,
"category": 1539.06,
"category": 2333.887,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 1545.997
"total": 2339.931
},
"counts": {
"classes": 6,
@@ -2674,39 +2674,39 @@
{
"spider": "黑猫APP",
"file": "黑猫APP.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))",
"traceback": "Traceback (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 534, in _make_request\n response = conn.getresponse()\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 571, in getresponse\n httplib_response = super().getresponse()\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 1450, in getresponse\n response.begin()\n ~~~~~~~~~~~~~~^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 336, in begin\n version, status, reason = self._read_status()\n ~~~~~~~~~~~~~~~~~^^\nhttp.client.RemoteDisconnected: Remote end closed connection without response\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/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 38, in reraise\n raise value.with_traceback(tb)\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.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))\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 644, 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 420, 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 290, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/黑猫APP.txt\", line 270, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/黑猫APP.txt\", line 67, in _api_post\nrequests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.401,
"module_load": 4.775,
"init": 0.001,
"home": 2547.097,
"category": 1984.093,
"detail": 1760.113,
"player": 0.0,
"url_check": 0.0,
"total": 6297.194
"home": 2216.388,
"category": 1960.538,
"detail": 2061.079,
"player": 1824.026,
"url_check": 175.194,
"total": 16472.237
},
"counts": {
"classes": 5,
"category_videos": 30,
"detail_videos": 0,
"episodes": 0
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "1",
"vod_id": "93658",
"flag": null,
"play_id": null
"tid": "2",
"vod_id": "93199",
"flag": "🐈‍⬛高清线路",
"play_id": "高清线路1@@direct@@66ddeb0b0fe39924c19b86fc5dcce841,67b12b99d5d2970ddd7c079432fc75b1,token+,1,1"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://v9-show.douyinvod.com/0186fe09b496306062c5ddad0dd67310/6a03468a/video/tos/cn/tos-cn-v-5f73e7/ogFuEGiigZmWgniwgVBDEwf4aD0QsAPtmCiSPr/",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://v9-show.douyinvod.com/0186fe09b496306062c5ddad0dd67310/6a03468a/video/tos/cn/tos-cn-v-5f73e7/ogFuEGiigZmWgniwgVBDEwf4aD0QsAPtmCiSPr/",
"reason": null
}
}