{"generated_at":"2026-10-02 02:34:29","categories":{"cctv":{"channels":9,"streams":11},"hk_mo_tw":{"channels":3,"streams":3},"local":{"channels":5,"streams":5},"satellite":{"channels":13,"streams":18}},"strict_streams":26,"intermittent_streams":2,"streams":{"published":37,"active":52,"new":584,"unstable":57},"pending_probe":{"batch_id":"cn-aliyun-20261002T063427Z-7012b572","expires_at":"2026-10-03T12:34:27Z"},"pending_github":{"batch_id":"gh-auth-20261002T062504Z-3720151b","expires_at":"2026-10-03T06:25:04Z"},"probe_summary":{"aliyun_total":952,"aliyun_submitted":1,"aliyun_consumed":766,"aliyun_rejected":1,"aliyun_expired":184,"github_total":20,"github_submitted":2,"github_consumed":13,"github_rejected":1,"github_expired":4},"probe_details":{"aliyun_batches":[{"batch_id":"cn-aliyun-20261002T063427Z-7012b572","created_at":"2026-10-02T06:34:27Z","expires_at":"2026-10-03T12:34:27Z","state":"submitted","consumed_at":null,"last_state_reason":"aliyun-lease"},{"batch_id":"cn-aliyun-20261002T063302Z-74ed2b43","created_at":"2026-10-02T06:33:02Z","expires_at":"2026-10-03T12:33:02Z","state":"consumed","consumed_at":"2026-10-02 02:33:55","last_state_reason":"payload-consumed"},{"batch_id":"cn-aliyun-20261002T063101Z-442ad5c0","created_at":"2026-10-02T06:31:01Z","expires_at":"2026-10-03T12:31:01Z","state":"consumed","consumed_at":"2026-10-02 02:32:31","last_state_reason":"payload-consumed"},{"batch_id":"cn-aliyun-20261002T062940Z-3bf56c65","created_at":"2026-10-02T06:29:40Z","expires_at":"2026-10-03T12:29:40Z","state":"consumed","consumed_at":"2026-10-02 02:30:30","last_state_reason":"payload-consumed"},{"batch_id":"cn-aliyun-20261002T062819Z-7e4ccebc","created_at":"2026-10-02T06:28:19Z","expires_at":"2026-10-03T12:28:19Z","state":"consumed","consumed_at":"2026-10-02 02:29:09","last_state_reason":"payload-consumed"},{"batch_id":"cn-aliyun-20261002T062655Z-d87e5d7d","created_at":"2026-10-02T06:26:55Z","expires_at":"2026-10-03T12:26:55Z","state":"consumed","consumed_at":"2026-10-02 02:27:47","last_state_reason":"payload-consumed"}],"github_batches":[{"batch_id":"gh-deep-20261002T063240Z-478a4d4b","created_at":"2026-10-02 02:32:40","expires_at":"2026-10-03T06:32:40Z","state":"submitted","consumed_at":null,"last_state_reason":"submit"},{"batch_id":"gh-auth-20261002T062504Z-3720151b","created_at":"2026-10-02 02:25:04","expires_at":"2026-10-03T06:25:04Z","state":"submitted","consumed_at":null,"last_state_reason":"submit"},{"batch_id":"gh-deep-20261001T183222Z-f1f83c57","created_at":"2026-10-01 14:32:22","expires_at":"2026-10-02T18:32:22Z","state":"consumed","consumed_at":"2026-10-02 02:32:40","last_state_reason":"payload-consumed"},{"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"}],"aliyun_speed":{"total":40074,"ok":1735}},"quality":{"github_video_ok":276,"github_risk_events":692,"github_total":855,"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":63.21,"source_count":67,"domestic_success_count":50},{"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.72,"source_count":186,"domestic_success_count":59},{"source_id":9,"name":"iptv-org TW","score":25.0,"source_count":3,"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":677.33,"started_at":"2026-10-02 02:23:12","finished_at":"","stages":{"init":{"state":"ok","label":"init","current":0,"total":0,"elapsed_seconds":0.84,"started_at":"2026-10-02 02:23:12","finished_at":"2026-10-02 02:23:12"},"keywords":{"state":"ok","label":"keywords","current":0,"total":0,"elapsed_seconds":0.75,"started_at":"2026-10-02 02:23:14","finished_at":"2026-10-02 02:23:14"},"collect":{"state":"ok","label":"collect","current":39,"total":39,"elapsed_seconds":109.71,"started_at":"2026-10-02 02:23:14","finished_at":"2026-10-02 02:25:03"},"github_auth":{"state":"ok","label":"github_auth","current":5,"total":5,"elapsed_seconds":3.29,"started_at":"2026-10-02 02:25:03","finished_at":"2026-10-02 02:25:06"},"validate":{"state":"ok","label":"validate","current":200,"total":200,"elapsed_seconds":452.43,"started_at":"2026-10-02 02:25:06","finished_at":"2026-10-02 02:32:38"},"speedtest":{"state":"ok","label":"speedtest","current":3,"total":3,"elapsed_seconds":0.68,"started_at":"2026-10-02 02:32:38","finished_at":"2026-10-02 02:32:38"},"github_deep":{"state":"ok","label":"github_deep","current":5,"total":5,"elapsed_seconds":3.48,"started_at":"2026-10-02 02:32:38","finished_at":"2026-10-02 02:32:41"},"epg":{"state":"ok","label":"epg","current":500,"total":500,"elapsed_seconds":8.3,"started_at":"2026-10-02 02:32:41","finished_at":"2026-10-02 02:32:49"},"generate":{"state":"ok","label":"generate","current":3,"total":3,"elapsed_seconds":100.33,"started_at":"2026-10-02 02:32:49","finished_at":"2026-10-02 02:34:29"}}},"recent_runs":[{"run_id":"20261002022312","stage":"epg","status":"ok","end_at":"2026-10-02 02:32:49","stats_json":"{\"detail\": \"{\\\"refreshed\\\": 178}\"}"},{"run_id":"20261002022312","stage":"github_deep","status":"ok","end_at":"2026-10-02 02:32:41","stats_json":"{\"detail\": \"{\\\"phase\\\": \\\"deep\\\", \\\"candidates\\\": 2, \\\"batch_id\\\": \\\"gh-deep-20261002T063240Z-478a4d4b\\\", \\\"push\\\": \\\"pushed\\\", \\\"recovered\\\": {\\\"ok\\\": 3, \\\"total\\\": 4, \\\"failed\\\": 1, \\\"batch_id\\\": \\\"gh-deep-20261001T183222Z-f1f83c57\\\", \\\"error_counts\\\": {\\\"ok\\\": 3, \\\"ffprobe_failed\\\": 1}}, \\\"queue_status\\\": \\\"advancing\\\", \\\"released_batches\\\": [\\\"gh-deep-20260912T061910Z-31dec9f3\\\"]}\"}"},{"run_id":"20261002022312","stage":"speedtest","status":"ok","end_at":"2026-10-02 02:32:38","stats_json":"{\"detail\": \"{\\\"candidates\\\": 0, \\\"batches\\\": 0, \\\"push\\\": {}, \\\"cn_total\\\": 40054, \\\"cn_ok\\\": 1735, \\\"queue_status\\\": \\\"aliyun-autonomous\\\", \\\"aliyun_states\\\": {\\\"consumed\\\": 710, \\\"expired\\\": 15}, \\\"pending_aliyun\\\": [], \\\"released_batches\\\": [\\\"cn-aliyun-20261001T183221Z-65d7b016\\\"]}\"}"},{"run_id":"20261002022312","stage":"validate","status":"ok","end_at":"2026-10-02 02:32:38","stats_json":"{\"detail\": \"{\\\"fast\\\": 120, \\\"deep_ok\\\": 0, \\\"deep_fail\\\": 0, \\\"fake\\\": 0, \\\"conn_fail\\\": 23, \\\"http_fail\\\": 85, \\\"domestic\\\": 12}\"}"},{"run_id":"20261002022312","stage":"github_auth","status":"ok","end_at":"2026-10-02 02:25:06","stats_json":"{\"detail\": \"{\\\"phase\\\": \\\"auth\\\", \\\"candidates\\\": 47, \\\"batch_id\\\": \\\"gh-auth-20261002T062504Z-3720151b\\\", \\\"push\\\": \\\"pushed\\\", \\\"recovered\\\": {\\\"ok\\\": 0, \\\"total\\\": 0, \\\"error\\\": \\\"batch-already-consumed\\\"}, \\\"queue_status\\\": \\\"advancing\\\", \\\"released_batches\\\": [\\\"gh-auth-20260912T061849Z-a89bee17\\\", \\\"gh-auth-20260910T184222Z-f8f4c92f\\\", \\\"gh-auth-001\\\"]}\"}"},{"run_id":"20261002022312","stage":"collect","status":"ok","end_at":"2026-10-02 02:25:03","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', 'no-items', 'ok(+0)', 'ok(+0)', 'no-items', 'no-items', 'no-items', 'no-items', 'no-items', '\"}"},{"run_id":"20261002022312","stage":"keywords","status":"ok","end_at":"2026-10-02 02:23:14","stats_json":"{\"detail\": \"\\\"0\\\"\"}"},{"run_id":"20261002022312","stage":"init","status":"ok","end_at":"2026-10-02 02:23:12","stats_json":"{\"detail\": \"\\\"None\\\"\"}"},{"run_id":"20261001142041","stage":"total","status":"ok","end_at":"2026-10-01 14:34:20","stats_json":"{\"secs\": 806.1}"},{"run_id":"20261001142041","stage":"generate","status":"ok","end_at":"2026-10-01 14:34:08","stats_json":"{\"detail\": \"{\\\"files\\\": {\\\"cctv\\\": 20, \\\"satellite\\\": 34, \\\"local\\\": 5, \\\"hk_mo_tw\\\": 61, \\\"webcast\\\": 63}, \\\"channels\\\": 183, \\\"epg_channels\\\": 270, \\\"epg_programmes\\\": 185916}\"}"},{"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\\\"]}\"}"}]}