Files
ip/status.json
T
2026-10-01 14:34:09 -04:00

1 line
10 KiB
JSON

{"generated_at":"2026-10-01 14:34:08","categories":{"cctv":{"channels":9,"streams":11},"hk_mo_tw":{"channels":3,"streams":3},"local":{"channels":5,"streams":5},"satellite":{"channels":12,"streams":16}},"strict_streams":26,"intermittent_streams":2,"streams":{"published":35,"active":52,"new":586,"unstable":68},"pending_probe":{"batch_id":"cn-aliyun-20261001T183221Z-65d7b016","expires_at":"2026-10-03T00:32:21Z"},"pending_github":{"batch_id":"gh-deep-20261001T183222Z-f1f83c57","expires_at":"2026-10-02T18:32:22Z"},"probe_summary":{"aliyun_total":399,"aliyun_submitted":1,"aliyun_consumed":214,"aliyun_rejected":1,"aliyun_expired":183,"github_total":18,"github_submitted":1,"github_consumed":12,"github_rejected":1,"github_expired":4},"probe_details":{"aliyun_batches":[{"batch_id":"cn-aliyun-20261001T183236Z-ff8b3d35","created_at":"2026-10-01T18:32:36Z","expires_at":"2026-10-03T00:32:36Z","state":"consumed","consumed_at":"2026-10-01 14:33:48","last_state_reason":"payload-consumed"},{"batch_id":"cn-aliyun-20261001T183221Z-65d7b016","created_at":"2026-10-01T18:32:21Z","expires_at":"2026-10-03T00:32:21Z","state":"submitted","consumed_at":null,"last_state_reason":"aliyun-lease"},{"batch_id":"cn-aliyun-20261001T183039Z-82712a03","created_at":"2026-10-01T18:30:39Z","expires_at":"2026-10-03T00:30:39Z","state":"consumed","consumed_at":"2026-10-01 14:31:05","last_state_reason":"payload-consumed"},{"batch_id":"cn-aliyun-20261001T182942Z-3145f935","created_at":"2026-10-01T18:29:42Z","expires_at":"2026-10-03T00:29:42Z","state":"consumed","consumed_at":"2026-10-01 14:30:09","last_state_reason":"payload-consumed"},{"batch_id":"cn-aliyun-20261001T182846Z-8dfb402a","created_at":"2026-10-01T18:28:46Z","expires_at":"2026-10-03T00:28:46Z","state":"consumed","consumed_at":"2026-10-01 14:29:12","last_state_reason":"payload-consumed"},{"batch_id":"cn-aliyun-20261001T182751Z-dc626618","created_at":"2026-10-01T18:27:51Z","expires_at":"2026-10-03T00:27:51Z","state":"consumed","consumed_at":"2026-10-01 14:28:15","last_state_reason":"payload-consumed"}],"github_batches":[{"batch_id":"gh-deep-20261001T183222Z-f1f83c57","created_at":"2026-10-01 14:32:22","expires_at":"2026-10-02T18:32:22Z","state":"submitted","consumed_at":null,"last_state_reason":"submit"},{"batch_id":"gh-auth-20261001T061414Z-4c70835d","created_at":"2026-10-01 02:14:14","expires_at":"2026-10-02T06:14:14Z","state":"consumed","consumed_at":"2026-10-01 14:11:22","last_state_reason":"payload-consumed"},{"batch_id":"gh-auth-20260930T134032Z-bbc9cf0d","created_at":"2026-09-30 09:40:32","expires_at":"2026-10-01T13:40:32Z","state":"consumed","consumed_at":"2026-10-01 02:14:14","last_state_reason":"payload-consumed"},{"batch_id":"gh-deep-20260912T061910Z-31dec9f3","created_at":"2026-09-12 02:19:10","expires_at":"2026-09-13T06:19:10Z","state":"expired","consumed_at":null,"last_state_reason":"manual-recovery-after-corrupt-result"},{"batch_id":"gh-auth-20260912T061849Z-a89bee17","created_at":"2026-09-12 02:18:49","expires_at":"2026-09-13T06:18:49Z","state":"expired","consumed_at":null,"last_state_reason":"manual-recovery-after-corrupt-result"},{"batch_id":"gh-deep-20260911T132913Z-fc12e792","created_at":"2026-09-11 09:29:13","expires_at":"2026-09-12T13:29:13Z","state":"consumed","consumed_at":"2026-09-11 10:13:03","last_state_reason":"payload-consumed"}],"aliyun_speed":{"total":29034,"ok":1733}},"quality":{"github_video_ok":273,"github_risk_events":691,"github_total":851,"top_sources":[{"source_id":13,"name":"kstore-aiwex","score":76.56,"source_count":61,"domestic_success_count":61},{"source_id":11,"name":"zhoujie IPv4","score":62.46,"source_count":69,"domestic_success_count":51},{"source_id":7,"name":"iptv-org CN","score":47.5,"source_count":12,"domestic_success_count":6},{"source_id":47,"name":"Collect-IPTV 精选排序","score":27.26,"source_count":188,"domestic_success_count":59},{"source_id":9,"name":"iptv-org TW","score":18.75,"source_count":4,"domestic_success_count":1},{"source_id":65,"name":"telegram收集","score":9.26,"source_count":175,"domestic_success_count":6},{"source_id":1,"name":"fanmingming IPv4","score":0.0,"source_count":0,"domestic_success_count":0},{"source_id":2,"name":"fanmingming IPv6","score":0.0,"source_count":0,"domestic_success_count":0},{"source_id":3,"name":"YanG-1989 Gather","score":0.0,"source_count":0,"domestic_success_count":0},{"source_id":4,"name":"Kimentanm iptv","score":0.0,"source_count":0,"domestic_success_count":0}]},"job_summary":{"state":"running","current_stage":"generate","progress_pct":81.82,"last_error":"未发现异常","stage_health":{"ok":9,"running":0,"waiting":2,"err":0}},"runtime":{"state":"running","current_stage":"generate","progress_pct":81.82,"completed_stage_count":9,"total_stage_count":11,"elapsed_seconds":807.35,"started_at":"2026-10-01 14:20:41","finished_at":"","stages":{"init":{"state":"ok","label":"init","current":0,"total":0,"elapsed_seconds":1.01,"started_at":"2026-10-01 14:20:41","finished_at":"2026-10-01 14:20:41"},"keywords":{"state":"ok","label":"keywords","current":0,"total":0,"elapsed_seconds":38.93,"started_at":"2026-10-01 14:20:42","finished_at":"2026-10-01 14:21:20"},"collect":{"state":"ok","label":"collect","current":39,"total":39,"elapsed_seconds":42.03,"started_at":"2026-10-01 14:21:20","finished_at":"2026-10-01 14:22:02"},"github_auth":{"state":"ok","label":"github_auth","current":5,"total":5,"elapsed_seconds":1.25,"started_at":"2026-10-01 14:22:02","finished_at":"2026-10-01 14:22:03"},"validate":{"state":"ok","label":"validate","current":200,"total":200,"elapsed_seconds":618.67,"started_at":"2026-10-01 14:22:03","finished_at":"2026-10-01 14:32:21"},"speedtest":{"state":"ok","label":"speedtest","current":3,"total":3,"elapsed_seconds":0.74,"started_at":"2026-10-01 14:32:21","finished_at":"2026-10-01 14:32:21"},"github_deep":{"state":"ok","label":"github_deep","current":5,"total":5,"elapsed_seconds":2.69,"started_at":"2026-10-01 14:32:21","finished_at":"2026-10-01 14:32:23"},"epg":{"state":"ok","label":"epg","current":510,"total":510,"elapsed_seconds":7.45,"started_at":"2026-10-01 14:32:23","finished_at":"2026-10-01 14:32:30"},"generate":{"state":"ok","label":"generate","current":3,"total":3,"elapsed_seconds":98.35,"started_at":"2026-10-01 14:32:30","finished_at":"2026-10-01 14:34:08"}}},"recent_runs":[{"run_id":"20261001142041","stage":"epg","status":"ok","end_at":"2026-10-01 14:32:30","stats_json":"{\"detail\": \"{\\\"refreshed\\\": 175}\"}"},{"run_id":"20261001142041","stage":"github_deep","status":"ok","end_at":"2026-10-01 14:32:23","stats_json":"{\"detail\": \"{\\\"phase\\\": \\\"deep\\\", \\\"candidates\\\": 4, \\\"batch_id\\\": \\\"gh-deep-20261001T183222Z-f1f83c57\\\", \\\"push\\\": \\\"pushed\\\", \\\"recovered\\\": {\\\"ok\\\": 0, \\\"total\\\": 0, \\\"error\\\": \\\"batch-rejected\\\"}, \\\"queue_status\\\": \\\"advancing\\\", \\\"released_batches\\\": [\\\"gh-deep-20260912T061910Z-31dec9f3\\\"]}\"}"},{"run_id":"20261001142041","stage":"speedtest","status":"ok","end_at":"2026-10-01 14:32:21","stats_json":"{\"detail\": \"{\\\"candidates\\\": 0, \\\"batches\\\": 0, \\\"push\\\": {}, \\\"cn_total\\\": 29014, \\\"cn_ok\\\": 1733, \\\"queue_status\\\": \\\"aliyun-autonomous\\\", \\\"aliyun_states\\\": {\\\"consumed\\\": 158, \\\"expired\\\": 14, \\\"submitted\\\": 1}, \\\"pending_aliyun\\\": [\\\"cn-aliyun-20261001T183221Z-65d7b016\\\"], \\\"released_batches\\\": []}\"}"},{"run_id":"20261001142041","stage":"validate","status":"ok","end_at":"2026-10-01 14:32:21","stats_json":"{\"detail\": \"{\\\"fast\\\": 145, \\\"deep_ok\\\": 0, \\\"deep_fail\\\": 0, \\\"fake\\\": 0, \\\"conn_fail\\\": 36, \\\"http_fail\\\": 96, \\\"domestic\\\": 13}\"}"},{"run_id":"20261001142041","stage":"github_auth","status":"ok","end_at":"2026-10-01 14:22:03","stats_json":"{\"detail\": \"{\\\"phase\\\": \\\"auth\\\", \\\"candidates\\\": 0, \\\"recovered\\\": {\\\"ok\\\": 0, \\\"total\\\": 0, \\\"error\\\": \\\"batch-already-consumed\\\"}, \\\"waiting\\\": \\\"upstream-not-ready\\\", \\\"queue_status\\\": \\\"idle\\\", \\\"released_batches\\\": [\\\"gh-auth-20260912T061849Z-a89bee17\\\", \\\"gh-auth-20260910T184222Z-f8f4c92f\\\", \\\"gh-auth-001\\\"]}\"}"},{"run_id":"20261001142041","stage":"collect","status":"ok","end_at":"2026-10-01 14:22:02","stats_json":"{\"detail\": \"\\\"['err:不安全的 HTTP 地址', 'unchanged', 'unchanged', 'unchanged', \\\\\\\"err:HTTPSConnectionPool(host='tv.iill.top', port=443): Max retri\\\\\\\", 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'no-items', 'ok(+0)', 'ok(+0)', 'no-items', 'no-items', 'no-items', 'no-items', 'no-ite\"}"},{"run_id":"20261001142041","stage":"keywords","status":"ok","end_at":"2026-10-01 14:21:20","stats_json":"{\"detail\": \"\\\"33\\\"\"}"},{"run_id":"20261001142041","stage":"init","status":"ok","end_at":"2026-10-01 14:20:41","stats_json":"{\"detail\": \"\\\"None\\\"\"}"},{"run_id":"20261001140751","stage":"total","status":"err","end_at":"2026-10-01 14:11:30","stats_json":"{\"secs\": 210.6}"},{"run_id":"20261001140751","stage":"validate","status":"err","end_at":"2026-10-01 14:11:22","stats_json":"{\"detail\": \"{\\\"err\\\": \\\"'sqlite3.Row' object has no attribute 'get'\\\"}\"}"},{"run_id":"20261001140751","stage":"github_auth","status":"ok","end_at":"2026-10-01 14:11:22","stats_json":"{\"detail\": \"{\\\"phase\\\": \\\"auth\\\", \\\"candidates\\\": 0, \\\"recovered\\\": {\\\"ok\\\": 1, \\\"total\\\": 1, \\\"failed\\\": 0, \\\"batch_id\\\": \\\"gh-auth-20261001T061414Z-4c70835d\\\", \\\"error_counts\\\": {\\\"auth_ok\\\": 1}}, \\\"waiting\\\": \\\"upstream-not-ready\\\", \\\"queue_status\\\": \\\"idle\\\", \\\"released_batches\\\": [\\\"gh-auth-20260912T061849Z-a89bee17\\\", \\\"gh-auth-20260910T184222Z-f8f4c92f\\\", \\\"gh-auth-001\\\"]}\"}"},{"run_id":"20261001140751","stage":"collect","status":"ok","end_at":"2026-10-01 14:11:21","stats_json":"{\"detail\": \"\\\"['err:不安全的 HTTP 地址', 'unchanged', 'unchanged', 'unchanged', \\\\\\\"err:HTTPSConnectionPool(host='tv.iill.top', port=443): Max retri\\\\\\\", 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'unchanged', 'ok(+0)', 'ok(+0)', 'unchanged', 'unchanged', 'unchanged', 'ok(+0)', 'no-items', 'no-items', 'ok(+0)', 'no-items', 'no-items', 'no-items', 'no-items', '\"}"}]}