This commit is contained in:
Harold
2026-05-16 08:59:52 +08:00
parent d73c6a0aa8
commit 26028ba834
5 changed files with 919 additions and 917 deletions
+681 -681
View File
@@ -1,21 +1,21 @@
{
"generated_at": "2026-05-15T20:42:01+08:00",
"generated_at": "2026-05-16T08:59:31+08:00",
"max_workers": 16,
"total_duration_ms": 24960.582,
"total_duration_ms": 20403.859,
"summary": {
"total": 72,
"success": 57,
"failed": 15,
"success_rate": 0.7917,
"success": 59,
"failed": 13,
"success_rate": 0.8194,
"stage_failures": {
"module_load": 0,
"init": 0,
"home": 1,
"category": 4,
"detail": 1,
"player": 0,
"url_check": 3,
"unexpected": 6
"player": 1,
"url_check": 2,
"unexpected": 4
}
},
"results": [
@@ -27,14 +27,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 236.748,
"module_load": 180.61,
"init": 0.001,
"home": 0.005,
"category": 1154.282,
"detail": 453.122,
"player": 0.004,
"url_check": 165.92,
"total": 2045.572
"home": 0.002,
"category": 1306.924,
"detail": 605.987,
"player": 0.003,
"url_check": 137.073,
"total": 2231.953
},
"counts": {
"classes": 5,
@@ -66,14 +66,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 237.268,
"init": 0.007,
"home": 0.002,
"category": 697.913,
"detail": 664.109,
"player": 0.005,
"url_check": 0.105,
"total": 1636.803
"module_load": 198.36,
"init": 0.003,
"home": 0.001,
"category": 747.463,
"detail": 655.942,
"player": 0.003,
"url_check": 0.067,
"total": 1608.068
},
"counts": {
"classes": 12,
@@ -83,36 +83,36 @@
},
"samples": {
"tid": "dianshiju/guoju",
"vod_id": "/dianshiju/guoju/28764.html",
"flag": "01-06.1080p.HD国语中字无水印.mkv",
"play_id": "magnet:?xt=urn:btih:614473787f6dd62a1f406e921d32f24cbf59b4b3&dn=%E9%9B%A8%E9%9C%96%E9%93%8301-06"
"vod_id": "/dianshiju/guoju/28754.html",
"flag": "01-07.1080p.HD国语中字无水印.mkv",
"play_id": "magnet:?xt=urn:btih:179e2e96aecc2ff52e16b81e3b3c1e89a6010b05&dn=%E4%B8%BB%E8%A7%9201-07"
},
"player": {
"parse": 0,
"url": "magnet:?xt=urn:btih:614473787f6dd62a1f406e921d32f24cbf59b4b3&dn=%E9%9B%A8%E9%9C%96%E9%93%8301-06",
"url": "magnet:?xt=urn:btih:179e2e96aecc2ff52e16b81e3b3c1e89a6010b05&dn=%E4%B8%BB%E8%A7%9201-07",
"valid": true,
"reachable": null,
"status_code": null,
"final_url": "magnet:?xt=urn:btih:614473787f6dd62a1f406e921d32f24cbf59b4b3&dn=%E9%9B%A8%E9%9C%96%E9%93%8301-06",
"final_url": "magnet:?xt=urn:btih:179e2e96aecc2ff52e16b81e3b3c1e89a6010b05&dn=%E4%B8%BB%E8%A7%9201-07",
"reason": "非 HTTP 地址,按协议格式通过"
}
},
{
"spider": "AAZ音乐",
"file": "AAZ音乐.txt",
"success": false,
"failed_stage": "url_check",
"error": "HTTPSConnectionPool(host='s.5bb3.com', port=443): Read timed out. (read timeout=5)",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 237.955,
"module_load": 184.006,
"init": 0.001,
"home": 432.497,
"category": 183.224,
"detail": 202.359,
"player": 176.693,
"url_check": 5085.334,
"total": 12119.458
"home": 530.524,
"category": 166.24,
"detail": 199.295,
"player": 164.646,
"url_check": 284.035,
"total": 1530.397
},
"counts": {
"classes": 6,
@@ -121,19 +121,19 @@
"episodes": 1
},
"samples": {
"tid": "top",
"vod_id": "song:0f52728595bbc976fcb9273abeab5dcd",
"tid": "new",
"vod_id": "song:e0f3c77fa564632f924f77fc5943ba7e",
"flag": "AAZ音乐",
"play_id": "song:0f52728595bbc976fcb9273abeab5dcd"
"play_id": "song:e0f3c77fa564632f924f77fc5943ba7e"
},
"player": {
"parse": 0,
"url": "https://s.5bb3.com/m4a/bbcbad3904bc0c605ce0e7ed2a0dde80.m4a",
"valid": false,
"reachable": false,
"status_code": null,
"final_url": "https://s.5bb3.com/m4a/bbcbad3904bc0c605ce0e7ed2a0dde80.m4a",
"reason": "HTTPSConnectionPool(host='s.5bb3.com', port=443): Read timed out. (read timeout=5)"
"url": "https://s.5bb3.com/m4a/3374e5b4a4d9d8e8f967976747b5c2ca.m4a",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://lv-sycdn.kuwo.cn/72d6b7d02fc5efc327aa30e11ee8907a/6a07c175/resource/1307392909/trackmedia/C200000W91kQ0efKLA.m4a?from=vip",
"reason": null
}
},
{
@@ -144,14 +144,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 290.195,
"init": 0.001,
"home": 0.001,
"category": 423.551,
"detail": 395.343,
"player": 0.009,
"url_check": 180.834,
"total": 1290.53
"module_load": 245.28,
"init": 0.0,
"home": 0.0,
"category": 584.241,
"detail": 364.237,
"player": 0.008,
"url_check": 376.119,
"total": 1571.221
},
"counts": {
"classes": 2,
@@ -183,14 +183,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 239.441,
"init": 0.021,
"home": 0.008,
"category": 967.359,
"detail": 227.713,
"player": 461.527,
"url_check": 82.205,
"total": 3018.75
"module_load": 194.023,
"init": 0.008,
"home": 0.003,
"category": 136.858,
"detail": 160.89,
"player": 481.185,
"url_check": 111.858,
"total": 2201.651
},
"counts": {
"classes": 6,
@@ -202,15 +202,15 @@
"tid": "top",
"vod_id": "top:135",
"flag": "QQ音乐",
"play_id": "qqmusic:00032bOd4TmOyq:664386439|最初的记忆 (Live) - 刘雨昕"
"play_id": "qqmusic:004P1bIH2rzCp4:664927986|天星术 (弥渡山歌版) - 刘宇宁"
},
"player": {
"parse": 0,
"url": "https://isure.stream.qqmusic.qq.com/M50000032bOd4TmOyq.mp3?guid=684401d4a57d9728535a262f2cd98d8b&vkey=8BB63A1F97AA75F03122A25E07A3FAC322233BBC3E3251E5CC70A45F012669015BF3ED2EAEE4D3115C632CBFC67E16DAE5A321FC497895BB__v2b9aac45&uin=&fromtag=119042&src=M500003huyNt4KNIZd.mp3&redirect=1",
"url": "https://isure.stream.qqmusic.qq.com/M500004P1bIH2rzCp4.mp3?guid=4a15a0f4ad174d55efb061805fc30edc&vkey=F677E98409C572A8EC0F08A9E691279346FC490D2339841486D4DE32A8DD5291068B4C2A318996EE4CFC8FC2C583C47BE9C649343979D719__v2b94c723&uin=&fromtag=119042&src=M5000020mYyS43LK1U.mp3&redirect=1",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://isure.stream.qqmusic.qq.com/M50000032bOd4TmOyq.mp3?guid=684401d4a57d9728535a262f2cd98d8b&vkey=8BB63A1F97AA75F03122A25E07A3FAC322233BBC3E3251E5CC70A45F012669015BF3ED2EAEE4D3115C632CBFC67E16DAE5A321FC497895BB__v2b9aac45&uin=&fromtag=119042&src=M500003huyNt4KNIZd.mp3&redirect=1",
"final_url": "https://isure.stream.qqmusic.qq.com/M500004P1bIH2rzCp4.mp3?guid=4a15a0f4ad174d55efb061805fc30edc&vkey=F677E98409C572A8EC0F08A9E691279346FC490D2339841486D4DE32A8DD5291068B4C2A318996EE4CFC8FC2C583C47BE9C649343979D719__v2b94c723&uin=&fromtag=119042&src=M5000020mYyS43LK1U.mp3&redirect=1",
"reason": null
}
},
@@ -222,34 +222,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 236.292,
"module_load": 201.669,
"init": 0.001,
"home": 0.002,
"category": 205.612,
"detail": 195.794,
"player": 0.006,
"url_check": 214.243,
"total": 869.313
"home": 0.001,
"category": 200.517,
"detail": 192.351,
"player": 0.007,
"url_check": 144.194,
"total": 744.197
},
"counts": {
"classes": 6,
"category_videos": 48,
"detail_videos": 1,
"episodes": 1
"episodes": 2
},
"samples": {
"tid": "index",
"vod_id": "714893456",
"vod_id": "714893380",
"flag": "夸克",
"play_id": "https://pan.quark.cn/s/363b49706194"
"play_id": "https://pan.quark.cn/s/4dc3227dea94"
},
"player": {
"parse": 0,
"url": "https://pan.quark.cn/s/363b49706194",
"url": "https://pan.quark.cn/s/4dc3227dea94",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.quark.cn/s/363b49706194",
"final_url": "https://pan.quark.cn/s/4dc3227dea94",
"reason": null
}
},
@@ -261,34 +261,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 237.975,
"init": 0.002,
"home": 0.003,
"category": 1457.396,
"detail": 1011.117,
"player": 1481.076,
"url_check": 1154.071,
"total": 5375.965
"module_load": 182.144,
"init": 0.001,
"home": 0.001,
"category": 1523.6,
"detail": 1011.305,
"player": 1472.874,
"url_check": 1164.537,
"total": 11165.765
},
"counts": {
"classes": 7,
"category_videos": 222,
"category_videos": 72,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "index",
"vod_id": "203571",
"tid": "drama",
"vod_id": "203956",
"flag": "YouKnowTV",
"play_id": "eyJ2b2RfaWQiOiIyMDM1NzEiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM1NzEtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM1NzEtMS0xLyJ9LHsic291cmNlIjoi57q_6LevNiIsInNvdXJjZV9pZCI6IjIiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM1NzEtMi0xLyJ9LHsic291cmNlIjoi57q_6LevNyIsInNvdXJjZV9pZCI6IjIiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM1NzEtMi0xLyJ9LHsic291cmNlIjoi57q_6LevMTEiLCJzb3VyY2VfaWQiOiIzIiwiZXBpc29kZV91cmwiOiJodHRwczovL3d3dy55b3Vrbm93LnR2L3AvMjAzNTcxLTMtMS8ifSx7InNvdXJjZSI6Iue6v-i3rzEyIiwic291cmNlX2lkIjoiMyIsImVwaXNvZGVfdXJsIjoiaHR0cHM6Ly93d3cueW91a25vdy50di9wLzIwMzU3MS0zLTEvIn1dfQ"
"play_id": "eyJ2b2RfaWQiOiIyMDM5NTYiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM5NTYtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM5NTYtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMTgiLCJzb3VyY2VfaWQiOiIyIiwiZXBpc29kZV91cmwiOiJodHRwczovL3d3dy55b3Vrbm93LnR2L3AvMjAzOTU2LTItMS8ifSx7InNvdXJjZSI6Iue6v-i3rzE5Iiwic291cmNlX2lkIjoiMiIsImVwaXNvZGVfdXJsIjoiaHR0cHM6Ly93d3cueW91a25vdy50di9wLzIwMzk1Ni0yLTEvIn1dfQ"
},
"player": {
"parse": 0,
"url": "https://vip.dytt-kan.com/20260501/14155_cf5cf27e/index.m3u8",
"url": "https://vip.dytt-tvs.com/20260515/20148_20d1b173/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vip.dytt-kan.com/20260501/14155_cf5cf27e/index.m3u8",
"final_url": "https://cnvod.jimxtc.com/20260515/20148_20d1b173/index.m3u8",
"reason": null
}
},
@@ -300,14 +300,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 240.719,
"init": 0.011,
"home": 0.006,
"category": 746.917,
"detail": 1021.999,
"module_load": 192.71,
"init": 0.006,
"home": 0.001,
"category": 737.759,
"detail": 1153.751,
"player": 0.003,
"url_check": 1477.782,
"total": 3520.882
"url_check": 1052.223,
"total": 3140.82
},
"counts": {
"classes": 5,
@@ -335,33 +335,33 @@
"spider": "不太灵",
"file": "不太灵.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='web5.mukaku.com', 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 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 ~~~~~~~~~~~~~~~~~^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 297, in _read_status\n line = str(self.fp.readline(_MAXLINE + 1), \"iso-8859-1\")\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^\nTimeoutError: The read 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='web5.mukaku.com', 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 700, 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 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/不太灵.txt\", line 290, in homeContent\n File \"/home/harold/workspace/tvbox-resources/py/不太灵.txt\", line 58, in _request_api\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/api.py\", line 73, in get\n return request(\"get\", url, params=params, **kwargs)\nrequests.exceptions.ReadTimeout: HTTPSConnectionPool(host='web5.mukaku.com', port=443): Read timed out. (read timeout=10)\n",
"failed_stage": "player",
"error": "playerContent 未返回播放地址",
"traceback": null,
"timings_ms": {
"module_load": 233.603,
"module_load": 180.552,
"init": 0.001,
"home": 10313.484,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"home": 537.259,
"category": 753.615,
"detail": 601.975,
"player": 0.005,
"url_check": 0.0,
"total": 10565.959
"total": 3444.109
},
"counts": {
"classes": 0,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
"classes": 5,
"category_videos": 25,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": null,
"vod_id": null,
"flag": null,
"play_id": null
"tid": "2",
"vod_id": "37462041",
"flag": "xunlei#1",
"play_id": "xunlei"
},
"player": {
"parse": null,
"parse": 0,
"url": "",
"valid": false,
"reachable": null,
@@ -378,14 +378,14 @@
"error": "详情缺少播放源或播放列表",
"traceback": null,
"timings_ms": {
"module_load": 232.834,
"module_load": 189.691,
"init": 0.001,
"home": 106.716,
"category": 0.005,
"detail": 106.953,
"home": 131.592,
"category": 0.009,
"detail": 94.664,
"player": 0.0,
"url_check": 0.0,
"total": 557.249
"total": 547.695
},
"counts": {
"classes": 5,
@@ -417,14 +417,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 238.104,
"module_load": 210.952,
"init": 0.001,
"home": 0.003,
"category": 411.044,
"detail": 325.374,
"player": 637.039,
"url_check": 415.819,
"total": 2061.031
"home": 0.001,
"category": 405.957,
"detail": 325.371,
"player": 1233.614,
"url_check": 418.009,
"total": 2594.588
},
"counts": {
"classes": 14,
@@ -440,11 +440,11 @@
},
"player": {
"parse": 0,
"url": "https://zijieapi.douyinbyte.com/m3u8/b5530fd20108ca4f1b8a5ee460da730a.m3u8",
"url": "https://zijieapi.douyinbyte.com/m3u8/f0b58ed8b6a33c0f5cfd74c34d8e5e8e.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://zijieapi.douyinbyte.com/m3u8/b5530fd20108ca4f1b8a5ee460da730a.m3u8",
"final_url": "https://zijieapi.douyinbyte.com/m3u8/f0b58ed8b6a33c0f5cfd74c34d8e5e8e.m3u8",
"reason": null
}
},
@@ -456,14 +456,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 236.072,
"module_load": 206.64,
"init": 0.001,
"home": 284.785,
"category": 387.608,
"detail": 884.706,
"home": 304.53,
"category": 2490.386,
"detail": 725.869,
"player": 0.019,
"url_check": 1759.914,
"total": 3563.958
"url_check": 1782.67,
"total": 5511.88
},
"counts": {
"classes": 7,
@@ -483,7 +483,7 @@
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://d1jdnmkc1n5cn4.cloudfront.net/hls_overseas/2b57fc8bceeab948d8324da0c5214b1e240d48cc.m3u8",
"final_url": "https://d1jdnmkc1n5cn4.cloudfront.net/hls_overseas/e03f2aac7f656e5ccd42b91d1b0bbfb1c774be0f.m3u8",
"reason": null
}
},
@@ -495,14 +495,14 @@
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 229.766,
"init": 0.001,
"home": 0.001,
"category": 243.217,
"module_load": 176.006,
"init": 0.0,
"home": 0.0,
"category": 221.621,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 713.889
"total": 675.54
},
"counts": {
"classes": 5,
@@ -534,14 +534,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 236.63,
"module_load": 189.446,
"init": 0.001,
"home": 0.003,
"category": 518.968,
"detail": 412.819,
"player": 0.005,
"url_check": 1160.825,
"total": 2362.544
"home": 0.001,
"category": 534.446,
"detail": 383.665,
"player": 0.006,
"url_check": 972.598,
"total": 2091.244
},
"counts": {
"classes": 4,
@@ -573,14 +573,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 229.997,
"module_load": 193.936,
"init": 0.001,
"home": 0.003,
"category": 562.883,
"detail": 443.733,
"player": 0.008,
"url_check": 1148.112,
"total": 2422.424
"home": 0.001,
"category": 507.091,
"detail": 415.166,
"player": 0.016,
"url_check": 885.805,
"total": 2010.234
},
"counts": {
"classes": 4,
@@ -590,17 +590,17 @@
},
"samples": {
"tid": "movie/list_2",
"vod_id": "/movie/2026/0514/59161.html",
"vod_id": "/movie/2026/0515/59195.html",
"flag": "baidu",
"play_id": "https://pan.baidu.com/s/1J9ntaD7-2IvZRNuoapwYXQ?pwd=fk1e"
"play_id": "https://pan.baidu.com/s/1EYkX9qPq7BgcTSulWemE8Q?pwd=zbtf"
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1J9ntaD7-2IvZRNuoapwYXQ?pwd=fk1e",
"url": "https://pan.baidu.com/s/1EYkX9qPq7BgcTSulWemE8Q?pwd=zbtf",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=J9ntaD7-2IvZRNuoapwYXQ&pwd=fk1e",
"final_url": "https://pan.baidu.com/share/init?surl=EYkX9qPq7BgcTSulWemE8Q&pwd=zbtf",
"reason": null
}
},
@@ -612,14 +612,14 @@
"error": "HTTP 403",
"traceback": null,
"timings_ms": {
"module_load": 235.267,
"init": 0.002,
"home": 170.343,
"category": 243.125,
"detail": 274.833,
"player": 357.548,
"url_check": 220.38,
"total": 2469.016
"module_load": 186.827,
"init": 0.001,
"home": 178.412,
"category": 228.619,
"detail": 213.412,
"player": 346.152,
"url_check": 222.343,
"total": 2397.835
},
"counts": {
"classes": 4,
@@ -629,17 +629,17 @@
},
"samples": {
"tid": "MOVIE",
"vod_id": "57435",
"vod_id": "57046",
"flag": "人人专线",
"play_id": "57435@383863"
"play_id": "57046@382015"
},
"player": {
"parse": 0,
"url": "https://tfvw1gr3demttga51hctt8rzdkpy.ourdvsssvip.com:20443/ws-302.bwcgee.cn/20c3705c49b871f198246733a68f0402/e97cf6f6692a4a93b6679b556fe67b42-d31f19a0e930010b0ed993fed007ae7f-ld.mp4?key=060f3940cfb1fe10b52129d8b4ab7e7f&time=1778863324144&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=292714ebb3a64b4db5435c4ab41bfcf0&hevc=false&seasonId=57435&wsiphost=ipdbme&wsrid_tag=6a07149c_PS-CKG-015Er210_42659-38188-s1t1778848924222&x-mamba-business-label=13551&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
"url": "https://tfvx1gr3dymt1ge31hcj3gezdgpy.ourdvsssvip.com:20443/ws-302.bwcgee.cn/c074943c4e6d71f18ed75017f0e90402/df3c0578d329457b9265317e359bce4a-0839441ca402de22c840b03b4e64e0d2-ld.mp4?key=d974d6d8cd57e1d94472b7ec6ab9a325&time=1778907573726&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=fd75811e48c948f787994f6fdc8cb012&hevc=false&seasonId=57046&wsiphost=ipdbme&wsrid_tag=6a07c175_PS-CKG-015Er210_45151-42109-s1t1778893173840&x-mamba-business-label=13423&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
"valid": false,
"reachable": false,
"status_code": 403,
"final_url": "https://tfvw1gr3demttga51hctt8rzdkpy.ourdvsssvip.com:20443/ws-302.bwcgee.cn/20c3705c49b871f198246733a68f0402/e97cf6f6692a4a93b6679b556fe67b42-d31f19a0e930010b0ed993fed007ae7f-ld.mp4?key=060f3940cfb1fe10b52129d8b4ab7e7f&time=1778863324144&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=292714ebb3a64b4db5435c4ab41bfcf0&hevc=false&seasonId=57435&wsiphost=ipdbme&wsrid_tag=6a07149c_PS-CKG-015Er210_42659-38188-s1t1778848924222&x-mamba-business-label=13551&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
"final_url": "https://tfvx1gr3dymt1ge31hcj3gezdgpy.ourdvsssvip.com:20443/ws-302.bwcgee.cn/c074943c4e6d71f18ed75017f0e90402/df3c0578d329457b9265317e359bce4a-0839441ca402de22c840b03b4e64e0d2-ld.mp4?key=d974d6d8cd57e1d94472b7ec6ab9a325&time=1778907573726&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=fd75811e48c948f787994f6fdc8cb012&hevc=false&seasonId=57046&wsiphost=ipdbme&wsrid_tag=6a07c175_PS-CKG-015Er210_45151-42109-s1t1778893173840&x-mamba-business-label=13423&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
"reason": "HTTP 403"
}
},
@@ -651,14 +651,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 8.647,
"module_load": 7.741,
"init": 0.001,
"home": 0.001,
"category": 303.928,
"detail": 552.159,
"category": 274.181,
"detail": 537.365,
"player": 0.002,
"url_check": 243.271,
"total": 1108.422
"url_check": 224.157,
"total": 1043.849
},
"counts": {
"classes": 6,
@@ -668,17 +668,17 @@
},
"samples": {
"tid": "电视剧",
"vod_id": "show:dccc1a382ea3456eaa77",
"vod_id": "show:afcb2d65c6a34b798d77",
"flag": "优酷",
"play_id": "https://v.youku.com/v_show/id_XNjUxODQ1MzE1Ng==.html"
"play_id": "https://v.youku.com/v_show/id_XNjUzNDA5NDEwNA==.html"
},
"player": {
"parse": 1,
"url": "https://v.youku.com/v_show/id_XNjUxODQ1MzE1Ng==.html",
"url": "https://v.youku.com/v_show/id_XNjUzNDA5NDEwNA==.html",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://v.youku.com/v_show/id_XNjUxODQ1MzE1Ng==.html",
"final_url": "https://v.youku.com/v_show/id_XNjUzNDA5NDEwNA==.html",
"reason": null
}
},
@@ -690,14 +690,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.573,
"init": 0.001,
"home": 0.001,
"category": 1028.491,
"detail": 1345.867,
"player": 0.009,
"url_check": 155.406,
"total": 2534.967
"module_load": 4.394,
"init": 0.0,
"home": 0.0,
"category": 1105.036,
"detail": 1386.204,
"player": 0.005,
"url_check": 137.042,
"total": 2633.108
},
"counts": {
"classes": 4,
@@ -707,17 +707,17 @@
},
"samples": {
"tid": "series",
"vod_id": "movie/galaxy-in-your-ear",
"flag": "播放源 1 (1080P)",
"play_id": "https://v10.baofeng10.com/video/xingchenweilai/ff5ea542981f/index.m3u8"
"vod_id": "movie/berlin-season-2",
"flag": "quark",
"play_id": "https://pan.quark.cn/s/e40d5674c4c7"
},
"player": {
"parse": 0,
"url": "https://v10.baofeng10.com/video/xingchenweilai/ff5ea542981f/index.m3u8",
"url": "https://pan.quark.cn/s/e40d5674c4c7",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://v10.baofeng10.com/video/xingchenweilai/ff5ea542981f/index.m3u8",
"final_url": "https://pan.quark.cn/s/e40d5674c4c7",
"reason": null
}
},
@@ -729,14 +729,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 9.778,
"init": 0.001,
"module_load": 7.226,
"init": 0.0,
"home": 0.001,
"category": 675.24,
"detail": 187.036,
"player": 1025.31,
"url_check": 3676.08,
"total": 5574.467
"category": 638.722,
"detail": 958.798,
"player": 1483.822,
"url_check": 544.472,
"total": 3634.884
},
"counts": {
"classes": 4,
@@ -752,11 +752,11 @@
},
"player": {
"parse": 0,
"url": "https://v.xlys.ltd.ua/obj/1CAD3272039C5CE25024C1FF820A056B7515D72CD3F2B5D576223DD07200DCD0",
"url": "https://v.xlys.ltd.ua/obj/7F668FEFCBE293DEC2453DFDE63C1A6378D2C4DA2DC39BA1053BACD27247FE5D",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://lf26-imcloud-file-sign.bytetos.com/ad-penny-bucket/o0EEIAAAt4uBCWDq8FAdfNTiQIzRVEAgCeOhCd?x-expires=1778856128&x-signature=ZAWW150rLaMJLKRbEEqdvq5At6k%3D",
"final_url": "https://lf26-imcloud-file-sign.bytetos.com/ad-penny-bucket/o0EEIAAAt4uBCWDq8FAdfNTiQIzRVEAgCeOhCd?x-expires=1778897323&x-signature=sgtkxgp98%2FdZ4%2F53SDEcZdPfLEE%3D",
"reason": null
}
},
@@ -768,14 +768,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.665,
"init": 0.0,
"home": 0.0,
"category": 805.641,
"detail": 1016.021,
"player": 1855.006,
"url_check": 2668.225,
"total": 6349.9
"module_load": 4.989,
"init": 0.001,
"home": 0.001,
"category": 1420.128,
"detail": 1146.444,
"player": 1994.055,
"url_check": 2713.207,
"total": 7279.292
},
"counts": {
"classes": 8,
@@ -791,11 +791,11 @@
},
"player": {
"parse": 0,
"url": "https://fktv.me/ysapi/m3u8/p/37b990abc5e9bdb31816c22b215fd765.m3u8",
"url": "https://fktv.me/ysapi/m3u8/p/32be46720b07fbb1f924d19b062782a2.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://fktv.me/ysapi/m3u8/p/37b990abc5e9bdb31816c22b215fd765.m3u8",
"final_url": "https://fktv.me/ysapi/m3u8/p/32be46720b07fbb1f924d19b062782a2.m3u8",
"reason": null
}
},
@@ -807,14 +807,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 10.948,
"module_load": 10.945,
"init": 0.001,
"home": 0.001,
"category": 713.041,
"detail": 641.03,
"player": 1878.159,
"url_check": 614.125,
"total": 3858.033
"category": 847.262,
"detail": 613.512,
"player": 1869.91,
"url_check": 632.522,
"total": 3974.842
},
"counts": {
"classes": 5,
@@ -824,17 +824,17 @@
},
"samples": {
"tid": "dianying",
"vod_id": "61813",
"vod_id": "63017",
"flag": "BF备用",
"play_id": "play/61813-3-1"
"play_id": "play/63017-2-1"
},
"player": {
"parse": 1,
"url": "https://www.jqqzx.cc/play/61813-3-1.html",
"url": "https://www.jqqzx.cc/play/63017-2-1.html",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://www.jqqzx.one/play/61813-3-1.html",
"final_url": "https://www.jqqzx.one/play/63017-2-1.html",
"reason": null
}
},
@@ -846,14 +846,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.212,
"module_load": 5.575,
"init": 0.001,
"home": 0.001,
"category": 186.658,
"detail": 450.701,
"player": 412.896,
"url_check": 1142.067,
"total": 2197.994
"category": 198.325,
"detail": 412.299,
"player": 413.272,
"url_check": 1118.399,
"total": 2148.437
},
"counts": {
"classes": 6,
@@ -885,14 +885,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.805,
"init": 0.0,
"home": 2779.369,
"category": 233.515,
"detail": 682.201,
"player": 0.002,
"url_check": 44.816,
"total": 3746.173
"module_load": 4.22,
"init": 0.001,
"home": 2872.212,
"category": 237.147,
"detail": 692.616,
"player": 0.005,
"url_check": 145.712,
"total": 3952.611
},
"counts": {
"classes": 11,
@@ -924,14 +924,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.193,
"init": 820.964,
"home": 0.004,
"category": 154.519,
"detail": 157.081,
"player": 0.01,
"url_check": 170.558,
"total": 1307.63
"module_load": 3.117,
"init": 389.46,
"home": 0.005,
"category": 177.821,
"detail": 155.917,
"player": 0.003,
"url_check": 129.071,
"total": 856.169
},
"counts": {
"classes": 7,
@@ -963,14 +963,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.886,
"init": 78.783,
"module_load": 3.843,
"init": 83.703,
"home": 0.001,
"category": 170.667,
"detail": 417.76,
"player": 273.782,
"url_check": 95.712,
"total": 1042.298
"category": 184.482,
"detail": 2070.869,
"player": 301.602,
"url_check": 80.938,
"total": 2726.104
},
"counts": {
"classes": 11,
@@ -986,11 +986,11 @@
},
"player": {
"parse": 0,
"url": "http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=a6f925d3980d358e1afd0e8ed9da9314&buy_key=FM&token=7481&timestamp=1778848925&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=d74a87567c3196cfc9003057c504e2df&buy_key=FM&token=6142&timestamp=1778893176&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=a6f925d3980d358e1afd0e8ed9da9314&buy_key=FM&token=7481&timestamp=1778848925&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=d74a87567c3196cfc9003057c504e2df&buy_key=FM&token=6142&timestamp=1778893176&duration=453",
"reason": null
}
},
@@ -1002,14 +1002,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 11.653,
"module_load": 11.478,
"init": 0.001,
"home": 411.424,
"category": 259.911,
"detail": 662.315,
"player": 442.044,
"url_check": 133.422,
"total": 1921.981
"home": 343.566,
"category": 243.362,
"detail": 996.08,
"player": 695.802,
"url_check": 146.905,
"total": 2438.718
},
"counts": {
"classes": 8,
@@ -1025,11 +1025,11 @@
},
"player": {
"parse": 0,
"url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778848925&sign=91ac35050186cb53fa4cfefae9a7db1d",
"url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778891407&sign=c41703f187cda38fbad56045a9535542",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778848925&sign=91ac35050186cb53fa4cfefae9a7db1d",
"final_url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778891407&sign=c41703f187cda38fbad56045a9535542",
"reason": null
}
},
@@ -1041,14 +1041,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 14.313,
"init": 0.005,
"home": 441.295,
"category": 425.629,
"detail": 389.209,
"player": 1286.491,
"url_check": 71.59,
"total": 2629.463
"module_load": 7.95,
"init": 0.004,
"home": 692.722,
"category": 479.861,
"detail": 431.069,
"player": 2592.683,
"url_check": 111.996,
"total": 4316.914
},
"counts": {
"classes": 3,
@@ -1064,11 +1064,11 @@
},
"player": {
"parse": 0,
"url": "https://p26-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809952926&x-signature=9pqZfE%2FBWrt6KFy7oRXOistKI4c%3D",
"url": "https://p26-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809997177&x-signature=04t%2BD4qDR3Kwwll3c0yBTA7y%2FlY%3D",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://p26-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809952926&x-signature=9pqZfE%2FBWrt6KFy7oRXOistKI4c%3D",
"final_url": "https://p26-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809997177&x-signature=04t%2BD4qDR3Kwwll3c0yBTA7y%2FlY%3D",
"reason": null
}
},
@@ -1080,14 +1080,14 @@
"error": "HTTPSConnectionPool(host='40000.me', port=443): Max retries exceeded with url: /api/maccms?ac=detail&t=20&pg=1&by=time (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)')))",
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 464, in _make_request\n self._validate_conn(conn)\n ~~~~~~~~~~~~~~~~~~~^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 1093, in _validate_conn\n conn.connect()\n ~~~~~~~~~~~~^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 796, in connect\n sock_and_verified = _ssl_wrap_socket_and_match_hostname(\n sock=sock,\n ...<14 lines>...\n assert_fingerprint=self.assert_fingerprint,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 975, in _ssl_wrap_socket_and_match_hostname\n ssl_sock = ssl_wrap_socket(\n sock=sock,\n ...<8 lines>...\n tls_in_tls=tls_in_tls,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/ssl_.py\", line 483, in ssl_wrap_socket\n ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)\nssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 488, in _make_request\n raise new_e\nurllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 535, in increment\n raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nurllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='40000.me', port=443): Max retries exceeded with url: /api/maccms?ac=detail&t=20&pg=1&by=time (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)')))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/四万影视.txt\", line 238, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/四万影视.txt\", line 212, in _api_get\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='40000.me', port=443): Max retries exceeded with url: /api/maccms?ac=detail&t=20&pg=1&by=time (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)')))\n",
"timings_ms": {
"module_load": 4.406,
"module_load": 9.536,
"init": 0.001,
"home": 0.001,
"category": 282.153,
"category": 291.731,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 289.645
"total": 308.346
},
"counts": {
"classes": 5,
@@ -1114,19 +1114,19 @@
{
"spider": "在线之家",
"file": "在线之家.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='jx.zxzjys.com', port=9876): 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='jx.zxzjys.com', port=9876): Read timed out. (read timeout=10)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 467, in _validate_from_tid\n player_result = _run_timed(result[\"timings_ms\"], \"player\", spider.playerContent, clock, play[\"flag\"], play[\"play_id\"], [])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/在线之家.txt\", line 550, in playerContent\n File \"/home/harold/workspace/tvbox-resources/py/在线之家.txt\", line 245, in _request_html\nrequests.exceptions.ReadTimeout: HTTPSConnectionPool(host='jx.zxzjys.com', port=9876): Read timed out. (read timeout=10)\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 9.311,
"module_load": 5.501,
"init": 0.001,
"home": 0.001,
"category": 401.931,
"detail": 841.445,
"player": 10418.834,
"url_check": 0.0,
"total": 11677.194
"category": 399.371,
"detail": 935.571,
"player": 6307.126,
"url_check": 244.946,
"total": 7894.22
},
"counts": {
"classes": 6,
@@ -1141,12 +1141,12 @@
"play_id": "vodplay/4601-1-1.html"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"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=t1js3TEw0mHyYOoPK7BAvZw8CVo%3D&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&Expires=1778903980&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=t1js3TEw0mHyYOoPK7BAvZw8CVo%3D&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&Expires=1778903980&x-amz-limitrate=102400&response-content-type=video/mp4&x-amz-FSIZE=2183471772&x-amz-UID=10000004591358&x-amz-UFID=31374317010337932",
"reason": null
}
},
@@ -1158,14 +1158,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.011,
"module_load": 7.948,
"init": 0.001,
"home": 0.001,
"category": 407.787,
"detail": 379.308,
"category": 400.997,
"detail": 352.747,
"player": 0.003,
"url_check": 1268.973,
"total": 2061.763
"url_check": 1110.872,
"total": 1872.896
},
"counts": {
"classes": 6,
@@ -1197,14 +1197,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 8.566,
"init": 0.001,
"home": 0.011,
"category": 702.423,
"detail": 320.838,
"player": 0.006,
"url_check": 1778.775,
"total": 2811.252
"module_load": 4.466,
"init": 0.0,
"home": 0.005,
"category": 702.853,
"detail": 339.802,
"player": 0.003,
"url_check": 1843.829,
"total": 2891.678
},
"counts": {
"classes": 6,
@@ -1236,14 +1236,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 10.068,
"module_load": 4.869,
"init": 0.001,
"home": 0.001,
"category": 650.121,
"detail": 632.992,
"player": 1019.528,
"url_check": 345.835,
"total": 2659.442
"category": 649.602,
"detail": 657.117,
"player": 1009.044,
"url_check": 334.918,
"total": 2656.852
},
"counts": {
"classes": 4,
@@ -1259,11 +1259,11 @@
},
"player": {
"parse": 0,
"url": "https://c167-obsdaz-ykj-01.obs.dualstack.cidc-rp-2006.joint.cmecloud.cn/1810c8ff2a78456b9348fadfe7ab0fd0086?response-content-disposition=attachment%3B%20filename%2A%3DUTF-8%27%274K.mp4&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260515T123010Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260515%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=3861ecca067a36ea9f020b0665a0ed64c65efd4abc5d863623115a0152ba147f",
"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=20260516T005251Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260516%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=5769148b31e378877eb124c46d855d5319620100fbaf2af42a451daf9ed7c9f7",
"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=20260515T123010Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260515%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=3861ecca067a36ea9f020b0665a0ed64c65efd4abc5d863623115a0152ba147f",
"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=20260516T005251Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260516%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=5769148b31e378877eb124c46d855d5319620100fbaf2af42a451daf9ed7c9f7",
"reason": null
}
},
@@ -1275,14 +1275,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.804,
"init": 0.018,
"home": 165.486,
"category": 370.569,
"detail": 323.294,
"module_load": 3.426,
"init": 0.014,
"home": 187.179,
"category": 245.949,
"detail": 298.846,
"player": 0.003,
"url_check": 192.517,
"total": 6064.745
"url_check": 158.039,
"total": 893.871
},
"counts": {
"classes": 30,
@@ -1293,16 +1293,16 @@
"samples": {
"tid": "都市",
"vod_id": "110000044555935694",
"flag": "720P",
"play_id": "https://tv-video.cdn.drama.9ddm.com/7C/BA/7CBA8422C5958A414F89947AD6DC4ADE.mp4?timestamp=1778848926&sign=5410ef94862db3d1e3cccd2094f4c024"
"flag": "1080P",
"play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778893175&sign=62c248640deb005d94ade6f317121cac"
},
"player": {
"parse": 0,
"url": "https://tv-video.cdn.drama.9ddm.com/7C/BA/7CBA8422C5958A414F89947AD6DC4ADE.mp4?timestamp=1778848926&sign=5410ef94862db3d1e3cccd2094f4c024",
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778893175&sign=62c248640deb005d94ade6f317121cac",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://tv-video.cdn.drama.9ddm.com/7C/BA/7CBA8422C5958A414F89947AD6DC4ADE.mp4?timestamp=1778848926&sign=5410ef94862db3d1e3cccd2094f4c024",
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778893175&sign=62c248640deb005d94ade6f317121cac",
"reason": null
}
},
@@ -1314,14 +1314,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 8.501,
"module_load": 5.71,
"init": 0.001,
"home": 0.001,
"category": 507.381,
"detail": 425.416,
"player": 410.489,
"url_check": 1897.653,
"total": 3249.952
"home": 0.0,
"category": 479.857,
"detail": 420.293,
"player": 400.006,
"url_check": 862.571,
"total": 2169.167
},
"counts": {
"classes": 5,
@@ -1331,17 +1331,17 @@
},
"samples": {
"tid": "1",
"vod_id": "3544",
"vod_id": "3613",
"flag": "在线云播",
"play_id": "3544_1_1"
"play_id": "3613_1_1"
},
"player": {
"parse": 0,
"url": "https://cdn.yzzy31-play.com/20251216/9033_3613ef1e/index.m3u8",
"url": "https://player.yzzyvip-35.com/20260331/3348_333cb763/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cdn.yzzy31-play.com/20251216/9033_3613ef1e/index.m3u8",
"final_url": "https://player.yzzyvip-35.com/20260331/3348_333cb763/index.m3u8",
"reason": null
}
},
@@ -1353,14 +1353,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.46,
"init": 0.001,
"module_load": 3.879,
"init": 0.0,
"home": 0.0,
"category": 438.216,
"detail": 473.715,
"player": 0.004,
"url_check": 101.079,
"total": 1017.141
"category": 450.286,
"detail": 423.981,
"player": 0.002,
"url_check": 191.418,
"total": 1070.113
},
"counts": {
"classes": 5,
@@ -1392,14 +1392,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.005,
"init": 0.001,
"home": 0.001,
"category": 319.936,
"detail": 211.159,
"player": 0.011,
"url_check": 234.17,
"total": 770.774
"module_load": 3.707,
"init": 0.0,
"home": 0.0,
"category": 289.63,
"detail": 255.577,
"player": 0.029,
"url_check": 224.987,
"total": 775.234
},
"counts": {
"classes": 7,
@@ -1409,17 +1409,17 @@
},
"samples": {
"tid": "25",
"vod_id": "7907",
"vod_id": "7908",
"flag": "115#木偶",
"play_id": "https://115cdn.com/s/swf2qa836dh?password=udc9"
"play_id": "https://115cdn.com/s/swf27dt36dh?password=y804"
},
"player": {
"parse": 0,
"url": "https://115cdn.com/s/swf2qa836dh?password=udc9",
"url": "https://115cdn.com/s/swf27dt36dh?password=y804",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://115cdn.com/s/swf2qa836dh?password=udc9",
"final_url": "https://115cdn.com/s/swf27dt36dh?password=y804",
"reason": null
}
},
@@ -1431,14 +1431,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.091,
"module_load": 5.431,
"init": 0.001,
"home": 0.001,
"category": 2043.738,
"detail": 1277.878,
"player": 1308.119,
"url_check": 1774.105,
"total": 6411.688
"category": 2176.447,
"detail": 1306.961,
"player": 1339.208,
"url_check": 359.463,
"total": 5187.996
},
"counts": {
"classes": 4,
@@ -1448,17 +1448,17 @@
},
"samples": {
"tid": "guoman",
"vod_id": "18033",
"vod_id": "18548",
"flag": "高清",
"play_id": "/play/18033-1-1/"
"play_id": "/play/18548-1-1/"
},
"player": {
"parse": 0,
"url": "https://vip.ffzy-plays.com/20251220/48743_0b86976b/index.m3u8",
"url": "https://v.lzcdn27.com/20260214/5233_434abb0c/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vip.ffzy-plays.com/20251220/48743_0b86976b/index.m3u8",
"final_url": "https://v.lzcdn27.com/20260214/5233_434abb0c/index.m3u8",
"reason": null
}
},
@@ -1470,14 +1470,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 7.803,
"init": 375.217,
"home": 335.061,
"category": 344.253,
"detail": 357.639,
"player": 786.325,
"url_check": 174.918,
"total": 2382.37
"module_load": 3.756,
"init": 368.55,
"home": 332.075,
"category": 347.014,
"detail": 385.253,
"player": 705.743,
"url_check": 948.578,
"total": 3091.759
},
"counts": {
"classes": 8,
@@ -1493,11 +1493,11 @@
},
"player": {
"parse": 0,
"url": "https://ad.kpyy258.com/m3u87/share/7404387/7599927/20260511/161239/720/index.m3u8?sign=a03e6a7c972395b9d6ec86f6c57b03f8&t=1778848929",
"url": "https://usaydd.0rvgx279.com/m3u87/share/7404387/7599927/20260511/161239/720/index.m3u8?sign=8f440c61504ed627090efcf6b7202d2d&t=1778893178",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://ad.kpyy258.com/m3u87/share/7404387/7599927/20260511/161239/720/index.m3u8?sign=a03e6a7c972395b9d6ec86f6c57b03f8&t=1778848929",
"final_url": "https://usaydd.0rvgx279.com/m3u87/share/7404387/7599927/20260511/161239/720/index.m3u8?sign=8f440c61504ed627090efcf6b7202d2d&t=1778893178",
"reason": null
}
},
@@ -1509,14 +1509,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 7.32,
"init": 0.001,
"home": 0.001,
"category": 213.475,
"detail": 181.075,
"player": 0.006,
"url_check": 1856.72,
"total": 2259.089
"module_load": 3.87,
"init": 0.002,
"home": 0.0,
"category": 393.28,
"detail": 364.128,
"player": 0.01,
"url_check": 930.326,
"total": 1692.191
},
"counts": {
"classes": 6,
@@ -1548,14 +1548,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.94,
"module_load": 7.367,
"init": 0.001,
"home": 650.743,
"category": 351.741,
"detail": 1014.71,
"player": 0.02,
"url_check": 100.707,
"total": 2125.021
"home": 320.253,
"category": 380.601,
"detail": 1037.763,
"player": 0.066,
"url_check": 121.749,
"total": 1869.11
},
"counts": {
"classes": 10,
@@ -1567,15 +1567,15 @@
"tid": "462",
"vod_id": "41000188058",
"flag": "河马剧场",
"play_id": "https://dzzt-video.cbread.cn/0395089fa83eca43b3224b065b367186/6a085c40/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4"
"play_id": "https://dzzt-video.cbread.cn/4937053c62e0537fd5416c9108436e44/6a08b0a0/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4"
},
"player": {
"parse": 0,
"url": "https://dzzt-video.cbread.cn/0395089fa83eca43b3224b065b367186/6a085c40/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4",
"url": "https://dzzt-video.cbread.cn/4937053c62e0537fd5416c9108436e44/6a08b0a0/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://dzzt-video.cbread.cn/0395089fa83eca43b3224b065b367186/6a085c40/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4",
"final_url": "https://dzzt-video.cbread.cn/4937053c62e0537fd5416c9108436e44/6a08b0a0/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4",
"reason": null
}
},
@@ -1587,14 +1587,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.299,
"init": 0.0,
"module_load": 6.401,
"init": 0.001,
"home": 0.001,
"category": 204.801,
"detail": 185.594,
"player": 0.004,
"url_check": 1146.494,
"total": 1541.931
"category": 321.407,
"detail": 193.266,
"player": 0.006,
"url_check": 1058.787,
"total": 1580.777
},
"counts": {
"classes": 5,
@@ -1626,14 +1626,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.668,
"init": 0.002,
"home": 149.27,
"category": 241.995,
"detail": 474.294,
"player": 430.837,
"url_check": 110.217,
"total": 1412.684
"module_load": 19.836,
"init": 0.009,
"home": 83.459,
"category": 89.209,
"detail": 121.9,
"player": 290.153,
"url_check": 74.898,
"total": 680.107
},
"counts": {
"classes": 10,
@@ -1649,11 +1649,11 @@
},
"player": {
"parse": 0,
"url": "http://beyond8888888.ucyy.cn/2026-05-15/125_78402_NBY-e84585334a25c5b49078dfac81549a0b.m3u8?ts=1778842839-0-0-c0a43ab113f7d507c8fd281e8cd38834",
"url": "http://210.16.164.53:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778893177233&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "http://beyond8888888.ucyy.cn/2026-05-15/125_78402_NBY-e84585334a25c5b49078dfac81549a0b.m3u8?ts=1778842839-0-0-c0a43ab113f7d507c8fd281e8cd38834",
"final_url": "http://210.16.164.53:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778893177233&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
"reason": null
}
},
@@ -1665,14 +1665,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 12.167,
"init": 0.018,
"home": 3965.915,
"category": 428.504,
"detail": 202.889,
"module_load": 29.879,
"init": 0.023,
"home": 3826.556,
"category": 561.986,
"detail": 198.068,
"player": 0.001,
"url_check": 97.323,
"total": 4707.504
"url_check": 113.313,
"total": 4732.628
},
"counts": {
"classes": 11,
@@ -1704,14 +1704,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.579,
"module_load": 5.571,
"init": 0.001,
"home": 0.0,
"category": 380.998,
"detail": 318.722,
"player": 370.834,
"url_check": 202.853,
"total": 1278.575
"home": 0.001,
"category": 425.311,
"detail": 314.676,
"player": 301.167,
"url_check": 186.316,
"total": 1233.541
},
"counts": {
"classes": 6,
@@ -1721,17 +1721,17 @@
},
"samples": {
"tid": "index",
"vod_id": "144772",
"vod_id": "143401",
"flag": "独播库",
"play_id": "144772-1-1"
"play_id": "143401-1-1"
},
"player": {
"parse": 0,
"url": "https://vid.dbokutv.com/20260510/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBtfsRsGlR7XgBNfgBJ0nBJ0nGZ8vDpaqCovjS34/chunklist.m3u8",
"url": "https://vid.dbokutv.com/20260404/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBtbsRsGlR7XgBMHqRNWjC34jC355GZSuDZGuBcrmD0/chunklist.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vid.dbokutv.com/20260510/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBtfsRsGlR7XgBNfgBJ0nBJ0nGZ8vDpaqCovjS34/chunklist.m3u8",
"final_url": "https://vid.dbokutv.com/20260404/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBtbsRsGlR7XgBMHqRNWjC34jC355GZSuDZGuBcrmD0/chunklist.m3u8",
"reason": null
}
},
@@ -1743,14 +1743,14 @@
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 3.652,
"init": 0.001,
"home": 0.0,
"category": 134.428,
"module_load": 4.142,
"init": 0.0,
"home": 0.001,
"category": 126.123,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 273.275
"total": 260.824
},
"counts": {
"classes": 8,
@@ -1782,14 +1782,14 @@
"error": "all domains failed",
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/玩偶聚合.txt\", line 475, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/玩偶聚合.txt\", line 407, in _request_with_failover\nRuntimeError: all domains failed\n",
"timings_ms": {
"module_load": 6.777,
"module_load": 9.79,
"init": 0.001,
"home": 0.084,
"category": 338.87,
"home": 0.097,
"category": 342.63,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 347.33
"total": 355.999
},
"counts": {
"classes": 10,
@@ -1821,14 +1821,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 7.609,
"module_load": 5.825,
"init": 0.001,
"home": 0.025,
"category": 439.605,
"detail": 720.903,
"player": 438.345,
"url_check": 80.32,
"total": 1687.847
"home": 0.015,
"category": 580.363,
"detail": 701.589,
"player": 371.766,
"url_check": 67.969,
"total": 1728.465
},
"counts": {
"classes": 5,
@@ -1844,11 +1844,11 @@
},
"player": {
"parse": 0,
"url": "https://vd.hxcztech.com/0b4759ab2a654347a779028bf0e16acb/20260515204208/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
"url": "https://vd.hxcztech.com/fafade10cc5b76eecee5940236868e28/20260516085937/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vd.hxcztech.com/0b4759ab2a654347a779028bf0e16acb/20260515204208/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
"final_url": "https://vd.hxcztech.com/fafade10cc5b76eecee5940236868e28/20260516085937/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
"reason": null
}
},
@@ -1860,14 +1860,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.542,
"module_load": 3.768,
"init": 0.001,
"home": 429.935,
"category": 277.243,
"detail": 598.505,
"player": 302.257,
"url_check": 42.727,
"total": 1654.8
"home": 692.834,
"category": 259.261,
"detail": 583.036,
"player": 246.177,
"url_check": 82.572,
"total": 1868.104
},
"counts": {
"classes": 29,
@@ -1899,14 +1899,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.907,
"init": 0.001,
"home": 521.175,
"category": 268.875,
"detail": 272.396,
"player": 0.024,
"url_check": 139.855,
"total": 1206.855
"module_load": 5.673,
"init": 0.0,
"home": 297.546,
"category": 252.426,
"detail": 291.296,
"player": 0.018,
"url_check": 150.206,
"total": 997.794
},
"counts": {
"classes": 8,
@@ -1938,14 +1938,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.542,
"module_load": 5.514,
"init": 0.001,
"home": 0.001,
"category": 201.657,
"detail": 179.991,
"player": 160.042,
"url_check": 1154.33,
"total": 1703.611
"category": 176.989,
"detail": 200.817,
"player": 167.052,
"url_check": 1158.364,
"total": 1709.332
},
"counts": {
"classes": 4,
@@ -1977,14 +1977,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 9.018,
"init": 0.047,
"home": 0.002,
"category": 882.305,
"detail": 172.36,
"player": 0.002,
"url_check": 1234.846,
"total": 2299.526
"module_load": 18.832,
"init": 0.039,
"home": 0.001,
"category": 880.093,
"detail": 164.677,
"player": 0.004,
"url_check": 989.138,
"total": 2053.635
},
"counts": {
"classes": 5,
@@ -2016,14 +2016,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 24.494,
"init": 441.941,
"home": 0.085,
"category": 459.131,
"detail": 303.074,
"player": 0.007,
"url_check": 86.784,
"total": 1316.386
"module_load": 18.622,
"init": 568.405,
"home": 0.106,
"category": 456.995,
"detail": 626.979,
"player": 0.002,
"url_check": 58.891,
"total": 1731.444
},
"counts": {
"classes": 11,
@@ -2055,34 +2055,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.928,
"init": 0.0,
"home": 0.0,
"category": 397.938,
"detail": 236.332,
"player": 0.008,
"url_check": 145.327,
"total": 784.114
"module_load": 3.736,
"init": 0.001,
"home": 0.001,
"category": 322.899,
"detail": 263.623,
"player": 0.005,
"url_check": 896.855,
"total": 1487.607
},
"counts": {
"classes": 2,
"category_videos": 20,
"detail_videos": 1,
"episodes": 1
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "https://sm3.cc/?id=50556",
"flag": "夸克",
"play_id": "https://pan.quark.cn/s/296e97d5ee78"
"vod_id": "https://sm3.cc/?id=50689",
"flag": "百度",
"play_id": "https://pan.baidu.com/s/15CylvZUU7rAV2ZEhDpwgzA?pwd=6666"
},
"player": {
"parse": 0,
"url": "https://pan.quark.cn/s/296e97d5ee78",
"url": "https://pan.baidu.com/s/15CylvZUU7rAV2ZEhDpwgzA?pwd=6666",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.quark.cn/s/296e97d5ee78",
"final_url": "https://pan.baidu.com/share/init?surl=5CylvZUU7rAV2ZEhDpwgzA&pwd=6666",
"reason": null
}
},
@@ -2094,14 +2094,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 12.627,
"module_load": 5.869,
"init": 0.001,
"home": 514.206,
"category": 706.492,
"detail": 122.871,
"player": 710.056,
"url_check": 296.063,
"total": 2363.612
"home": 438.587,
"category": 683.392,
"detail": 129.104,
"player": 252.129,
"url_check": 321.662,
"total": 1832.517
},
"counts": {
"classes": 7,
@@ -2133,14 +2133,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 11.133,
"module_load": 3.235,
"init": 0.001,
"home": 462.216,
"category": 536.434,
"detail": 0.01,
"player": 1458.985,
"url_check": 50.745,
"total": 2520.811
"home": 340.519,
"category": 356.051,
"detail": 0.005,
"player": 1378.734,
"url_check": 1280.95,
"total": 3361.103
},
"counts": {
"classes": 62,
@@ -2150,17 +2150,17 @@
},
"samples": {
"tid": "/discover/toplist?id=19723756",
"vod_id": "3369665959@1424@汪苏泷👉MP3",
"vod_id": "3382154270@Make Them Know@Drake👉MV",
"flag": "网易云音乐",
"play_id": "3369665959"
"play_id": "3382154270"
},
"player": {
"parse": 0,
"url": "https://iot202.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260515210711/d7f1965eb06bd5b9608aa19498a22eb0/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/79589342496/522e/c121/cc67/789d3ed87383402332574ed74a20cec3.mp3",
"url": "https://vodkgeyttp8.vod.126.net/cloudmusic/b028/core/d385/7949c1ba77cdfe6a51daf59fceb136cf.mp4?wsSecret=aea322a5e27e408561f63c963f326d68&wsTime=1778893180",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://iot202.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260515210711/d7f1965eb06bd5b9608aa19498a22eb0/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/79589342496/522e/c121/cc67/789d3ed87383402332574ed74a20cec3.mp3",
"final_url": "https://vodkgeyttp8.vod.126.net/cloudmusic/b028/core/d385/7949c1ba77cdfe6a51daf59fceb136cf.mp4?wsSecret=aea322a5e27e408561f63c963f326d68&wsTime=1778893180",
"reason": null
}
},
@@ -2172,14 +2172,14 @@
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 4.627,
"init": 0.0,
"home": 0.0,
"category": 6086.526,
"module_load": 4.319,
"init": 0.001,
"home": 0.001,
"category": 5270.367,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 7862.608
"total": 6872.503
},
"counts": {
"classes": 6,
@@ -2211,14 +2211,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 20.928,
"init": 0.001,
"home": 180.024,
"category": 238.861,
"detail": 743.316,
"module_load": 5.519,
"init": 0.0,
"home": 491.703,
"category": 284.961,
"detail": 749.723,
"player": 0.002,
"url_check": 817.562,
"total": 2003.74
"url_check": 182.16,
"total": 1714.95
},
"counts": {
"classes": 7,
@@ -2250,34 +2250,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.827,
"module_load": 3.792,
"init": 0.001,
"home": 0.0,
"category": 246.462,
"detail": 222.302,
"player": 0.026,
"url_check": 159.946,
"total": 633.408
"category": 284.681,
"detail": 233.367,
"player": 0.005,
"url_check": 995.335,
"total": 1517.648
},
"counts": {
"classes": 7,
"category_videos": 72,
"detail_videos": 1,
"episodes": 1
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "20362",
"flag": "夸克#至臻",
"play_id": "https://pan.quark.cn/s/aab67c92f2a0"
"vod_id": "20428",
"flag": "百度#至臻",
"play_id": "https://pan.baidu.com/s/13NubF-EJjexfh6F5107e8A?pwd=x2u9"
},
"player": {
"parse": 0,
"url": "https://pan.quark.cn/s/aab67c92f2a0",
"url": "https://pan.baidu.com/s/13NubF-EJjexfh6F5107e8A?pwd=x2u9",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.quark.cn/s/aab67c92f2a0",
"final_url": "https://pan.baidu.com/share/init?surl=3NubF-EJjexfh6F5107e8A&pwd=x2u9",
"reason": null
}
},
@@ -2289,34 +2289,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.317,
"module_load": 5.188,
"init": 0.0,
"home": 854.578,
"category": 878.244,
"detail": 681.16,
"player": 1624.664,
"url_check": 1120.674,
"total": 5165.255
"home": 1123.611,
"category": 898.014,
"detail": 702.136,
"player": 1309.487,
"url_check": 1021.568,
"total": 5061.062
},
"counts": {
"classes": 4,
"category_videos": 35,
"detail_videos": 1,
"episodes": 2
"episodes": 1
},
"samples": {
"tid": "1",
"vod_id": "detail/video/120849",
"flag": "FF有广",
"play_id": "play/120849-1-1"
"vod_id": "detail/video/121057",
"flag": "YZ有广",
"play_id": "play/121057-1-1"
},
"player": {
"parse": 0,
"url": "https://vip.ffzy-play9.com/20260507/39446_17e2f490/index.m3u8",
"url": "https://cdn.yzzyvip-29.com/20260515/23783_dc8ea2d0/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vip.ffzy-play9.com/20260507/39446_17e2f490/index.m3u8",
"final_url": "https://cdn.yzzyvip-29.com/20260515/23783_dc8ea2d0/index.m3u8",
"reason": null
}
},
@@ -2328,14 +2328,14 @@
"error": "HTTPConnectionPool(host='109.244.63.150', port=16969): 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 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 ~~~~~~~~~~~~~~~~~^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 297, in _read_status\n line = str(self.fp.readline(_MAXLINE + 1), \"iso-8859-1\")\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/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: HTTPConnectionPool(host='109.244.63.150', port=16969): Read timed out. (read timeout=10)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 428, in _validate_from_tid\n detail_result = _run_timed(result[\"timings_ms\"], \"detail\", spider.detailContent, clock, [vod_id])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/虎斑.txt\", line 580, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/虎斑.txt\", line 364, in _request_html\nrequests.exceptions.ReadTimeout: HTTPConnectionPool(host='109.244.63.150', port=16969): Read timed out. (read timeout=10)\n",
"timings_ms": {
"module_load": 40.633,
"init": 0.002,
"module_load": 7.756,
"init": 0.001,
"home": 0.001,
"category": 6334.154,
"detail": 10134.547,
"category": 2624.258,
"detail": 10135.386,
"player": 0.0,
"url_check": 0.0,
"total": 16511.34
"total": 12769.691
},
"counts": {
"classes": 6,
@@ -2345,7 +2345,7 @@
},
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/490055.html",
"vod_id": "/index.php/vod/detail/id/462186.html",
"flag": null,
"play_id": null
},
@@ -2367,14 +2367,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 13.402,
"module_load": 7.808,
"init": 0.001,
"home": 0.001,
"category": 667.216,
"detail": 316.753,
"player": 0.004,
"url_check": 1719.055,
"total": 2718.34
"home": 0.0,
"category": 470.653,
"detail": 682.81,
"player": 0.006,
"url_check": 997.236,
"total": 2159.076
},
"counts": {
"classes": 7,
@@ -2401,39 +2401,39 @@
{
"spider": "袋鼠影视",
"file": "袋鼠影视.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='daishuys.com', port=443): Max retries exceeded with url: /search.php?searchtype=5&tid=1&page=1 (Caused by ConnectTimeoutError(<HTTPSConnection(host='daishuys.com', port=443) at 0x7ebf4a132350>, 'Connection to daishuys.com 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='daishuys.com', port=443) at 0x7ebf4a132350>, 'Connection to daishuys.com 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='daishuys.com', port=443): Max retries exceeded with url: /search.php?searchtype=5&tid=1&page=1 (Caused by ConnectTimeoutError(<HTTPSConnection(host='daishuys.com', port=443) at 0x7ebf4a132350>, 'Connection to daishuys.com timed out. (connect timeout=15)'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/袋鼠影视.txt\", line 369, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/袋鼠影视.txt\", line 243, in _request_html\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='daishuys.com', port=443): Max retries exceeded with url: /search.php?searchtype=5&tid=1&page=1 (Caused by ConnectTimeoutError(<HTTPSConnection(host='daishuys.com', port=443) at 0x7ebf4a132350>, 'Connection to daishuys.com timed out. (connect timeout=15)'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.205,
"module_load": 6.959,
"init": 0.001,
"home": 0.001,
"category": 15018.607,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 15027.366
"category": 748.681,
"detail": 356.018,
"player": 448.022,
"url_check": 959.132,
"total": 2519.393
},
"counts": {
"classes": 4,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
"category_videos": 36,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": null,
"flag": null,
"play_id": null
"vod_id": "414878",
"flag": "蓝光专线4",
"play_id": "play/414878-0-0"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://play.phimgood.com/20260515/26831_01659324/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://play.phimgood.com/20260515/26831_01659324/index.m3u8",
"reason": null
}
},
@@ -2445,14 +2445,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.716,
"module_load": 5.85,
"init": 0.001,
"home": 352.377,
"category": 198.603,
"detail": 208.266,
"player": 335.898,
"url_check": 331.823,
"total": 1434.528
"home": 331.295,
"category": 186.141,
"detail": 192.961,
"player": 343.225,
"url_check": 329.477,
"total": 1389.712
},
"counts": {
"classes": 6,
@@ -2462,17 +2462,17 @@
},
"samples": {
"tid": "20",
"vod_id": "134826",
"vod_id": "134897",
"flag": "备用源(有广勿信)",
"play_id": "https://svip.ffzyplay.com/?url=https://vod.feifei-video.com/20260508/43039_70143f3a/index.m3u8|双程|1"
"play_id": "https://svip.ffzyplay.com/?url=https://vod.feifei-video.com/20260511/43140_b3dcb265/index.m3u8|能爱吗|1"
},
"player": {
"parse": 0,
"url": "https://svip.ffzyplay.com/?url=https://vod.feifei-video.com/20260508/43039_70143f3a/index.m3u8",
"url": "https://svip.ffzyplay.com/?url=https://vod.feifei-video.com/20260511/43140_b3dcb265/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://svip.ffzyplay.com/?url=https://vod.feifei-video.com/20260508/43039_70143f3a/index.m3u8",
"final_url": "https://svip.ffzyplay.com/?url=https://vod.feifei-video.com/20260511/43140_b3dcb265/index.m3u8",
"reason": null
}
},
@@ -2484,14 +2484,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.371,
"module_load": 4.227,
"init": 0.001,
"home": 0.001,
"category": 1045.812,
"detail": 645.377,
"player": 6892.313,
"url_check": 194.853,
"total": 10581.246
"category": 977.09,
"detail": 642.1,
"player": 1548.101,
"url_check": 202.777,
"total": 5634.041
},
"counts": {
"classes": 6,
@@ -2501,17 +2501,17 @@
},
"samples": {
"tid": "6",
"vod_id": "detail/8023.html",
"vod_id": "detail/8027.html",
"flag": "dev云播",
"play_id": "play/8023_2_1.html"
"play_id": "play/8027_2_1.html"
},
"player": {
"parse": 0,
"url": "https://v16.toutiao50.com/5dc15516ff385ec479b19649765b0413/6a086bb7/video/tos/alisg/tos-alisg-ve-0051c001-sg/okgCst4ADdpDukedTXRbMffVGbDFY7ETAIMEQ8/",
"url": "https://v16.toutiao50.com/c847580ab4990bea063adc47be169934/6a09119c/video/tos/alisg/tos-alisg-ve-0051c001-sg/oEZRdq8DNERA1QvfezITjQDpByYFEB1dBgdF02/",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://v16.toutiao50.com/5dc15516ff385ec479b19649765b0413/6a086bb7/video/tos/alisg/tos-alisg-ve-0051c001-sg/okgCst4ADdpDukedTXRbMffVGbDFY7ETAIMEQ8/",
"final_url": "https://v16.toutiao50.com/c847580ab4990bea063adc47be169934/6a09119c/video/tos/alisg/tos-alisg-ve-0051c001-sg/oEZRdq8DNERA1QvfezITjQDpByYFEB1dBgdF02/",
"reason": null
}
},
@@ -2523,14 +2523,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 19.436,
"module_load": 6.127,
"init": 0.001,
"home": 384.706,
"category": 96.203,
"detail": 3593.15,
"player": 140.974,
"url_check": 42.16,
"total": 4278.109
"home": 396.113,
"category": 87.437,
"detail": 3683.093,
"player": 150.924,
"url_check": 50.239,
"total": 4375.858
},
"counts": {
"classes": 4,
@@ -2546,11 +2546,11 @@
},
"player": {
"parse": 0,
"url": "http://lv.sycdn.kuwo.cn/5af0b2d5d9bddaed274ac3db38eca934/6a0714a7/resource/30106/trackmedia/long/M500002ZiI9a1sctnS.mp3?bitrate$128&format$mp3&source$kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type$convert_url_with_sign&user$&loginUid$",
"url": "http://lv.sycdn.kuwo.cn/89d01c7a9baa75f00759a17b2c1d4778/6a07c180/resource/30106/trackmedia/long/M500002ZiI9a1sctnS.mp3?bitrate$128&format$mp3&source$kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type$convert_url_with_sign&user$&loginUid$",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "http://lv.sycdn.kuwo.cn/5af0b2d5d9bddaed274ac3db38eca934/6a0714a7/resource/30106/trackmedia/long/M500002ZiI9a1sctnS.mp3?bitrate$128&format$mp3&source$kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type$convert_url_with_sign&user$&loginUid$",
"final_url": "http://lv.sycdn.kuwo.cn/89d01c7a9baa75f00759a17b2c1d4778/6a07c180/resource/30106/trackmedia/long/M500002ZiI9a1sctnS.mp3?bitrate$128&format$mp3&source$kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type$convert_url_with_sign&user$&loginUid$",
"reason": null
}
},
@@ -2562,34 +2562,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 12.179,
"init": 412.758,
"home": 241.364,
"category": 263.615,
"detail": 286.829,
"player": 334.199,
"url_check": 73.593,
"total": 1625.689
"module_load": 9.496,
"init": 420.725,
"home": 259.895,
"category": 218.453,
"detail": 250.929,
"player": 265.431,
"url_check": 90.814,
"total": 1517.189
},
"counts": {
"classes": 12,
"category_videos": 15,
"category_videos": 14,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "recommend",
"vod_id": "476045088",
"vod_id": "602155822",
"flag": "酷狗音乐",
"play_id": "476045088"
"play_id": "602155822"
},
"player": {
"parse": 0,
"url": "http://fsdg360.tx.kugou.com/202605152042/9c17ee6cb7176b48ec546552abfe37ce/v3/f8d27e55f1622c287e589b831f3d3ceb/yp/p_0_960133/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx476045088_qu128_s47993846.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"url": "http://fsdg360.hw.kugou.com/202605160859/0f1d3fb30ef9495fa04fcf4e9d2289a9/v3/67a39b537c8d3d47d51019dd52d45743/yp/p_0_960111/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx602155822_qu128_s1790754445.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "http://fsdg360.tx.kugou.com/202605152042/9c17ee6cb7176b48ec546552abfe37ce/v3/f8d27e55f1622c287e589b831f3d3ceb/yp/p_0_960133/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx476045088_qu128_s47993846.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"final_url": "http://fsdg360.hw.kugou.com/202605160859/0f1d3fb30ef9495fa04fcf4e9d2289a9/v3/67a39b537c8d3d47d51019dd52d45743/yp/p_0_960111/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx602155822_qu128_s1790754445.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"reason": null
}
},
@@ -2601,14 +2601,14 @@
"error": "HTTP 403",
"traceback": null,
"timings_ms": {
"module_load": 4.402,
"module_load": 3.963,
"init": 0.001,
"home": 6884.55,
"category": 205.588,
"detail": 208.708,
"player": 202.681,
"url_check": 110.364,
"total": 8368.862
"home": 1617.343,
"category": 211.714,
"detail": 207.589,
"player": 219.004,
"url_check": 154.12,
"total": 4493.011
},
"counts": {
"classes": 4,
@@ -2624,11 +2624,11 @@
},
"player": {
"parse": 0,
"url": "https://ppvod01.kqgfbs.com/splitOut/20260103/1226906/V20260103184854978121226906/index.m3u8?t=6a073edc&whip=212.107.29.200&sign=b0c1f36c9b3a7dce930fe23b20573848d6b71023",
"url": "https://ppvod01.kqgfbs.com/splitOut/20260103/1226906/V20260103184854978121226906/index.m3u8?t=6a07ebb0&whip=212.107.29.200&sign=32af76c5e8066d798493fec5d3f16852fe4e70e7",
"valid": false,
"reachable": false,
"status_code": 403,
"final_url": "https://ppvod01.kqgfbs.com/splitOut/20260103/1226906/V20260103184854978121226906/index.m3u8?t=6a073edc&whip=212.107.29.200&sign=b0c1f36c9b3a7dce930fe23b20573848d6b71023",
"final_url": "https://ppvod01.kqgfbs.com/splitOut/20260103/1226906/V20260103184854978121226906/index.m3u8?t=6a07ebb0&whip=212.107.29.200&sign=32af76c5e8066d798493fec5d3f16852fe4e70e7",
"reason": "HTTP 403"
}
},
@@ -2640,14 +2640,14 @@
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 4.134,
"module_load": 4.103,
"init": 0.001,
"home": 0.0,
"category": 2631.086,
"home": 0.001,
"category": 1324.554,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 3654.13
"total": 2664.788
},
"counts": {
"classes": 5,
@@ -2679,14 +2679,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 6.138,
"init": 0.001,
"module_load": 4.136,
"init": 0.0,
"home": 0.0,
"category": 1668.87,
"detail": 1677.218,
"player": 1659.08,
"url_check": 1858.34,
"total": 6870.257
"category": 1828.437,
"detail": 1646.661,
"player": 1662.422,
"url_check": 1825.464,
"total": 6967.826
},
"counts": {
"classes": 4,
@@ -2702,11 +2702,11 @@
},
"player": {
"parse": 0,
"url": "https://cdn.yzzy32-play.com/share/c3d54b1a928304d7dfd75c1c8f5ace33",
"url": "https://cdn.yzzy32-play.com/20260515/40235_c3d54b1a/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cdn.yzzy32-play.com/share/c3d54b1a928304d7dfd75c1c8f5ace33",
"final_url": "https://cdn.yzzy32-play.com/20260515/40235_c3d54b1a/index.m3u8",
"reason": null
}
},
@@ -2718,14 +2718,14 @@
"error": "分类列表为空",
"traceback": null,
"timings_ms": {
"module_load": 4.981,
"module_load": 7.285,
"init": 0.001,
"home": 277.254,
"home": 298.25,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 282.374
"total": 305.703
},
"counts": {
"classes": 0,
@@ -2757,14 +2757,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.481,
"module_load": 5.982,
"init": 0.0,
"home": 0.0,
"category": 441.322,
"detail": 196.128,
"player": 0.016,
"url_check": 369.312,
"total": 1011.365
"category": 413.791,
"detail": 160.94,
"player": 0.017,
"url_check": 306.788,
"total": 888.213
},
"counts": {
"classes": 6,
@@ -2791,19 +2791,19 @@
{
"spider": "黑猫APP",
"file": "黑猫APP.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"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 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 467, in _validate_from_tid\n player_result = _run_timed(result[\"timings_ms\"], \"player\", spider.playerContent, clock, play[\"flag\"], play[\"play_id\"], [])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/黑猫APP.txt\", line 349, in playerContent\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",
"timings_ms": {
"module_load": 6.738,
"module_load": 4.442,
"init": 0.001,
"home": 939.799,
"category": 1670.708,
"detail": 615.223,
"player": 0.03,
"url_check": 942.291,
"total": 5158.537
"home": 899.851,
"category": 602.868,
"detail": 765.951,
"player": 419.63,
"url_check": 0.0,
"total": 2696.921
},
"counts": {
"classes": 5,
@@ -2813,17 +2813,17 @@
},
"samples": {
"tid": "1",
"vod_id": "93706",
"flag": "🐈‍⬛清线路2",
"play_id": "清线路3@@direct@@,https://vip.ffzy-play9.com/20260514/41214_e0c1f250/index.m3u8,token+,1,0"
"vod_id": "91886",
"flag": "🐈‍⬛清线路",
"play_id": "清线路1@@direct@@66ddeb0b0fe39924c19b86fc5dcce841,ed69a73b6c06f5db9a4bcd46d8550c36,token+,1,1"
},
"player": {
"parse": 0,
"url": "https://vip.ffzy-play9.com/20260514/41214_e0c1f250/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vip.ffzy-play9.com/20260514/41214_e0c1f250/index.m3u8",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
}