validate
This commit is contained in:
+943
-904
@@ -1,24 +1,63 @@
|
||||
{
|
||||
"generated_at": "2026-05-22T19:06:26+08:00",
|
||||
"generated_at": "2026-05-23T09:14:53+08:00",
|
||||
"max_workers": 16,
|
||||
"total_duration_ms": 62396.389,
|
||||
"total_duration_ms": 43497.605,
|
||||
"summary": {
|
||||
"total": 77,
|
||||
"success": 58,
|
||||
"failed": 19,
|
||||
"success_rate": 0.7532,
|
||||
"total": 78,
|
||||
"success": 62,
|
||||
"failed": 16,
|
||||
"success_rate": 0.7949,
|
||||
"stage_failures": {
|
||||
"module_load": 0,
|
||||
"init": 0,
|
||||
"home": 1,
|
||||
"category": 5,
|
||||
"category": 4,
|
||||
"detail": 1,
|
||||
"player": 1,
|
||||
"url_check": 1,
|
||||
"unexpected": 10
|
||||
"url_check": 2,
|
||||
"unexpected": 7
|
||||
}
|
||||
},
|
||||
"results": [
|
||||
{
|
||||
"spider": "4KVM",
|
||||
"file": "4KVM.txt",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 245.593,
|
||||
"init": 0.001,
|
||||
"home": 790.259,
|
||||
"category": 0.015,
|
||||
"detail": 834.744,
|
||||
"player": 952.011,
|
||||
"url_check": 832.614,
|
||||
"total": 3656.62
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
"category_videos": 24,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "-1",
|
||||
"vod_id": "cgzs2ud5p",
|
||||
"flag": "alists",
|
||||
"play_id": "2460|cgzs2ud5p"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://oss.douyinbit.com/m3u8/2d1b68345f90a09ad1bd583e26870122.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://oss.douyinbit.com/m3u8/2d1b68345f90a09ad1bd583e26870122.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "4K指南",
|
||||
"file": "4K指南.txt",
|
||||
@@ -27,14 +66,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 142.01,
|
||||
"init": 0.002,
|
||||
"home": 0.005,
|
||||
"category": 1009.219,
|
||||
"detail": 588.9,
|
||||
"player": 0.003,
|
||||
"url_check": 510.209,
|
||||
"total": 2332.854
|
||||
"module_load": 294.605,
|
||||
"init": 0.001,
|
||||
"home": 0.002,
|
||||
"category": 1289.271,
|
||||
"detail": 786.199,
|
||||
"player": 0.004,
|
||||
"url_check": 183.099,
|
||||
"total": 2574.187
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -66,14 +105,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 146.066,
|
||||
"init": 0.004,
|
||||
"home": 0.002,
|
||||
"category": 973.795,
|
||||
"detail": 8800.55,
|
||||
"player": 0.027,
|
||||
"url_check": 0.052,
|
||||
"total": 10008.866
|
||||
"module_load": 306.357,
|
||||
"init": 0.005,
|
||||
"home": 0.001,
|
||||
"category": 951.102,
|
||||
"detail": 790.899,
|
||||
"player": 0.007,
|
||||
"url_check": 0.188,
|
||||
"total": 2057.275
|
||||
},
|
||||
"counts": {
|
||||
"classes": 12,
|
||||
@@ -100,145 +139,28 @@
|
||||
{
|
||||
"spider": "AAZ音乐",
|
||||
"file": "AAZ音乐.txt",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 141.062,
|
||||
"init": 0.001,
|
||||
"home": 737.755,
|
||||
"category": 7904.158,
|
||||
"detail": 8413.075,
|
||||
"player": 198.865,
|
||||
"url_check": 1185.778,
|
||||
"total": 18581.272
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
"category_videos": 60,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "new",
|
||||
"vod_id": "song:e0f3c77fa564632f924f77fc5943ba7e",
|
||||
"flag": "AAZ音乐",
|
||||
"play_id": "song:e0f3c77fa564632f924f77fc5943ba7e"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://s.5bb3.com/m4a/3374e5b4a4d9d8e8f967976747b5c2ca.m4a",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://car-lv.kuwo.cn/84f760a0733d76257cb0ef54669f225c/6a1038c4/resource/1307392909/trackmedia/C200000W91kQ0efKLA.m4a?from=vip",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "PPnix",
|
||||
"file": "PPnix.txt",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 269.495,
|
||||
"init": 0.0,
|
||||
"home": 0.0,
|
||||
"category": 581.07,
|
||||
"detail": 423.498,
|
||||
"player": 0.01,
|
||||
"url_check": 437.052,
|
||||
"total": 15609.145
|
||||
},
|
||||
"counts": {
|
||||
"classes": 2,
|
||||
"category_videos": 24,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "2",
|
||||
"vod_id": "tv/7961.html",
|
||||
"flag": "PPnix",
|
||||
"play_id": "7961|1"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://www.ppnix.com/info/m3u8/7961/1.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://www.ppnix.com/info/m3u8/7961/1.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "QQ音乐",
|
||||
"file": "QQ音乐.txt",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 196.722,
|
||||
"init": 0.01,
|
||||
"home": 0.005,
|
||||
"category": 901.675,
|
||||
"detail": 2121.23,
|
||||
"player": 277.396,
|
||||
"url_check": 1051.76,
|
||||
"total": 4616.621
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
"category_videos": 30,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "playlist",
|
||||
"vod_id": "playlist:9671805444",
|
||||
"flag": "QQ音乐",
|
||||
"play_id": "qqmusic:001sdtpk2xLITO:659087538|YEARN FOR (FUNK) - MKMS"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://isure.stream.qqmusic.qq.com/F000001sdtpk2xLITO.flac?guid=6357d1af858bb5a0c877a17405916c37&vkey=1D19BDEDF1B4E244349F0ADCD7A5CA1670F73E64CDA30D17605686722ABB80BED73F9A9D288D8BED668A858981DC18EAAFAC8B53D42929E4__v2b9ab0c9&uin=896389745&fromtag=119114&src=F000004ZQptg2c2jD2.flac&redirect=1",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://isure.stream.qqmusic.qq.com/F000001sdtpk2xLITO.flac?guid=6357d1af858bb5a0c877a17405916c37&vkey=1D19BDEDF1B4E244349F0ADCD7A5CA1670F73E64CDA30D17605686722ABB80BED73F9A9D288D8BED668A858981DC18EAAFAC8B53D42929E4__v2b9ab0c9&uin=896389745&fromtag=119114&src=F000004ZQptg2c2jD2.flac&redirect=1",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "YouTube",
|
||||
"file": "YouTube.txt",
|
||||
"success": false,
|
||||
"failed_stage": "unexpected",
|
||||
"error": "HTTPSConnectionPool(host='www.youtube.com', port=443): Read timed out. (read timeout=5)",
|
||||
"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.youtube.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/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/YouTube.txt\", line 899, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/YouTube.txt\", line 731, in _search\nrequests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.youtube.com', port=443): Read timed out. (read timeout=5)\n",
|
||||
"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/AAZ音乐.txt\", line 220, in homeContent\n File \"/home/harold/workspace/tvbox-resources/py/AAZ音乐.txt\", line 57, in _fetch_html\n File \"/home/harold/workspace/atv-spiders/py/base/spider.py\", line 145, in fetch\n rsp = requests.get(url, params=params, cookies=cookies, headers=headers, timeout=timeout, verify=verify,\n stream=stream, allow_redirects=allow_redirects)\nrequests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))\n",
|
||||
"timings_ms": {
|
||||
"module_load": 197.063,
|
||||
"init": 0.007,
|
||||
"home": 0.079,
|
||||
"category": 5031.154,
|
||||
"module_load": 279.216,
|
||||
"init": 0.001,
|
||||
"home": 912.502,
|
||||
"category": 0.0,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 5298.673
|
||||
"total": 1231.373
|
||||
},
|
||||
"counts": {
|
||||
"classes": 29,
|
||||
"classes": 0,
|
||||
"category_videos": 0,
|
||||
"detail_videos": 0,
|
||||
"episodes": 0
|
||||
},
|
||||
"samples": {
|
||||
"tid": "cat_recommend",
|
||||
"tid": null,
|
||||
"vod_id": null,
|
||||
"flag": null,
|
||||
"play_id": null
|
||||
@@ -253,6 +175,123 @@
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "PPnix",
|
||||
"file": "PPnix.txt",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 355.709,
|
||||
"init": 0.001,
|
||||
"home": 0.0,
|
||||
"category": 1038.481,
|
||||
"detail": 612.82,
|
||||
"player": 0.011,
|
||||
"url_check": 619.009,
|
||||
"total": 2627.405
|
||||
},
|
||||
"counts": {
|
||||
"classes": 2,
|
||||
"category_videos": 24,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "movie/8190.html",
|
||||
"flag": "PPnix",
|
||||
"play_id": "8190|1080P"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://www.ppnix.com/info/m3u8/8190/1080P.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://www.ppnix.com/info/m3u8/8190/1080P.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "QQ音乐",
|
||||
"file": "QQ音乐.txt",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 273.587,
|
||||
"init": 0.008,
|
||||
"home": 0.002,
|
||||
"category": 1034.724,
|
||||
"detail": 938.157,
|
||||
"player": 448.532,
|
||||
"url_check": 221.576,
|
||||
"total": 2918.688
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
"category_videos": 30,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "playlist",
|
||||
"vod_id": "playlist:7782896878",
|
||||
"flag": "QQ音乐",
|
||||
"play_id": "qqmusic:001UxzJo2mN9wh:248471068|大眠 - juju"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://isure.stream.qqmusic.qq.com/M800004MWEGL4Dz8Y8.mp3?guid=e89b23e63c117dc306291ae80454a0f2&vkey=53A01E9532B3C7D8D2886CB156EFC21CD36C1C9E5544F9DA239C4C273C74BE125DC203F00A8FB826E3673C01C0FEAD3BE599FE2BFC971F14__v2b9ab6f8&uin=896389745&fromtag=119093&redirect=1",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://isure.stream.qqmusic.qq.com/M800004MWEGL4Dz8Y8.mp3?guid=e89b23e63c117dc306291ae80454a0f2&vkey=53A01E9532B3C7D8D2886CB156EFC21CD36C1C9E5544F9DA239C4C273C74BE125DC203F00A8FB826E3673C01C0FEAD3BE599FE2BFC971F14__v2b9ab6f8&uin=896389745&fromtag=119093&redirect=1",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "YouTube",
|
||||
"file": "YouTube.txt",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 274.171,
|
||||
"init": 0.004,
|
||||
"home": 0.077,
|
||||
"category": 811.469,
|
||||
"detail": 3073.101,
|
||||
"player": 0.009,
|
||||
"url_check": 1117.325,
|
||||
"total": 5300.529
|
||||
},
|
||||
"counts": {
|
||||
"classes": 29,
|
||||
"category_videos": 20,
|
||||
"detail_videos": 1,
|
||||
"episodes": 2
|
||||
},
|
||||
"samples": {
|
||||
"tid": "cat_recommend",
|
||||
"vod_id": "yt:video:E3jcQgR3TNE",
|
||||
"flag": "YouTube",
|
||||
"play_id": "yt:video:E3jcQgR3TNE"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://www.youtube.com/watch?v=E3jcQgR3TNE",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://www.youtube.com/watch?v=E3jcQgR3TNE",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "libvio",
|
||||
"file": "libvio.txt",
|
||||
@@ -261,14 +300,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 140.5,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 355.319,
|
||||
"detail": 8873.089,
|
||||
"player": 0.006,
|
||||
"url_check": 173.25,
|
||||
"total": 9628.905
|
||||
"module_load": 242.826,
|
||||
"init": 0.0,
|
||||
"home": 0.0,
|
||||
"category": 744.136,
|
||||
"detail": 525.703,
|
||||
"player": 0.005,
|
||||
"url_check": 190.316,
|
||||
"total": 1705.008
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
@@ -278,56 +317,56 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "index",
|
||||
"vod_id": "714893325",
|
||||
"vod_id": "714893349",
|
||||
"flag": "夸克",
|
||||
"play_id": "https://pan.quark.cn/s/6efb535e6e70"
|
||||
"play_id": "https://pan.quark.cn/s/6a2dba67ad05"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://pan.quark.cn/s/6efb535e6e70",
|
||||
"url": "https://pan.quark.cn/s/6a2dba67ad05",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://pan.quark.cn/s/6efb535e6e70",
|
||||
"final_url": "https://pan.quark.cn/s/6a2dba67ad05",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "youknow",
|
||||
"file": "youknow.txt",
|
||||
"success": false,
|
||||
"failed_stage": "unexpected",
|
||||
"error": "'NoneType' object has no attribute 'xpath'",
|
||||
"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 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/youknow.txt\", line 296, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/youknow.txt\", line 209, in _parse_detail_page\nAttributeError: 'NoneType' object has no attribute 'xpath'\n",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 199.558,
|
||||
"module_load": 279.145,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 2179.852,
|
||||
"detail": 1511.381,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 3952.783
|
||||
"category": 2076.187,
|
||||
"detail": 1642.251,
|
||||
"player": 1155.682,
|
||||
"url_check": 1850.173,
|
||||
"total": 7042.54
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
"category_videos": 215,
|
||||
"detail_videos": 0,
|
||||
"episodes": 0
|
||||
"category_videos": 219,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "index",
|
||||
"vod_id": "204019",
|
||||
"flag": null,
|
||||
"play_id": null
|
||||
"vod_id": "203584",
|
||||
"flag": "YouKnowTV",
|
||||
"play_id": "eyJ2b2RfaWQiOiIyMDM1ODQiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM1ODQtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM1ODQtMS0xLyJ9LHsic291cmNlIjoi57q_6LevOCIsInNvdXJjZV9pZCI6IjIiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM1ODQtMi0xLyJ9LHsic291cmNlIjoi57q_6LevOSIsInNvdXJjZV9pZCI6IjIiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8yMDM1ODQtMi0xLyJ9XX0"
|
||||
},
|
||||
"player": {
|
||||
"parse": null,
|
||||
"url": "",
|
||||
"valid": false,
|
||||
"reachable": null,
|
||||
"status_code": null,
|
||||
"final_url": "",
|
||||
"parse": 0,
|
||||
"url": "https://vip.dytt-tvs.com/20260501/18578_80f0fe8b/index.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://cnvod.jimxtc.com/20260501/18578_80f0fe8b/index.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -339,14 +378,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 138.913,
|
||||
"module_load": 273.817,
|
||||
"init": 0.006,
|
||||
"home": 0.002,
|
||||
"category": 6891.493,
|
||||
"detail": 1114.41,
|
||||
"player": 0.002,
|
||||
"url_check": 1105.722,
|
||||
"total": 9338.325
|
||||
"home": 0.003,
|
||||
"category": 1093.341,
|
||||
"detail": 1351.497,
|
||||
"player": 0.003,
|
||||
"url_check": 1128.265,
|
||||
"total": 3884.607
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -378,14 +417,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 212.46,
|
||||
"init": 0.002,
|
||||
"home": 12378.016,
|
||||
"category": 14628.366,
|
||||
"detail": 3375.238,
|
||||
"player": 0.01,
|
||||
"url_check": 952.62,
|
||||
"total": 46687.405
|
||||
"module_load": 315.192,
|
||||
"init": 0.001,
|
||||
"home": 1369.784,
|
||||
"category": 1493.007,
|
||||
"detail": 904.874,
|
||||
"player": 0.018,
|
||||
"url_check": 183.59,
|
||||
"total": 4269.489
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -394,57 +433,57 @@
|
||||
"episodes": 2
|
||||
},
|
||||
"samples": {
|
||||
"tid": "2",
|
||||
"vod_id": "36310054",
|
||||
"flag": "百度",
|
||||
"play_id": "https://pan.baidu.com/s/18_BEUEFJ_WmP3DaJIsxUfQ?pwd=Yu66"
|
||||
"tid": "1",
|
||||
"vod_id": "37242440",
|
||||
"flag": "夸克",
|
||||
"play_id": "https://pan.quark.cn/s/f214cf612e90"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://pan.baidu.com/s/18_BEUEFJ_WmP3DaJIsxUfQ?pwd=Yu66",
|
||||
"url": "https://pan.quark.cn/s/f214cf612e90",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://pan.baidu.com/share/init?surl=8_BEUEFJ_WmP3DaJIsxUfQ&pwd=Yu66",
|
||||
"final_url": "https://pan.quark.cn/s/f214cf612e90",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "世纪音乐",
|
||||
"file": "世纪音乐.txt",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"success": false,
|
||||
"failed_stage": "detail",
|
||||
"error": "详情缺少播放源或播放列表",
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 150.484,
|
||||
"module_load": 270.577,
|
||||
"init": 0.001,
|
||||
"home": 262.094,
|
||||
"category": 164.324,
|
||||
"detail": 150.785,
|
||||
"player": 0.003,
|
||||
"url_check": 651.888,
|
||||
"total": 1447.595
|
||||
"home": 207.984,
|
||||
"category": 0.02,
|
||||
"detail": 158.604,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 787.629
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
"category_videos": 28,
|
||||
"category_videos": 3,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
"episodes": 0
|
||||
},
|
||||
"samples": {
|
||||
"tid": "home",
|
||||
"vod_id": "song:yehthwwyhe",
|
||||
"flag": "世纪音乐",
|
||||
"play_id": "music:yehthwwyhe"
|
||||
"tid": "rank_list",
|
||||
"vod_id": "rank:rise",
|
||||
"flag": null,
|
||||
"play_id": null
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://www.4c44.com/data/down.php?ac=music&id=yehthwwyhe",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "http://m701.music.126.net/20260522193128/66b4ee940f7dcd7f2d71faa000babec5/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/7644055231/5d99/0fae/2e34/4ae9c15f261d697fedee2c0bdaa86277.mp3?vuutv=J0MECB4HwH3hbfxygXqg07ejRxm2jRmWyRynl2+LMEDEbeBgVdnmvs4vYg63stUxaUZPtQ4tKUUviQ7hpB08NzZcRv/b8m85S1AlpbyQxWg=",
|
||||
"parse": null,
|
||||
"url": "",
|
||||
"valid": false,
|
||||
"reachable": null,
|
||||
"status_code": null,
|
||||
"final_url": "",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -456,14 +495,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 227.245,
|
||||
"module_load": 316.551,
|
||||
"init": 0.001,
|
||||
"home": 0.002,
|
||||
"category": 6065.433,
|
||||
"detail": 464.952,
|
||||
"player": 8999.512,
|
||||
"url_check": 408.489,
|
||||
"total": 49351.076
|
||||
"home": 0.001,
|
||||
"category": 636.89,
|
||||
"detail": 494.057,
|
||||
"player": 2073.744,
|
||||
"url_check": 801.546,
|
||||
"total": 4324.471
|
||||
},
|
||||
"counts": {
|
||||
"classes": 14,
|
||||
@@ -472,18 +511,18 @@
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "meiju",
|
||||
"vod_id": "ch43p9mom",
|
||||
"tid": "zgjun",
|
||||
"vod_id": "ch45x6dqu",
|
||||
"flag": "两个BT",
|
||||
"play_id": "eyJwaWQiOiIvcGxheS9jaDQzcDltb20iLCJzaWQiOiJjaDQzcDltb20iLCJuYW1lIjoiMSJ9"
|
||||
"play_id": "eyJwaWQiOiIvcGxheS9jaDQ1eDZkcXUiLCJzaWQiOiJjaDQ1eDZkcXUiLCJuYW1lIjoiMSJ9"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://zijieapi.douyinbyte.com/m3u8/86bd98ea9e8ec30f9e7c95279e8a66aa.m3u8",
|
||||
"url": "https://zijieapi.douyinbyte.com/m3u8/2f35b121a4926d93934aa0a83b137848.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://zijieapi.douyinbyte.com/m3u8/86bd98ea9e8ec30f9e7c95279e8a66aa.m3u8",
|
||||
"final_url": "https://zijieapi.douyinbyte.com/m3u8/2f35b121a4926d93934aa0a83b137848.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -495,14 +534,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 201.36,
|
||||
"module_load": 307.716,
|
||||
"init": 0.001,
|
||||
"home": 6490.496,
|
||||
"category": 8590.601,
|
||||
"detail": 1108.674,
|
||||
"player": 0.023,
|
||||
"url_check": 2090.703,
|
||||
"total": 51751.504
|
||||
"home": 576.59,
|
||||
"category": 659.997,
|
||||
"detail": 1651.417,
|
||||
"player": 0.043,
|
||||
"url_check": 2231.226,
|
||||
"total": 5436.695
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
@@ -511,18 +550,18 @@
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "tv_series",
|
||||
"vod_id": "41042",
|
||||
"tid": "movie",
|
||||
"vod_id": "483203",
|
||||
"flag": "乌云影视",
|
||||
"play_id": "eyJtZWRpYUlkIjogIjQxMDQyIiwgInNlYXNvbk5vIjogMSwgImVwTm8iOiAxLCAidmlkZW9JZCI6IDc2MjEyLCAicGxheVVybCI6ICJodHRwczovL2QxamRubWtjMW41Y240LmNsb3VkZnJvbnQubmV0L2dlbl9vdmVyc2Vhcy9odHRwczovL2MxLnJyY2RuYmYyLmNvbS92aWRlby9zaG91d2FuZy_nrKwwMembhi9pbmRleC5tM3U4IiwgIm5hbWUiOiAi56ysMembhiDnrKwwMembhiJ9"
|
||||
"play_id": "eyJtZWRpYUlkIjogIjQ4MzIwMyIsICJzZWFzb25ObyI6IDEsICJlcE5vIjogMSwgInZpZGVvSWQiOiAxNTc2MjgzMiwgInBsYXlVcmwiOiAiaHR0cHM6Ly9kMWpkbm1rYzFuNWNuNC5jbG91ZGZyb250Lm5ldC9nZW5fb3ZlcnNlYXMvaHR0cHM6Ly9zMi5iZmxsdmlwLmNvbS92aWRlby95YW54aWF4aW5nL2E2ZWY4NTRjMGMxZi9pbmRleC5tM3U4IiwgIm5hbWUiOiAi56ysMembhiDpq5jmuIUifQ"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://d1jdnmkc1n5cn4.cloudfront.net/gen_overseas/https://c1.rrcdnbf2.com/video/shouwang/第01集/index.m3u8",
|
||||
"url": "https://d1jdnmkc1n5cn4.cloudfront.net/gen_overseas/https://s2.bfllvip.com/video/yanxiaxing/a6ef854c0c1f/index.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://d1jdnmkc1n5cn4.cloudfront.net/hls_overseas/3f8fdf25c6e943e30eceea2daf421ba95d2903ae.m3u8",
|
||||
"final_url": "https://d1jdnmkc1n5cn4.cloudfront.net/hls_overseas/465545b7520ef976383477623777608235df67c1.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -530,18 +569,18 @@
|
||||
"spider": "乐兔",
|
||||
"file": "乐兔.txt",
|
||||
"success": false,
|
||||
"failed_stage": "category",
|
||||
"error": "分类视频列表为空",
|
||||
"traceback": null,
|
||||
"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",
|
||||
"timings_ms": {
|
||||
"module_load": 139.694,
|
||||
"init": 0.002,
|
||||
"home": 0.002,
|
||||
"category": 6216.258,
|
||||
"module_load": 269.452,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 10041.678,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 15803.07
|
||||
"total": 10314.792
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -550,7 +589,7 @@
|
||||
"episodes": 0
|
||||
},
|
||||
"samples": {
|
||||
"tid": "2",
|
||||
"tid": "1",
|
||||
"vod_id": null,
|
||||
"flag": null,
|
||||
"play_id": null
|
||||
@@ -573,14 +612,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 215.784,
|
||||
"init": 0.001,
|
||||
"module_load": 284.623,
|
||||
"init": 0.004,
|
||||
"home": 0.001,
|
||||
"category": 788.95,
|
||||
"detail": 6114.905,
|
||||
"player": 0.003,
|
||||
"url_check": 1074.707,
|
||||
"total": 8238.946
|
||||
"category": 731.793,
|
||||
"detail": 496.904,
|
||||
"player": 0.007,
|
||||
"url_check": 1055.258,
|
||||
"total": 2597.899
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
@@ -612,14 +651,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 248.395,
|
||||
"module_load": 18.081,
|
||||
"init": 0.001,
|
||||
"home": 0.002,
|
||||
"category": 9596.931,
|
||||
"detail": 537.612,
|
||||
"home": 0.001,
|
||||
"category": 1402.029,
|
||||
"detail": 1109.66,
|
||||
"player": 0.036,
|
||||
"url_check": 1350.042,
|
||||
"total": 11745.261
|
||||
"url_check": 1250.623,
|
||||
"total": 3781.186
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
@@ -651,14 +690,14 @@
|
||||
"error": "HTTP 403",
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 4.175,
|
||||
"init": 0.0,
|
||||
"home": 175.053,
|
||||
"category": 255.517,
|
||||
"detail": 253.451,
|
||||
"player": 331.928,
|
||||
"url_check": 264.58,
|
||||
"total": 2736.277
|
||||
"module_load": 10.211,
|
||||
"init": 0.001,
|
||||
"home": 207.677,
|
||||
"category": 291.728,
|
||||
"detail": 238.798,
|
||||
"player": 341.796,
|
||||
"url_check": 286.357,
|
||||
"total": 2586.062
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
@@ -674,11 +713,11 @@
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://tfw31gr3dymt1ge31hcj3gezdkca.ourdvsssvip.com:20443/ws-302.bwcgee.cn/605e22ac542671f1808b5017f0e90402/d4bcd7a2946b4805937d7f53260f0103-0fad76925ba35d93c1e343ddeaeec8b2-ld.mp4?key=e9db0d0c72a7800fb557e3ccb327104e&time=1779462391016&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=7a66f71fc42747f1bdad44c051335104&hevc=false&seasonId=56961&wsiphost=ipdbme&wsrid_tag=6a1038b7_PS-CTU-01lP718_42906-29694-s1t1779447991094&x-mamba-business-label=13423&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
|
||||
"url": "https://tfw40grhdgmt1gc41hcttghzdnp3u.ourdvsssvip.com:20443/ws-302.bwcgee.cn/605e22ac542671f1808b5017f0e90402/d4bcd7a2946b4805937d7f53260f0103-0fad76925ba35d93c1e343ddeaeec8b2-ld.mp4?key=14267b7073139051f59a51ac79f9c84c&time=1779513297495&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=ffe85f3cd6d54c55a9013653aee05810&hevc=false&seasonId=56961&wsiphost=ipdbme&wsrid_tag=6a10ff91_PS-CTU-01lP718_9176-28559-s1t1779498897593&x-mamba-business-label=13679&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
|
||||
"valid": false,
|
||||
"reachable": false,
|
||||
"status_code": 403,
|
||||
"final_url": "https://tfw31gr3dymt1ge31hcj3gezdkca.ourdvsssvip.com:20443/ws-302.bwcgee.cn/605e22ac542671f1808b5017f0e90402/d4bcd7a2946b4805937d7f53260f0103-0fad76925ba35d93c1e343ddeaeec8b2-ld.mp4?key=e9db0d0c72a7800fb557e3ccb327104e&time=1779462391016&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=7a66f71fc42747f1bdad44c051335104&hevc=false&seasonId=56961&wsiphost=ipdbme&wsrid_tag=6a1038b7_PS-CTU-01lP718_42906-29694-s1t1779447991094&x-mamba-business-label=13423&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
|
||||
"final_url": "https://tfw40grhdgmt1gc41hcttghzdnp3u.ourdvsssvip.com:20443/ws-302.bwcgee.cn/605e22ac542671f1808b5017f0e90402/d4bcd7a2946b4805937d7f53260f0103-0fad76925ba35d93c1e343ddeaeec8b2-ld.mp4?key=14267b7073139051f59a51ac79f9c84c&time=1779513297495&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=ffe85f3cd6d54c55a9013653aee05810&hevc=false&seasonId=56961&wsiphost=ipdbme&wsrid_tag=6a10ff91_PS-CTU-01lP718_9176-28559-s1t1779498897593&x-mamba-business-label=13679&redirect_cnt=0&ip_type=0&wshc=C&requery=0",
|
||||
"reason": "HTTP 403"
|
||||
}
|
||||
},
|
||||
@@ -690,14 +729,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 11.814,
|
||||
"module_load": 19.448,
|
||||
"init": 0.001,
|
||||
"home": 0.002,
|
||||
"category": 297.254,
|
||||
"detail": 604.343,
|
||||
"player": 0.003,
|
||||
"url_check": 294.031,
|
||||
"total": 1208.196
|
||||
"home": 0.001,
|
||||
"category": 302.906,
|
||||
"detail": 644.916,
|
||||
"player": 0.005,
|
||||
"url_check": 287.24,
|
||||
"total": 1255.552
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
@@ -729,34 +768,34 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 4.737,
|
||||
"module_load": 12.583,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 9697.786,
|
||||
"detail": 8984.156,
|
||||
"player": 0.005,
|
||||
"url_check": 180.83,
|
||||
"total": 18868.038
|
||||
"category": 996.549,
|
||||
"detail": 1490.329,
|
||||
"player": 0.012,
|
||||
"url_check": 702.189,
|
||||
"total": 3202.227
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
"category_videos": 24,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
"episodes": 2
|
||||
},
|
||||
"samples": {
|
||||
"tid": "series",
|
||||
"vod_id": "movie/the-long-goodbye",
|
||||
"flag": "quark",
|
||||
"play_id": "https://pan.quark.cn/s/6b131b497547"
|
||||
"vod_id": "movie/punisher-one-last-kill",
|
||||
"flag": "备胎1号 (1080P)",
|
||||
"play_id": "https://v10.baofeng10.com/video/chengfazhezuihouyiji/ef838eefdd1e/index.m3u8"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://pan.quark.cn/s/6b131b497547",
|
||||
"url": "https://v10.baofeng10.com/video/chengfazhezuihouyiji/ef838eefdd1e/index.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://pan.quark.cn/s/6b131b497547",
|
||||
"final_url": "https://v10.baofeng10.com/video/chengfazhezuihouyiji/ef838eefdd1e/index.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -768,14 +807,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 7.486,
|
||||
"module_load": 14.207,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 9509.716,
|
||||
"detail": 6710.891,
|
||||
"player": 0.011,
|
||||
"url_check": 0.078,
|
||||
"total": 22429.71
|
||||
"category": 1757.177,
|
||||
"detail": 1072.118,
|
||||
"player": 2340.67,
|
||||
"url_check": 1768.923,
|
||||
"total": 6954.931
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
@@ -786,17 +825,17 @@
|
||||
"samples": {
|
||||
"tid": "movie",
|
||||
"vod_id": "dongzuo/26912",
|
||||
"flag": "磁力合集",
|
||||
"play_id": "magnet:?xt=urn:btih:0f122b6d43b305783e1f12d0186cd9191608ccd2"
|
||||
"flag": "修罗直连",
|
||||
"play_id": "play/26912-0"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "magnet:?xt=urn:btih:0f122b6d43b305783e1f12d0186cd9191608ccd2",
|
||||
"url": "https://v.xlys.ltd.ua/obj/7E484A4750A745366360B049BEB21D6FCEEE74623D9CB0F7E92BF399459D4AAE",
|
||||
"valid": true,
|
||||
"reachable": null,
|
||||
"status_code": null,
|
||||
"final_url": "magnet:?xt=urn:btih:0f122b6d43b305783e1f12d0186cd9191608ccd2",
|
||||
"reason": "非 HTTP 地址,按协议格式通过"
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://lf26-imcloud-file-sign.bytetos.com/ad-penny-bucket/oQOPI7CqAgAQ3AtwAENcfAHCdmfDDF3rvDX9dR?x-expires=1779506103&x-signature=PLjmmfXwIA5Rp8pZkbMUru63qXw%3D",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -807,14 +846,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 6.425,
|
||||
"module_load": 8.229,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 1054.608,
|
||||
"detail": 1292.852,
|
||||
"player": 1876.831,
|
||||
"url_check": 2671.882,
|
||||
"total": 6902.983
|
||||
"category": 1119.093,
|
||||
"detail": 1320.155,
|
||||
"player": 2095.732,
|
||||
"url_check": 2967.829,
|
||||
"total": 7511.83
|
||||
},
|
||||
"counts": {
|
||||
"classes": 8,
|
||||
@@ -824,17 +863,17 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "22a9d4e30433bffb",
|
||||
"vod_id": "b78fa493c7cb604f",
|
||||
"flag": "高速线路",
|
||||
"play_id": "{\"movie_id\":\"22a9d4e30433bffb\",\"link_id\":\"c30f1892fbba9d8bd722e5e7a3ac2caf\",\"line_id\":\"line1\",\"line_name\":\"高速线路\",\"episode_name\":\"1080p\",\"type\":\"switch\",\"page\":\"https://fktv.me/movie/detail/22a9d4e30433bffb\"}"
|
||||
"play_id": "{\"movie_id\":\"b78fa493c7cb604f\",\"link_id\":\"79b60d63bb68111716650ea3d5c40714\",\"line_id\":\"line1\",\"line_name\":\"高速线路\",\"episode_name\":\"1080p\",\"type\":\"switch\",\"page\":\"https://fktv.me/movie/detail/b78fa493c7cb604f\"}"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://fktv.me/ysapi/m3u8/p/2e3776216ec7e454993da8ba045e550e.m3u8",
|
||||
"url": "https://fktv.me/ysapi/m3u8/p/95b999418eef09a772f74abf614c7d16.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://fktv.me/ysapi/m3u8/p/2e3776216ec7e454993da8ba045e550e.m3u8",
|
||||
"final_url": "https://fktv.me/ysapi/m3u8/p/95b999418eef09a772f74abf614c7d16.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -846,14 +885,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 4.755,
|
||||
"module_load": 9.361,
|
||||
"init": 0.001,
|
||||
"home": 0.0,
|
||||
"category": 987.44,
|
||||
"detail": 9759.801,
|
||||
"player": 8397.48,
|
||||
"url_check": 748.782,
|
||||
"total": 42840.17
|
||||
"home": 0.001,
|
||||
"category": 4598.761,
|
||||
"detail": 6603.627,
|
||||
"player": 24302.553,
|
||||
"url_check": 5350.169,
|
||||
"total": 40865.708
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -863,56 +902,56 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "dianying",
|
||||
"vod_id": "63097",
|
||||
"flag": "FF备用",
|
||||
"play_id": "play/63097-1-1"
|
||||
"vod_id": "2045",
|
||||
"flag": "BF备用",
|
||||
"play_id": "play/2045-2-1"
|
||||
},
|
||||
"player": {
|
||||
"parse": 1,
|
||||
"url": "https://www.jqqzx.cc/play/63097-1-1.html",
|
||||
"url": "https://www.jqqzx.cc/play/2045-2-1.html",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://www.jqqzx.one/play/63097-1-1.html",
|
||||
"final_url": "https://www.jqqzx.one/play/2045-2-1.html",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "剧迷",
|
||||
"file": "剧迷.txt",
|
||||
"success": false,
|
||||
"failed_stage": "unexpected",
|
||||
"error": "HTTPSConnectionPool(host='gimyai.tw', port=443): Max retries exceeded with url: /detail/443094.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='gimyai.tw', port=443) at 0x7b8297481310>, 'Connection to gimyai.tw 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='gimyai.tw', port=443) at 0x7b8297481310>, 'Connection to gimyai.tw 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='gimyai.tw', port=443): Max retries exceeded with url: /detail/443094.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='gimyai.tw', port=443) at 0x7b8297481310>, 'Connection to gimyai.tw timed out. (connect timeout=10)'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 428, in _validate_from_tid\n detail_result = _run_timed(result[\"timings_ms\"], \"detail\", spider.detailContent, clock, [vod_id])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/剧迷.txt\", line 252, in detailContent\n File \"/home/harold/workspace/tvbox-resources/py/剧迷.txt\", line 159, in _request_html\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='gimyai.tw', port=443): Max retries exceeded with url: /detail/443094.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='gimyai.tw', port=443) at 0x7b8297481310>, 'Connection to gimyai.tw timed out. (connect timeout=10)'))\n",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 4.289,
|
||||
"module_load": 5.516,
|
||||
"init": 0.0,
|
||||
"home": 0.001,
|
||||
"category": 9137.453,
|
||||
"detail": 10012.581,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 19158.455
|
||||
"home": 0.0,
|
||||
"category": 622.956,
|
||||
"detail": 889.484,
|
||||
"player": 885.365,
|
||||
"url_check": 1526.41,
|
||||
"total": 3930.655
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
"category_videos": 151,
|
||||
"detail_videos": 0,
|
||||
"episodes": 0
|
||||
"category_videos": 149,
|
||||
"detail_videos": 1,
|
||||
"episodes": 2
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "443094",
|
||||
"flag": null,
|
||||
"play_id": null
|
||||
"flag": "高清线路 ᴴᴰ",
|
||||
"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
|
||||
}
|
||||
},
|
||||
@@ -924,14 +963,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 3.751,
|
||||
"init": 0.0,
|
||||
"home": 3327.229,
|
||||
"category": 303.236,
|
||||
"detail": 799.769,
|
||||
"player": 0.002,
|
||||
"url_check": 819.153,
|
||||
"total": 5253.636
|
||||
"module_load": 8.986,
|
||||
"init": 0.001,
|
||||
"home": 3262.628,
|
||||
"category": 299.429,
|
||||
"detail": 840.209,
|
||||
"player": 0.003,
|
||||
"url_check": 183.429,
|
||||
"total": 4595.438
|
||||
},
|
||||
"counts": {
|
||||
"classes": 11,
|
||||
@@ -963,14 +1002,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 4.78,
|
||||
"init": 483.725,
|
||||
"home": 0.004,
|
||||
"category": 215.054,
|
||||
"detail": 195.139,
|
||||
"player": 0.002,
|
||||
"url_check": 167.72,
|
||||
"total": 1067.191
|
||||
"module_load": 9.821,
|
||||
"init": 356.255,
|
||||
"home": 0.012,
|
||||
"category": 191.319,
|
||||
"detail": 201.479,
|
||||
"player": 0.009,
|
||||
"url_check": 184.526,
|
||||
"total": 944.62
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
@@ -982,15 +1021,15 @@
|
||||
"tid": "ju",
|
||||
"vod_id": "/ju/10489.html",
|
||||
"flag": "夸克",
|
||||
"play_id": "https://pan.quark.cn/s/e19b9da31554"
|
||||
"play_id": "https://pan.quark.cn/s/53153ad27a69"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://pan.quark.cn/s/e19b9da31554",
|
||||
"url": "https://pan.quark.cn/s/53153ad27a69",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://pan.quark.cn/s/e19b9da31554",
|
||||
"final_url": "https://pan.quark.cn/s/53153ad27a69",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1002,14 +1041,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 6.248,
|
||||
"init": 79.772,
|
||||
"module_load": 11.488,
|
||||
"init": 83.591,
|
||||
"home": 0.001,
|
||||
"category": 192.623,
|
||||
"detail": 1742.385,
|
||||
"player": 340.143,
|
||||
"url_check": 103.438,
|
||||
"total": 2465.298
|
||||
"category": 208.679,
|
||||
"detail": 2761.728,
|
||||
"player": 386.335,
|
||||
"url_check": 171.852,
|
||||
"total": 3624.756
|
||||
},
|
||||
"counts": {
|
||||
"classes": 11,
|
||||
@@ -1025,50 +1064,50 @@
|
||||
},
|
||||
"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=c223089edaf7d6a0a27c8288fcb67d83&buy_key=FM&token=2923×tamp=1779447999&duration=453",
|
||||
"url": "http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=a54daac3d1c747181457e31b6153c01e&buy_key=FM&token=3559×tamp=1779498901&duration=453",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=c223089edaf7d6a0a27c8288fcb67d83&buy_key=FM&token=2923×tamp=1779447999&duration=453",
|
||||
"final_url": "http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=a54daac3d1c747181457e31b6153c01e&buy_key=FM&token=3559×tamp=1779498901&duration=453",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "听友FM",
|
||||
"file": "听友FM.txt",
|
||||
"success": false,
|
||||
"failed_stage": "detail",
|
||||
"error": "详情缺少播放源或播放列表",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 9.201,
|
||||
"init": 0.001,
|
||||
"home": 446.313,
|
||||
"category": 332.244,
|
||||
"detail": 19408.187,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 39426.798
|
||||
"module_load": 16.129,
|
||||
"init": 0.0,
|
||||
"home": 964.959,
|
||||
"category": 737.373,
|
||||
"detail": 1190.99,
|
||||
"player": 1113.744,
|
||||
"url_check": 211.349,
|
||||
"total": 4236.511
|
||||
},
|
||||
"counts": {
|
||||
"classes": 8,
|
||||
"category_videos": 20,
|
||||
"detail_videos": 1,
|
||||
"episodes": 0
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "11",
|
||||
"vod_id": "3327311646",
|
||||
"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=1779495632&sign=7f669eaa9b139f2e019611c3e9d626c2",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1779495632&sign=7f669eaa9b139f2e019611c3e9d626c2",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1080,14 +1119,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 7.088,
|
||||
"module_load": 10.152,
|
||||
"init": 0.004,
|
||||
"home": 479.454,
|
||||
"category": 6514.506,
|
||||
"detail": 6461.416,
|
||||
"player": 8496.828,
|
||||
"url_check": 231.883,
|
||||
"total": 22191.82
|
||||
"home": 715.305,
|
||||
"category": 613.69,
|
||||
"detail": 591.637,
|
||||
"player": 1520.766,
|
||||
"url_check": 185.696,
|
||||
"total": 3638.958
|
||||
},
|
||||
"counts": {
|
||||
"classes": 3,
|
||||
@@ -1103,11 +1142,11 @@
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://p3-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/d67e7b43597942eb8f2a89a1bdbda527~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1810552019&x-signature=jx3SkZFC1nbsH9%2F5Iq85Y9FySkA%3D",
|
||||
"url": "https://p9-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/d67e7b43597942eb8f2a89a1bdbda527~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1810602901&x-signature=Q0cRmYFHfunXbGhN%2FG%2BtKjVlJYc%3D",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://p3-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/d67e7b43597942eb8f2a89a1bdbda527~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1810552019&x-signature=jx3SkZFC1nbsH9%2F5Iq85Y9FySkA%3D",
|
||||
"final_url": "https://p9-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/d67e7b43597942eb8f2a89a1bdbda527~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1810602901&x-signature=Q0cRmYFHfunXbGhN%2FG%2BtKjVlJYc%3D",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1119,14 +1158,14 @@
|
||||
"error": "HTTPSConnectionPool(host='40000.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='40000.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 238, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/四万影视.txt\", line 212, in _api_get\nrequests.exceptions.ReadTimeout: HTTPSConnectionPool(host='40000.me', port=443): Read timed out. (read timeout=10)\n",
|
||||
"timings_ms": {
|
||||
"module_load": 3.676,
|
||||
"init": 0.0,
|
||||
"module_load": 24.453,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 10016.347,
|
||||
"category": 10019.404,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 10021.556
|
||||
"total": 10047.957
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -1158,14 +1197,14 @@
|
||||
"error": "分类视频列表为空",
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.856,
|
||||
"module_load": 8.62,
|
||||
"init": 0.0,
|
||||
"home": 0.001,
|
||||
"category": 985.588,
|
||||
"category": 1050.312,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 16071.242
|
||||
"total": 2227.028
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
@@ -1197,14 +1236,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 21.505,
|
||||
"module_load": 15.534,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 489.062,
|
||||
"detail": 392.106,
|
||||
"player": 0.003,
|
||||
"url_check": 972.961,
|
||||
"total": 1876.14
|
||||
"category": 513.858,
|
||||
"detail": 402.816,
|
||||
"player": 0.006,
|
||||
"url_check": 1332.305,
|
||||
"total": 2265.114
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
@@ -1236,14 +1275,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 3.858,
|
||||
"init": 0.0,
|
||||
"module_load": 3.926,
|
||||
"init": 0.001,
|
||||
"home": 0.006,
|
||||
"category": 8699.488,
|
||||
"detail": 7447.721,
|
||||
"player": 0.008,
|
||||
"url_check": 1913.746,
|
||||
"total": 23072.363
|
||||
"category": 1559.832,
|
||||
"detail": 798.992,
|
||||
"player": 0.012,
|
||||
"url_check": 2047.03,
|
||||
"total": 4411.155
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
@@ -1254,16 +1293,16 @@
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "77675",
|
||||
"flag": "ruyi",
|
||||
"play_id": "https://svip.ryiplay18.com/share/565e8a413d0562de9ee4378402d2b481"
|
||||
"flag": "rym3u8",
|
||||
"play_id": "https://svip.ryiplay18.com/20260520/6588_b9baf3b3/index.m3u8"
|
||||
},
|
||||
"player": {
|
||||
"parse": 1,
|
||||
"url": "https://svip.ryiplay18.com/share/565e8a413d0562de9ee4378402d2b481",
|
||||
"parse": 0,
|
||||
"url": "https://svip.ryiplay18.com/20260520/6588_b9baf3b3/index.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://svip.ryiplay18.com/share/565e8a413d0562de9ee4378402d2b481",
|
||||
"final_url": "https://svip.ryiplay18.com/20260520/6588_b9baf3b3/index.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1275,14 +1314,14 @@
|
||||
"error": "'NoneType' object is not iterable",
|
||||
"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 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/寻川4K.txt\", line 810, in detailContent\nTypeError: 'NoneType' object is not iterable\n",
|
||||
"timings_ms": {
|
||||
"module_load": 11.956,
|
||||
"init": 553.356,
|
||||
"home": 1138.924,
|
||||
"category": 4541.895,
|
||||
"detail": 465.777,
|
||||
"module_load": 22.826,
|
||||
"init": 469.865,
|
||||
"home": 1004.768,
|
||||
"category": 490.865,
|
||||
"detail": 597.497,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 6712.796
|
||||
"total": 2588.717
|
||||
},
|
||||
"counts": {
|
||||
"classes": 9,
|
||||
@@ -1314,14 +1353,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 11.658,
|
||||
"module_load": 6.551,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 8840.914,
|
||||
"detail": 659.654,
|
||||
"player": 1785.387,
|
||||
"url_check": 326.671,
|
||||
"total": 11625.006
|
||||
"category": 902.279,
|
||||
"detail": 722.242,
|
||||
"player": 1193.537,
|
||||
"url_check": 350.16,
|
||||
"total": 3176.245
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
@@ -1337,11 +1376,11 @@
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://media-bjcy-fy-person01.bjoss.ctyunxs.cn/PERSONCLOUD/874f908a-f9df-4538-942a-7342fda0ff8a.m3u8?x-amz-CLIENTTYPEIN=UNKNOWN&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&x-amz-userLevel=0&x-amz-limitrate=51200&x-amz-UID=269636103&x-amz-APPID=828221&response-content-disposition=attachment%3Bfilename%3D%22%E6%AD%A3%E7%89%87.m3u8%22%3Bfilename*%3DUTF-8%27%27%25E6%25AD%25A3%25E7%2589%2587.m3u8&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=PERSON&Signature=bfIBI%2BMMrmxkP%2BQGPKcJFVwqxCI%3D&Expires=1779448313&x-amz-FSIZE=58373&x-amz-UFID=624471240788981016",
|
||||
"url": "https://media-bjcy-fy-person01.bjoss.ctyunxs.cn/PERSONCLOUD/874f908a-f9df-4538-942a-7342fda0ff8a.m3u8?x-amz-CLIENTTYPEIN=UNKNOWN&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&x-amz-userLevel=0&x-amz-limitrate=51200&x-amz-UID=269636103&x-amz-APPID=828221&response-content-disposition=attachment%3Bfilename%3D%22%E6%AD%A3%E7%89%87.m3u8%22%3Bfilename*%3DUTF-8%27%27%25E6%25AD%25A3%25E7%2589%2587.m3u8&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=PERSON&Signature=wXyJsm6BctwLW7/pyI/OUTbfZ9g%3D&Expires=1779498969&x-amz-FSIZE=58373&x-amz-UFID=624471240788981016",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://media-bjcy-fy-person01.bjoss.ctyunxs.cn/PERSONCLOUD/874f908a-f9df-4538-942a-7342fda0ff8a.m3u8?x-amz-CLIENTTYPEIN=UNKNOWN&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&x-amz-userLevel=0&x-amz-limitrate=51200&x-amz-UID=269636103&x-amz-APPID=828221&response-content-disposition=attachment%3Bfilename%3D%22%E6%AD%A3%E7%89%87.m3u8%22%3Bfilename*%3DUTF-8%27%27%25E6%25AD%25A3%25E7%2589%2587.m3u8&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=PERSON&Signature=bfIBI%2BMMrmxkP%2BQGPKcJFVwqxCI%3D&Expires=1779448313&x-amz-FSIZE=58373&x-amz-UFID=624471240788981016",
|
||||
"final_url": "https://media-bjcy-fy-person01.bjoss.ctyunxs.cn/PERSONCLOUD/874f908a-f9df-4538-942a-7342fda0ff8a.m3u8?x-amz-CLIENTTYPEIN=UNKNOWN&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&x-amz-userLevel=0&x-amz-limitrate=51200&x-amz-UID=269636103&x-amz-APPID=828221&response-content-disposition=attachment%3Bfilename%3D%22%E6%AD%A3%E7%89%87.m3u8%22%3Bfilename*%3DUTF-8%27%27%25E6%25AD%25A3%25E7%2589%2587.m3u8&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=PERSON&Signature=wXyJsm6BctwLW7/pyI/OUTbfZ9g%3D&Expires=1779498969&x-amz-FSIZE=58373&x-amz-UFID=624471240788981016",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1353,14 +1392,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 3.439,
|
||||
"init": 0.016,
|
||||
"home": 216.98,
|
||||
"category": 306.404,
|
||||
"detail": 951.126,
|
||||
"player": 0.002,
|
||||
"url_check": 122.304,
|
||||
"total": 1600.788
|
||||
"module_load": 4.535,
|
||||
"init": 0.014,
|
||||
"home": 264.643,
|
||||
"category": 301.467,
|
||||
"detail": 1003.747,
|
||||
"player": 0.009,
|
||||
"url_check": 149.725,
|
||||
"total": 1725.172
|
||||
},
|
||||
"counts": {
|
||||
"classes": 30,
|
||||
@@ -1372,15 +1411,15 @@
|
||||
"tid": "都市",
|
||||
"vod_id": "110000044555935694",
|
||||
"flag": "1080P",
|
||||
"play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1779448003&sign=accf4cead76531f313668653b4d827a8"
|
||||
"play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1779498901&sign=186c3bfe3b5315274fde6de68a05ef0f"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1779448003&sign=accf4cead76531f313668653b4d827a8",
|
||||
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1779498901&sign=186c3bfe3b5315274fde6de68a05ef0f",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1779448003&sign=accf4cead76531f313668653b4d827a8",
|
||||
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1779498901&sign=186c3bfe3b5315274fde6de68a05ef0f",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1392,14 +1431,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.092,
|
||||
"module_load": 8.433,
|
||||
"init": 0.001,
|
||||
"home": 0.0,
|
||||
"category": 6431.731,
|
||||
"detail": 458.971,
|
||||
"player": 431.859,
|
||||
"url_check": 1935.178,
|
||||
"total": 9263.28
|
||||
"home": 0.001,
|
||||
"category": 1779.71,
|
||||
"detail": 710.405,
|
||||
"player": 710.78,
|
||||
"url_check": 1862.899,
|
||||
"total": 5073.632
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -1409,17 +1448,17 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "3614",
|
||||
"vod_id": "3613",
|
||||
"flag": "在线云播",
|
||||
"play_id": "3614_1_1"
|
||||
"play_id": "3613_1_1"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://cdn.yzzy32-play.com/20260327/26945_fb888889/index.m3u8",
|
||||
"url": "https://player.yzzyvip-35.com/20260331/3348_333cb763/index.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://cdn.yzzy32-play.com/20260327/26945_fb888889/index.m3u8",
|
||||
"final_url": "https://player.yzzyvip-35.com/20260331/3348_333cb763/index.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1431,14 +1470,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 3.042,
|
||||
"init": 0.0,
|
||||
"home": 0.0,
|
||||
"category": 524.548,
|
||||
"detail": 480.307,
|
||||
"player": 0.002,
|
||||
"url_check": 330.539,
|
||||
"total": 1338.837
|
||||
"module_load": 3.802,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 487.003,
|
||||
"detail": 688.519,
|
||||
"player": 0.008,
|
||||
"url_check": 167.804,
|
||||
"total": 1348.142
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -1470,14 +1509,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 6.997,
|
||||
"module_load": 22.107,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 30073.436,
|
||||
"detail": 221.284,
|
||||
"player": 0.007,
|
||||
"url_check": 267.266,
|
||||
"total": 30569.309
|
||||
"category": 766.108,
|
||||
"detail": 565.071,
|
||||
"player": 0.018,
|
||||
"url_check": 277.243,
|
||||
"total": 1631.649
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
@@ -1487,17 +1526,17 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "25",
|
||||
"vod_id": "7970",
|
||||
"vod_id": "7974",
|
||||
"flag": "115#木偶",
|
||||
"play_id": "https://115cdn.com/s/swfueyv36dh?password=s1d0"
|
||||
"play_id": "https://115cdn.com/s/swfug7836dh?password=u3c9"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://115cdn.com/s/swfueyv36dh?password=s1d0",
|
||||
"url": "https://115cdn.com/s/swfug7836dh?password=u3c9",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://115cdn.com/s/swfueyv36dh?password=s1d0",
|
||||
"final_url": "https://115cdn.com/s/swfug7836dh?password=u3c9",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1509,14 +1548,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.032,
|
||||
"init": 0.0,
|
||||
"home": 0.0,
|
||||
"category": 10175.208,
|
||||
"detail": 9733.538,
|
||||
"player": 1388.943,
|
||||
"url_check": 1005.561,
|
||||
"total": 22309.273
|
||||
"module_load": 11.998,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 2021.442,
|
||||
"detail": 1442.554,
|
||||
"player": 1483.7,
|
||||
"url_check": 1161.543,
|
||||
"total": 6122.214
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
@@ -1526,17 +1565,17 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "guoman",
|
||||
"vod_id": "17117",
|
||||
"vod_id": "18849",
|
||||
"flag": "高清",
|
||||
"play_id": "/play/17117-1-1/"
|
||||
"play_id": "/play/18849-1-1/"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://v.cdnlz22.com/20250516/17147_63d01861/index.m3u8",
|
||||
"url": "https://bfikuncdn.com/20260410/5P3Q2KyO/index.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://v.cdnlz22.com/20250516/17147_63d01861/index.m3u8",
|
||||
"final_url": "https://bfikuncdn.com/20260410/5P3Q2KyO/index.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1548,14 +1587,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 3.889,
|
||||
"init": 11394.335,
|
||||
"home": 9379.619,
|
||||
"category": 523.494,
|
||||
"detail": 11154.754,
|
||||
"player": 1214.681,
|
||||
"url_check": 1013.304,
|
||||
"total": 34684.838
|
||||
"module_load": 6.246,
|
||||
"init": 911.745,
|
||||
"home": 878.716,
|
||||
"category": 881.869,
|
||||
"detail": 1095.02,
|
||||
"player": 2669.753,
|
||||
"url_check": 1093.089,
|
||||
"total": 7537.182
|
||||
},
|
||||
"counts": {
|
||||
"classes": 8,
|
||||
@@ -1571,50 +1610,50 @@
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://usaydd.0rvgx279.com/m3u87/share/6974425/7170239/20260417/114416/1080/index.m3u8?sign=e51eebb6c55d1de22c028af7056d865f&t=1779448041",
|
||||
"url": "https://usaydd.up8r6jjh.com/m3u87/share/6974425/7170239/20260417/114416/1080/index.m3u8?sign=6bdc250b389e20b30cb61db11bc44934&t=1779498907",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://usaydd.0rvgx279.com/m3u87/share/6974425/7170239/20260417/114416/1080/index.m3u8?sign=e51eebb6c55d1de22c028af7056d865f&t=1779448041",
|
||||
"final_url": "https://usaydd.up8r6jjh.com/m3u87/share/6974425/7170239/20260417/114416/1080/index.m3u8?sign=6bdc250b389e20b30cb61db11bc44934&t=1779498907",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "欧歌",
|
||||
"file": "欧歌.txt",
|
||||
"success": false,
|
||||
"failed_stage": "unexpected",
|
||||
"error": "HTTPSConnectionPool(host='woog.nxog.eu.org', port=443): Read timed out.",
|
||||
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 903, in _error_catcher\n yield\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 1421, in read_chunked\n chunk = self._handle_chunk(amt)\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 1363, in _handle_chunk\n returned_chunk = self._fp._safe_read(self.chunk_left) # type: ignore[union-attr]\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 648, in _safe_read\n data = self.fp.read(cursize)\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/socket.py\", line 725, in readinto\n return self._sock.recv_into(b)\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/models.py\", line 822, in generate\n yield from self.raw.stream(chunk_size, decode_content=True)\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 1250, in stream\n yield from self.read_chunked(amt, decode_content=decode_content)\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 1397, in read_chunked\n with self._error_catcher():\n ~~~~~~~~~~~~~~~~~~~^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/contextlib.py\", line 162, in __exit__\n self.gen.throw(value)\n ~~~~~~~~~~~~~~^^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 908, in _error_catcher\n raise ReadTimeoutError(self._pool, None, \"Read timed out.\") from e # type: ignore[arg-type]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nurllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='woog.nxog.eu.org', port=443): Read timed out.\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 804, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/欧歌.txt\", line 698, in _request_html\nrequests.exceptions.ConnectionError: HTTPSConnectionPool(host='woog.nxog.eu.org', port=443): Read timed out.\n",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 7.339,
|
||||
"module_load": 17.32,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 18426.239,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 18442.726
|
||||
"category": 593.26,
|
||||
"detail": 467.349,
|
||||
"player": 0.006,
|
||||
"url_check": 1028.787,
|
||||
"total": 2107.189
|
||||
},
|
||||
"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": "30094",
|
||||
"flag": "百度",
|
||||
"play_id": "https://pan.baidu.com/s/1EgE8sD6jgDrvHzLiFyXnPw?pwd=8888"
|
||||
},
|
||||
"player": {
|
||||
"parse": null,
|
||||
"url": "",
|
||||
"valid": false,
|
||||
"reachable": null,
|
||||
"status_code": null,
|
||||
"final_url": "",
|
||||
"parse": 0,
|
||||
"url": "https://pan.baidu.com/s/1EgE8sD6jgDrvHzLiFyXnPw?pwd=8888",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://pan.baidu.com/share/init?surl=EgE8sD6jgDrvHzLiFyXnPw&pwd=8888",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1626,14 +1665,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 12.719,
|
||||
"init": 184.404,
|
||||
"home": 177.885,
|
||||
"category": 120.268,
|
||||
"detail": 176.03,
|
||||
"player": 118.864,
|
||||
"url_check": 150.254,
|
||||
"total": 941.169
|
||||
"module_load": 10.076,
|
||||
"init": 184.982,
|
||||
"home": 206.217,
|
||||
"category": 152.627,
|
||||
"detail": 200.317,
|
||||
"player": 118.146,
|
||||
"url_check": 165.127,
|
||||
"total": 1038.908
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
@@ -1643,17 +1682,17 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "363218",
|
||||
"vod_id": "395659",
|
||||
"flag": "🔥蓝光🔥",
|
||||
"play_id": "YYNB-1d43eeb225f2634d5927ab4246ec3e5c@@@YYNB"
|
||||
"play_id": "YYNB-f097563d3900ae04c1297da0a5f05dd8@@@YYNB"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://fffan.wki8.com/hls/1423bb8a261a2ba0178abc5e392a05ff.m3u8?token=238aae9c5db80930cd7bf6fc2e27d9b9&time=1779448012&YYNB.m3u8",
|
||||
"url": "https://fffan.wki8.com/hls/57f54f661e7e2bace61e0938de7e0abc.m3u8?token=96e8a366842c2941af3930ea760bb533&time=1779498902&YYNB.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://fffan.wki8.com/hls/1423bb8a261a2ba0178abc5e392a05ff.m3u8?token=238aae9c5db80930cd7bf6fc2e27d9b9&time=1779448012&YYNB.m3u8",
|
||||
"final_url": "https://fffan.wki8.com/hls/57f54f661e7e2bace61e0938de7e0abc.m3u8?token=96e8a366842c2941af3930ea760bb533&time=1779498902&YYNB.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1665,14 +1704,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.053,
|
||||
"init": 0.0,
|
||||
"home": 581.136,
|
||||
"category": 682.567,
|
||||
"detail": 1413.814,
|
||||
"player": 0.027,
|
||||
"url_check": 272.967,
|
||||
"total": 2956.662
|
||||
"module_load": 14.831,
|
||||
"init": 0.001,
|
||||
"home": 631.792,
|
||||
"category": 381.979,
|
||||
"detail": 1279.861,
|
||||
"player": 0.045,
|
||||
"url_check": 99.467,
|
||||
"total": 2409.567
|
||||
},
|
||||
"counts": {
|
||||
"classes": 10,
|
||||
@@ -1684,15 +1723,15 @@
|
||||
"tid": "462",
|
||||
"vod_id": "41000197050",
|
||||
"flag": "河马剧场",
|
||||
"play_id": "https://dzzt-video.cbread.cn/75ff1a27546d06c1e6144d113f25d064/6a115070/58/0x5/05x0/050x7/05079100014/612888685_1/612888685.720p.narrowv3.mp4"
|
||||
"play_id": "https://dzzt-video.cbread.cn/4df345902aa3cd20736dfd20d7da6644/6a123170/58/0x5/05x0/050x7/05079100014/612888685_1/612888685.720p.narrowv3.mp4"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://dzzt-video.cbread.cn/75ff1a27546d06c1e6144d113f25d064/6a115070/58/0x5/05x0/050x7/05079100014/612888685_1/612888685.720p.narrowv3.mp4",
|
||||
"url": "https://dzzt-video.cbread.cn/4df345902aa3cd20736dfd20d7da6644/6a123170/58/0x5/05x0/050x7/05079100014/612888685_1/612888685.720p.narrowv3.mp4",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://dzzt-video.cbread.cn/75ff1a27546d06c1e6144d113f25d064/6a115070/58/0x5/05x0/050x7/05079100014/612888685_1/612888685.720p.narrowv3.mp4",
|
||||
"final_url": "https://dzzt-video.cbread.cn/4df345902aa3cd20736dfd20d7da6644/6a123170/58/0x5/05x0/050x7/05079100014/612888685_1/612888685.720p.narrowv3.mp4",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1704,14 +1743,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 6.823,
|
||||
"init": 323.201,
|
||||
"home": 3900.647,
|
||||
"category": 4277.478,
|
||||
"detail": 3627.271,
|
||||
"player": 5135.834,
|
||||
"url_check": 748.961,
|
||||
"total": 18020.935
|
||||
"module_load": 16.556,
|
||||
"init": 346.941,
|
||||
"home": 946.408,
|
||||
"category": 390.404,
|
||||
"detail": 397.116,
|
||||
"player": 3275.331,
|
||||
"url_check": 327.103,
|
||||
"total": 5701.331
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
@@ -1721,17 +1760,17 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "54508",
|
||||
"flag": "qq",
|
||||
"play_id": "https://v.qq.com/x/cover/ji5c0mbrafu7011/h0032goqc0j.html@@@qq"
|
||||
"vod_id": "31449",
|
||||
"flag": "blbl",
|
||||
"play_id": "https://www.bilibili.com/bangumi/play/ep3890490?theme=movie@@@bilibili"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://apd-vlive.apdcdn.tc.qq.com/defaultts.tc.qq.com/B_3k--xdVBUHYl1q0K2jODe2jj8AB_RsP4ZRdhE1Hvktx2sItpqJPHphPP8Ax8sOmc-v7DZAkOOOXcNpIiFr4g2WtuU0swTcK0OOtFFjyaIOO5GQ1aFCdmJutUC-LOfqJ7QWhMlwWkFLEsqXwgdTXrXg/svp_50112/dOd4SZvuP0fPjBuRfcFxU-qR-qZs2ATljcXzrT-kk5uxYMrJZ84OW1demy66NisaYz5sA-_OPOpnhSplwATEVzVCAvaY2_oLF0O9kL_x4fWItQlx2ktbXJMPxvcOEeX4aL1XHHCYt63q7NjcGnUMgBUyP4gR_FfYXq-4-PW2VMIjt-DmHqHVjSp-3O-jYsocdoZjyqPFi3U/gzc_1000102_0b53giacaaaaumaffubthzrmamwdea7aajca.f323002.ts.m3u8?ver=4",
|
||||
"url": "https://api.hls.one:4433/Cache/bilibili/03ff70b5eb7f3b7a86ac89c25847ace8.mp4?vkey=643761645641454a56465a54565142554251554e58465a53416738495667494856675253416c45424267494d5651466343416c545144736f6469686a",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://apd-vlive.apdcdn.tc.qq.com/defaultts.tc.qq.com/B_3k--xdVBUHYl1q0K2jODe2jj8AB_RsP4ZRdhE1Hvktx2sItpqJPHphPP8Ax8sOmc-v7DZAkOOOXcNpIiFr4g2WtuU0swTcK0OOtFFjyaIOO5GQ1aFCdmJutUC-LOfqJ7QWhMlwWkFLEsqXwgdTXrXg/svp_50112/dOd4SZvuP0fPjBuRfcFxU-qR-qZs2ATljcXzrT-kk5uxYMrJZ84OW1demy66NisaYz5sA-_OPOpnhSplwATEVzVCAvaY2_oLF0O9kL_x4fWItQlx2ktbXJMPxvcOEeX4aL1XHHCYt63q7NjcGnUMgBUyP4gR_FfYXq-4-PW2VMIjt-DmHqHVjSp-3O-jYsocdoZjyqPFi3U/gzc_1000102_0b53giacaaaaumaffubthzrmamwdea7aajca.f323002.ts.m3u8?ver=4",
|
||||
"final_url": "https://upos-cs-upcdnbda2.bilivideo.com/upgcxcode/58/16/38471601658/38471601658-1-192.mp4?e=ig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859IB_&nbs=1&oi=2532504633&mid=592006653&platform=android_bilithings&gen=playurlv3&os=bcache&og=ali&uipk=5&trid=00006496a33cd511485b8a40aad303bfc64p&deadline=1779501499&upsig=e4d35193069d8cbcfbc4638c5728994e&uparams=e,nbs,oi,mid,platform,gen,os,og,uipk,trid,deadline&cdnid=89719&bvc=vod&nettype=0&bw=748019&lrs=100&agrr=1&buvid=&build=2071507&dl=0&f=p_0_0&allo_id=275976-29-1&qn_dyeid=&orderid=0,1",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1743,14 +1782,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 8.92,
|
||||
"module_load": 7.795,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 7500.611,
|
||||
"detail": 8278.963,
|
||||
"player": 0.007,
|
||||
"url_check": 1838.662,
|
||||
"total": 17627.977
|
||||
"category": 678.89,
|
||||
"detail": 450.642,
|
||||
"player": 0.004,
|
||||
"url_check": 1181.354,
|
||||
"total": 2319.266
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -1760,17 +1799,17 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "3052",
|
||||
"vod_id": "3054",
|
||||
"flag": "百度",
|
||||
"play_id": "https://pan.baidu.com/s/1IpynPB3crD7Q1CfCvSkQIw?pwd=jx4t"
|
||||
"play_id": "https://pan.baidu.com/s/136sMkxsE9j8t9SbA2VXqfg?pwd=v7hh"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://pan.baidu.com/s/1IpynPB3crD7Q1CfCvSkQIw?pwd=jx4t",
|
||||
"url": "https://pan.baidu.com/s/136sMkxsE9j8t9SbA2VXqfg?pwd=v7hh",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://pan.baidu.com/share/init?surl=IpynPB3crD7Q1CfCvSkQIw&pwd=jx4t",
|
||||
"final_url": "https://pan.baidu.com/share/init?surl=36sMkxsE9j8t9SbA2VXqfg&pwd=v7hh",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1782,14 +1821,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 3.828,
|
||||
"init": 0.002,
|
||||
"home": 121.959,
|
||||
"category": 126.575,
|
||||
"detail": 163.242,
|
||||
"player": 309.366,
|
||||
"url_check": 95.54,
|
||||
"total": 820.852
|
||||
"module_load": 15.932,
|
||||
"init": 0.003,
|
||||
"home": 121.42,
|
||||
"category": 121.427,
|
||||
"detail": 165.66,
|
||||
"player": 299.754,
|
||||
"url_check": 111.175,
|
||||
"total": 835.975
|
||||
},
|
||||
"counts": {
|
||||
"classes": 10,
|
||||
@@ -1805,11 +1844,11 @@
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "http://beyond8888888.ucyy.cn/2026-05-22/125_78402_NBY-e84585334a25c5b49078dfac81549a0b.m3u8?ts=1779447614-0-0-b78fc4c58751a3109d4aa6d86cb18987",
|
||||
"url": "http://43.248.100.143:6888//api/?key=tviKuMb3MlqCW1I6gE&url=NBY-XMYAES506d105d64032dd243d9eaee78f9c4d46ae43e86c28ffa39239c9f3f1e5354e5ade3635b72dd0f3d736ec207aa64bcf0|84f621bd4bfac2f2072ee495d829a1c8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "http://beyond8888888.ucyy.cn/2026-05-22/125_78402_NBY-e84585334a25c5b49078dfac81549a0b.m3u8?ts=1779447614-0-0-b78fc4c58751a3109d4aa6d86cb18987",
|
||||
"final_url": "http://43.248.100.143:6888//api/?key=tviKuMb3MlqCW1I6gE&url=NBY-XMYAES506d105d64032dd243d9eaee78f9c4d46ae43e86c28ffa39239c9f3f1e5354e5ade3635b72dd0f3d736ec207aa64bcf0%7C84f621bd4bfac2f2072ee495d829a1c8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1821,14 +1860,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 19.396,
|
||||
"module_load": 14.197,
|
||||
"init": 0.018,
|
||||
"home": 3716.585,
|
||||
"category": 857.426,
|
||||
"detail": 225.942,
|
||||
"player": 0.001,
|
||||
"url_check": 173.499,
|
||||
"total": 4993.76
|
||||
"home": 3550.581,
|
||||
"category": 784.501,
|
||||
"detail": 237.223,
|
||||
"player": 0.002,
|
||||
"url_check": 266.142,
|
||||
"total": 4856.112
|
||||
},
|
||||
"counts": {
|
||||
"classes": 11,
|
||||
@@ -1838,56 +1877,56 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "pcw:1",
|
||||
"vod_id": "pcw:1$6003108394876300",
|
||||
"vod_id": "pcw:1$3493933623185100",
|
||||
"flag": "爱奇艺",
|
||||
"play_id": "http://www.iqiyi.com/v_1mmd1991kgw.html"
|
||||
"play_id": "http://www.iqiyi.com/v_xkicyw128w.html"
|
||||
},
|
||||
"player": {
|
||||
"parse": 1,
|
||||
"url": "http://www.iqiyi.com/v_1mmd1991kgw.html",
|
||||
"url": "http://www.iqiyi.com/v_xkicyw128w.html",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://www.iqiyi.com/v_1mmd1991kgw.html",
|
||||
"final_url": "https://www.iqiyi.com/v_xkicyw128w.html",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"spider": "独播库",
|
||||
"file": "独播库.txt",
|
||||
"success": false,
|
||||
"failed_stage": "unexpected",
|
||||
"error": "HTTPSConnectionPool(host='www.dbku.tv', port=443): Max retries exceeded with url: /vodtype/2--------1---.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='www.dbku.tv', port=443) at 0x7b8297482990>, 'Connection to www.dbku.tv timed out. (connect timeout=10)'))",
|
||||
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 204, in _new_conn\n sock = connection.create_connection(\n (self._dns_host, self.port),\n ...<2 lines>...\n socket_options=self.socket_options,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/connection.py\", line 85, in create_connection\n raise err\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/connection.py\", line 73, in create_connection\n sock.connect(sa)\n ~~~~~~~~~~~~^^^^\nTimeoutError: timed out\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 488, in _make_request\n raise new_e\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 464, in _make_request\n self._validate_conn(conn)\n ~~~~~~~~~~~~~~~~~~~^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 1093, in _validate_conn\n conn.connect()\n ~~~~~~~~~~~~^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 759, in connect\n self.sock = sock = self._new_conn()\n ~~~~~~~~~~~~~~^^\nurllib3.exceptions.ConnectTimeoutError: (<HTTPSConnection(host='www.dbku.tv', port=443) at 0x7b8297482990>, 'Connection to www.dbku.tv timed out. (connect timeout=10)')\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 535, in increment\n raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nurllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.dbku.tv', port=443): Max retries exceeded with url: /vodtype/2--------1---.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='www.dbku.tv', port=443) at 0x7b8297482990>, 'Connection to www.dbku.tv 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 196, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/独播库.txt\", line 151, in _request_html\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='www.dbku.tv', port=443): Max retries exceeded with url: /vodtype/2--------1---.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='www.dbku.tv', port=443) at 0x7b8297482990>, 'Connection to www.dbku.tv timed out. (connect timeout=10)'))\n",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 4.997,
|
||||
"init": 0.003,
|
||||
"module_load": 8.781,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 10012.837,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 10019.258
|
||||
"category": 417.7,
|
||||
"detail": 721.718,
|
||||
"player": 491.159,
|
||||
"url_check": 903.186,
|
||||
"total": 2543.654
|
||||
},
|
||||
"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": "143545",
|
||||
"flag": "独播库",
|
||||
"play_id": "143545-1-1"
|
||||
},
|
||||
"player": {
|
||||
"parse": null,
|
||||
"url": "",
|
||||
"valid": false,
|
||||
"reachable": null,
|
||||
"status_code": null,
|
||||
"final_url": "",
|
||||
"parse": 0,
|
||||
"url": "https://vid.dbokutv.com/20260418/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBsHcTcyo5xOy6ejR6raQcHwBJ0nBJ0oHJatCpWqCovjS34/chunklist.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://vid.dbokutv.com/20260418/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBsHcTcyo5xOy6ejR6raQcHwBJ0nBJ0oHJatCpWqCovjS34/chunklist.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -1899,14 +1938,14 @@
|
||||
"error": "playerContent 未返回播放地址",
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 15.878,
|
||||
"init": 213.841,
|
||||
"home": 330.488,
|
||||
"category": 148.343,
|
||||
"detail": 193.061,
|
||||
"player": 395.374,
|
||||
"module_load": 7.018,
|
||||
"init": 284.205,
|
||||
"home": 851.735,
|
||||
"category": 144.141,
|
||||
"detail": 197.924,
|
||||
"player": 466.333,
|
||||
"url_check": 0.0,
|
||||
"total": 3034.436
|
||||
"total": 3858.181
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -1916,9 +1955,9 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "2",
|
||||
"vod_id": "76",
|
||||
"flag": "火猫⚡2K",
|
||||
"play_id": "NSYS-jvp2R1lluBg3ivQ7BBuCFgiJouCR-uxGCzxImTNAKcwkCI5FJiZwjNCoqyTTAm35I-IekFmHF_tRbZCq7AiaAkzXJAdi-8jp97HSgoBhpNBbJM9hIPiPkVVsUQ2hMRJq|363655@@@NSYS"
|
||||
"vod_id": "4127",
|
||||
"flag": "火猫极速A",
|
||||
"play_id": "https://www.iqiyi.com/v_28s2g6gswsc.html@@@qiyi"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
@@ -1938,14 +1977,14 @@
|
||||
"error": "分类视频列表为空",
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 19.577,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 164.394,
|
||||
"module_load": 5.876,
|
||||
"init": 0.0,
|
||||
"home": 0.0,
|
||||
"category": 431.053,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 3163.773
|
||||
"total": 759.851
|
||||
},
|
||||
"counts": {
|
||||
"classes": 8,
|
||||
@@ -1977,14 +2016,14 @@
|
||||
"error": "all domains failed",
|
||||
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/玩偶聚合.txt\", line 5136, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/玩偶聚合.txt\", line 5068, in _request_with_failover\nRuntimeError: all domains failed\n",
|
||||
"timings_ms": {
|
||||
"module_load": 36.716,
|
||||
"module_load": 37.311,
|
||||
"init": 0.001,
|
||||
"home": 2.495,
|
||||
"category": 7659.744,
|
||||
"home": 2.873,
|
||||
"category": 1138.053,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 7700.486
|
||||
"total": 1180.642
|
||||
},
|
||||
"counts": {
|
||||
"classes": 10,
|
||||
@@ -2016,14 +2055,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 7.51,
|
||||
"module_load": 5.702,
|
||||
"init": 0.001,
|
||||
"home": 0.023,
|
||||
"category": 8461.565,
|
||||
"detail": 1099.84,
|
||||
"player": 7821.845,
|
||||
"url_check": 120.551,
|
||||
"total": 17512.203
|
||||
"home": 0.049,
|
||||
"category": 892.822,
|
||||
"detail": 1059.81,
|
||||
"player": 942.795,
|
||||
"url_check": 108.767,
|
||||
"total": 3011.589
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -2039,11 +2078,11 @@
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://vd.hxcztech.com/92787a6c52733d54d883d8fb45bc983c/20260522190717/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
|
||||
"url": "https://vd.hxcztech.com/fff597a1dd1f70eee2772020069b5d4d/20260523091506/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://vd.hxcztech.com/92787a6c52733d54d883d8fb45bc983c/20260522190717/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
|
||||
"final_url": "https://vd.hxcztech.com/fff597a1dd1f70eee2772020069b5d4d/20260523091506/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2055,14 +2094,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 3.198,
|
||||
"init": 0.0,
|
||||
"home": 416.44,
|
||||
"category": 265.276,
|
||||
"detail": 598.777,
|
||||
"player": 201.949,
|
||||
"url_check": 74.922,
|
||||
"total": 1561.13
|
||||
"module_load": 4.22,
|
||||
"init": 0.001,
|
||||
"home": 537.972,
|
||||
"category": 243.265,
|
||||
"detail": 562.719,
|
||||
"player": 237.736,
|
||||
"url_check": 76.678,
|
||||
"total": 1663.168
|
||||
},
|
||||
"counts": {
|
||||
"classes": 29,
|
||||
@@ -2094,14 +2133,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 6.325,
|
||||
"module_load": 9.473,
|
||||
"init": 0.001,
|
||||
"home": 337.011,
|
||||
"category": 506.563,
|
||||
"detail": 280.849,
|
||||
"player": 0.105,
|
||||
"url_check": 167.713,
|
||||
"total": 1299.391
|
||||
"home": 416.456,
|
||||
"category": 455.558,
|
||||
"detail": 286.503,
|
||||
"player": 0.017,
|
||||
"url_check": 189.946,
|
||||
"total": 1358.611
|
||||
},
|
||||
"counts": {
|
||||
"classes": 8,
|
||||
@@ -2133,14 +2172,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.511,
|
||||
"module_load": 10.673,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 6150.817,
|
||||
"detail": 9140.077,
|
||||
"player": 213.853,
|
||||
"url_check": 1323.223,
|
||||
"total": 16834.054
|
||||
"category": 556.026,
|
||||
"detail": 421.997,
|
||||
"player": 498.987,
|
||||
"url_check": 1211.153,
|
||||
"total": 2700.331
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
@@ -2172,14 +2211,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 12.522,
|
||||
"init": 0.021,
|
||||
"module_load": 18.124,
|
||||
"init": 0.023,
|
||||
"home": 0.001,
|
||||
"category": 7766.839,
|
||||
"detail": 363.082,
|
||||
"category": 2284.468,
|
||||
"detail": 515.315,
|
||||
"player": 0.002,
|
||||
"url_check": 1218.027,
|
||||
"total": 9361.009
|
||||
"url_check": 1252.456,
|
||||
"total": 4070.941
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -2211,18 +2250,18 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 18.763,
|
||||
"init": 620.783,
|
||||
"home": 0.093,
|
||||
"category": 786.421,
|
||||
"detail": 605.901,
|
||||
"player": 0.001,
|
||||
"url_check": 78.85,
|
||||
"total": 2111.404
|
||||
"module_load": 31.258,
|
||||
"init": 697.18,
|
||||
"home": 0.395,
|
||||
"category": 521.21,
|
||||
"detail": 322.12,
|
||||
"player": 0.003,
|
||||
"url_check": 106.547,
|
||||
"total": 1680.256
|
||||
},
|
||||
"counts": {
|
||||
"classes": 11,
|
||||
"category_videos": 78,
|
||||
"category_videos": 76,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
},
|
||||
@@ -2250,14 +2289,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 3.58,
|
||||
"module_load": 26.907,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 284.188,
|
||||
"detail": 384.486,
|
||||
"player": 0.005,
|
||||
"url_check": 175.344,
|
||||
"total": 848.064
|
||||
"home": 0.0,
|
||||
"category": 628.886,
|
||||
"detail": 672.278,
|
||||
"player": 0.013,
|
||||
"url_check": 175.386,
|
||||
"total": 1504.64
|
||||
},
|
||||
"counts": {
|
||||
"classes": 2,
|
||||
@@ -2267,17 +2306,17 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "https://sm3.cc/?id=51865",
|
||||
"vod_id": "https://sm3.cc/?id=51932",
|
||||
"flag": "夸克",
|
||||
"play_id": "https://pan.quark.cn/s/259ba2f660d7"
|
||||
"play_id": "https://pan.quark.cn/s/7648522a59aa"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://pan.quark.cn/s/259ba2f660d7",
|
||||
"url": "https://pan.quark.cn/s/7648522a59aa",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://pan.quark.cn/s/259ba2f660d7",
|
||||
"final_url": "https://pan.quark.cn/s/7648522a59aa",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2289,14 +2328,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.713,
|
||||
"init": 0.0,
|
||||
"home": 428.87,
|
||||
"category": 895.113,
|
||||
"detail": 177.007,
|
||||
"player": 307.34,
|
||||
"url_check": 430.513,
|
||||
"total": 2245.944
|
||||
"module_load": 9.456,
|
||||
"init": 0.001,
|
||||
"home": 497.533,
|
||||
"category": 1787.629,
|
||||
"detail": 166.19,
|
||||
"player": 330.329,
|
||||
"url_check": 293.096,
|
||||
"total": 3085.421
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
@@ -2328,14 +2367,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.611,
|
||||
"module_load": 2.746,
|
||||
"init": 0.001,
|
||||
"home": 447.749,
|
||||
"category": 518.826,
|
||||
"home": 473.364,
|
||||
"category": 388.243,
|
||||
"detail": 0.005,
|
||||
"player": 1574.112,
|
||||
"url_check": 926.266,
|
||||
"total": 3473.424
|
||||
"player": 1118.363,
|
||||
"url_check": 945.774,
|
||||
"total": 2931.532
|
||||
},
|
||||
"counts": {
|
||||
"classes": 62,
|
||||
@@ -2345,17 +2384,17 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "/discover/toplist?id=19723756",
|
||||
"vod_id": "3378747421@让思绪都随风吧@供销社乐队👉MP3",
|
||||
"vod_id": "502043537@第三人称@冯沁苑(买辣椒也用券)👉MP3",
|
||||
"flag": "网易云音乐",
|
||||
"play_id": "3378747421"
|
||||
"play_id": "502043537"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://iot102.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260522193209/2793defaf4e57500c834fbc0315b7273/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/80052227352/8c0e/1de1/979d/6454448f5fe4a8c7840f18cf148d31b4.mp3",
|
||||
"url": "https://iot202.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260523094007/e8a52d58b40f3e90de27f62bec2bdb8b/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/28481671223/d0d6/0d8b/d9ca/b73e0502440829c8891a251280b4b5d6.mp3",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://iot102.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260522193209/2793defaf4e57500c834fbc0315b7273/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/80052227352/8c0e/1de1/979d/6454448f5fe4a8c7840f18cf148d31b4.mp3",
|
||||
"final_url": "https://iot202.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260523094007/e8a52d58b40f3e90de27f62bec2bdb8b/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/28481671223/d0d6/0d8b/d9ca/b73e0502440829c8891a251280b4b5d6.mp3",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2367,14 +2406,14 @@
|
||||
"error": "分类视频列表为空",
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 4.13,
|
||||
"module_load": 12.144,
|
||||
"init": 0.001,
|
||||
"home": 0.0,
|
||||
"category": 1756.781,
|
||||
"home": 0.001,
|
||||
"category": 2486.172,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 10349.264
|
||||
"total": 5150.589
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
@@ -2406,14 +2445,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.363,
|
||||
"module_load": 23.485,
|
||||
"init": 0.001,
|
||||
"home": 214.539,
|
||||
"category": 252.603,
|
||||
"detail": 1288.449,
|
||||
"player": 0.002,
|
||||
"url_check": 181.119,
|
||||
"total": 1942.734
|
||||
"home": 862.505,
|
||||
"category": 264.986,
|
||||
"detail": 1771.024,
|
||||
"player": 0.006,
|
||||
"url_check": 268.405,
|
||||
"total": 3191.745
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
@@ -2440,39 +2479,39 @@
|
||||
{
|
||||
"spider": "至臻",
|
||||
"file": "至臻.txt",
|
||||
"success": false,
|
||||
"failed_stage": "unexpected",
|
||||
"error": "HTTPConnectionPool(host='www.miqk.cc', port=80): Read timed out.",
|
||||
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 903, in _error_catcher\n yield\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 1421, in read_chunked\n chunk = self._handle_chunk(amt)\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 1354, in _handle_chunk\n value = self._fp._safe_read(amt) # type: ignore[union-attr]\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 648, in _safe_read\n data = self.fp.read(cursize)\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/socket.py\", line 725, in readinto\n return self._sock.recv_into(b)\n ~~~~~~~~~~~~~~~~~~~~^^^\nTimeoutError: timed out\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/models.py\", line 822, in generate\n yield from self.raw.stream(chunk_size, decode_content=True)\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 1250, in stream\n yield from self.read_chunked(amt, decode_content=decode_content)\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 1397, in read_chunked\n with self._error_catcher():\n ~~~~~~~~~~~~~~~~~~~^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/contextlib.py\", line 162, in __exit__\n self.gen.throw(value)\n ~~~~~~~~~~~~~~^^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/response.py\", line 908, in _error_catcher\n raise ReadTimeoutError(self._pool, None, \"Read timed out.\") from e # type: ignore[arg-type]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nurllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='www.miqk.cc', port=80): Read timed out.\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 850, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/至臻.txt\", line 806, in _request_html\nrequests.exceptions.ConnectionError: HTTPConnectionPool(host='www.miqk.cc', port=80): Read timed out.\n",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 12.107,
|
||||
"module_load": 13.752,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 13456.775,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 13470.171
|
||||
"category": 961.574,
|
||||
"detail": 776.523,
|
||||
"player": 0.01,
|
||||
"url_check": 981.15,
|
||||
"total": 2733.575
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
"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": "20483",
|
||||
"flag": "百度#至臻",
|
||||
"play_id": "https://pan.baidu.com/s/1BezdJHDf9ivOWQCIcX2FkA?pwd=37ab"
|
||||
},
|
||||
"player": {
|
||||
"parse": null,
|
||||
"url": "",
|
||||
"valid": false,
|
||||
"reachable": null,
|
||||
"status_code": null,
|
||||
"final_url": "",
|
||||
"parse": 0,
|
||||
"url": "https://pan.baidu.com/s/1BezdJHDf9ivOWQCIcX2FkA?pwd=37ab",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://pan.baidu.com/share/init?surl=BezdJHDf9ivOWQCIcX2FkA&pwd=37ab",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2484,34 +2523,34 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.059,
|
||||
"module_load": 5.834,
|
||||
"init": 0.001,
|
||||
"home": 225.35,
|
||||
"category": 284.164,
|
||||
"detail": 203.025,
|
||||
"player": 716.566,
|
||||
"url_check": 1096.454,
|
||||
"total": 2531.3
|
||||
"home": 948.243,
|
||||
"category": 810.386,
|
||||
"detail": 548.704,
|
||||
"player": 1176.133,
|
||||
"url_check": 1344.897,
|
||||
"total": 9630.712
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
"category_videos": 35,
|
||||
"detail_videos": 1,
|
||||
"episodes": 1
|
||||
"episodes": 2
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "detail/video/121165",
|
||||
"vod_id": "detail/video/121168",
|
||||
"flag": "YZ有广",
|
||||
"play_id": "play/121165-1-1"
|
||||
"play_id": "play/121168-2-1"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://cdn.vvvip-plays33.cc/20260522/13829_822bfaa4/index.m3u8",
|
||||
"url": "https://cdn.yzzyvip-29.com/20260522/24099_dc7e93f3/index.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://cdn.vvvip-plays33.cc/20260522/13829_822bfaa4/index.m3u8",
|
||||
"final_url": "https://cdn.yzzyvip-29.com/20260522/24099_dc7e93f3/index.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2523,34 +2562,34 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 8.013,
|
||||
"module_load": 47.117,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 8996.146,
|
||||
"detail": 7632.911,
|
||||
"player": 0.017,
|
||||
"url_check": 1431.524,
|
||||
"total": 18069.186
|
||||
"category": 3203.055,
|
||||
"detail": 5931.752,
|
||||
"player": 0.028,
|
||||
"url_check": 181.42,
|
||||
"total": 9364.309
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
"category_videos": 72,
|
||||
"detail_videos": 1,
|
||||
"episodes": 2
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "460085",
|
||||
"flag": "百度#虎斑",
|
||||
"play_id": "https://pan.baidu.com/s/1Vc9GasgFxKka5XFigqTfMQ?pwd=1203"
|
||||
"vod_id": "456799",
|
||||
"flag": "夸克#虎斑",
|
||||
"play_id": "https://pan.quark.cn/s/f9d1def6af3a"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://pan.baidu.com/s/1Vc9GasgFxKka5XFigqTfMQ?pwd=1203",
|
||||
"url": "https://pan.quark.cn/s/f9d1def6af3a",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://pan.baidu.com/share/init?surl=Vc9GasgFxKka5XFigqTfMQ&pwd=1203",
|
||||
"final_url": "https://pan.quark.cn/s/f9d1def6af3a",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2562,14 +2601,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 7.472,
|
||||
"module_load": 50.298,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 546.767,
|
||||
"detail": 716.269,
|
||||
"player": 0.004,
|
||||
"url_check": 1089.449,
|
||||
"total": 2360.507
|
||||
"category": 1003.744,
|
||||
"detail": 652.158,
|
||||
"player": 0.009,
|
||||
"url_check": 888.551,
|
||||
"total": 2595.748
|
||||
},
|
||||
"counts": {
|
||||
"classes": 7,
|
||||
@@ -2601,14 +2640,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 4.841,
|
||||
"init": 0.0,
|
||||
"module_load": 12.182,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 857.587,
|
||||
"detail": 208.067,
|
||||
"player": 519.545,
|
||||
"url_check": 1161.576,
|
||||
"total": 2752.051
|
||||
"category": 870.76,
|
||||
"detail": 591.041,
|
||||
"player": 582.401,
|
||||
"url_check": 1442.191,
|
||||
"total": 3499.661
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
@@ -2640,34 +2679,34 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 7.621,
|
||||
"init": 0.0,
|
||||
"home": 391.691,
|
||||
"category": 320.493,
|
||||
"detail": 278.887,
|
||||
"player": 588.635,
|
||||
"url_check": 140.698,
|
||||
"total": 1728.754
|
||||
"module_load": 10.889,
|
||||
"init": 0.001,
|
||||
"home": 768.397,
|
||||
"category": 577.281,
|
||||
"detail": 600.136,
|
||||
"player": 864.097,
|
||||
"url_check": 642.052,
|
||||
"total": 3463.842
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
"category_videos": 30,
|
||||
"detail_videos": 1,
|
||||
"episodes": 2
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "20",
|
||||
"vod_id": "134893",
|
||||
"flag": "2K源①",
|
||||
"play_id": "parse_api=4fd521eae0c48923af390209e31299c2&url=0ThrJ1LedewYr5DBlrHWzZq2L1A7kh9B1oSCw/ntU9OCrP6F1EzJButm6jU1WN5BGwn0ISJOY3nwmEnqfSR+Rg==&token=33c978efa26ec828cc64b2e5835e49c4|主角|1"
|
||||
"vod_id": "135287",
|
||||
"flag": "备用源(有广勿信)",
|
||||
"play_id": "https://svip.ffzyplay.com/?url=https://vip.ffzy-online3.com/20260523/44624_b3d5cd16/index.m3u8|大叔再出招|1"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://fffan.wki8.com/hls/5a51357e7d01389a7a3678fa0cdb4ad4.m3u8?token=fa79d972ef38388aeb01ebe5c63c7611&time=1779448035&YYNB.m3u8",
|
||||
"url": "https://svip.ffzyplay.com/?url=https://vip.ffzy-online3.com/20260523/44624_b3d5cd16/index.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://fffan.wki8.com/hls/5a51357e7d01389a7a3678fa0cdb4ad4.m3u8?token=fa79d972ef38388aeb01ebe5c63c7611&time=1779448035&YYNB.m3u8",
|
||||
"final_url": "https://svip.ffzyplay.com/?url=https://vip.ffzy-online3.com/20260523/44624_b3d5cd16/index.m3u8",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2679,34 +2718,34 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.601,
|
||||
"module_load": 8.9,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 1042.846,
|
||||
"detail": 690.244,
|
||||
"player": 6078.708,
|
||||
"url_check": 297.342,
|
||||
"total": 10911.943
|
||||
"category": 1394.862,
|
||||
"detail": 689.612,
|
||||
"player": 1848.539,
|
||||
"url_check": 676.299,
|
||||
"total": 4618.91
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
"category_videos": 20,
|
||||
"detail_videos": 1,
|
||||
"episodes": 2
|
||||
"episodes": 1
|
||||
},
|
||||
"samples": {
|
||||
"tid": "6",
|
||||
"vod_id": "detail/8038.html",
|
||||
"flag": "dev云播",
|
||||
"play_id": "play/8038_2_1.html"
|
||||
"vod_id": "detail/7992.html",
|
||||
"flag": "播放节点列表X 聚合线路",
|
||||
"play_id": "play/7992_1_1.html"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://v16.toutiao50.com/8b85e81bfa5414355a0a8335f477d98a/6a119030/video/tos/alisg/tos-alisg-ve-0051c001-sg/oMGEgEmVNzZIpAbfX5x1r22HfVIDDBFuQyABqW/",
|
||||
"parse": 1,
|
||||
"url": "https://www.lmm85.com/play/7992_1_1.html",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://v16.toutiao50.com/8b85e81bfa5414355a0a8335f477d98a/6a119030/video/tos/alisg/tos-alisg-ve-0051c001-sg/oMGEgEmVNzZIpAbfX5x1r22HfVIDDBFuQyABqW/",
|
||||
"final_url": "https://www.lmm85.com/play/7992_1_1.html",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2718,14 +2757,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 5.214,
|
||||
"module_load": 10.15,
|
||||
"init": 0.001,
|
||||
"home": 656.45,
|
||||
"category": 94.479,
|
||||
"detail": 3343.52,
|
||||
"player": 372.581,
|
||||
"url_check": 138.729,
|
||||
"total": 4611.94
|
||||
"home": 403.022,
|
||||
"category": 125.62,
|
||||
"detail": 3729.287,
|
||||
"player": 149.772,
|
||||
"url_check": 47.143,
|
||||
"total": 4466.212
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
@@ -2741,11 +2780,11 @@
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "http://car-lv.kuwo.cn/07bff97e89bfb2c528d5a0f7da692c6f/6a1038e6/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://car-lv.kuwo.cn/df4733d1ef1f93da9a2f36de8a3924b4/6a10ffa0/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://car-lv.kuwo.cn/07bff97e89bfb2c528d5a0f7da692c6f/6a1038e6/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://car-lv.kuwo.cn/df4733d1ef1f93da9a2f36de8a3924b4/6a10ffa0/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
|
||||
}
|
||||
},
|
||||
@@ -2757,14 +2796,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 7.945,
|
||||
"init": 543.876,
|
||||
"home": 347.466,
|
||||
"category": 276.75,
|
||||
"detail": 314.766,
|
||||
"player": 508.209,
|
||||
"url_check": 135.85,
|
||||
"total": 2136.212
|
||||
"module_load": 24.15,
|
||||
"init": 513.433,
|
||||
"home": 296.479,
|
||||
"category": 318.219,
|
||||
"detail": 359.6,
|
||||
"player": 348.538,
|
||||
"url_check": 57.003,
|
||||
"total": 1918.74
|
||||
},
|
||||
"counts": {
|
||||
"classes": 12,
|
||||
@@ -2774,17 +2813,17 @@
|
||||
},
|
||||
"samples": {
|
||||
"tid": "recommend",
|
||||
"vod_id": "276636500",
|
||||
"vod_id": "255229251",
|
||||
"flag": "酷狗音乐",
|
||||
"play_id": "276636500"
|
||||
"play_id": "255229251"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "http://fsdg360.tx.kugou.com/202605221907/e75e5b13574f38843c504244b4f61df7/v3/95e2559c051c57b46976369e7db027f4/yp/full/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx276636500_quviper_clear_s4199428944.flac?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.flac",
|
||||
"url": "http://fsdg360.tx.kugou.com/202605230915/addad4490be84ceb10ec61e558a616c7/v3/045a92c05533b7d8787b4426dda131ae/yp/p_0_1910560/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx255229251_qu128_s2332608951.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "http://fsdg360.tx.kugou.com/202605221907/e75e5b13574f38843c504244b4f61df7/v3/95e2559c051c57b46976369e7db027f4/yp/full/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx276636500_quviper_clear_s4199428944.flac?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.flac",
|
||||
"final_url": "http://fsdg360.tx.kugou.com/202605230915/addad4490be84ceb10ec61e558a616c7/v3/045a92c05533b7d8787b4426dda131ae/yp/p_0_1910560/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx255229251_qu128_s2332608951.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2796,14 +2835,14 @@
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 3.831,
|
||||
"module_load": 17.558,
|
||||
"init": 0.001,
|
||||
"home": 1088.865,
|
||||
"category": 336.788,
|
||||
"detail": 1419.058,
|
||||
"player": 226.337,
|
||||
"url_check": 515.161,
|
||||
"total": 3590.867
|
||||
"home": 929.85,
|
||||
"category": 266.581,
|
||||
"detail": 241.94,
|
||||
"player": 250.835,
|
||||
"url_check": 577.054,
|
||||
"total": 2284.912
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
@@ -2819,11 +2858,11 @@
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1779448037-4a4d75e7925e4c4184b43dc29897db1e-0-cbe21989e7ac81bc30a00c0caaa23817",
|
||||
"url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1779498910-6c55bb9207054717b0a561a9242bf776-0-c49aa3c0b922183ad432d384f7010e46",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1779448037-4a4d75e7925e4c4184b43dc29897db1e-0-cbe21989e7ac81bc30a00c0caaa23817",
|
||||
"final_url": "https://ppvod011.blbtgg.com/splitOut/20260318/1267932/V20260318194542050871267932/index.m3u8?auth_key=1779498910-6c55bb9207054717b0a561a9242bf776-0-c49aa3c0b922183ad432d384f7010e46",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2835,14 +2874,14 @@
|
||||
"error": "分类视频列表为空",
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 6.712,
|
||||
"module_load": 13.639,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 1166.124,
|
||||
"category": 1072.222,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 2010.164
|
||||
"total": 2093.624
|
||||
},
|
||||
"counts": {
|
||||
"classes": 5,
|
||||
@@ -2869,39 +2908,39 @@
|
||||
{
|
||||
"spider": "飞快TV",
|
||||
"file": "飞快TV.txt",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"traceback": null,
|
||||
"success": false,
|
||||
"failed_stage": "unexpected",
|
||||
"error": "HTTPSConnectionPool(host='feikuai.in', port=443): Max retries exceeded with url: /vodshow/1--------1---.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='feikuai.in', port=443) at 0x74ab60780050>, 'Connection to feikuai.in 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='feikuai.in', port=443) at 0x74ab60780050>, 'Connection to feikuai.in 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='feikuai.in', port=443): Max retries exceeded with url: /vodshow/1--------1---.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='feikuai.in', port=443) at 0x74ab60780050>, 'Connection to feikuai.in 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/飞快TV.txt\", line 206, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/飞快TV.txt\", line 71, in _request_html\nrequests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='feikuai.in', port=443): Max retries exceeded with url: /vodshow/1--------1---.html (Caused by ConnectTimeoutError(<HTTPSConnection(host='feikuai.in', port=443) at 0x74ab60780050>, 'Connection to feikuai.in timed out. (connect timeout=10)'))\n",
|
||||
"timings_ms": {
|
||||
"module_load": 6.154,
|
||||
"init": 0.001,
|
||||
"module_load": 3.698,
|
||||
"init": 0.0,
|
||||
"home": 0.001,
|
||||
"category": 1058.122,
|
||||
"detail": 980.129,
|
||||
"player": 997.916,
|
||||
"url_check": 881.132,
|
||||
"total": 10013.625
|
||||
"category": 10013.977,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 10025.071
|
||||
},
|
||||
"counts": {
|
||||
"classes": 4,
|
||||
"category_videos": 40,
|
||||
"detail_videos": 1,
|
||||
"episodes": 2
|
||||
"category_videos": 0,
|
||||
"detail_videos": 0,
|
||||
"episodes": 0
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "227743",
|
||||
"flag": "超清1",
|
||||
"play_id": "/vodplay/227743-7-1.html"
|
||||
"vod_id": null,
|
||||
"flag": null,
|
||||
"play_id": null
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://feikuai.in/m3u8/alist/aae205b73c176bdf5c45f83bdb010756/playlist.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://feikuai.in/m3u8/alist/aae205b73c176bdf5c45f83bdb010756/playlist.m3u8",
|
||||
"parse": null,
|
||||
"url": "",
|
||||
"valid": false,
|
||||
"reachable": null,
|
||||
"status_code": null,
|
||||
"final_url": "",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
@@ -2913,14 +2952,14 @@
|
||||
"error": "分类列表为空",
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 4.914,
|
||||
"module_load": 4.87,
|
||||
"init": 0.001,
|
||||
"home": 189.027,
|
||||
"home": 572.594,
|
||||
"category": 0.0,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 194.087
|
||||
"total": 577.695
|
||||
},
|
||||
"counts": {
|
||||
"classes": 0,
|
||||
@@ -2947,19 +2986,19 @@
|
||||
{
|
||||
"spider": "麦田影院",
|
||||
"file": "麦田影院.txt",
|
||||
"success": true,
|
||||
"failed_stage": null,
|
||||
"error": null,
|
||||
"success": false,
|
||||
"failed_stage": "url_check",
|
||||
"error": "HTTP 404",
|
||||
"traceback": null,
|
||||
"timings_ms": {
|
||||
"module_load": 4.396,
|
||||
"module_load": 3.777,
|
||||
"init": 0.001,
|
||||
"home": 0.001,
|
||||
"category": 561.742,
|
||||
"detail": 194.325,
|
||||
"player": 0.039,
|
||||
"url_check": 550.751,
|
||||
"total": 1312.351
|
||||
"category": 686.448,
|
||||
"detail": 394.022,
|
||||
"player": 0.056,
|
||||
"url_check": 783.681,
|
||||
"total": 3463.976
|
||||
},
|
||||
"counts": {
|
||||
"classes": 6,
|
||||
@@ -2968,19 +3007,19 @@
|
||||
"episodes": 2
|
||||
},
|
||||
"samples": {
|
||||
"tid": "1",
|
||||
"vod_id": "171427",
|
||||
"tid": "2",
|
||||
"vod_id": "155698",
|
||||
"flag": "LZ源",
|
||||
"play_id": "eyJ1cmwiOiJodHRwczovL3YubHpjZG4yNy5jb20vMjAyNTA3MzEvNjc5XzUwYTJiMDQ3L2luZGV4Lm0zdTgiLCJwYXJzZV9hcGkiOiJodHRwczovL2RlbC5tdDMyMC5jb20vbHpmZi5waHA_dXJsPSIsImhlYWRlcnMiOnt9LCJ1c2VyX2FnZW50IjoiIn0="
|
||||
"play_id": "eyJ1cmwiOiJodHRwczovL3YubHpjZG4yOC5jb20vMjAyNTA5MjMvMjMyNl9hOWJmMjM0YS9pbmRleC5tM3U4IiwicGFyc2VfYXBpIjoiaHR0cHM6Ly9kZWwubXQzMjAuY29tL2x6ZmYucGhwP3VybD0iLCJoZWFkZXJzIjp7fSwidXNlcl9hZ2VudCI6IiJ9"
|
||||
},
|
||||
"player": {
|
||||
"parse": 0,
|
||||
"url": "https://v.lzcdn27.com/20250731/679_50a2b047/index.m3u8",
|
||||
"valid": true,
|
||||
"reachable": true,
|
||||
"status_code": 200,
|
||||
"final_url": "https://v.lzcdn27.com/20250731/679_50a2b047/index.m3u8",
|
||||
"reason": null
|
||||
"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"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -2988,17 +3027,17 @@
|
||||
"file": "黑猫APP.txt",
|
||||
"success": false,
|
||||
"failed_stage": "unexpected",
|
||||
"error": "('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))",
|
||||
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 534, in _make_request\n response = conn.getresponse()\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 571, in getresponse\n httplib_response = super().getresponse()\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 1450, in getresponse\n response.begin()\n ~~~~~~~~~~~~~~^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 336, in begin\n version, status, reason = self._read_status()\n ~~~~~~~~~~~~~~~~~^^\nhttp.client.RemoteDisconnected: Remote end closed connection without response\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 490, in increment\n raise reraise(type(error), error, _stacktrace)\n ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/util.py\", line 38, in reraise\n raise value.with_traceback(tb)\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\nurllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 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",
|
||||
"error": "HTTPConnectionPool(host='app1-0-0.87333.cc', port=80): Max retries exceeded with url: /api.php/getappapi.index/initV119 (Caused by ConnectTimeoutError(<HTTPConnection(host='app1-0-0.87333.cc', port=80) at 0x74ab6077e140>, 'Connection to app1-0-0.87333.cc 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 493, in _make_request\n conn.request(\n ~~~~~~~~~~~~^\n method,\n ^^^^^^^\n ...<6 lines>...\n enforce_content_length=enforce_content_length,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 500, in request\n self.endheaders()\n ~~~~~~~~~~~~~~~^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 1353, in endheaders\n self._send_output(message_body, encode_chunked=encode_chunked)\n ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 1113, in _send_output\n self.send(msg)\n ~~~~~~~~~^^^^^\nurllib3.exceptions.ConnectTimeoutError: (<HTTPConnection(host='app1-0-0.87333.cc', port=80) at 0x74ab6077e140>, 'Connection to app1-0-0.87333.cc 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: HTTPConnectionPool(host='app1-0-0.87333.cc', port=80): Max retries exceeded with url: /api.php/getappapi.index/initV119 (Caused by ConnectTimeoutError(<HTTPConnection(host='app1-0-0.87333.cc', port=80) at 0x74ab6077e140>, 'Connection to app1-0-0.87333.cc 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 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.ConnectTimeout: HTTPConnectionPool(host='app1-0-0.87333.cc', port=80): Max retries exceeded with url: /api.php/getappapi.index/initV119 (Caused by ConnectTimeoutError(<HTTPConnection(host='app1-0-0.87333.cc', port=80) at 0x74ab6077e140>, 'Connection to app1-0-0.87333.cc timed out. (connect timeout=10)'))\n",
|
||||
"timings_ms": {
|
||||
"module_load": 4.445,
|
||||
"module_load": 7.272,
|
||||
"init": 0.001,
|
||||
"home": 207.027,
|
||||
"home": 10010.988,
|
||||
"category": 0.0,
|
||||
"detail": 0.0,
|
||||
"player": 0.0,
|
||||
"url_check": 0.0,
|
||||
"total": 213.824
|
||||
"total": 10025.018
|
||||
},
|
||||
"counts": {
|
||||
"classes": 0,
|
||||
|
||||
Reference in New Issue
Block a user