This commit is contained in:
Harold
2026-05-14 19:36:20 +08:00
parent bad4bf584a
commit 16eab7fbb3
6 changed files with 1285 additions and 1274 deletions
+6 -6
View File
@@ -1,14 +1,14 @@
//@name:盘链
//@version:5
//@version:6
//@remark:
//@format:secspider/1
//@alg:aes-256-gcm
//@wrap:hkdf-aes-keywrap
//@sign:ed25519
//@kid:k2026_04
//@nonce:base64:J63+Qm4jQJONka7K
//@ek:base64:Qq78meP6jYcWSk5Mu2UpTegRZs7v3s6QwKEfBGS6wkBN2YrnDkfAFVroy3THHqqk
//@hash:sha256:4c8d5ce0b533de1ccff2093dc64daab72900d022b3e1e347dad7c04bc83e6231
//@sig:base64:pUXwOw1YOXv6qEi/Sk6OjZnWIm3QhXElhPXDEeah2ti1Hs/+gQQem8MduYuvW3d1dfQvDEysAv2bE/zcagUJCA==
//@nonce:base64:G3pvFMsaf3Y1TDvr
//@ek:base64:o+XHkpQOohjz9cGZKmxoCB5InesMxOXxF49at1TvL4CXZflJ9vtyheOU2fdfxWqT
//@hash:sha256:9ef992cbd654c5d9a25f64483e090275f43914165ab490e9575184450beba161
//@sig:base64:dcn+++aSWzEh9Gn9lIVim1BY9eoAof/uxXzInESIfzqH1aFqL6eIqcXq1yOO6bHQRyuRpi/XyVUhVCt+dkAfAQ==
payload.base64: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
payload.base64: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
File diff suppressed because one or more lines are too long
+999 -999
View File
@@ -1,21 +1,21 @@
{
"generated_at": "2026-05-14T19:30:40+08:00",
"generated_at": "2026-05-14T19:35:52+08:00",
"max_workers": 16,
"total_duration_ms": 51168.007,
"total_duration_ms": 27159.356,
"summary": {
"total": 72,
"success": 41,
"failed": 31,
"success_rate": 0.5694,
"success": 52,
"failed": 20,
"success_rate": 0.7222,
"stage_failures": {
"module_load": 0,
"init": 0,
"home": 1,
"category": 3,
"detail": 2,
"category": 5,
"detail": 1,
"player": 0,
"url_check": 2,
"unexpected": 23
"url_check": 1,
"unexpected": 12
}
},
"results": [
@@ -27,14 +27,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 350.645,
"module_load": 243.625,
"init": 0.001,
"home": 0.002,
"category": 2807.807,
"detail": 2610.498,
"player": 0.011,
"url_check": 191.331,
"total": 5962.277
"home": 0.003,
"category": 844.817,
"detail": 556.455,
"player": 0.006,
"url_check": 180.109,
"total": 1912.177
},
"counts": {
"classes": 5,
@@ -66,14 +66,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 277.213,
"init": 0.01,
"home": 0.003,
"category": 3203.829,
"detail": 3670.114,
"player": 0.004,
"url_check": 0.09,
"total": 7156.129
"module_load": 235.268,
"init": 0.011,
"home": 0.002,
"category": 750.247,
"detail": 648.713,
"player": 0.006,
"url_check": 0.133,
"total": 1726.835
},
"counts": {
"classes": 12,
@@ -105,14 +105,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 266.053,
"module_load": 295.281,
"init": 0.001,
"home": 2424.023,
"category": 2589.824,
"detail": 3353.95,
"player": 4758.791,
"url_check": 399.679,
"total": 13793.861
"home": 330.915,
"category": 254.747,
"detail": 273.19,
"player": 209.239,
"url_check": 352.208,
"total": 1748.633
},
"counts": {
"classes": 6,
@@ -132,7 +132,7 @@
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://lv-sycdn.kuwo.cn/feb2f4321471257bdcf84521f798da0e/6a05b26e/resource/1307392909/trackmedia/C200000W91kQ0efKLA.m4a?from=vip",
"final_url": "https://lv-sycdn.kuwo.cn/8eaf48523691a8e270ee815a6acb3c24/6a05b39a/resource/1307392909/trackmedia/C200000W91kQ0efKLA.m4a?from=vip",
"reason": null
}
},
@@ -144,14 +144,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 409.766,
"init": 0.0,
"home": 0.0,
"category": 2318.729,
"detail": 2182.855,
"player": 0.033,
"url_check": 2208.83,
"total": 7121.401
"module_load": 331.726,
"init": 0.001,
"home": 0.001,
"category": 1262.996,
"detail": 1421.646,
"player": 0.01,
"url_check": 785.92,
"total": 3804.011
},
"counts": {
"classes": 2,
@@ -183,14 +183,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 329.574,
"module_load": 295.745,
"init": 0.007,
"home": 0.002,
"category": 83.494,
"detail": 115.263,
"player": 520.964,
"url_check": 136.139,
"total": 2442.266
"home": 0.007,
"category": 915.652,
"detail": 130.646,
"player": 557.664,
"url_check": 156.477,
"total": 3412.499
},
"counts": {
"classes": 6,
@@ -206,11 +206,11 @@
},
"player": {
"parse": 0,
"url": "https://isure.stream.qqmusic.qq.com/M500004G9dQ732c699.mp3?guid=fdd773c43d7301cf0867f25e7cb45b3f&vkey=89F77051CACF91F674293DF04158061E4A36B7E1B94A481A59C4DCED48596280018BBA78758CD929AB3AAC9884BB26DC08E7DF32775D92AE__v2b9ab97b&uin=&fromtag=119042&src=M500003v6xsK0PFi9w.mp3&redirect=1",
"url": "https://isure.stream.qqmusic.qq.com/M500004G9dQ732c699.mp3?guid=9992d436e38d86a5a95bbce7c90a1486&vkey=8596E01B0D0EEC836E39CAA3EA4B9EA2567206388D7C63E7D24B2A9EAAC40EEAF416993C5D21002CD82305B6D6A0E8518646DDCDE05FD803__v2b94c720&uin=&fromtag=119042&src=M500003v6xsK0PFi9w.mp3&redirect=1",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://isure.stream.qqmusic.qq.com/M500004G9dQ732c699.mp3?guid=fdd773c43d7301cf0867f25e7cb45b3f&vkey=89F77051CACF91F674293DF04158061E4A36B7E1B94A481A59C4DCED48596280018BBA78758CD929AB3AAC9884BB26DC08E7DF32775D92AE__v2b9ab97b&uin=&fromtag=119042&src=M500003v6xsK0PFi9w.mp3&redirect=1",
"final_url": "https://isure.stream.qqmusic.qq.com/M500004G9dQ732c699.mp3?guid=9992d436e38d86a5a95bbce7c90a1486&vkey=8596E01B0D0EEC836E39CAA3EA4B9EA2567206388D7C63E7D24B2A9EAAC40EEAF416993C5D21002CD82305B6D6A0E8518646DDCDE05FD803__v2b94c720&uin=&fromtag=119042&src=M500003v6xsK0PFi9w.mp3&redirect=1",
"reason": null
}
},
@@ -222,14 +222,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 362.661,
"init": 0.001,
"module_load": 232.924,
"init": 0.002,
"home": 0.001,
"category": 2265.119,
"detail": 1811.85,
"player": 0.007,
"url_check": 171.275,
"total": 4619.607
"category": 866.899,
"detail": 1228.59,
"player": 0.005,
"url_check": 228.935,
"total": 2559.582
},
"counts": {
"classes": 6,
@@ -256,39 +256,39 @@
{
"spider": "youknow",
"file": "youknow.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 528, in _validate_from_tid\n raise last_error or ValidationError(\"detail\", \"没有可用的播放条目\")\nValidationError: HTTPSConnectionPool(host='vip.dytt-tvs.com', port=443): Read timed out. (read timeout=5)\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\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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 732, 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/youknow.txt\", line 276, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/youknow.txt\", line 139, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 331.261,
"module_load": 239.883,
"init": 0.001,
"home": 0.001,
"category": 4776.89,
"detail": 4613.491,
"player": 5066.475,
"url_check": 5015.761,
"total": 24210.047
"category": 1807.812,
"detail": 1753.498,
"player": 1765.822,
"url_check": 1741.009,
"total": 7395.165
},
"counts": {
"classes": 7,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
"category_videos": 227,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "drama",
"vod_id": null,
"flag": null,
"play_id": null
"tid": "index",
"vod_id": "203926",
"flag": "YouKnowTV",
"play_id": "eyJ2b2RfaWQiOiIyMDM5MjYiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM5MjYtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM5MjYtMS0xLyJ9LHsic291cmNlIjoi57q_6LevNCIsInNvdXJjZV9pZCI6IjIiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM5MjYtMi0xLyJ9LHsic291cmNlIjoi57q_6LevNSIsInNvdXJjZV9pZCI6IjIiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM5MjYtMi0xLyJ9XX0"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://play.phimgood.com/20260514/26755_b105ac0f/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://play.phimgood.com/20260514/26755_b105ac0f/index.m3u8",
"reason": null
}
},
@@ -300,14 +300,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 268.035,
"init": 0.005,
"home": 0.001,
"category": 2628.423,
"detail": 2378.136,
"module_load": 241.841,
"init": 0.009,
"home": 0.002,
"category": 943.101,
"detail": 1053.223,
"player": 0.003,
"url_check": 1013.284,
"total": 6289.315
"url_check": 1108.57,
"total": 3432.602
},
"counts": {
"classes": 5,
@@ -336,27 +336,27 @@
"file": "不太灵.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 441, in _validate_from_tid\n play_candidates = _extract_play_candidates(vod)\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 336, in _extract_play_candidates\n raise ValidationError(\"detail\", \"详情缺少播放源或播放列表\")\nValidationError: 详情缺少播放源或播放列表\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\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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 732, 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 300, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/不太灵.txt\", line 58, in _request_api\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"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/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 441, in _validate_from_tid\n play_candidates = _extract_play_candidates(vod)\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 336, in _extract_play_candidates\n raise ValidationError(\"detail\", \"详情缺少播放源或播放列表\")\nValidationError: 详情缺少播放源或播放列表\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 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 732, 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 328, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/不太灵.txt\", line 58, in _request_api\nrequests.exceptions.ReadTimeout: HTTPSConnectionPool(host='web5.mukaku.com', port=443): Read timed out. (read timeout=10)\n",
"timings_ms": {
"module_load": 273.579,
"init": 0.004,
"home": 2203.786,
"category": 5023.006,
"detail": 5627.457,
"module_load": 231.76,
"init": 0.002,
"home": 1208.784,
"category": 6855.731,
"detail": 10256.499,
"player": 0.0,
"url_check": 0.0,
"total": 17239.971
"total": 21338.388
},
"counts": {
"classes": 5,
"category_videos": 0,
"category_videos": 25,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "2",
"vod_id": null,
"vod_id": "36310054",
"flag": null,
"play_id": null
},
@@ -378,14 +378,14 @@
"error": "详情缺少播放源或播放列表",
"traceback": null,
"timings_ms": {
"module_load": 367.539,
"init": 0.002,
"home": 234.435,
"category": 0.012,
"detail": 137.813,
"module_load": 230.171,
"init": 0.003,
"home": 245.116,
"category": 0.017,
"detail": 136.791,
"player": 0.0,
"url_check": 0.0,
"total": 918.569
"total": 822.161
},
"counts": {
"classes": 5,
@@ -412,78 +412,78 @@
{
"spider": "两个BT",
"file": "两个BT.txt",
"success": true,
"failed_stage": null,
"error": null,
"success": false,
"failed_stage": "category",
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 353.722,
"module_load": 293.184,
"init": 0.001,
"home": 0.001,
"category": 2112.772,
"detail": 2107.011,
"player": 6322.107,
"url_check": 2431.573,
"total": 13329.264
"home": 0.003,
"category": 5041.457,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 10513.035
},
"counts": {
"classes": 14,
"category_videos": 24,
"detail_videos": 1,
"episodes": 1
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "zgjun",
"vod_id": "ch45x6dqu",
"flag": "两个BT",
"play_id": "eyJwaWQiOiIvcGxheS9jaDQ1eDZkcXUiLCJzaWQiOiJjaDQ1eDZkcXUiLCJuYW1lIjoiMSJ9"
"tid": "meiju",
"vod_id": null,
"flag": null,
"play_id": null
},
"player": {
"parse": 0,
"url": "https://zijieapi.douyinbyte.com/m3u8/796f198cd696354075fc191b4a1d4f3a.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://zijieapi.douyinbyte.com/m3u8/796f198cd696354075fc191b4a1d4f3a.m3u8",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
{
"spider": "乌云影视",
"file": "乌云影视.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='wooyun.tv', port=443): Max retries exceeded with url: /movie/category/menu (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_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: certificate has expired (_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: certificate has expired (_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='wooyun.tv', port=443): Max retries exceeded with url: /movie/category/menu (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_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 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 245, in homeContent\n File \"/home/harold/workspace/tvbox-resources/py/乌云影视.txt\", line 80, in _request_json\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='wooyun.tv', port=443): Max retries exceeded with url: /movie/category/menu (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1081)')))\n",
"timings_ms": {
"module_load": 335.038,
"module_load": 237.933,
"init": 0.001,
"home": 1876.176,
"category": 2501.837,
"detail": 6625.099,
"player": 0.084,
"url_check": 4209.872,
"total": 15552.009
"home": 220.023,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 527.303
},
"counts": {
"classes": 7,
"category_videos": 24,
"detail_videos": 1,
"episodes": 1
"classes": 0,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "movie",
"vod_id": "483203",
"flag": "乌云影视",
"play_id": "eyJtZWRpYUlkIjogIjQ4MzIwMyIsICJzZWFzb25ObyI6IDEsICJlcE5vIjogMSwgInZpZGVvSWQiOiAxNTc2MjgzMiwgInBsYXlVcmwiOiAiaHR0cHM6Ly9kMWpkbm1rYzFuNWNuNC5jbG91ZGZyb250Lm5ldC9nZW5fb3ZlcnNlYXMvaHR0cHM6Ly9zMi5iZmxsdmlwLmNvbS92aWRlby95YW54aWF4aW5nL2E2ZWY4NTRjMGMxZi9pbmRleC5tM3U4IiwgIm5hbWUiOiAi56ysMembhiDpq5jmuIUifQ"
"tid": null,
"vod_id": null,
"flag": null,
"play_id": null
},
"player": {
"parse": 0,
"url": "https://d1jdnmkc1n5cn4.cloudfront.net/gen_overseas/https://s2.bfllvip.com/video/yanxiaxing/a6ef854c0c1f/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://d1jdnmkc1n5cn4.cloudfront.net/hls_overseas/c42b529bb611d97e7863fcf650d6706752a901df.m3u8",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
@@ -491,18 +491,18 @@
"spider": "乐兔",
"file": "乐兔.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='www.letu.me', port=443): Read timed out. (read timeout=10)",
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 464, in _make_request\n self._validate_conn(conn)\n ~~~~~~~~~~~~~~~~~~~^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 1093, in _validate_conn\n conn.connect()\n ~~~~~~~~~~~~^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 796, in connect\n sock_and_verified = _ssl_wrap_socket_and_match_hostname(\n sock=sock,\n ...<14 lines>...\n assert_fingerprint=self.assert_fingerprint,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 975, in _ssl_wrap_socket_and_match_hostname\n ssl_sock = ssl_wrap_socket(\n sock=sock,\n ...<8 lines>...\n tls_in_tls=tls_in_tls,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/ssl_.py\", line 483, in ssl_wrap_socket\n ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)\nTimeoutError: _ssl.c:1063: The handshake operation timed out\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 490, in increment\n raise reraise(type(error), error, _stacktrace)\n ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/util.py\", line 39, in reraise\n raise value\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\nurllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www.letu.me', port=443): Read timed out. (read timeout=10)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/乐兔.txt\", line 117, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/乐兔.txt\", line 72, in _request_html\nrequests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.letu.me', port=443): Read timed out. (read timeout=10)\n",
"failed_stage": "category",
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 340.466,
"module_load": 256.567,
"init": 0.001,
"home": 0.001,
"category": 10083.384,
"home": 0.002,
"category": 356.028,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 10432.104
"total": 1111.842
},
"counts": {
"classes": 5,
@@ -511,7 +511,7 @@
"episodes": 0
},
"samples": {
"tid": "1",
"tid": "2",
"vod_id": null,
"flag": null,
"play_id": null
@@ -534,14 +534,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 270.144,
"module_load": 241.819,
"init": 0.001,
"home": 0.001,
"category": 2720.398,
"detail": 2418.998,
"player": 0.008,
"url_check": 984.842,
"total": 6395.883
"home": 0.002,
"category": 525.439,
"detail": 559.199,
"player": 0.006,
"url_check": 1556.594,
"total": 2967.077
},
"counts": {
"classes": 4,
@@ -573,14 +573,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 268.722,
"init": 0.001,
"home": 0.001,
"category": 4217.19,
"detail": 3187.352,
"module_load": 236.481,
"init": 0.0,
"home": 0.005,
"category": 967.428,
"detail": 1032.751,
"player": 0.008,
"url_check": 1114.351,
"total": 8789.255
"url_check": 1059.43,
"total": 3382.757
},
"counts": {
"classes": 4,
@@ -612,14 +612,14 @@
"error": "HTTP 403",
"traceback": null,
"timings_ms": {
"module_load": 282.353,
"module_load": 227.522,
"init": 0.002,
"home": 313.337,
"category": 292.244,
"detail": 280.421,
"player": 410.528,
"url_check": 366.032,
"total": 3037.838
"home": 274.216,
"category": 269.353,
"detail": 280.865,
"player": 396.156,
"url_check": 289.938,
"total": 3029.138
},
"counts": {
"classes": 4,
@@ -635,11 +635,11 @@
},
"player": {
"parse": 0,
"url": "https://a3fkpcuk2gkkpmr.302.fledgecloud.com:56782/zj-302-cdn.bwcgee.cn/1042fe66438071f1b7975420848d0402/6eacc12bf7a6411c8174b99723f415bc-494b769a1432c115ec157a0c96eb87ed-ld.mp4?auth_key=1778772642-acab3ddd05cff6720710bfe155753871-0-6d47a7c58a2f82867d3eb229a9de6ef9&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=f1d5c74ce6104b65ae11a82f4a0b3827&hevc=false&seasonId=56136",
"url": "https://tfvv1gr3dymt1ge31hcj3gezdrqe.ourdvsssvip.com:20443/ws-302.bwcgee.cn/1042fe66438071f1b7975420848d0402/6eacc12bf7a6411c8174b99723f415bc-494b769a1432c115ec157a0c96eb87ed-ld.mp4?key=d160334bcae99cefc826f17a1a26a86f&time=1778772955678&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=e651f06aab5442eab671bc03e9234e06&hevc=false&seasonId=56136&wsiphost=ipdbme&wsrid_tag=6a05b39b_PS-CKG-015Er210_43097-65125-s1t1778758555789&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://a3fkpcuk2gkkpmr.302.fledgecloud.com:56782/zj-302-cdn.bwcgee.cn/1042fe66438071f1b7975420848d0402/6eacc12bf7a6411c8174b99723f415bc-494b769a1432c115ec157a0c96eb87ed-ld.mp4?auth_key=1778772642-acab3ddd05cff6720710bfe155753871-0-6d47a7c58a2f82867d3eb229a9de6ef9&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=f1d5c74ce6104b65ae11a82f4a0b3827&hevc=false&seasonId=56136",
"final_url": "https://tfvv1gr3dymt1ge31hcj3gezdrqe.ourdvsssvip.com:20443/ws-302.bwcgee.cn/1042fe66438071f1b7975420848d0402/6eacc12bf7a6411c8174b99723f415bc-494b769a1432c115ec157a0c96eb87ed-ld.mp4?key=d160334bcae99cefc826f17a1a26a86f&time=1778772955678&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=e651f06aab5442eab671bc03e9234e06&hevc=false&seasonId=56136&wsiphost=ipdbme&wsrid_tag=6a05b39b_PS-CKG-015Er210_43097-65125-s1t1778758555789&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": 18.079,
"module_load": 11.618,
"init": 0.001,
"home": 0.001,
"category": 384.808,
"detail": 617.254,
"player": 0.005,
"url_check": 267.333,
"total": 1288.595
"category": 304.637,
"detail": 648.904,
"player": 0.008,
"url_check": 280.052,
"total": 1245.995
},
"counts": {
"classes": 6,
@@ -685,146 +685,29 @@
{
"spider": "低端影视",
"file": "低端影视.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 23.735,
"init": 0.001,
"home": 0.001,
"category": 2477.114,
"detail": 3794.829,
"player": 0.023,
"url_check": 198.6,
"total": 9631.12
},
"counts": {
"classes": 4,
"category_videos": 24,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "series",
"vod_id": "movie/soulmate-tv",
"flag": "播放源 2 (1080P)",
"play_id": "https://hn.bfvvs.com/play/aADNVAPe/index.m3u8"
},
"player": {
"parse": 0,
"url": "https://hn.bfvvs.com/play/aADNVAPe/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://hn.bfvvs.com/play/aADNVAPe/index.m3u8",
"reason": null
}
},
{
"spider": "修罗",
"file": "修罗.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 644, in playerContent\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.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 235, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/低端影视.txt\", line 197, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"timings_ms": {
"module_load": 7.632,
"module_load": 13.117,
"init": 0.001,
"home": 0.001,
"category": 4261.445,
"detail": 3021.02,
"player": 9752.134,
"url_check": 0.0,
"total": 17051.311
},
"counts": {
"classes": 4,
"category_videos": 24,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "movie",
"vod_id": "kongbu/3777",
"flag": "修罗直连",
"play_id": "play/3777-0"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
{
"spider": "凡客TV",
"file": "凡客TV.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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/凡客TV.txt\", line 349, in playerContent\n File \"/home/harold/workspace/tvbox-resources/py/凡客TV.txt\", line 68, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"timings_ms": {
"module_load": 14.055,
"init": 0.002,
"home": 0.002,
"category": 6672.962,
"detail": 4475.913,
"player": 4847.302,
"url_check": 0.0,
"total": 16012.742
},
"counts": {
"classes": 8,
"category_videos": 32,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "5134cde665fb5dde",
"flag": "高速线路",
"play_id": "{\"movie_id\":\"5134cde665fb5dde\",\"link_id\":\"1469b2519b0cb22013618f6b289b5620\",\"line_id\":\"line1\",\"line_name\":\"高速线路\",\"episode_name\":\"1080p\",\"type\":\"switch\",\"page\":\"https://fktv.me/movie/detail/5134cde665fb5dde\"}"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
{
"spider": "剧圈圈",
"file": "剧圈圈.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='www.jqqzx.one', port=443): Max retries exceeded with url: /vod/63013.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.jqqzx.one', port=443): Max retries exceeded with url: /vod/63013.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 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 265, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/剧圈圈.txt\", line 94, in _request_html\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='www.jqqzx.one', port=443): Max retries exceeded with url: /vod/63013.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": 13.355,
"init": 0.001,
"home": 0.001,
"category": 4525.923,
"detail": 8869.587,
"category": 5039.59,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 13416.828
"total": 5060.436
},
"counts": {
"classes": 5,
"category_videos": 16,
"classes": 4,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "dianying",
"vod_id": "63013",
"tid": "series",
"vod_id": null,
"flag": null,
"play_id": null
},
@@ -838,22 +721,139 @@
"reason": null
}
},
{
"spider": "修罗",
"file": "修罗.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 14.548,
"init": 0.001,
"home": 0.001,
"category": 1283.401,
"detail": 1487.847,
"player": 3444.74,
"url_check": 973.376,
"total": 7206.39
},
"counts": {
"classes": 4,
"category_videos": 24,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "movie",
"vod_id": "kongbu/3777",
"flag": "修罗直连",
"play_id": "play/3777-0"
},
"player": {
"parse": 0,
"url": "https://v.xlys.ltd.ua/obj/A2581260855F2512F00D3E145B979CCB715165E7765535B8D0CCC7E2B77DAC1F",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://lf26-imcloud-file-sign.bytetos.com/ad-penny-bucket/o0EEIAAAt4uBCWDq8FAdfNTiQIzRVEAgCeOhCd?x-expires=1778763650&x-signature=HAW73DBT4cwHqJcdcGOC6Fs2IQo%3D",
"reason": null
}
},
{
"spider": "凡客TV",
"file": "凡客TV.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 13.265,
"init": 0.001,
"home": 0.001,
"category": 2960.533,
"detail": 1732.373,
"player": 6364.735,
"url_check": 4732.723,
"total": 15804.4
},
"counts": {
"classes": 8,
"category_videos": 32,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "5134cde665fb5dde",
"flag": "高速线路",
"play_id": "{\"movie_id\":\"5134cde665fb5dde\",\"link_id\":\"1469b2519b0cb22013618f6b289b5620\",\"line_id\":\"line1\",\"line_name\":\"高速线路\",\"episode_name\":\"1080p\",\"type\":\"switch\",\"page\":\"https://fktv.me/movie/detail/5134cde665fb5dde\"}"
},
"player": {
"parse": 0,
"url": "https://fktv.me/ysapi/m3u8/p/a43e2933fb08b3aef6b463111e7dfe6a.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://fktv.me/ysapi/m3u8/p/a43e2933fb08b3aef6b463111e7dfe6a.m3u8",
"reason": null
}
},
{
"spider": "剧圈圈",
"file": "剧圈圈.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.196,
"init": 0.001,
"home": 0.0,
"category": 659.574,
"detail": 660.565,
"player": 2122.462,
"url_check": 617.01,
"total": 4066.609
},
"counts": {
"classes": 5,
"category_videos": 16,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "dianying",
"vod_id": "63013",
"flag": "BF备用",
"play_id": "play/63013-3-1"
},
"player": {
"parse": 1,
"url": "https://www.jqqzx.cc/play/63013-3-1.html",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://www.jqqzx.one/play/63013-3-1.html",
"reason": null
}
},
{
"spider": "剧迷",
"file": "剧迷.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 384, in playerContent\n File \"/home/harold/workspace/tvbox-resources/py/剧迷.txt\", line 159, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 24.598,
"init": 0.002,
"home": 0.002,
"category": 2556.147,
"detail": 4350.033,
"player": 5036.377,
"url_check": 0.0,
"total": 11972.997
"module_load": 8.478,
"init": 0.001,
"home": 0.001,
"category": 1154.461,
"detail": 1797.991,
"player": 1199.779,
"url_check": 1012.989,
"total": 5175.284
},
"counts": {
"classes": 6,
@@ -868,12 +868,12 @@
"play_id": "443094-11-1"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://play.phimgood.com/20260511/26651_2f4d94b1/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://play.phimgood.com/20260511/26651_2f4d94b1/index.m3u8",
"reason": null
}
},
@@ -885,14 +885,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 17.992,
"init": 0.001,
"home": 3153.983,
"category": 285.38,
"detail": 840.441,
"player": 0.008,
"url_check": 102.968,
"total": 4402.144
"module_load": 19.53,
"init": 0.002,
"home": 3233.216,
"category": 277.177,
"detail": 798.752,
"player": 0.007,
"url_check": 82.929,
"total": 4413.339
},
"counts": {
"classes": 11,
@@ -924,14 +924,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 11.236,
"init": 329.959,
"home": 0.015,
"category": 194.941,
"detail": 206.072,
"player": 0.007,
"url_check": 205.034,
"total": 949.099
"module_load": 12.831,
"init": 349.799,
"home": 0.014,
"category": 271.441,
"detail": 210.826,
"player": 0.002,
"url_check": 223.978,
"total": 1071.186
},
"counts": {
"classes": 7,
@@ -963,14 +963,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 18.309,
"init": 89.67,
"home": 0.005,
"category": 192.257,
"detail": 515.66,
"player": 306.657,
"url_check": 136.778,
"total": 1261.729
"module_load": 14.805,
"init": 81.646,
"home": 0.001,
"category": 203.715,
"detail": 574.815,
"player": 196.202,
"url_check": 172.809,
"total": 8485.887
},
"counts": {
"classes": 11,
@@ -979,96 +979,96 @@
"episodes": 1
},
"samples": {
"tid": "6",
"vod_id": "63",
"tid": "7",
"vod_id": "48",
"flag": "直链",
"play_id": "2926931|||63"
"play_id": "25494|||48"
},
"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=8239b71a657987dea173ffb7e20bab1f&buy_key=FM&token=5001&timestamp=1778758248&duration=453",
"url": "http://2025.tingshijie.com/48/48_25494.mp3?auth_key=1778758564-0-0-3c46e40f7463ffed241689de5ec593e8",
"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=8239b71a657987dea173ffb7e20bab1f&buy_key=FM&token=5001&timestamp=1778758248&duration=453",
"final_url": "http://2025.tingshijie.com/48/48_25494.mp3?auth_key=1778758564-0-0-3c46e40f7463ffed241689de5ec593e8",
"reason": null
}
},
{
"spider": "听友FM",
"file": "听友FM.txt",
"success": false,
"failed_stage": "category",
"error": "分类视频列表为空",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 8.631,
"init": 0.0,
"home": 3188.572,
"category": 5041.946,
"detail": 5039.552,
"player": 0.0,
"url_check": 0.0,
"total": 18116.071
"module_load": 17.262,
"init": 0.001,
"home": 495.376,
"category": 394.309,
"detail": 667.515,
"player": 469.922,
"url_check": 183.598,
"total": 2229.55
},
"counts": {
"classes": 8,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
"category_videos": 20,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "11",
"vod_id": null,
"flag": null,
"play_id": null
"tid": "46",
"vod_id": "9783312385",
"flag": "听友FM",
"play_id": "9783312385|1"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778755189&sign=53e81d857fd0e7cdd266b5d8e4833a88",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778755189&sign=53e81d857fd0e7cdd266b5d8e4833a88",
"reason": null
}
},
{
"spider": "咕咕动漫",
"file": "咕咕动漫.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 125, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/咕咕动漫.txt\", line 308, in _get_detail_payload\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 16.849,
"module_load": 13.353,
"init": 0.004,
"home": 3651.573,
"category": 1990.42,
"detail": 5044.161,
"player": 0.0,
"url_check": 0.0,
"total": 10705.705
"home": 965.865,
"category": 1296.761,
"detail": 1154.965,
"player": 2290.264,
"url_check": 95.53,
"total": 5817.889
},
"counts": {
"classes": 3,
"category_videos": 30,
"detail_videos": 0,
"episodes": 0
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "6",
"vod_id": "5006",
"flag": null,
"play_id": null
"flag": "咕咕新线(国内高速)",
"play_id": "parse_api=a2796a09189261bcaf3cc4542d7c5ac2&url=3LubxqZsk6qbM3DCPWWx/cOuPcSr2xK2yOFGYC7FReM/Pgh9Xb/qg0/YIVmGivgx&token=|左撇子艾伦|1"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://p9-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809862561&x-signature=ckRq84Jp0ceYBZ%2F0YSMutvbg5BQ%3D",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://p9-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809862561&x-signature=ckRq84Jp0ceYBZ%2F0YSMutvbg5BQ%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": 19.055,
"module_load": 4.15,
"init": 0.001,
"home": 0.001,
"category": 2658.227,
"category": 171.543,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 2684.143
"total": 182.316
},
"counts": {
"classes": 5,
@@ -1117,26 +1117,26 @@
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 451, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/在线之家.txt\", line 245, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/在线之家.txt\", line 301, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/在线之家.txt\", line 245, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"timings_ms": {
"module_load": 15.28,
"module_load": 7.57,
"init": 0.001,
"home": 0.001,
"category": 3036.383,
"detail": 5041.635,
"category": 5069.467,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 8100.66
"total": 5078.685
},
"counts": {
"classes": 6,
"category_videos": 12,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "1",
"vod_id": "4601",
"vod_id": null,
"flag": null,
"play_id": null
},
@@ -1158,14 +1158,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 7.295,
"module_load": 10.974,
"init": 0.001,
"home": 0.001,
"category": 487.94,
"detail": 429.558,
"player": 0.012,
"url_check": 994.376,
"total": 1920.442
"category": 532.993,
"detail": 437.869,
"player": 0.004,
"url_check": 1987.886,
"total": 2970.981
},
"counts": {
"classes": 6,
@@ -1197,14 +1197,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 15.395,
"module_load": 6.955,
"init": 0.001,
"home": 0.013,
"category": 15669.128,
"detail": 3040.826,
"player": 0.003,
"url_check": 3326.845,
"total": 22053.215
"home": 0.009,
"category": 1521.783,
"detail": 788.036,
"player": 0.006,
"url_check": 853.207,
"total": 3172.496
},
"counts": {
"classes": 6,
@@ -1231,39 +1231,39 @@
{
"spider": "布布影视",
"file": "布布影视.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 245, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/布布影视.txt\", line 470, in _request_json\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 21.13,
"init": 0.002,
"home": 0.002,
"category": 3456.204,
"detail": 3125.9,
"player": 0.0,
"url_check": 0.0,
"total": 6611.26
"module_load": 7.171,
"init": 0.001,
"home": 0.001,
"category": 671.815,
"detail": 657.698,
"player": 987.252,
"url_check": 322.844,
"total": 2648.09
},
"counts": {
"classes": 4,
"category_videos": 24,
"detail_videos": 0,
"episodes": 0
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "69765",
"flag": null,
"play_id": null
"flag": "JD蓝光(1)",
"play_id": "JD4K@1@JD-5f4f247d6dfbc0b5d5cb1efeaa2303790"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"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=20260514T112607Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260514%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=0ebf5805207422a37c4370ce703088e8d18a87919c593ae7a8e6f84691af6237",
"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=20260514T112607Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260514%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=0ebf5805207422a37c4370ce703088e8d18a87919c593ae7a8e6f84691af6237",
"reason": null
}
},
@@ -1275,14 +1275,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 19.947,
"init": 0.031,
"home": 209.127,
"category": 267.987,
"detail": 1217.157,
"player": 0.007,
"url_check": 119.552,
"total": 1835.025
"module_load": 13.233,
"init": 0.033,
"home": 213.634,
"category": 298.402,
"detail": 353.781,
"player": 0.005,
"url_check": 113.407,
"total": 994.359
},
"counts": {
"classes": 30,
@@ -1294,54 +1294,54 @@
"tid": "都市",
"vod_id": "110000044555935694",
"flag": "1080P",
"play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778758252&sign=5f70acd108b2fb11f1a26229c87e9f5a"
"play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778758559&sign=99ce6dcdfe8f19904f069d68457a25e4"
},
"player": {
"parse": 0,
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778758252&sign=5f70acd108b2fb11f1a26229c87e9f5a",
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778758559&sign=99ce6dcdfe8f19904f069d68457a25e4",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778758252&sign=5f70acd108b2fb11f1a26229c87e9f5a",
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778758559&sign=99ce6dcdfe8f19904f069d68457a25e4",
"reason": null
}
},
{
"spider": "新韩剧网",
"file": "新韩剧网.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='www.hanju7.com', port=443): Max retries exceeded with url: /list/1---.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.hanju7.com', port=443): Max retries exceeded with url: /list/1---.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 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/新韩剧网.txt\", line 174, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/新韩剧网.txt\", line 75, in _request_html\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='www.hanju7.com', port=443): Max retries exceeded with url: /list/1---.html (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)')))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 11.736,
"module_load": 9.843,
"init": 0.001,
"home": 0.001,
"category": 5037.916,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5056.251
"category": 374.748,
"detail": 356.728,
"player": 338.149,
"url_check": 843.43,
"total": 1924.13
},
"counts": {
"classes": 5,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
"category_videos": 16,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "1",
"vod_id": null,
"flag": null,
"play_id": null
"vod_id": "3544",
"flag": "在线云播",
"play_id": "3544_1_1"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://cdn.yzzy31-play.com/20251216/9033_3613ef1e/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cdn.yzzy31-play.com/20251216/9033_3613ef1e/index.m3u8",
"reason": null
}
},
@@ -1353,14 +1353,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 13.425,
"module_load": 10.658,
"init": 0.001,
"home": 0.001,
"category": 489.859,
"detail": 775.283,
"player": 0.009,
"url_check": 194.173,
"total": 1474.057
"category": 463.184,
"detail": 642.172,
"player": 0.013,
"url_check": 172.042,
"total": 7438.934
},
"counts": {
"classes": 5,
@@ -1369,18 +1369,18 @@
"episodes": 1
},
"samples": {
"tid": "1287",
"vod_id": "422599939194881@@穿越诡计爱上你@@苏清韵为了给妹妹治病,卖身富豪被卓熙辰所救,答应卓熙辰的契约婚姻。苏清韵受到了爱慕卓熙辰的上官溪玲的疯狂攻击与算计,导致妹妹离世。苏清韵误会记恨卓熙辰因此拿刀伤了他,自己也被判入狱五年。",
"tid": "1288",
"vod_id": "422600163590145@@女主别瞎想@@一个意外昏迷出现幻觉来到网络小说中的普通青年叶凡,面对强大的反派,他第一次靠自己改变了原作小说中的故事走向,从而获得了能够听到男主内心声音的能力,以此开始重新攻略小说中的各个女主们。",
"flag": "星星短剧",
"play_id": "https://img.novel.wsljf.xyz/shortPlay-mp4/420424102051841/EvnIm1746774634078/abc6208e-390b-4533-a1a4-b9e5741cc384/540x960/output.m3u8"
"play_id": "https://img.novel.wsljf.xyz/shortPlay-mp4/420109711704065/QyoCt1746624721904/5e477b2c-e420-419d-b627-3fb8af007eab/540x960/output.m3u8"
},
"player": {
"parse": 0,
"url": "https://img.novel.wsljf.xyz/shortPlay-mp4/420424102051841/EvnIm1746774634078/abc6208e-390b-4533-a1a4-b9e5741cc384/540x960/output.m3u8",
"url": "https://img.novel.wsljf.xyz/shortPlay-mp4/420109711704065/QyoCt1746624721904/5e477b2c-e420-419d-b627-3fb8af007eab/540x960/output.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://img.novel.wsljf.xyz/shortPlay-mp4/420424102051841/EvnIm1746774634078/abc6208e-390b-4533-a1a4-b9e5741cc384/540x960/output.m3u8",
"final_url": "https://img.novel.wsljf.xyz/shortPlay-mp4/420109711704065/QyoCt1746624721904/5e477b2c-e420-419d-b627-3fb8af007eab/540x960/output.m3u8",
"reason": null
}
},
@@ -1392,14 +1392,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 12.5,
"module_load": 12.544,
"init": 0.001,
"home": 0.001,
"category": 13481.396,
"detail": 4757.306,
"player": 0.023,
"url_check": 268.584,
"total": 18520.675
"category": 473.579,
"detail": 354.882,
"player": 0.021,
"url_check": 256.008,
"total": 1098.002
},
"counts": {
"classes": 7,
@@ -1428,17 +1428,17 @@
"file": "樱花动漫.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 54, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/樱花动漫.txt\", line 121, in _get_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"error": "HTTPSConnectionPool(host='www.dmvvv.com', port=443): Max retries exceeded with url: /type/guoman/ (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.dmvvv.com', port=443): Max retries exceeded with url: /type/guoman/ (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)')))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/樱花动漫.txt\", line 54, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/樱花动漫.txt\", line 121, in _get_html\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='www.dmvvv.com', port=443): Max retries exceeded with url: /type/guoman/ (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)')))\n",
"timings_ms": {
"module_load": 13.098,
"init": 0.001,
"home": 0.001,
"category": 3895.312,
"module_load": 20.19,
"init": 0.002,
"home": 0.002,
"category": 273.834,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 3909.965
"total": 303.06
},
"counts": {
"classes": 4,
@@ -1468,16 +1468,16 @@
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 696, in validate_spider_file\n _run_timed(result[\"timings_ms\"], \"init\", spider.init, clock, \"\")\n ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/橘子TV.txt\", line 36, in init\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)\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.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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/橘子TV.txt\", line 117, in homeContent\n File \"/home/harold/workspace/tvbox-resources/py/橘子TV.txt\", line 96, in _post_api\n File \"/home/harold/workspace/atv-spiders/py/base/spider.py\", line 152, in post\n rsp = requests.post(url, params=params, data=data, json=json, cookies=cookies, headers=headers, timeout=timeout,\n verify=verify, stream=stream, allow_redirects=allow_redirects)\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"timings_ms": {
"module_load": 11.664,
"init": 5040.304,
"home": 0.0,
"module_load": 6.428,
"init": 426.4,
"home": 5047.582,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5058.037
"total": 5486.794
},
"counts": {
"classes": 0,
@@ -1504,39 +1504,39 @@
{
"spider": "欧歌",
"file": "欧歌.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 185, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/欧歌.txt\", line 98, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 9.232,
"module_load": 11.994,
"init": 0.001,
"home": 0.001,
"category": 5039.941,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5050.773
"category": 1101.738,
"detail": 1182.183,
"player": 0.009,
"url_check": 1106.745,
"total": 3403.53
},
"counts": {
"classes": 6,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
"category_videos": 72,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": null,
"flag": null,
"play_id": null
"vod_id": "/index.php/vod/detail/id/29976.html",
"flag": "百度",
"play_id": "https://pan.baidu.com/s/1jBEK7w_I3pntEZR9afhzbQ?pwd=8888"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://pan.baidu.com/s/1jBEK7w_I3pntEZR9afhzbQ?pwd=8888",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=jBEK7w_I3pntEZR9afhzbQ&pwd=8888",
"reason": null
}
},
@@ -1548,14 +1548,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 14.914,
"module_load": 12.751,
"init": 0.001,
"home": 668.212,
"category": 414.922,
"detail": 891.103,
"player": 0.025,
"url_check": 103.536,
"total": 2094.707
"home": 368.983,
"category": 396.474,
"detail": 974.024,
"player": 0.031,
"url_check": 229.464,
"total": 1983.335
},
"counts": {
"classes": 10,
@@ -1582,39 +1582,39 @@
{
"spider": "滴答影视",
"file": "滴答影视.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/滴答影视.txt\", line 181, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/滴答影视.txt\", line 138, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 10.694,
"module_load": 15.121,
"init": 0.001,
"home": 0.001,
"category": 5038.428,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5050.969
"category": 384.714,
"detail": 351.757,
"player": 0.004,
"url_check": 1113.372,
"total": 1865.846
},
"counts": {
"classes": 5,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
"category_videos": 48,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": null,
"flag": null,
"play_id": null
"vod_id": "3034",
"flag": "百度",
"play_id": "https://pan.baidu.com/s/1iUOPtAOz3ypj2nyY7Wv9Ww?pwd=969e"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://pan.baidu.com/s/1iUOPtAOz3ypj2nyY7Wv9Ww?pwd=969e",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=iUOPtAOz3ypj2nyY7Wv9Ww&pwd=969e",
"reason": null
}
},
@@ -1626,14 +1626,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 8.444,
"init": 0.002,
"home": 135.309,
"category": 160.075,
"detail": 182.942,
"player": 310.364,
"url_check": 175.748,
"total": 973.848
"module_load": 14.293,
"init": 0.003,
"home": 103.868,
"category": 120.019,
"detail": 159.528,
"player": 279.235,
"url_check": 146.366,
"total": 825.655
},
"counts": {
"classes": 10,
@@ -1665,18 +1665,18 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 23.132,
"init": 0.02,
"home": 5107.781,
"category": 429.397,
"detail": 197.607,
"player": 0.001,
"url_check": 192.765,
"total": 5952.115
"module_load": 21.904,
"init": 0.017,
"home": 3581.543,
"category": 848.931,
"detail": 131.123,
"player": 0.003,
"url_check": 179.895,
"total": 4765.507
},
"counts": {
"classes": 11,
"category_videos": 60,
"category_videos": 48,
"detail_videos": 1,
"episodes": 1
},
@@ -1699,78 +1699,78 @@
{
"spider": "独播库",
"file": "独播库.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 196, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/独播库.txt\", line 151, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.004,
"module_load": 8.039,
"init": 0.001,
"home": 0.0,
"category": 5038.906,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5044.449
"home": 0.001,
"category": 1877.514,
"detail": 1647.297,
"player": 1260.981,
"url_check": 999.865,
"total": 5794.633
},
"counts": {
"classes": 6,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
"category_videos": 48,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "index",
"vod_id": null,
"flag": null,
"play_id": null
"vod_id": "144902",
"flag": "独播库",
"play_id": "144902-1-1"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://vid.dbokutv.com/20260513/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBsvsRsGlR7XgBMfeUYqmCIqmCq8vCaGnC3OkRN0q/chunklist.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vid.dbokutv.com/20260513/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBsvsRsGlR7XgBMfeUYqmCIqmCq8vCaGnC3OkRN0q/chunklist.m3u8",
"reason": null
}
},
{
"spider": "玩偶哥哥",
"file": "玩偶哥哥.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 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 138, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/玩偶哥哥.txt\", line 97, in _request_html\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": 10.116,
"module_load": 5.451,
"init": 0.001,
"home": 0.001,
"category": 5041.766,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5056.185
"home": 0.0,
"category": 816.275,
"detail": 568.156,
"player": 0.005,
"url_check": 1021.547,
"total": 2411.934
},
"counts": {
"classes": 8,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
"category_videos": 70,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": null,
"flag": null,
"play_id": null
"vod_id": "/voddetail/124761.html",
"flag": "百度#玩偶哥哥",
"play_id": "https://pan.baidu.com/s/1aoMU2PqERlEnjDchC_szIQ?pwd=wogg"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://pan.baidu.com/s/1aoMU2PqERlEnjDchC_szIQ?pwd=wogg",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=aoMU2PqERlEnjDchC_szIQ&pwd=wogg",
"reason": null
}
},
@@ -1782,14 +1782,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 16.062,
"module_load": 8.215,
"init": 0.001,
"home": 0.483,
"category": 7635.664,
"detail": 4872.094,
"player": 0.004,
"url_check": 1033.047,
"total": 13559.946
"home": 0.071,
"category": 1717.871,
"detail": 2821.47,
"player": 0.003,
"url_check": 991.926,
"total": 5540.868
},
"counts": {
"classes": 10,
@@ -1816,39 +1816,39 @@
{
"spider": "瓜子",
"file": "瓜子.txt",
"success": true,
"failed_stage": null,
"error": null,
"success": false,
"failed_stage": "category",
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 7.128,
"module_load": 6.875,
"init": 0.001,
"home": 0.016,
"category": 3769.674,
"detail": 6577.571,
"player": 860.702,
"url_check": 108.118,
"total": 16401.926
"home": 0.019,
"category": 10015.682,
"detail": 1617.992,
"player": 0.0,
"url_check": 0.0,
"total": 16313.631
},
"counts": {
"classes": 5,
"category_videos": 30,
"detail_videos": 1,
"episodes": 1
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "2",
"vod_id": "136682",
"flag": "1080",
"play_id": "vod_d_id=136682&vurl_id=3723436&domain_type=8&resolution=1080&type=play"
"vod_id": null,
"flag": null,
"play_id": null
},
"player": {
"parse": 0,
"url": "https://vd.hxcztech.com/1d82c4deb89cf69683619b1d12c97f0d/20260514193114/decry/vd/20260514/OWUzNTE0YTBlOT/125414/1920_1080/aac/h264/hls/decrypt/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vd.hxcztech.com/1d82c4deb89cf69683619b1d12c97f0d/20260514193114/decry/vd/20260514/OWUzNTE0YTBlOT/125414/1920_1080/aac/h264/hls/decrypt/index.m3u8",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
@@ -1860,14 +1860,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.216,
"module_load": 4.022,
"init": 0.0,
"home": 436.718,
"category": 270.171,
"detail": 641.125,
"player": 293.904,
"url_check": 83.91,
"total": 1730.719
"home": 432.738,
"category": 285.322,
"detail": 638.631,
"player": 473.989,
"url_check": 69.047,
"total": 1904.179
},
"counts": {
"classes": 29,
@@ -1899,14 +1899,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.421,
"init": 0.001,
"home": 292.622,
"category": 269.474,
"detail": 260.311,
"player": 0.038,
"url_check": 172.678,
"total": 1000.243
"module_load": 5.568,
"init": 0.0,
"home": 311.954,
"category": 315.057,
"detail": 255.655,
"player": 0.016,
"url_check": 169.269,
"total": 1058.153
},
"counts": {
"classes": 8,
@@ -1935,17 +1935,17 @@
"file": "盘聚.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='www.seedhub.cc', port=443): Max retries exceeded with url: /?page=1 (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)')))",
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 464, in _make_request\n self._validate_conn(conn)\n ~~~~~~~~~~~~~~~~~~~^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 1093, in _validate_conn\n conn.connect()\n ~~~~~~~~~~~~^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 796, in connect\n sock_and_verified = _ssl_wrap_socket_and_match_hostname(\n sock=sock,\n ...<14 lines>...\n assert_fingerprint=self.assert_fingerprint,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 975, in _ssl_wrap_socket_and_match_hostname\n ssl_sock = ssl_wrap_socket(\n sock=sock,\n ...<8 lines>...\n tls_in_tls=tls_in_tls,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/ssl_.py\", line 483, in ssl_wrap_socket\n ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)\nssl.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 488, in _make_request\n raise new_e\nurllib3.exceptions.SSLError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 535, in increment\n raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nurllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.seedhub.cc', port=443): Max retries exceeded with url: /?page=1 (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)')))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/盘聚.txt\", line 144, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/盘聚.txt\", line 99, in _request_html\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='www.seedhub.cc', port=443): Max retries exceeded with url: /?page=1 (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)')))\n",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 144, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/盘聚.txt\", line 99, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"timings_ms": {
"module_load": 5.388,
"init": 0.0,
"home": 0.0,
"category": 5042.168,
"module_load": 8.361,
"init": 0.001,
"home": 0.001,
"category": 5040.819,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5054.961
"total": 5051.342
},
"counts": {
"classes": 4,
@@ -1972,39 +1972,39 @@
{
"spider": "盘链",
"file": "盘链.txt",
"success": false,
"failed_stage": "detail",
"error": "详情缺少播放源或播放列表",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 16.844,
"module_load": 11.157,
"init": 0.023,
"home": 0.001,
"category": 9542.123,
"detail": 1284.803,
"player": 0.0,
"url_check": 0.0,
"total": 15887.72
"category": 1250.306,
"detail": 296.295,
"player": 0.002,
"url_check": 1318.286,
"total": 2876.48
},
"counts": {
"classes": 5,
"category_videos": 30,
"detail_videos": 1,
"episodes": 0
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "-75004",
"flag": null,
"play_id": null
"tid": "0",
"vod_id": "75716",
"flag": "百度",
"play_id": "push://https://pan.baidu.com/s/1rbhXV3rLNKd1wVta_hMYnw?pwd=8888"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://pan.baidu.com/s/1rbhXV3rLNKd1wVta_hMYnw?pwd=8888",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=rbhXV3rLNKd1wVta_hMYnw&pwd=8888",
"reason": null
}
},
@@ -2016,14 +2016,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 26.896,
"init": 668.282,
"home": 0.203,
"category": 446.257,
"detail": 327.842,
"player": 0.006,
"url_check": 87.062,
"total": 1558.209
"module_load": 29.78,
"init": 710.001,
"home": 0.109,
"category": 514.29,
"detail": 614.236,
"player": 0.004,
"url_check": 86.902,
"total": 1956.81
},
"counts": {
"classes": 11,
@@ -2050,28 +2050,67 @@
{
"spider": "短剧网",
"file": "短剧网.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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 115, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/短剧网.txt\", line 59, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.696,
"module_load": 4.148,
"init": 0.001,
"home": 0.0,
"category": 5040.189,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5053.776
"category": 805.929,
"detail": 265.217,
"player": 0.004,
"url_check": 207.649,
"total": 1283.494
},
"counts": {
"classes": 2,
"category_videos": 20,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "1",
"vod_id": "https://sm3.cc/?id=50403",
"flag": "夸克",
"play_id": "https://pan.quark.cn/s/c5905c14ad16"
},
"player": {
"parse": 0,
"url": "https://pan.quark.cn/s/c5905c14ad16",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.quark.cn/s/c5905c14ad16",
"reason": null
}
},
{
"spider": "糯米",
"file": "糯米.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='vip.wwgz.cn', port=5200): Max retries exceeded with url: /vod-type-id-1-pg-1.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='vip.wwgz.cn', port=5200) at 0x711e2a3cdd10>, '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 0x711e2a3cdd10>, '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: /vod-type-id-1-pg-1.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='vip.wwgz.cn', port=5200) at 0x711e2a3cdd10>, '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 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 159, in categoryContent\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: /vod-type-id-1-pg-1.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='vip.wwgz.cn', port=5200) at 0x711e2a3cdd10>, 'Connection to vip.wwgz.cn timed out. (connect timeout=10)'))\n",
"timings_ms": {
"module_load": 5.971,
"init": 0.001,
"home": 797.497,
"category": 10012.564,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 10819.109
},
"counts": {
"classes": 7,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "1",
"tid": "/vod-type-id-1-pg-1.html",
"vod_id": null,
"flag": null,
"play_id": null
@@ -2087,60 +2126,21 @@
}
},
{
"spider": "糯米",
"file": "糯米.txt",
"spider": "网易云音乐",
"file": "网易云音乐.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 16.745,
"module_load": 2.763,
"init": 0.001,
"home": 610.04,
"category": 817.218,
"detail": 172.06,
"player": 333.193,
"url_check": 389.104,
"total": 2339.602
},
"counts": {
"classes": 7,
"category_videos": 81,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "/vod-type-id-1-pg-1.html",
"vod_id": "90063",
"flag": "uvw",
"play_id": "/vod-play-id-90063-src-1-num-1.html"
},
"player": {
"parse": 0,
"url": "https://vip.123pan.cn/1853039965/dy/东北往事极恶不赦.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vip.123pan.cn/1853039965/dy/%E4%B8%9C%E5%8C%97%E5%BE%80%E4%BA%8B%E6%9E%81%E6%81%B6%E4%B8%8D%E8%B5%A6.m3u8",
"reason": null
}
},
{
"spider": "网易云音乐",
"file": "网易云音乐.txt",
"success": false,
"failed_stage": "unexpected",
"error": "Expecting value: line 1 column 1 (char 0)",
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/models.py\", line 978, in json\n return complexjson.loads(self.text, **kwargs)\n ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/json/__init__.py\", line 352, in loads\n return _default_decoder.decode(s)\n ~~~~~~~~~~~~~~~~~~~~~~~^^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/json/decoder.py\", line 345, in decode\n obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/json/decoder.py\", line 363, in raw_decode\n raise JSONDecodeError(\"Expecting value\", s, err.value) from None\njson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 467, in _validate_from_tid\n player_result = _run_timed(result[\"timings_ms\"], \"player\", spider.playerContent, clock, play[\"flag\"], play[\"play_id\"], [])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/网易云音乐.txt\", line 124, in playerContent\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/models.py\", line 982, in json\n raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)\nrequests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
"timings_ms": {
"module_load": 2.644,
"init": 0.0,
"home": 443.842,
"category": 437.6,
"detail": 0.004,
"player": 194.025,
"url_check": 0.0,
"total": 1084.691
"home": 409.722,
"category": 418.453,
"detail": 0.006,
"player": 1011.309,
"url_check": 34.528,
"total": 1878.016
},
"counts": {
"classes": 62,
@@ -2155,12 +2155,12 @@
"play_id": "3375730419"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://iot102.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260514200104/fc83112fb4a79b39312552ecd65c5d2a/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/79880892332/37f4/88fd/5ea2/67920c5a396286fe651ba6195a65e0bf.mp3",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://iot102.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260514200104/fc83112fb4a79b39312552ecd65c5d2a/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/79880892332/37f4/88fd/5ea2/67920c5a396286fe651ba6195a65e0bf.mp3",
"reason": null
}
},
@@ -2168,18 +2168,18 @@
"spider": "耐视点播",
"file": "耐视点播.txt",
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/耐视点播.txt\", line 174, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/耐视点播.txt\", line 76, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"failed_stage": "category",
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 15.785,
"module_load": 4.287,
"init": 0.001,
"home": 0.001,
"category": 5038.845,
"home": 0.0,
"category": 3204.454,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5062.417
"total": 5964.626
},
"counts": {
"classes": 6,
@@ -2188,7 +2188,7 @@
"episodes": 0
},
"samples": {
"tid": "1",
"tid": "2",
"vod_id": null,
"flag": null,
"play_id": null
@@ -2211,14 +2211,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 19.472,
"module_load": 10.612,
"init": 0.001,
"home": 1086.713,
"category": 340.569,
"detail": 741.308,
"player": 0.004,
"url_check": 1175.697,
"total": 3365.405
"home": 1091.705,
"category": 260.789,
"detail": 780.651,
"player": 0.005,
"url_check": 1211.907,
"total": 3357.324
},
"counts": {
"classes": 7,
@@ -2250,34 +2250,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 3.932,
"module_load": 12.491,
"init": 0.001,
"home": 0.001,
"category": 6781.284,
"detail": 3875.769,
"player": 0.05,
"url_check": 175.371,
"total": 10837.526
"category": 642.837,
"detail": 461.908,
"player": 0.01,
"url_check": 962.584,
"total": 8233.632
},
"counts": {
"classes": 7,
"category_videos": 72,
"detail_videos": 1,
"episodes": 1
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "/index.php/vod/detail/id/8783.html",
"flag": "夸克#至臻",
"play_id": "https://pan.quark.cn/s/23730e017d01"
"tid": "2",
"vod_id": "/index.php/vod/detail/id/20280.html",
"flag": "百度#至臻",
"play_id": "https://pan.baidu.com/s/16l0YNaQWcIebhPcg_AlryQ?pwd=aigw"
},
"player": {
"parse": 0,
"url": "https://pan.quark.cn/s/23730e017d01",
"url": "https://pan.baidu.com/s/16l0YNaQWcIebhPcg_AlryQ?pwd=aigw",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.quark.cn/s/23730e017d01",
"final_url": "https://pan.baidu.com/share/init?surl=6l0YNaQWcIebhPcg_AlryQ&pwd=aigw",
"reason": null
}
},
@@ -2289,34 +2289,34 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.968,
"module_load": 18.678,
"init": 0.001,
"home": 5274.485,
"category": 1281.751,
"detail": 1212.409,
"player": 2409.878,
"url_check": 252.586,
"total": 28704.035
"home": 850.915,
"category": 906.975,
"detail": 647.391,
"player": 1286.919,
"url_check": 2967.179,
"total": 6679.855
},
"counts": {
"classes": 4,
"category_videos": 36,
"category_videos": 35,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "2",
"vod_id": "detail/video/120965",
"flag": "自营b11",
"play_id": "play/120965-1-1"
"tid": "1",
"vod_id": "detail/video/121038",
"flag": "FF有广",
"play_id": "play/121038-1-1"
},
"player": {
"parse": 0,
"url": "https://eos-huhehaote-1.cmecloud.cn/dsp-ecpan-zone3/6a246e5735e546abb27683b31ad19297?response-content-disposition=attachment%3Bfilename%3D%22gcj-%E4%B8%BB%E8%A7%9201.mp4%22&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260514T014622Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=R2V91UGDM1447A0VTB86%2F20260514%2Fdefault%2Fs3%2Faws4_request&X-Amz-Signature=4be447132565aabf17b30ea8d5ffa5c2a735c0baa9bd6a203620951609911b71",
"url": "https://vip.ffzy-plays.com/20260514/53574_5de356e0/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://eos-huhehaote-1.cmecloud.cn/dsp-ecpan-zone3/6a246e5735e546abb27683b31ad19297?response-content-disposition=attachment%3Bfilename%3D%22gcj-%E4%B8%BB%E8%A7%9201.mp4%22&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260514T014622Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=R2V91UGDM1447A0VTB86%2F20260514%2Fdefault%2Fs3%2Faws4_request&X-Amz-Signature=4be447132565aabf17b30ea8d5ffa5c2a735c0baa9bd6a203620951609911b71",
"final_url": "https://vip.ffzy-plays.com/20260514/53574_5de356e0/index.m3u8",
"reason": null
}
},
@@ -2328,14 +2328,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.889,
"init": 0.0,
"module_load": 15.478,
"init": 0.001,
"home": 0.001,
"category": 4826.439,
"detail": 5076.125,
"player": 0.054,
"url_check": 1718.406,
"total": 11627.692
"category": 4394.176,
"detail": 4992.063,
"player": 0.034,
"url_check": 1195.176,
"total": 10597.836
},
"counts": {
"classes": 6,
@@ -2362,22 +2362,61 @@
{
"spider": "蜡笔",
"file": "蜡笔.txt",
"success": false,
"failed_stage": "category",
"error": "分类视频列表为空",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 5.513,
"module_load": 4.14,
"init": 0.001,
"home": 0.001,
"category": 1682.538,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 8917.924
"home": 0.0,
"category": 1131.519,
"detail": 473.252,
"player": 0.004,
"url_check": 1012.132,
"total": 2621.554
},
"counts": {
"classes": 7,
"category_videos": 72,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "29",
"vod_id": "/index.php/vod/detail/id/9231.html",
"flag": "百度#蜡笔",
"play_id": "https://pan.baidu.com/s/1LZC9v0B6ETfpQWooAqqxJA?pwd=jcx5"
},
"player": {
"parse": 0,
"url": "https://pan.baidu.com/s/1LZC9v0B6ETfpQWooAqqxJA?pwd=jcx5",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://pan.baidu.com/share/init?surl=LZC9v0B6ETfpQWooAqqxJA&pwd=jcx5",
"reason": null
}
},
{
"spider": "袋鼠影视",
"file": "袋鼠影视.txt",
"success": 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 0x711e2a3cf4d0>, '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 0x711e2a3cf4d0>, '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 0x711e2a3cf4d0>, '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 0x711e2a3cf4d0>, 'Connection to daishuys.com timed out. (connect timeout=15)'))\n",
"timings_ms": {
"module_load": 5.213,
"init": 0.001,
"home": 0.001,
"category": 15018.032,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 15030.205
},
"counts": {
"classes": 4,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
@@ -2398,45 +2437,6 @@
"reason": null
}
},
{
"spider": "袋鼠影视",
"file": "袋鼠影视.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 17.13,
"init": 0.001,
"home": 0.001,
"category": 2507.072,
"detail": 3876.41,
"player": 6469.127,
"url_check": 1522.076,
"total": 14394.504
},
"counts": {
"classes": 4,
"category_videos": 36,
"detail_videos": 1,
"episodes": 2
},
"samples": {
"tid": "1",
"vod_id": "413480",
"flag": "蓝光专线4",
"play_id": "play/413480-1-0"
},
"player": {
"parse": 0,
"url": "https://vip.dytt-tvs.com/20260213/11832_d20d9896/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://cnvod.jimxtc.com/20260213/11832_d20d9896/index.m3u8",
"reason": null
}
},
{
"spider": "视界",
"file": "视界.txt",
@@ -2445,14 +2445,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 20.981,
"module_load": 8.893,
"init": 0.001,
"home": 2908.827,
"category": 4461.198,
"detail": 2398.64,
"player": 1144.396,
"url_check": 1036.428,
"total": 11972.187
"home": 402.784,
"category": 307.253,
"detail": 283.892,
"player": 372.934,
"url_check": 875.291,
"total": 2252.427
},
"counts": {
"classes": 6,
@@ -2479,19 +2479,19 @@
{
"spider": "路漫漫",
"file": "路漫漫.txt",
"success": false,
"failed_stage": "unexpected",
"error": "HTTPSConnectionPool(host='yun.92cj.com', port=443): Max retries exceeded with url: /yunbox/ducloud.php (Caused by ConnectTimeoutError(<HTTPSConnection(host='yun.92cj.com', port=443) at 0x75728f9d7110>, 'Connection to yun.92cj.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='yun.92cj.com', port=443) at 0x75728f9d7110>, 'Connection to yun.92cj.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='yun.92cj.com', port=443): Max retries exceeded with url: /yunbox/ducloud.php (Caused by ConnectTimeoutError(<HTTPSConnection(host='yun.92cj.com', port=443) at 0x75728f9d7110>, 'Connection to yun.92cj.com timed out. (connect timeout=10)'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 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 315, in playerContent\n File \"/home/harold/workspace/tvbox-resources/py/路漫漫.txt\", line 306, in _resolve_player_url\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='yun.92cj.com', port=443): Max retries exceeded with url: /yunbox/ducloud.php (Caused by ConnectTimeoutError(<HTTPSConnection(host='yun.92cj.com', port=443) at 0x75728f9d7110>, 'Connection to yun.92cj.com timed out. (connect timeout=10)'))\n",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 11.033,
"module_load": 11.762,
"init": 0.001,
"home": 0.0,
"category": 3898.307,
"detail": 4998.777,
"player": 13406.363,
"url_check": 253.261,
"total": 25496.492
"home": 0.001,
"category": 863.128,
"detail": 656.64,
"player": 1605.774,
"url_check": 1626.63,
"total": 6664.562
},
"counts": {
"classes": 6,
@@ -2506,12 +2506,12 @@
"play_id": "play/8010_2_1.html"
},
"player": {
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"parse": 0,
"url": "https://v16.toutiao50.com/1088b805aa5bec6819ae96b764edd06b/6a070859/video/tos/alisg/tos-alisg-ve-0051c001-sg/oEZIAIbobSfQTA7eY46sfdFSbiZGGCL9gnVDWY/",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://v16.toutiao50.com/1088b805aa5bec6819ae96b764edd06b/6a070859/video/tos/alisg/tos-alisg-ve-0051c001-sg/oEZIAIbobSfQTA7eY46sfdFSbiZGGCL9gnVDWY/",
"reason": null
}
},
@@ -2523,14 +2523,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 29.728,
"module_load": 25.258,
"init": 0.001,
"home": 371.948,
"category": 113.63,
"detail": 3615.409,
"player": 137.242,
"url_check": 86.028,
"total": 4355.412
"home": 388.646,
"category": 100.232,
"detail": 3421.217,
"player": 149.976,
"url_check": 79.526,
"total": 4166.493
},
"counts": {
"classes": 4,
@@ -2546,11 +2546,11 @@
},
"player": {
"parse": 0,
"url": "http://lv.sycdn.kuwo.cn/69d290b34e6446cc06ada32940c1d180/6a05b27d/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/d1e192c2acd1e4d3fb6c50382437a275/6a05b3aa/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/69d290b34e6446cc06ada32940c1d180/6a05b27d/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/d1e192c2acd1e4d3fb6c50382437a275/6a05b3aa/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": 35.609,
"init": 501.546,
"home": 315.428,
"category": 272.674,
"detail": 325.077,
"player": 391.066,
"url_check": 52.744,
"total": 1897.369
"module_load": 31.206,
"init": 552.585,
"home": 330.43,
"category": 295.886,
"detail": 370.111,
"player": 346.156,
"url_check": 59.575,
"total": 1989.946
},
"counts": {
"classes": 12,
"category_videos": 14,
"category_videos": 15,
"detail_videos": 1,
"episodes": 1
},
"samples": {
"tid": "recommend",
"vod_id": "551325950",
"vod_id": "268748259",
"flag": "酷狗音乐",
"play_id": "551325950"
"play_id": "268748259"
},
"player": {
"parse": 0,
"url": "http://fsdg360.tx.kugou.com/202605141931/4ed10988c04b81c6a46fb5e06a9a482f/v3/a2d2c628b701e59bffccbcffa8769cc0/yp/p_0_960121/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx551325950_qu128_s3024726551.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"url": "http://fsdg360.tx.kugou.com/202605141936/d6a7021dc03c42186ca284b6c5fe793a/v3/6d699f41649717e0cbb6d77beeeee0e1/yp/p_0_960135/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx268748259_qu128_s529165427.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "http://fsdg360.tx.kugou.com/202605141931/4ed10988c04b81c6a46fb5e06a9a482f/v3/a2d2c628b701e59bffccbcffa8769cc0/yp/p_0_960121/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx551325950_qu128_s3024726551.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"final_url": "http://fsdg360.tx.kugou.com/202605141936/d6a7021dc03c42186ca284b6c5fe793a/v3/6d699f41649717e0cbb6d77beeeee0e1/yp/p_0_960135/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx268748259_qu128_s529165427.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
"reason": null
}
},
@@ -2601,14 +2601,14 @@
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 18.988,
"init": 0.002,
"home": 710.825,
"category": 348.738,
"detail": 242.996,
"player": 366.426,
"url_check": 557.055,
"total": 2247.308
"module_load": 3.742,
"init": 0.001,
"home": 1134.451,
"category": 1797.093,
"detail": 602.479,
"player": 238.209,
"url_check": 531.6,
"total": 4310.232
},
"counts": {
"classes": 4,
@@ -2624,11 +2624,11 @@
},
"player": {
"parse": 0,
"url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778758267-a55ce9c08cb94d2785ed57be9f17b4c2-0-a2bece48343b9fef4bf94193c660a817",
"url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778758570-e67dc17c198c47f6bb0710e397e9f5f0-0-9c933505e48d58e4b10b1fa4bf735f33",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778758267-a55ce9c08cb94d2785ed57be9f17b4c2-0-a2bece48343b9fef4bf94193c660a817",
"final_url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778758570-e67dc17c198c47f6bb0710e397e9f5f0-0-9c933505e48d58e4b10b1fa4bf735f33",
"reason": null
}
},
@@ -2640,14 +2640,14 @@
"error": "分类视频列表为空",
"traceback": null,
"timings_ms": {
"module_load": 14.753,
"module_load": 10.663,
"init": 0.001,
"home": 0.001,
"category": 1057.164,
"category": 1344.343,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 2175.639
"total": 2400.68
},
"counts": {
"classes": 5,
@@ -2674,39 +2674,39 @@
{
"spider": "飞快TV",
"file": "飞快TV.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"success": false,
"failed_stage": "unexpected",
"error": "('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))",
"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 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 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 )\nConnectionResetError: [Errno 104] Connection reset by peer\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.', ConnectionResetError(104, 'Connection reset by peer'))\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/飞快TV.txt\", line 206, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/飞快TV.txt\", line 71, in _request_html\nrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))\n",
"timings_ms": {
"module_load": 20.824,
"module_load": 9.771,
"init": 0.001,
"home": 0.001,
"category": 9139.613,
"detail": 2993.637,
"player": 3007.411,
"url_check": 1303.891,
"total": 16466.597
"category": 5046.132,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5063.093
},
"counts": {
"classes": 4,
"category_videos": 40,
"detail_videos": 1,
"episodes": 2
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "1",
"vod_id": "239475",
"flag": "高清31",
"play_id": "/vodplay/239475-3-1.html"
"vod_id": null,
"flag": null,
"play_id": null
},
"player": {
"parse": 0,
"url": "https://vvip.high26-playback.com/20260513/23437_628454d2/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://vvip.high26-playback.com/20260513/23437_628454d2/index.m3u8",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
},
@@ -2718,14 +2718,14 @@
"error": "分类列表为空",
"traceback": null,
"timings_ms": {
"module_load": 15.823,
"init": 0.001,
"home": 5201.71,
"module_load": 16.461,
"init": 0.002,
"home": 137.016,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 5217.862
"total": 154.586
},
"counts": {
"classes": 0,
@@ -2752,19 +2752,19 @@
{
"spider": "麦田影院",
"file": "麦田影院.txt",
"success": false,
"failed_stage": "url_check",
"error": "HTTP 404",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"timings_ms": {
"module_load": 4.174,
"init": 0.001,
"home": 0.0,
"category": 852.323,
"detail": 671.523,
"player": 0.01,
"url_check": 1734.8,
"total": 8244.904
"module_load": 18.852,
"init": 0.002,
"home": 0.001,
"category": 195.131,
"detail": 206.473,
"player": 0.101,
"url_check": 325.821,
"total": 748.938
},
"counts": {
"classes": 6,
@@ -2773,57 +2773,57 @@
"episodes": 2
},
"samples": {
"tid": "2",
"vod_id": "155698",
"tid": "1",
"vod_id": "171427",
"flag": "LZ源",
"play_id": "eyJ1cmwiOiJodHRwczovL3YubHpjZG4yOC5jb20vMjAyNTA5MjMvMjMyNl9hOWJmMjM0YS9pbmRleC5tM3U4IiwicGFyc2VfYXBpIjoiaHR0cHM6Ly9kZWwubXQzMjAuY29tL2x6ZmYucGhwP3VybD0iLCJoZWFkZXJzIjp7fSwidXNlcl9hZ2VudCI6IiJ9"
"play_id": "eyJ1cmwiOiJodHRwczovL3YubHpjZG4yNy5jb20vMjAyNTA3MzEvNjc5XzUwYTJiMDQ3L2luZGV4Lm0zdTgiLCJwYXJzZV9hcGkiOiJodHRwczovL2RlbC5tdDMyMC5jb20vbHpmZi5waHA_dXJsPSIsImhlYWRlcnMiOnt9LCJ1c2VyX2FnZW50IjoiIn0="
},
"player": {
"parse": 0,
"url": "https://v.lzcdn28.com/20250923/2326_a9bf234a/index.m3u8",
"valid": false,
"reachable": false,
"status_code": 404,
"final_url": "https://v.lzcdn28.com/20250923/2326_a9bf234a/index.m3u8",
"reason": "HTTP 404"
"url": "https://v.lzcdn27.com/20250731/679_50a2b047/index.m3u8",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://v.lzcdn27.com/20250731/679_50a2b047/index.m3u8",
"reason": null
}
},
{
"spider": "黑猫APP",
"file": "黑猫APP.txt",
"success": true,
"failed_stage": null,
"error": null,
"traceback": null,
"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 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/黑猫APP.txt\", line 155, in homeContent\n File \"/home/harold/workspace/tvbox-resources/py/黑猫APP.txt\", line 67, in _api_post\n File \"/home/harold/workspace/atv-spiders/py/base/spider.py\", line 152, in post\n rsp = requests.post(url, params=params, data=data, json=json, cookies=cookies, headers=headers, timeout=timeout,\n verify=verify, stream=stream, allow_redirects=allow_redirects)\nrequests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))\n",
"timings_ms": {
"module_load": 10.064,
"init": 0.001,
"home": 4102.738,
"category": 1119.191,
"detail": 986.266,
"player": 1298.664,
"url_check": 282.338,
"total": 12339.734
"module_load": 20.348,
"init": 0.002,
"home": 3581.537,
"category": 0.0,
"detail": 0.0,
"player": 0.0,
"url_check": 0.0,
"total": 3610.202
},
"counts": {
"classes": 5,
"category_videos": 30,
"detail_videos": 1,
"episodes": 2
"classes": 0,
"category_videos": 0,
"detail_videos": 0,
"episodes": 0
},
"samples": {
"tid": "2",
"vod_id": "93547",
"flag": "🐈‍⬛高清线路",
"play_id": "高清线路1@@direct@@66ddeb0b0fe39924c19b86fc5dcce841,aacc58cfc534485c8228d20348f4df5f,token+,1,1"
"tid": null,
"vod_id": null,
"flag": null,
"play_id": null
},
"player": {
"parse": 0,
"url": "https://v9-show.douyinvod.com/1b9ecfa0775d3c1b71a3a317a106b384/6a061257/video/tos/cn/tos-cn-v-5f73e7/oonfv6wLIUSAETtrI6C9zCdeoWF3V0fdPAFDeE/",
"valid": true,
"reachable": true,
"status_code": 200,
"final_url": "https://v9-show.douyinvod.com/1b9ecfa0775d3c1b71a3a317a106b384/6a061257/video/tos/cn/tos-cn-v-5f73e7/oonfv6wLIUSAETtrI6C9zCdeoWF3V0fdPAFDeE/",
"parse": null,
"url": "",
"valid": false,
"reachable": null,
"status_code": null,
"final_url": "",
"reason": null
}
}
+80 -80
View File
@@ -1,11 +1,11 @@
# 爬虫校验报告
- 生成时间: 2026-05-14T19:30:40+08:00
- 生成时间: 2026-05-14T19:35:52+08:00
- 并发线程数: 16
- 总耗时(ms): 51.168
- 总耗时(ms): 27.159
- 总数: 72
- 成功: 41
- 失败: 31
- 成功: 52
- 失败: 20
## 阶段失败统计
@@ -14,85 +14,85 @@
| 模块加载 | 0 |
| 初始化 | 0 |
| 首页分类 | 1 |
| 分类列表 | 3 |
| 视频详情 | 2 |
| 分类列表 | 5 |
| 视频详情 | 1 |
| 播放地址 | 0 |
| 地址校验 | 2 |
| 未预期异常 | 23 |
| 地址校验 | 1 |
| 未预期异常 | 12 |
## 明细结果
| 爬虫 | 状态 | 失败阶段 | 总耗时 | 模块加载 | 初始化 | 首页分类 | 分类列表 | 视频详情 | 播放地址 | 地址校验 | 返回地址 | 错误信息 |
| --- | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- | --- |
| [4K指南](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/4K%E6%8C%87%E5%8D%97.txt) | 成功 | | 5.962秒 | 350.645ms | 0.001ms | 0.002ms | 2.808秒 | 2.61秒 | 0.011ms | 191.331ms | https://pan.quark.cn/s/547b032442bb | |
| [6V磁力](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/6V%E7%A3%81%E5%8A%9B.txt) | 成功 | | 7.156秒 | 277.213ms | 0.01ms | 0.003ms | 3.204秒 | 3.67秒 | 0.004ms | 0.09ms | magnet:?xt=urn:btih:bf9a134b00c3ccc55c743b1340e15539f2321241&dn=%E7%88%B1%E6%83%85%E6%B2%A1%E6%9C%89%E7%A5%9E%E8%AF%9D01-07 | |
| [AAZ音乐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/AAZ%E9%9F%B3%E4%B9%90.txt) | 成功 | | 13.794秒 | 266.053ms | 0.001ms | 2.424秒 | 2.59秒 | 3.354秒 | 4.759秒 | 399.679ms | https://s.5bb3.com/m4a/3374e5b4a4d9d8e8f967976747b5c2ca.m4a | |
| [PPnix](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/PPnix.txt) | 成功 | | 7.121秒 | 409.766ms | 0.0ms | 0.0ms | 2.319秒 | 2.183秒 | 0.033ms | 2.209秒 | https://www.ppnix.com/info/m3u8/8155/1080P.m3u8 | |
| [QQ音乐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/QQ%E9%9F%B3%E4%B9%90.txt) | 成功 | | 2.442秒 | 329.574ms | 0.007ms | 0.002ms | 83.494ms | 115.263ms | 520.964ms | 136.139ms | https://isure.stream.qqmusic.qq.com/M500004G9dQ732c699.mp3?guid=fdd773c43d7301cf0867f25e7cb45b3f&vkey=89F77051CACF91F674293DF04158061E4A36B7E1B94A481A59C4DCED48596280018BBA78758CD929AB3AAC9884BB26DC08E7DF32775D92AE__v2b9ab97b&uin=&fromtag=119042&src=M500003v6xsK0PFi9w.mp3&redirect=1 | |
| [libvio](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/libvio.txt) | 成功 | | 4.62秒 | 362.661ms | 0.001ms | 0.001ms | 2.265秒 | 1.812秒 | 0.007ms | 171.275ms | https://pan.quark.cn/s/0337b1b18498 | |
| [youknow](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/youknow.txt) | 失败 | 未预期异常 | 24.21秒 | 331.261ms | 0.001ms | 0.001ms | 4.777秒 | 4.613秒 | 5.066秒 | 5.016秒 | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [七味](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B8%83%E5%91%B3.txt) | 成功 | | 6.289秒 | 268.035ms | 0.005ms | 0.001ms | 2.628秒 | 2.378秒 | 0.003ms | 1.013秒 | https://pan.baidu.com/s/1MZa4NhXR02WdMOXlmINHCA?pwd=Yu66 | |
| [不太灵](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B8%8D%E5%A4%AA%E7%81%B5.txt) | 失败 | 未预期异常 | 17.24秒 | 273.579ms | 0.004ms | 2.204秒 | 5.023秒 | 5.627秒 | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [世纪音乐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B8%96%E7%BA%AA%E9%9F%B3%E4%B9%90.txt) | 失败 | 视频详情 | 918.569ms | 367.539ms | 0.002ms | 234.435ms | 0.012ms | 137.813ms | 0.0ms | 0.0ms | | 详情缺少播放源或播放列表 |
| [两个BT](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B8%A4%E4%B8%AABT.txt) | 成功 | | 13.329秒 | 353.722ms | 0.001ms | 0.001ms | 2.113秒 | 2.107秒 | 6.322秒 | 2.432秒 | https://zijieapi.douyinbyte.com/m3u8/796f198cd696354075fc191b4a1d4f3a.m3u8 | |
| [乌云影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B9%8C%E4%BA%91%E5%BD%B1%E8%A7%86.txt) | 成功 | | 15.552秒 | 335.038ms | 0.001ms | 1.876秒 | 2.502秒 | 6.625秒 | 0.084ms | 4.21秒 | https://d1jdnmkc1n5cn4.cloudfront.net/gen_overseas/https://s2.bfllvip.com/video/yanxiaxing/a6ef854c0c1f/index.m3u8 | |
| [乐兔](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B9%90%E5%85%94.txt) | 失败 | 未预期异常 | 10.432秒 | 340.466ms | 0.001ms | 0.001ms | 10.083秒 | 0.0ms | 0.0ms | 0.0ms | | HTTPSConnectionPool(host='www.letu.me', port=443): Read timed out. (read timeout=10) |
| [二小](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BA%8C%E5%B0%8F.txt) | 成功 | | 6.396秒 | 270.144ms | 0.001ms | 0.001ms | 2.72秒 | 2.419秒 | 0.008ms | 984.842ms | https://pan.baidu.com/s/1w02-PXyH1jeYSFkvezrMJg?pwd=xiqe | |
| [人人电影](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BA%BA%E4%BA%BA%E7%94%B5%E5%BD%B1.txt) | 成功 | | 8.789秒 | 268.722ms | 0.001ms | 0.001ms | 4.217秒 | 3.187秒 | 0.008ms | 1.114秒 | https://pan.baidu.com/s/1OMLrKe8uLpRQu0fphTgwMw?pwd=wkcq | |
| [人人视频](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BA%BA%E4%BA%BA%E8%A7%86%E9%A2%91.txt) | 失败 | 地址校验 | 3.038秒 | 282.353ms | 0.002ms | 313.337ms | 292.244ms | 280.421ms | 410.528ms | 366.032ms | https://a3fkpcuk2gkkpmr.302.fledgecloud.com:56782/zj-302-cdn.bwcgee.cn/1042fe66438071f1b7975420848d0402/6eacc12bf7a6411c8174b99723f415bc-494b769a1432c115ec157a0c96eb87ed-ld.mp4?auth_key=1778772642-acab3ddd05cff6720710bfe155753871-0-6d47a7c58a2f82867d3eb229a9de6ef9&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=f1d5c74ce6104b65ae11a82f4a0b3827&hevc=false&seasonId=56136 | HTTP 403 |
| [优酷](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BC%98%E9%85%B7.txt) | 成功 | | 1.289秒 | 18.079ms | 0.001ms | 0.001ms | 384.808ms | 617.254ms | 0.005ms | 267.333ms | https://v.youku.com/v_show/id_XNjUxODQ1MzE1Ng==.html | |
| [低端影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BD%8E%E7%AB%AF%E5%BD%B1%E8%A7%86.txt) | 成功 | | 9.631秒 | 23.735ms | 0.001ms | 0.001ms | 2.477秒 | 3.795秒 | 0.023ms | 198.6ms | https://hn.bfvvs.com/play/aADNVAPe/index.m3u8 | |
| [修罗](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BF%AE%E7%BD%97.txt) | 失败 | 未预期异常 | 17.051秒 | 7.632ms | 0.001ms | 0.001ms | 4.261秒 | 3.021秒 | 9.752秒 | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [凡客TV](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%87%A1%E5%AE%A2TV.txt) | 失败 | 未预期异常 | 16.013秒 | 14.055ms | 0.002ms | 0.002ms | 6.673秒 | 4.476秒 | 4.847秒 | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [剧圈圈](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%89%A7%E5%9C%88%E5%9C%88.txt) | 失败 | 未预期异常 | 13.417秒 | 13.355ms | 0.001ms | 0.001ms | 4.526秒 | 8.87秒 | 0.0ms | 0.0ms | | HTTPSConnectionPool(host='www.jqqzx.one', port=443): Max retries exceeded with url: /vod/63013.html (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)'))) |
| [剧迷](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%89%A7%E8%BF%B7.txt) | 失败 | 未预期异常 | 11.973秒 | 24.598ms | 0.002ms | 0.002ms | 2.556秒 | 4.35秒 | 5.036秒 | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [博看听书](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%8D%9A%E7%9C%8B%E5%90%AC%E4%B9%A6.txt) | 成功 | | 4.402秒 | 17.992ms | 0.001ms | 3.154秒 | 285.38ms | 840.441ms | 0.008ms | 102.968ms | http://audio.bookan.com.cn/video1/audio/20200706001/aache64_133068a2.m4a | |
| [双星](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%8F%8C%E6%98%9F.txt) | 成功 | | 949.099ms | 11.236ms | 329.959ms | 0.015ms | 194.941ms | 206.072ms | 0.007ms | 205.034ms | https://pan.quark.cn/s/9e546b70dcfd | |
| [听书](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%90%AC%E4%B9%A6.txt) | 成功 | | 1.262秒 | 18.309ms | 89.67ms | 0.005ms | 192.257ms | 515.66ms | 306.657ms | 136.778ms | http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=8239b71a657987dea173ffb7e20bab1f&buy_key=FM&token=5001&timestamp=1778758248&duration=453 | |
| [听友FM](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%90%AC%E5%8F%8BFM.txt) | 失败 | 分类列表 | 18.116秒 | 8.631ms | 0.0ms | 3.189秒 | 5.042秒 | 5.04秒 | 0.0ms | 0.0ms | | 分类视频列表为空 |
| [咕咕动漫](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%92%95%E5%92%95%E5%8A%A8%E6%BC%AB.txt) | 失败 | 未预期异常 | 10.706秒 | 16.849ms | 0.004ms | 3.652秒 | 1.99秒 | 5.044秒 | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [四万影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%9B%9B%E4%B8%87%E5%BD%B1%E8%A7%86.txt) | 失败 | 未预期异常 | 2.684秒 | 19.055ms | 0.001ms | 0.001ms | 2.658秒 | 0.0ms | 0.0ms | 0.0ms | | 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)'))) |
| [在线之家](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%9C%A8%E7%BA%BF%E4%B9%8B%E5%AE%B6.txt) | 失败 | 未预期异常 | 8.101秒 | 15.28ms | 0.001ms | 0.001ms | 3.036秒 | 5.042秒 | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [多多](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%A4%9A%E5%A4%9A.txt) | 成功 | | 1.92秒 | 7.295ms | 0.001ms | 0.001ms | 487.94ms | 429.558ms | 0.012ms | 994.376ms | https://pan.baidu.com/s/1shl4w4dRUpSfwkkyQjUDBw?pwd=yyds | |
| [如意资源](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%A6%82%E6%84%8F%E8%B5%84%E6%BA%90.txt) | 成功 | | 22.053秒 | 15.395ms | 0.001ms | 0.013ms | 15.669秒 | 3.041秒 | 0.003ms | 3.327秒 | https://svip.ryiplay18.com/20260514/6398_d2dc5cf6/index.m3u8 | |
| [布布影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%B8%83%E5%B8%83%E5%BD%B1%E8%A7%86.txt) | 失败 | 未预期异常 | 6.611秒 | 21.13ms | 0.002ms | 0.002ms | 3.456秒 | 3.126秒 | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [微观短剧](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%BE%AE%E8%A7%82%E7%9F%AD%E5%89%A7.txt) | 成功 | | 1.835秒 | 19.947ms | 0.031ms | 209.127ms | 267.987ms | 1.217秒 | 0.007ms | 119.552ms | https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778758252&sign=5f70acd108b2fb11f1a26229c87e9f5a | |
| [新韩剧网](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%96%B0%E9%9F%A9%E5%89%A7%E7%BD%91.txt) | 失败 | 未预期异常 | 5.056秒 | 11.736ms | 0.001ms | 0.001ms | 5.038秒 | 0.0ms | 0.0ms | 0.0ms | | HTTPSConnectionPool(host='www.hanju7.com', port=443): Max retries exceeded with url: /list/1---.html (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)'))) |
| [星星短剧](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%98%9F%E6%98%9F%E7%9F%AD%E5%89%A7.txt) | 成功 | | 1.474秒 | 13.425ms | 0.001ms | 0.001ms | 489.859ms | 775.283ms | 0.009ms | 194.173ms | https://img.novel.wsljf.xyz/shortPlay-mp4/420424102051841/EvnIm1746774634078/abc6208e-390b-4533-a1a4-b9e5741cc384/540x960/output.m3u8 | |
| [木偶](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%9C%A8%E5%81%B6.txt) | 成功 | | 18.521秒 | 12.5ms | 0.001ms | 0.001ms | 13.481秒 | 4.757秒 | 0.023ms | 268.584ms | https://115cdn.com/s/swf0umw36dh?password=z9b7 | |
| [樱花动漫](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%A8%B1%E8%8A%B1%E5%8A%A8%E6%BC%AB.txt) | 失败 | 未预期异常 | 3.91秒 | 13.098ms | 0.001ms | 0.001ms | 3.895秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [橘子TV](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%A9%98%E5%AD%90TV.txt) | 失败 | 未预期异常 | 5.058秒 | 11.664ms | 5.04秒 | 0.0ms | 0.0ms | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [欧歌](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%AC%A7%E6%AD%8C.txt) | 失败 | 未预期异常 | 5.051秒 | 9.232ms | 0.001ms | 0.001ms | 5.04秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [河马短剧](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%B2%B3%E9%A9%AC%E7%9F%AD%E5%89%A7.txt) | 成功 | | 2.095秒 | 14.914ms | 0.001ms | 668.212ms | 414.922ms | 891.103ms | 0.025ms | 103.536ms | https://dzzt-video.cbread.cn/8ae074ab0df3409651d166e5e8132c92/6a06fcb0/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4 | |
| [滴答影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%BB%B4%E7%AD%94%E5%BD%B1%E8%A7%86.txt) | 失败 | 未预期异常 | 5.051秒 | 10.694ms | 0.001ms | 0.001ms | 5.038秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [潮流APP](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%BD%AE%E6%B5%81APP.txt) | 成功 | | 973.848ms | 8.444ms | 0.002ms | 135.309ms | 160.075ms | 182.942ms | 310.364ms | 175.748ms | http://beyond8888888.ucyy.cn/2026-05-14/125_78402_NBY-e84585334a25c5b49078dfac81549a0b.m3u8?ts=1778756442-0-0-f3a55f94ba968bb0d8846521e20c0e7b | |
| [爱奇艺](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%88%B1%E5%A5%87%E8%89%BA.txt) | 成功 | | 5.952秒 | 23.132ms | 0.02ms | 5.108秒 | 429.397ms | 197.607ms | 0.001ms | 192.765ms | http://www.iqiyi.com/v_vd55wo89uk.html | |
| [独播库](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%8B%AC%E6%92%AD%E5%BA%93.txt) | 失败 | 未预期异常 | 5.044秒 | 4.004ms | 0.001ms | 0.0ms | 5.039秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [玩偶哥哥](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%8E%A9%E5%81%B6%E5%93%A5%E5%93%A5.txt) | 失败 | 未预期异常 | 5.056秒 | 10.116ms | 0.001ms | 0.001ms | 5.042秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) |
| [玩偶聚合](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%8E%A9%E5%81%B6%E8%81%9A%E5%90%88.txt) | 成功 | | 13.56秒 | 16.062ms | 0.001ms | 0.483ms | 7.636秒 | 4.872秒 | 0.004ms | 1.033秒 | https://pan.baidu.com/s/1rbENAs61QO34Jd4z7TqLAw?pwd=wogg | |
| [瓜子](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%93%9C%E5%AD%90.txt) | 成功 | | 16.402秒 | 7.128ms | 0.001ms | 0.016ms | 3.77秒 | 6.578秒 | 860.702ms | 108.118ms | https://vd.hxcztech.com/1d82c4deb89cf69683619b1d12c97f0d/20260514193114/decry/vd/20260514/OWUzNTE0YTBlOT/125414/1920_1080/aac/h264/hls/decrypt/index.m3u8 | |
| [百度短剧](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%99%BE%E5%BA%A6%E7%9F%AD%E5%89%A7.txt) | 成功 | | 1.731秒 | 4.216ms | 0.0ms | 436.718ms | 270.171ms | 641.125ms | 293.904ms | 83.91ms | http://vd3.bdstatic.com/mda-rgu31fx13xnschwc/1080p/mv_cae264_backtrack_1080p_normal/1753858859061604699/mda-rgu31fx13xnschwc.mp4?v_from_s=haokan-ui-video-hnb | |
| [盘Ta](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9B%98Ta.txt) | 成功 | | 1.0秒 | 4.421ms | 0.001ms | 292.622ms | 269.474ms | 260.311ms | 0.038ms | 172.678ms | https://yun.139.com/shareweb/#/w/i/2sUfBKpu5QBqz | |
| [盘聚](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9B%98%E8%81%9A.txt) | 失败 | 未预期异常 | 5.055秒 | 5.388ms | 0.0ms | 0.0ms | 5.042秒 | 0.0ms | 0.0ms | 0.0ms | | HTTPSConnectionPool(host='www.seedhub.cc', port=443): Max retries exceeded with url: /?page=1 (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)'))) |
| [盘链](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9B%98%E9%93%BE.txt) | 失败 | 视频详情 | 15.888秒 | 16.844ms | 0.023ms | 0.001ms | 9.542秒 | 1.285秒 | 0.0ms | 0.0ms | | 详情缺少播放源或播放列表 |
| [短剧优选](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9F%AD%E5%89%A7%E4%BC%98%E9%80%89.txt) | 成功 | | 1.558秒 | 26.896ms | 668.282ms | 0.203ms | 446.257ms | 327.842ms | 0.006ms | 87.062ms | https://cdn-vod-playlet.wtzw.com/asset/b936eac78f199fd865afbe3c5b707e7f/play_multi_video/6f7310c287644b7c813ab8e2eb7a4a0c/f1223068052dd7f1bc88718af4b2c0e4.m3u8 | |
| [短剧网](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9F%AD%E5%89%A7%E7%BD%91.txt) | 失败 | 未预期异常 | 5.054秒 | 4.696ms | 0.001ms | 0.0ms | 5.04秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [糯米](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%B3%AF%E7%B1%B3.txt) | 成功 | | 2.34秒 | 16.745ms | 0.001ms | 610.04ms | 817.218ms | 172.06ms | 333.193ms | 389.104ms | https://vip.123pan.cn/1853039965/dy/东北往事极恶不赦.m3u8 | |
| [网易云音乐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90.txt) | 失败 | 未预期异常 | 1.085秒 | 2.644ms | 0.0ms | 443.842ms | 437.6ms | 0.004ms | 194.025ms | 0.0ms | | Expecting value: line 1 column 1 (char 0) |
| [耐视点播](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%80%90%E8%A7%86%E7%82%B9%E6%92%AD.txt) | 失败 | 未预期异常 | 5.062秒 | 15.785ms | 0.001ms | 0.001ms | 5.039秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [腾讯视频](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%85%BE%E8%AE%AF%E8%A7%86%E9%A2%91.txt) | 成功 | | 3.365秒 | 19.472ms | 0.001ms | 1.087秒 | 340.569ms | 741.308ms | 0.004ms | 1.176秒 | https://v.qq.com/x/cover/mzc002009g0nh88/w4102d4f4ur.html | |
| [至臻](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%87%B3%E8%87%BB.txt) | 成功 | | 10.838秒 | 3.932ms | 0.001ms | 0.001ms | 6.781秒 | 3.876秒 | 0.05ms | 175.371ms | https://pan.quark.cn/s/23730e017d01 | |
| [茶杯狐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%8C%B6%E6%9D%AF%E7%8B%90.txt) | 成功 | | 28.704秒 | 5.968ms | 0.001ms | 5.274秒 | 1.282秒 | 1.212秒 | 2.41秒 | 252.586ms | https://eos-huhehaote-1.cmecloud.cn/dsp-ecpan-zone3/6a246e5735e546abb27683b31ad19297?response-content-disposition=attachment%3Bfilename%3D%22gcj-%E4%B8%BB%E8%A7%9201.mp4%22&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260514T014622Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=R2V91UGDM1447A0VTB86%2F20260514%2Fdefault%2Fs3%2Faws4_request&X-Amz-Signature=4be447132565aabf17b30ea8d5ffa5c2a735c0baa9bd6a203620951609911b71 | |
| [虎斑](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%99%8E%E6%96%91.txt) | 成功 | | 11.628秒 | 5.889ms | 0.0ms | 0.001ms | 4.826秒 | 5.076秒 | 0.054ms | 1.718秒 | https://pan.baidu.com/s/1urbtY5SP9cjsG8lyFIQ08A?pwd=3007 | |
| [蜡笔](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%9C%A1%E7%AC%94.txt) | 失败 | 分类列表 | 8.918秒 | 5.513ms | 0.001ms | 0.001ms | 1.683秒 | 0.0ms | 0.0ms | 0.0ms | | 分类视频列表为空 |
| [袋鼠影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%A2%8B%E9%BC%A0%E5%BD%B1%E8%A7%86.txt) | 成功 | | 14.395秒 | 17.13ms | 0.001ms | 0.001ms | 2.507秒 | 3.876秒 | 6.469秒 | 1.522秒 | https://vip.dytt-tvs.com/20260213/11832_d20d9896/index.m3u8 | |
| [视界](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%A7%86%E7%95%8C.txt) | 成功 | | 11.972秒 | 20.981ms | 0.001ms | 2.909秒 | 4.461秒 | 2.399秒 | 1.144秒 | 1.036秒 | https://svip.ffzyplay.com/?url=https://vip.ffzy-plays.com/20260513/53534_a2bf9404/index.m3u8 | |
| [路漫漫](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%B7%AF%E6%BC%AB%E6%BC%AB.txt) | 失败 | 未预期异常 | 25.496秒 | 11.033ms | 0.001ms | 0.0ms | 3.898秒 | 4.999秒 | 13.406秒 | 253.261ms | | HTTPSConnectionPool(host='yun.92cj.com', port=443): Max retries exceeded with url: /yunbox/ducloud.php (Caused by ConnectTimeoutError(<HTTPSConnection(host='yun.92cj.com', port=443) at 0x75728f9d7110>, 'Connection to yun.92cj.com timed out. (connect timeout=10)')) |
| [酷我听书](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%85%B7%E6%88%91%E5%90%AC%E4%B9%A6.txt) | 成功 | | 4.355秒 | 29.728ms | 0.001ms | 371.948ms | 113.63ms | 3.615秒 | 137.242ms | 86.028ms | http://lv.sycdn.kuwo.cn/69d290b34e6446cc06ada32940c1d180/6a05b27d/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$ | |
| [酷狗音乐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%85%B7%E7%8B%97%E9%9F%B3%E4%B9%90.txt) | 成功 | | 1.897秒 | 35.609ms | 501.546ms | 315.428ms | 272.674ms | 325.077ms | 391.066ms | 52.744ms | http://fsdg360.tx.kugou.com/202605141931/4ed10988c04b81c6a46fb5e06a9a482f/v3/a2d2c628b701e59bffccbcffa8769cc0/yp/p_0_960121/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx551325950_qu128_s3024726551.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3 | |
| [金牌](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%87%91%E7%89%8C.txt) | 成功 | | 2.247秒 | 18.988ms | 0.002ms | 710.825ms | 348.738ms | 242.996ms | 366.426ms | 557.055ms | https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778758267-a55ce9c08cb94d2785ed57be9f17b4c2-0-a2bece48343b9fef4bf94193c660a817 | |
| [闪电](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%97%AA%E7%94%B5.txt) | 失败 | 分类列表 | 2.176秒 | 14.753ms | 0.001ms | 0.001ms | 1.057秒 | 0.0ms | 0.0ms | 0.0ms | | 分类视频列表为空 |
| [飞快TV](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%A3%9E%E5%BF%ABTV.txt) | 成功 | | 16.467秒 | 20.824ms | 0.001ms | 0.001ms | 9.14秒 | 2.994秒 | 3.007秒 | 1.304秒 | https://vvip.high26-playback.com/20260513/23437_628454d2/index.m3u8 | |
| [魔方APP](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%AD%94%E6%96%B9APP.txt) | 失败 | 首页分类 | 5.218秒 | 15.823ms | 0.001ms | 5.202秒 | 0.0ms | 0.0ms | 0.0ms | 0.0ms | | 分类列表为空 |
| [麦田影院](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%BA%A6%E7%94%B0%E5%BD%B1%E9%99%A2.txt) | 失败 | 地址校验 | 8.245秒 | 4.174ms | 0.001ms | 0.0ms | 852.323ms | 671.523ms | 0.01ms | 1.735秒 | https://v.lzcdn28.com/20250923/2326_a9bf234a/index.m3u8 | HTTP 404 |
| [黑猫APP](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%BB%91%E7%8C%ABAPP.txt) | 成功 | | 12.34秒 | 10.064ms | 0.001ms | 4.103秒 | 1.119秒 | 986.266ms | 1.299秒 | 282.338ms | https://v9-show.douyinvod.com/1b9ecfa0775d3c1b71a3a317a106b384/6a061257/video/tos/cn/tos-cn-v-5f73e7/oonfv6wLIUSAETtrI6C9zCdeoWF3V0fdPAFDeE/ | |
| [4K指南](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/4K%E6%8C%87%E5%8D%97.txt) | 成功 | | 1.912秒 | 243.625ms | 0.001ms | 0.003ms | 844.817ms | 556.455ms | 0.006ms | 180.109ms | https://pan.quark.cn/s/547b032442bb | |
| [6V磁力](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/6V%E7%A3%81%E5%8A%9B.txt) | 成功 | | 1.727秒 | 235.268ms | 0.011ms | 0.002ms | 750.247ms | 648.713ms | 0.006ms | 0.133ms | magnet:?xt=urn:btih:bf9a134b00c3ccc55c743b1340e15539f2321241&dn=%E7%88%B1%E6%83%85%E6%B2%A1%E6%9C%89%E7%A5%9E%E8%AF%9D01-07 | |
| [AAZ音乐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/AAZ%E9%9F%B3%E4%B9%90.txt) | 成功 | | 1.749秒 | 295.281ms | 0.001ms | 330.915ms | 254.747ms | 273.19ms | 209.239ms | 352.208ms | https://s.5bb3.com/m4a/3374e5b4a4d9d8e8f967976747b5c2ca.m4a | |
| [PPnix](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/PPnix.txt) | 成功 | | 3.804秒 | 331.726ms | 0.001ms | 0.001ms | 1.263秒 | 1.422秒 | 0.01ms | 785.92ms | https://www.ppnix.com/info/m3u8/8155/1080P.m3u8 | |
| [QQ音乐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/QQ%E9%9F%B3%E4%B9%90.txt) | 成功 | | 3.412秒 | 295.745ms | 0.007ms | 0.007ms | 915.652ms | 130.646ms | 557.664ms | 156.477ms | https://isure.stream.qqmusic.qq.com/M500004G9dQ732c699.mp3?guid=9992d436e38d86a5a95bbce7c90a1486&vkey=8596E01B0D0EEC836E39CAA3EA4B9EA2567206388D7C63E7D24B2A9EAAC40EEAF416993C5D21002CD82305B6D6A0E8518646DDCDE05FD803__v2b94c720&uin=&fromtag=119042&src=M500003v6xsK0PFi9w.mp3&redirect=1 | |
| [libvio](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/libvio.txt) | 成功 | | 2.56秒 | 232.924ms | 0.002ms | 0.001ms | 866.899ms | 1.229秒 | 0.005ms | 228.935ms | https://pan.quark.cn/s/0337b1b18498 | |
| [youknow](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/youknow.txt) | 成功 | | 7.395秒 | 239.883ms | 0.001ms | 0.001ms | 1.808秒 | 1.753秒 | 1.766秒 | 1.741秒 | https://play.phimgood.com/20260514/26755_b105ac0f/index.m3u8 | |
| [七味](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B8%83%E5%91%B3.txt) | 成功 | | 3.433秒 | 241.841ms | 0.009ms | 0.002ms | 943.101ms | 1.053秒 | 0.003ms | 1.109秒 | https://pan.baidu.com/s/1MZa4NhXR02WdMOXlmINHCA?pwd=Yu66 | |
| [不太灵](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B8%8D%E5%A4%AA%E7%81%B5.txt) | 失败 | 未预期异常 | 21.338秒 | 231.76ms | 0.002ms | 1.209秒 | 6.856秒 | 10.256秒 | 0.0ms | 0.0ms | | HTTPSConnectionPool(host='web5.mukaku.com', port=443): Read timed out. (read timeout=10) |
| [世纪音乐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B8%96%E7%BA%AA%E9%9F%B3%E4%B9%90.txt) | 失败 | 视频详情 | 822.161ms | 230.171ms | 0.003ms | 245.116ms | 0.017ms | 136.791ms | 0.0ms | 0.0ms | | 详情缺少播放源或播放列表 |
| [两个BT](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B8%A4%E4%B8%AABT.txt) | 失败 | 分类列表 | 10.513秒 | 293.184ms | 0.001ms | 0.003ms | 5.041秒 | 0.0ms | 0.0ms | 0.0ms | | 分类视频列表为空 |
| [乌云影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B9%8C%E4%BA%91%E5%BD%B1%E8%A7%86.txt) | 失败 | 未预期异常 | 527.303ms | 237.933ms | 0.001ms | 220.023ms | 0.0ms | 0.0ms | 0.0ms | 0.0ms | | HTTPSConnectionPool(host='wooyun.tv', port=443): Max retries exceeded with url: /movie/category/menu (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1081)'))) |
| [乐兔](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B9%90%E5%85%94.txt) | 失败 | 分类列表 | 1.112秒 | 256.567ms | 0.001ms | 0.002ms | 356.028ms | 0.0ms | 0.0ms | 0.0ms | | 分类视频列表为空 |
| [二小](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BA%8C%E5%B0%8F.txt) | 成功 | | 2.967秒 | 241.819ms | 0.001ms | 0.002ms | 525.439ms | 559.199ms | 0.006ms | 1.557秒 | https://pan.baidu.com/s/1w02-PXyH1jeYSFkvezrMJg?pwd=xiqe | |
| [人人电影](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BA%BA%E4%BA%BA%E7%94%B5%E5%BD%B1.txt) | 成功 | | 3.383秒 | 236.481ms | 0.0ms | 0.005ms | 967.428ms | 1.033秒 | 0.008ms | 1.059秒 | https://pan.baidu.com/s/1OMLrKe8uLpRQu0fphTgwMw?pwd=wkcq | |
| [人人视频](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BA%BA%E4%BA%BA%E8%A7%86%E9%A2%91.txt) | 失败 | 地址校验 | 3.029秒 | 227.522ms | 0.002ms | 274.216ms | 269.353ms | 280.865ms | 396.156ms | 289.938ms | https://tfvv1gr3dymt1ge31hcj3gezdrqe.ourdvsssvip.com:20443/ws-302.bwcgee.cn/1042fe66438071f1b7975420848d0402/6eacc12bf7a6411c8174b99723f415bc-494b769a1432c115ec157a0c96eb87ed-ld.mp4?key=d160334bcae99cefc826f17a1a26a86f&time=1778772955678&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=e651f06aab5442eab671bc03e9234e06&hevc=false&seasonId=56136&wsiphost=ipdbme&wsrid_tag=6a05b39b_PS-CKG-015Er210_43097-65125-s1t1778758555789&x-mamba-business-label=13423&redirect_cnt=0&ip_type=0&wshc=C&requery=0 | HTTP 403 |
| [优酷](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BC%98%E9%85%B7.txt) | 成功 | | 1.246秒 | 11.618ms | 0.001ms | 0.001ms | 304.637ms | 648.904ms | 0.008ms | 280.052ms | https://v.youku.com/v_show/id_XNjUxODQ1MzE1Ng==.html | |
| [低端影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BD%8E%E7%AB%AF%E5%BD%B1%E8%A7%86.txt) | 失败 | 未预期异常 | 5.06秒 | 13.117ms | 0.001ms | 0.001ms | 5.04秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [修罗](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BF%AE%E7%BD%97.txt) | 成功 | | 7.206秒 | 14.548ms | 0.001ms | 0.001ms | 1.283秒 | 1.488秒 | 3.445秒 | 973.376ms | https://v.xlys.ltd.ua/obj/A2581260855F2512F00D3E145B979CCB715165E7765535B8D0CCC7E2B77DAC1F | |
| [凡客TV](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%87%A1%E5%AE%A2TV.txt) | 成功 | | 15.804秒 | 13.265ms | 0.001ms | 0.001ms | 2.961秒 | 1.732秒 | 6.365秒 | 4.733秒 | https://fktv.me/ysapi/m3u8/p/a43e2933fb08b3aef6b463111e7dfe6a.m3u8 | |
| [剧圈圈](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%89%A7%E5%9C%88%E5%9C%88.txt) | 成功 | | 4.067秒 | 5.196ms | 0.001ms | 0.0ms | 659.574ms | 660.565ms | 2.122秒 | 617.01ms | https://www.jqqzx.cc/play/63013-3-1.html | |
| [剧迷](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%89%A7%E8%BF%B7.txt) | 成功 | | 5.175秒 | 8.478ms | 0.001ms | 0.001ms | 1.154秒 | 1.798秒 | 1.2秒 | 1.013秒 | https://play.phimgood.com/20260511/26651_2f4d94b1/index.m3u8 | |
| [博看听书](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%8D%9A%E7%9C%8B%E5%90%AC%E4%B9%A6.txt) | 成功 | | 4.413秒 | 19.53ms | 0.002ms | 3.233秒 | 277.177ms | 798.752ms | 0.007ms | 82.929ms | http://audio.bookan.com.cn/video1/audio/20200706001/aache64_133068a2.m4a | |
| [双星](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%8F%8C%E6%98%9F.txt) | 成功 | | 1.071秒 | 12.831ms | 349.799ms | 0.014ms | 271.441ms | 210.826ms | 0.002ms | 223.978ms | https://pan.quark.cn/s/9e546b70dcfd | |
| [听书](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%90%AC%E4%B9%A6.txt) | 成功 | | 8.486秒 | 14.805ms | 81.646ms | 0.001ms | 203.715ms | 574.815ms | 196.202ms | 172.809ms | http://2025.tingshijie.com/48/48_25494.mp3?auth_key=1778758564-0-0-3c46e40f7463ffed241689de5ec593e8 | |
| [听友FM](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%90%AC%E5%8F%8BFM.txt) | 成功 | | 2.23秒 | 17.262ms | 0.001ms | 495.376ms | 394.309ms | 667.515ms | 469.922ms | 183.598ms | https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778755189&sign=53e81d857fd0e7cdd266b5d8e4833a88 | |
| [咕咕动漫](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%92%95%E5%92%95%E5%8A%A8%E6%BC%AB.txt) | 成功 | | 5.818秒 | 13.353ms | 0.004ms | 965.865ms | 1.297秒 | 1.155秒 | 2.29秒 | 95.53ms | https://p9-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/c87332e45fc54a998855db93afefd79b~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1809862561&x-signature=ckRq84Jp0ceYBZ%2F0YSMutvbg5BQ%3D | |
| [四万影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%9B%9B%E4%B8%87%E5%BD%B1%E8%A7%86.txt) | 失败 | 未预期异常 | 182.316ms | 4.15ms | 0.001ms | 0.001ms | 171.543ms | 0.0ms | 0.0ms | 0.0ms | | 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)'))) |
| [在线之家](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%9C%A8%E7%BA%BF%E4%B9%8B%E5%AE%B6.txt) | 失败 | 未预期异常 | 5.079秒 | 7.57ms | 0.001ms | 0.001ms | 5.069秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [多多](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%A4%9A%E5%A4%9A.txt) | 成功 | | 2.971秒 | 10.974ms | 0.001ms | 0.001ms | 532.993ms | 437.869ms | 0.004ms | 1.988秒 | https://pan.baidu.com/s/1shl4w4dRUpSfwkkyQjUDBw?pwd=yyds | |
| [如意资源](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%A6%82%E6%84%8F%E8%B5%84%E6%BA%90.txt) | 成功 | | 3.172秒 | 6.955ms | 0.001ms | 0.009ms | 1.522秒 | 788.036ms | 0.006ms | 853.207ms | https://svip.ryiplay18.com/20260514/6398_d2dc5cf6/index.m3u8 | |
| [布布影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%B8%83%E5%B8%83%E5%BD%B1%E8%A7%86.txt) | 成功 | | 2.648秒 | 7.171ms | 0.001ms | 0.001ms | 671.815ms | 657.698ms | 987.252ms | 322.844ms | 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=20260514T112607Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260514%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=0ebf5805207422a37c4370ce703088e8d18a87919c593ae7a8e6f84691af6237 | |
| [微观短剧](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%BE%AE%E8%A7%82%E7%9F%AD%E5%89%A7.txt) | 成功 | | 994.359ms | 13.233ms | 0.033ms | 213.634ms | 298.402ms | 353.781ms | 0.005ms | 113.407ms | https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778758559&sign=99ce6dcdfe8f19904f069d68457a25e4 | |
| [新韩剧网](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%96%B0%E9%9F%A9%E5%89%A7%E7%BD%91.txt) | 成功 | | 1.924秒 | 9.843ms | 0.001ms | 0.001ms | 374.748ms | 356.728ms | 338.149ms | 843.43ms | https://cdn.yzzy31-play.com/20251216/9033_3613ef1e/index.m3u8 | |
| [星星短剧](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%98%9F%E6%98%9F%E7%9F%AD%E5%89%A7.txt) | 成功 | | 7.439秒 | 10.658ms | 0.001ms | 0.001ms | 463.184ms | 642.172ms | 0.013ms | 172.042ms | https://img.novel.wsljf.xyz/shortPlay-mp4/420109711704065/QyoCt1746624721904/5e477b2c-e420-419d-b627-3fb8af007eab/540x960/output.m3u8 | |
| [木偶](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%9C%A8%E5%81%B6.txt) | 成功 | | 1.098秒 | 12.544ms | 0.001ms | 0.001ms | 473.579ms | 354.882ms | 0.021ms | 256.008ms | https://115cdn.com/s/swf0umw36dh?password=z9b7 | |
| [樱花动漫](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%A8%B1%E8%8A%B1%E5%8A%A8%E6%BC%AB.txt) | 失败 | 未预期异常 | 303.06ms | 20.19ms | 0.002ms | 0.002ms | 273.834ms | 0.0ms | 0.0ms | 0.0ms | | HTTPSConnectionPool(host='www.dmvvv.com', port=443): Max retries exceeded with url: /type/guoman/ (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1081)'))) |
| [橘子TV](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%A9%98%E5%AD%90TV.txt) | 失败 | 未预期异常 | 5.487秒 | 6.428ms | 426.4ms | 5.048秒 | 0.0ms | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [欧歌](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%AC%A7%E6%AD%8C.txt) | 成功 | | 3.404秒 | 11.994ms | 0.001ms | 0.001ms | 1.102秒 | 1.182秒 | 0.009ms | 1.107秒 | https://pan.baidu.com/s/1jBEK7w_I3pntEZR9afhzbQ?pwd=8888 | |
| [河马短剧](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%B2%B3%E9%A9%AC%E7%9F%AD%E5%89%A7.txt) | 成功 | | 1.983秒 | 12.751ms | 0.001ms | 368.983ms | 396.474ms | 974.024ms | 0.031ms | 229.464ms | https://dzzt-video.cbread.cn/8ae074ab0df3409651d166e5e8132c92/6a06fcb0/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4 | |
| [滴答影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%BB%B4%E7%AD%94%E5%BD%B1%E8%A7%86.txt) | 成功 | | 1.866秒 | 15.121ms | 0.001ms | 0.001ms | 384.714ms | 351.757ms | 0.004ms | 1.113秒 | https://pan.baidu.com/s/1iUOPtAOz3ypj2nyY7Wv9Ww?pwd=969e | |
| [潮流APP](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%BD%AE%E6%B5%81APP.txt) | 成功 | | 825.655ms | 14.293ms | 0.003ms | 103.868ms | 120.019ms | 159.528ms | 279.235ms | 146.366ms | http://beyond8888888.ucyy.cn/2026-05-14/125_78402_NBY-e84585334a25c5b49078dfac81549a0b.m3u8?ts=1778756442-0-0-f3a55f94ba968bb0d8846521e20c0e7b | |
| [爱奇艺](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%88%B1%E5%A5%87%E8%89%BA.txt) | 成功 | | 4.766秒 | 21.904ms | 0.017ms | 3.582秒 | 848.931ms | 131.123ms | 0.003ms | 179.895ms | http://www.iqiyi.com/v_vd55wo89uk.html | |
| [独播库](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%8B%AC%E6%92%AD%E5%BA%93.txt) | 成功 | | 5.795秒 | 8.039ms | 0.001ms | 0.001ms | 1.878秒 | 1.647秒 | 1.261秒 | 999.865ms | https://vid.dbokutv.com/20260513/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBsvsRsGlR7XgBMfeUYqmCIqmCq8vCaGnC3OkRN0q/chunklist.m3u8 | |
| [玩偶哥哥](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%8E%A9%E5%81%B6%E5%93%A5%E5%93%A5.txt) | 成功 | | 2.412秒 | 5.451ms | 0.001ms | 0.0ms | 816.275ms | 568.156ms | 0.005ms | 1.022秒 | https://pan.baidu.com/s/1aoMU2PqERlEnjDchC_szIQ?pwd=wogg | |
| [玩偶聚合](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%8E%A9%E5%81%B6%E8%81%9A%E5%90%88.txt) | 成功 | | 5.541秒 | 8.215ms | 0.001ms | 0.071ms | 1.718秒 | 2.821秒 | 0.003ms | 991.926ms | https://pan.baidu.com/s/1rbENAs61QO34Jd4z7TqLAw?pwd=wogg | |
| [瓜子](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%93%9C%E5%AD%90.txt) | 失败 | 分类列表 | 16.314秒 | 6.875ms | 0.001ms | 0.019ms | 10.016秒 | 1.618秒 | 0.0ms | 0.0ms | | 分类视频列表为空 |
| [百度短剧](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%99%BE%E5%BA%A6%E7%9F%AD%E5%89%A7.txt) | 成功 | | 1.904秒 | 4.022ms | 0.0ms | 432.738ms | 285.322ms | 638.631ms | 473.989ms | 69.047ms | http://vd3.bdstatic.com/mda-rgu31fx13xnschwc/1080p/mv_cae264_backtrack_1080p_normal/1753858859061604699/mda-rgu31fx13xnschwc.mp4?v_from_s=haokan-ui-video-hnb | |
| [盘Ta](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9B%98Ta.txt) | 成功 | | 1.058秒 | 5.568ms | 0.0ms | 311.954ms | 315.057ms | 255.655ms | 0.016ms | 169.269ms | https://yun.139.com/shareweb/#/w/i/2sUfBKpu5QBqz | |
| [盘聚](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9B%98%E8%81%9A.txt) | 失败 | 未预期异常 | 5.051秒 | 8.361ms | 0.001ms | 0.001ms | 5.041秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [盘链](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9B%98%E9%93%BE.txt) | 成功 | | 2.876秒 | 11.157ms | 0.023ms | 0.001ms | 1.25秒 | 296.295ms | 0.002ms | 1.318秒 | https://pan.baidu.com/s/1rbhXV3rLNKd1wVta_hMYnw?pwd=8888 | |
| [短剧优选](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9F%AD%E5%89%A7%E4%BC%98%E9%80%89.txt) | 成功 | | 1.957秒 | 29.78ms | 710.001ms | 0.109ms | 514.29ms | 614.236ms | 0.004ms | 86.902ms | https://cdn-vod-playlet.wtzw.com/asset/b936eac78f199fd865afbe3c5b707e7f/play_multi_video/6f7310c287644b7c813ab8e2eb7a4a0c/f1223068052dd7f1bc88718af4b2c0e4.m3u8 | |
| [短剧网](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9F%AD%E5%89%A7%E7%BD%91.txt) | 成功 | | 1.283秒 | 4.148ms | 0.001ms | 0.0ms | 805.929ms | 265.217ms | 0.004ms | 207.649ms | https://pan.quark.cn/s/c5905c14ad16 | |
| [糯米](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%B3%AF%E7%B1%B3.txt) | 失败 | 未预期异常 | 10.819秒 | 5.971ms | 0.001ms | 797.497ms | 10.013秒 | 0.0ms | 0.0ms | 0.0ms | | HTTPSConnectionPool(host='vip.wwgz.cn', port=5200): Max retries exceeded with url: /vod-type-id-1-pg-1.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='vip.wwgz.cn', port=5200) at 0x711e2a3cdd10>, 'Connection to vip.wwgz.cn timed out. (connect timeout=10)')) |
| [网易云音乐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90.txt) | 成功 | | 1.878秒 | 2.763ms | 0.001ms | 409.722ms | 418.453ms | 0.006ms | 1.011秒 | 34.528ms | https://iot102.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260514200104/fc83112fb4a79b39312552ecd65c5d2a/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/79880892332/37f4/88fd/5ea2/67920c5a396286fe651ba6195a65e0bf.mp3 | |
| [耐视点播](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%80%90%E8%A7%86%E7%82%B9%E6%92%AD.txt) | 失败 | 分类列表 | 5.965秒 | 4.287ms | 0.001ms | 0.0ms | 3.204秒 | 0.0ms | 0.0ms | 0.0ms | | 分类视频列表为空 |
| [腾讯视频](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%85%BE%E8%AE%AF%E8%A7%86%E9%A2%91.txt) | 成功 | | 3.357秒 | 10.612ms | 0.001ms | 1.092秒 | 260.789ms | 780.651ms | 0.005ms | 1.212秒 | https://v.qq.com/x/cover/mzc002009g0nh88/w4102d4f4ur.html | |
| [至臻](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%87%B3%E8%87%BB.txt) | 成功 | | 8.234秒 | 12.491ms | 0.001ms | 0.001ms | 642.837ms | 461.908ms | 0.01ms | 962.584ms | https://pan.baidu.com/s/16l0YNaQWcIebhPcg_AlryQ?pwd=aigw | |
| [茶杯狐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%8C%B6%E6%9D%AF%E7%8B%90.txt) | 成功 | | 6.68秒 | 18.678ms | 0.001ms | 850.915ms | 906.975ms | 647.391ms | 1.287秒 | 2.967秒 | https://vip.ffzy-plays.com/20260514/53574_5de356e0/index.m3u8 | |
| [虎斑](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%99%8E%E6%96%91.txt) | 成功 | | 10.598秒 | 15.478ms | 0.001ms | 0.001ms | 4.394秒 | 4.992秒 | 0.034ms | 1.195秒 | https://pan.baidu.com/s/1urbtY5SP9cjsG8lyFIQ08A?pwd=3007 | |
| [蜡笔](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%9C%A1%E7%AC%94.txt) | 成功 | | 2.622秒 | 4.14ms | 0.001ms | 0.0ms | 1.132秒 | 473.252ms | 0.004ms | 1.012秒 | https://pan.baidu.com/s/1LZC9v0B6ETfpQWooAqqxJA?pwd=jcx5 | |
| [袋鼠影视](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%A2%8B%E9%BC%A0%E5%BD%B1%E8%A7%86.txt) | 失败 | 未预期异常 | 15.03秒 | 5.213ms | 0.001ms | 0.001ms | 15.018秒 | 0.0ms | 0.0ms | 0.0ms | | 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 0x711e2a3cf4d0>, 'Connection to daishuys.com timed out. (connect timeout=15)')) |
| [视界](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%A7%86%E7%95%8C.txt) | 成功 | | 2.252秒 | 8.893ms | 0.001ms | 402.784ms | 307.253ms | 283.892ms | 372.934ms | 875.291ms | https://svip.ffzyplay.com/?url=https://vip.ffzy-plays.com/20260513/53534_a2bf9404/index.m3u8 | |
| [路漫漫](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%B7%AF%E6%BC%AB%E6%BC%AB.txt) | 成功 | | 6.665秒 | 11.762ms | 0.001ms | 0.001ms | 863.128ms | 656.64ms | 1.606秒 | 1.627秒 | https://v16.toutiao50.com/1088b805aa5bec6819ae96b764edd06b/6a070859/video/tos/alisg/tos-alisg-ve-0051c001-sg/oEZIAIbobSfQTA7eY46sfdFSbiZGGCL9gnVDWY/ | |
| [酷我听书](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%85%B7%E6%88%91%E5%90%AC%E4%B9%A6.txt) | 成功 | | 4.166秒 | 25.258ms | 0.001ms | 388.646ms | 100.232ms | 3.421秒 | 149.976ms | 79.526ms | http://lv.sycdn.kuwo.cn/d1e192c2acd1e4d3fb6c50382437a275/6a05b3aa/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$ | |
| [酷狗音乐](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%85%B7%E7%8B%97%E9%9F%B3%E4%B9%90.txt) | 成功 | | 1.99秒 | 31.206ms | 552.585ms | 330.43ms | 295.886ms | 370.111ms | 346.156ms | 59.575ms | http://fsdg360.tx.kugou.com/202605141936/d6a7021dc03c42186ca284b6c5fe793a/v3/6d699f41649717e0cbb6d77beeeee0e1/yp/p_0_960135/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx268748259_qu128_s529165427.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3 | |
| [金牌](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%87%91%E7%89%8C.txt) | 成功 | | 4.31秒 | 3.742ms | 0.001ms | 1.134秒 | 1.797秒 | 602.479ms | 238.209ms | 531.6ms | https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1778758570-e67dc17c198c47f6bb0710e397e9f5f0-0-9c933505e48d58e4b10b1fa4bf735f33 | |
| [闪电](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%97%AA%E7%94%B5.txt) | 失败 | 分类列表 | 2.401秒 | 10.663ms | 0.001ms | 0.001ms | 1.344秒 | 0.0ms | 0.0ms | 0.0ms | | 分类视频列表为空 |
| [飞快TV](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%A3%9E%E5%BF%ABTV.txt) | 失败 | 未预期异常 | 5.063秒 | 9.771ms | 0.001ms | 0.001ms | 5.046秒 | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) |
| [魔方APP](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%AD%94%E6%96%B9APP.txt) | 失败 | 首页分类 | 154.586ms | 16.461ms | 0.002ms | 137.016ms | 0.0ms | 0.0ms | 0.0ms | 0.0ms | | 分类列表为空 |
| [麦田影院](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%BA%A6%E7%94%B0%E5%BD%B1%E9%99%A2.txt) | 成功 | | 748.938ms | 18.852ms | 0.002ms | 0.001ms | 195.131ms | 206.473ms | 0.101ms | 325.821ms | https://v.lzcdn27.com/20250731/679_50a2b047/index.m3u8 | |
| [黑猫APP](https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%BB%91%E7%8C%ABAPP.txt) | 失败 | 未预期异常 | 3.61秒 | 20.348ms | 0.002ms | 3.582秒 | 0.0ms | 0.0ms | 0.0ms | 0.0ms | | ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) |
+19 -8
View File
@@ -5,39 +5,50 @@
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/PPnix.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/QQ%E9%9F%B3%E4%B9%90.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/libvio.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/youknow.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B8%83%E5%91%B3.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B8%A4%E4%B8%AABT.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%B9%8C%E4%BA%91%E5%BD%B1%E8%A7%86.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BA%8C%E5%B0%8F.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BA%BA%E4%BA%BA%E7%94%B5%E5%BD%B1.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BC%98%E9%85%B7.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BD%8E%E7%AB%AF%E5%BD%B1%E8%A7%86.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E4%BF%AE%E7%BD%97.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%87%A1%E5%AE%A2TV.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%89%A7%E5%9C%88%E5%9C%88.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%89%A7%E8%BF%B7.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%8D%9A%E7%9C%8B%E5%90%AC%E4%B9%A6.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%8F%8C%E6%98%9F.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%90%AC%E4%B9%A6.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%90%AC%E5%8F%8BFM.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%92%95%E5%92%95%E5%8A%A8%E6%BC%AB.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%A4%9A%E5%A4%9A.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%A6%82%E6%84%8F%E8%B5%84%E6%BA%90.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%B8%83%E5%B8%83%E5%BD%B1%E8%A7%86.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E5%BE%AE%E8%A7%82%E7%9F%AD%E5%89%A7.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%96%B0%E9%9F%A9%E5%89%A7%E7%BD%91.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%98%9F%E6%98%9F%E7%9F%AD%E5%89%A7.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%9C%A8%E5%81%B6.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%AC%A7%E6%AD%8C.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%B2%B3%E9%A9%AC%E7%9F%AD%E5%89%A7.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%BB%B4%E7%AD%94%E5%BD%B1%E8%A7%86.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E6%BD%AE%E6%B5%81APP.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%88%B1%E5%A5%87%E8%89%BA.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%8B%AC%E6%92%AD%E5%BA%93.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%8E%A9%E5%81%B6%E5%93%A5%E5%93%A5.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%8E%A9%E5%81%B6%E8%81%9A%E5%90%88.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%93%9C%E5%AD%90.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%99%BE%E5%BA%A6%E7%9F%AD%E5%89%A7.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9B%98Ta.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9B%98%E9%93%BE.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9F%AD%E5%89%A7%E4%BC%98%E9%80%89.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%B3%AF%E7%B1%B3.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%9F%AD%E5%89%A7%E7%BD%91.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%85%BE%E8%AE%AF%E8%A7%86%E9%A2%91.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%87%B3%E8%87%BB.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%8C%B6%E6%9D%AF%E7%8B%90.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%99%8E%E6%96%91.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%A2%8B%E9%BC%A0%E5%BD%B1%E8%A7%86.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%9C%A1%E7%AC%94.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%A7%86%E7%95%8C.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E8%B7%AF%E6%BC%AB%E6%BC%AB.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%85%B7%E6%88%91%E5%90%AC%E4%B9%A6.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%85%B7%E7%8B%97%E9%9F%B3%E4%B9%90.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%87%91%E7%89%8C.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%A3%9E%E5%BF%ABTV.txt",
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%BB%91%E7%8C%ABAPP.txt"
"https://github.com/har01d5/tvbox/raw/refs/heads/master/py/%E9%BA%A6%E7%94%B0%E5%BD%B1%E9%99%A2.txt"
]
+180 -180
View File
@@ -1,7 +1,7 @@
[
{
"version": 6,
"file": "py/双星.txt",
"version": 3,
"file": "py/麦田影院.txt",
"valid": true
},
{
@@ -9,14 +9,24 @@
"file": "py/潮流APP.txt",
"valid": true
},
{
"version": 2,
"file": "py/微观短剧.txt",
"valid": true
},
{
"version": 8,
"file": "py/盘Ta.txt",
"valid": true
},
{
"version": 2,
"file": "py/听书.txt",
"version": 6,
"file": "py/双星.txt",
"valid": true
},
{
"version": 6,
"file": "py/木偶.txt",
"valid": true
},
{
@@ -25,13 +35,28 @@
"valid": true
},
{
"version": 2,
"file": "py/星星短剧.txt",
"version": 4,
"file": "py/短剧.txt",
"valid": true
},
{
"version": 14,
"file": "py/短剧优选.txt",
"version": 4,
"file": "py/6V磁力.txt",
"valid": true
},
{
"version": 2,
"file": "py/AAZ音乐.txt",
"valid": true
},
{
"version": 6,
"file": "py/滴答影视.txt",
"valid": true
},
{
"version": 2,
"file": "py/网易云音乐.txt",
"valid": true
},
{
@@ -39,9 +64,24 @@
"file": "py/百度短剧.txt",
"valid": true
},
{
"version": 6,
"file": "py/4K指南.txt",
"valid": true
},
{
"version": 2,
"file": "py/微观短剧.txt",
"file": "py/新韩剧网.txt",
"valid": true
},
{
"version": 14,
"file": "py/短剧优选.txt",
"valid": true
},
{
"version": 3,
"file": "py/河马短剧.txt",
"valid": true
},
{
@@ -49,6 +89,46 @@
"file": "py/酷狗音乐.txt",
"valid": true
},
{
"version": 2,
"file": "py/听友FM.txt",
"valid": true
},
{
"version": 2,
"file": "py/视界.txt",
"valid": true
},
{
"version": 6,
"file": "py/玩偶哥哥.txt",
"valid": true
},
{
"version": 5,
"file": "py/libvio.txt",
"valid": true
},
{
"version": 6,
"file": "py/蜡笔.txt",
"valid": true
},
{
"version": 2,
"file": "py/布布影视.txt",
"valid": true
},
{
"version": 6,
"file": "py/盘链.txt",
"valid": true
},
{
"version": 6,
"file": "py/二小.txt",
"valid": true
},
{
"version": 5,
"file": "py/多多.txt",
@@ -56,17 +136,22 @@
},
{
"version": 3,
"file": "py/河马短剧.txt",
"file": "py/如意资源.txt",
"valid": true
},
{
"version": 2,
"file": "py/金牌.txt",
"version": 7,
"file": "py/腾讯视频.txt",
"valid": true
},
{
"version": 3,
"file": "py/糯米.txt",
"version": 6,
"file": "py/人人电影.txt",
"valid": true
},
{
"version": 7,
"file": "py/欧歌.txt",
"valid": true
},
{
@@ -75,8 +160,18 @@
"valid": true
},
{
"version": 7,
"file": "py/腾讯视频.txt",
"version": 3,
"file": "py/七味.txt",
"valid": true
},
{
"version": 2,
"file": "py/PPnix.txt",
"valid": true
},
{
"version": 3,
"file": "py/剧圈圈.txt",
"valid": true
},
{
@@ -86,12 +181,12 @@
},
{
"version": 2,
"file": "py/博看听书.txt",
"file": "py/金牌.txt",
"valid": true
},
{
"version": 5,
"file": "py/libvio.txt",
"version": 2,
"file": "py/博看听书.txt",
"valid": true
},
{
@@ -99,64 +194,9 @@
"file": "py/爱奇艺.txt",
"valid": true
},
{
"version": 6,
"file": "py/4K指南.txt",
"valid": true
},
{
"version": 3,
"file": "py/七味.txt",
"valid": true
},
{
"version": 6,
"file": "py/二小.txt",
"valid": true
},
{
"version": 2,
"file": "py/PPnix.txt",
"valid": true
},
{
"version": 4,
"file": "py/6V磁力.txt",
"valid": true
},
{
"version": 6,
"file": "py/人人电影.txt",
"valid": true
},
{
"version": 3,
"file": "py/低端影视.txt",
"valid": true
},
{
"version": 6,
"file": "py/至臻.txt",
"valid": true
},
{
"version": 5,
"file": "py/虎斑.txt",
"valid": true
},
{
"version": 2,
"file": "py/视界.txt",
"valid": true
},
{
"version": 2,
"file": "py/黑猫APP.txt",
"valid": true
},
{
"version": 3,
"file": "py/两个BT.txt",
"file": "py/剧迷.txt",
"valid": true
},
{
@@ -166,37 +206,17 @@
},
{
"version": 2,
"file": "py/AAZ音乐.txt",
"file": "py/独播库.txt",
"valid": true
},
{
"version": 3,
"file": "py/袋鼠影视.txt",
"version": 1,
"file": "py/咕咕动漫.txt",
"valid": true
},
{
"version": 2,
"file": "py/乌云影视.txt",
"valid": true
},
{
"version": 4,
"file": "py/瓜子.txt",
"valid": true
},
{
"version": 6,
"file": "py/飞快TV.txt",
"valid": true
},
{
"version": 6,
"file": "py/木偶.txt",
"valid": true
},
{
"version": 3,
"file": "py/如意资源.txt",
"file": "py/路漫漫.txt",
"valid": true
},
{
@@ -205,18 +225,43 @@
"valid": true
},
{
"version": 2,
"file": "py/世纪音乐.txt",
"valid": false
"version": 6,
"file": "py/修罗.txt",
"valid": true
},
{
"version": 2,
"file": "py/网易云音乐.txt",
"valid": false
"file": "py/youknow.txt",
"valid": true
},
{
"version": 2,
"file": "py/星星短剧.txt",
"valid": true
},
{
"version": 6,
"file": "py/闪电.txt",
"file": "py/至臻.txt",
"valid": true
},
{
"version": 2,
"file": "py/听书.txt",
"valid": true
},
{
"version": 5,
"file": "py/虎斑.txt",
"valid": true
},
{
"version": 2,
"file": "py/凡客TV.txt",
"valid": true
},
{
"version": 3,
"file": "py/魔方APP.txt",
"valid": false
},
{
@@ -224,11 +269,6 @@
"file": "py/四万影视.txt",
"valid": false
},
{
"version": 2,
"file": "py/人人视频.txt",
"valid": false
},
{
"version": 3,
"file": "py/樱花动漫.txt",
@@ -236,22 +276,32 @@
},
{
"version": 2,
"file": "py/独播库.txt",
"file": "py/乌云影视.txt",
"valid": false
},
{
"version": 7,
"file": "py/欧歌.txt",
"version": 2,
"file": "py/世纪音乐.txt",
"valid": false
},
{
"version": 2,
"file": "py/乐兔.txt",
"valid": false
},
{
"version": 6,
"file": "py/滴答影视.txt",
"file": "py/闪电.txt",
"valid": false
},
{
"version": 4,
"file": "py/短剧网.txt",
"version": 2,
"file": "py/人人视频.txt",
"valid": false
},
{
"version": 2,
"file": "py/黑猫APP.txt",
"valid": false
},
{
@@ -260,13 +310,18 @@
"valid": false
},
{
"version": 6,
"file": "py/玩偶哥哥.txt",
"version": 3,
"file": "py/低端影视.txt",
"valid": false
},
{
"version": 2,
"file": "py/新韩剧网.txt",
"version": 6,
"file": "py/飞快TV.txt",
"valid": false
},
{
"version": 5,
"file": "py/在线之家.txt",
"valid": false
},
{
@@ -281,82 +336,27 @@
},
{
"version": 3,
"file": "py/魔方APP.txt",
"valid": false
},
{
"version": 2,
"file": "py/布布影视.txt",
"valid": false
},
{
"version": 5,
"file": "py/在线之家.txt",
"file": "py/两个BT.txt",
"valid": false
},
{
"version": 3,
"file": "py/麦田影院.txt",
"valid": false
},
{
"version": 6,
"file": "py/蜡笔.txt",
"valid": false
},
{
"version": 2,
"file": "py/乐兔.txt",
"valid": false
},
{
"version": 1,
"file": "py/咕咕动漫.txt",
"valid": false
},
{
"version": 2,
"file": "py/剧迷.txt",
"file": "py/糯米.txt",
"valid": false
},
{
"version": 3,
"file": "py/剧圈圈.txt",
"file": "py/袋鼠影视.txt",
"valid": false
},
{
"version": 5,
"file": "py/盘链.txt",
"valid": false
},
{
"version": 2,
"file": "py/凡客TV.txt",
"valid": false
},
{
"version": 6,
"file": "py/修罗.txt",
"version": 4,
"file": "py/瓜子.txt",
"valid": false
},
{
"version": 5,
"file": "py/不太灵.txt",
"valid": false
},
{
"version": 2,
"file": "py/听友FM.txt",
"valid": false
},
{
"version": 2,
"file": "py/youknow.txt",
"valid": false
},
{
"version": 2,
"file": "py/路漫漫.txt",
"valid": false
}
]