{"generated_at":"2026-09-11 04:03:51","categories":{"cctv":{"channels":20,"streams":48},"hk_mo_tw":{"channels":7,"streams":7},"local":{"channels":6,"streams":8},"satellite":{"channels":28,"streams":38},"webcast":{"channels":1,"streams":1}},"strict_streams":85,"intermittent_streams":3,"streams":{"published":102,"active":166,"new":2156,"unstable":508},"pending_probe":{"batch_id":"cn-cs-20260911T074425Z-42203535","expires_at":"2026-09-12T13:44:25Z"},"pending_github":{"batch_id":"gh-auth-20260910T184222Z-f8f4c92f","expires_at":"2026-09-11T18:42:22Z"},"probe_summary":{"gitee_total":36,"gitee_submitted":3,"gitee_consumed":19,"gitee_rejected":1,"gitee_expired":13,"github_total":11,"github_submitted":1,"github_consumed":8,"github_rejected":1,"github_expired":1},"probe_details":[{"name":"gitee-cs","label":"Gitee 主账号","candidate":{"batch_id":"cn-cs-20260911T074425Z-42203535","count":600,"status":"submitted","mtime":"2026-09-11 03:44:26"},"result":{"batch_id":"cn-cs-20260910T184231Z-afd695cd","count":57,"status":"complete","mtime":"2026-09-11 03:43:47"},"progress":null},{"name":"gitee-css","label":"Gitee 账号2","candidate":{"batch_id":"cn-css-20260911T074426Z-323bafe4","count":600,"status":"submitted","mtime":"2026-09-11 03:44:27"},"result":{"batch_id":"cn-css-20260910T184232Z-e7ba5558","count":57,"status":"complete","mtime":"2026-09-11 03:43:50"},"progress":null},{"name":"gitee-csss","label":"Gitee 账号3","candidate":{"batch_id":"cn-csss-20260911T074427Z-01ba5eab","count":600,"status":"submitted","mtime":"2026-09-11 03:44:28"},"result":{"batch_id":"cn-csss-20260910T184233Z-13b718f8","count":56,"status":"complete","mtime":"2026-09-11 03:43:52"},"progress":null},{"name":"github-deep","label":"GitHub","candidate":{"batch_id":"gh-deep-20260911T050152Z-1d418c63","count":82,"status":"submitted","mtime":"2026-09-11 01:01:52"},"result":{"batch_id":"gh-deep-20260911T050152Z-1d418c63","count":82,"status":"complete","mtime":"2026-09-11 01:05:11"},"progress":{"batch_id":"gh-deep-20260911T050152Z-1d418c63","total":82,"processed":82,"remaining":0,"status":"complete","updated_at":"2026-09-11T05:03:47Z"}}],"quality":{"github_video_ok":124,"github_risk_events":120,"github_total":244,"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":57.74,"source_count":104,"domestic_success_count":75},{"source_id":47,"name":"Collect-IPTV 精选排序","score":35.14,"source_count":212,"domestic_success_count":93},{"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},{"source_id":5,"name":"BurningC4 V4","score":0.0,"source_count":0,"domestic_success_count":0},{"source_id":6,"name":"Tvlist CCTV","score":0.0,"source_count":0,"domestic_success_count":0},{"source_id":7,"name":"iptv-org CN","score":0.0,"source_count":0,"domestic_success_count":0}]},"job_summary":{"state":"failed","current_stage":"generate","progress_pct":80.0,"last_error":"[Errno 2] No such file or directory: '/var/lib/iptv-scraper/runtime/run_state.json.tmp' -> '/var/lib/iptv-scraper/runtime/run_state.json'","stage_health":{"ok":8,"running":0,"waiting":2,"err":0}},"runtime":{"state":"failed","current_stage":"generate","progress_pct":80.0,"completed_stage_count":8,"total_stage_count":10,"elapsed_seconds":150.53,"started_at":"2026-09-11 04:01:21","finished_at":"2026-09-11 04:02:18","stages":{"init":{"state":"ok","label":"init","current":0,"total":0,"elapsed_seconds":0.42,"started_at":"2026-09-11 04:01:21","finished_at":"2026-09-11 04:01:21"},"keywords":{"state":"ok","label":"keywords","current":0,"total":0,"elapsed_seconds":0.46,"started_at":"2026-09-11 04:01:21","finished_at":"2026-09-11 04:01:21"},"collect":{"state":"ok","label":"collect","current":28,"total":28,"elapsed_seconds":42.6,"started_at":"2026-09-11 04:01:21","finished_at":"2026-09-11 04:02:03"},"github_auth":{"state":"ok","label":"github_auth","current":0,"total":0,"elapsed_seconds":15.45,"started_at":"2026-09-11 04:02:03","finished_at":"2026-09-11 04:02:18"},"speedtest":{"state":"ok","label":"speedtest","current":0,"total":0,"elapsed_seconds":10.0,"started_at":"2026-09-11 04:01:22","finished_at":"2026-09-11 04:01:31"},"github_deep":{"state":"ok","label":"github_deep","current":0,"total":0,"elapsed_seconds":1.5,"started_at":"2026-09-11 04:01:31","finished_at":"2026-09-11 04:01:32"},"epg":{"state":"ok","label":"epg","current":2076,"total":2076,"elapsed_seconds":46.38,"started_at":"2026-09-11 04:01:32","finished_at":"2026-09-11 04:02:18"},"generate":{"state":"ok","label":"generate","current":0,"total":0,"elapsed_seconds":93.0,"started_at":"2026-09-11 04:02:18","finished_at":"2026-09-11 04:03:51"}}},"recent_runs":[{"run_id":"20260911040121","stage":"github_auth","status":"ok","end_at":"2026-09-11 04:02:04","stats_json":"{\"detail\": \"{\\\"waiting\\\": \\\"gh-auth-20260910T184222Z-f8f4c92f\\\", \\\"expires_at\\\": \\\"2026-09-11T18:42:22Z\\\", \\\"recovered\\\": {\\\"ok\\\": 0, \\\"total\\\": 0, \\\"error\\\": \\\"batch-already-consumed\\\"}, \\\"queue_status\\\": \\\"waiting-for-consume\\\", \\\"released_batches\\\": [\\\"gh-auth-001\\\"]}\"}"},{"run_id":"20260911040021","stage":"epg","status":"ok","end_at":"2026-09-11 04:02:18","stats_json":"{\"detail\": \"{\\\"refreshed\\\": 402}\"}"},{"run_id":"20260911040121","stage":"collect","status":"ok","end_at":"2026-09-11 04:02:03","stats_json":"{\"detail\": \"\\\"['ok(+50)', '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', 'no-items', 'ok(+0)', 'no-items', 'no-items', 'no-items', 'no-items', 'no-items', 'n\"}"},{"run_id":"20260911040021","stage":"github_deep","status":"ok","end_at":"2026-09-11 04:01:32","stats_json":"{\"detail\": \"{\\\"phase\\\": \\\"deep\\\", \\\"candidates\\\": 0, \\\"recovered\\\": {\\\"ok\\\": 0, \\\"total\\\": 0, \\\"error\\\": \\\"batch-already-consumed\\\"}, \\\"waiting\\\": \\\"upstream-not-ready\\\", \\\"queue_status\\\": \\\"idle\\\", \\\"released_batches\\\": []}\"}"},{"run_id":"20260911040021","stage":"speedtest","status":"ok","end_at":"2026-09-11 04:01:31","stats_json":"{\"detail\": \"{\\\"waiting\\\": \\\"cn-cs-20260911T074425Z-42203535\\\", \\\"waiting_batches\\\": [{\\\"batch_id\\\": \\\"cn-cs-20260911T074425Z-42203535\\\", \\\"expires_at\\\": \\\"2026-09-12T13:44:25Z\\\", \\\"state\\\": \\\"submitted\\\", \\\"state_history_json\\\": \\\"[{\\\\\\\"ts\\\\\\\": \\\\\\\"2026-09-11 03:44:25\\\\\\\", \\\\\\\"state\\\\\\\": \\\\\\\"created\\\\\\\", \\\\\\\"reason\\\\\\\": \\\\\\\"created\\\\\\\"}]\\\"}, {\\\"batch_id\\\": \\\"cn-css-20260911T074426Z-323bafe4\\\", \\\"expires_at\\\": \\\"2026-09-12T13:44:26Z\\\", \\\"state\\\": \\\"submitted\\\", \\\"stat\"}"},{"run_id":"20260911040021","stage":"github_auth","status":"ok","end_at":"2026-09-11 04:01:22","stats_json":"{\"detail\": \"{\\\"waiting\\\": \\\"gh-auth-20260910T184222Z-f8f4c92f\\\", \\\"expires_at\\\": \\\"2026-09-11T18:42:22Z\\\", \\\"recovered\\\": {\\\"ok\\\": 0, \\\"total\\\": 0, \\\"error\\\": \\\"batch-already-consumed\\\"}, \\\"queue_status\\\": \\\"waiting-for-consume\\\", \\\"released_batches\\\": [\\\"gh-auth-001\\\"]}\"}"},{"run_id":"20260911040121","stage":"keywords","status":"ok","end_at":"2026-09-11 04:01:21","stats_json":"{\"detail\": \"\\\"0\\\"\"}"},{"run_id":"20260911040121","stage":"init","status":"ok","end_at":"2026-09-11 04:01:21","stats_json":"{\"detail\": \"\\\"None\\\"\"}"},{"run_id":"20260911040021","stage":"collect","status":"ok","end_at":"2026-09-11 04:01:21","stats_json":"{\"detail\": \"\\\"['ok(+64)', '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', 'ok(+0)', 'no-it\"}"},{"run_id":"20260911040021","stage":"keywords","status":"ok","end_at":"2026-09-11 04:00:21","stats_json":"{\"detail\": \"\\\"0\\\"\"}"},{"run_id":"20260911040021","stage":"init","status":"ok","end_at":"2026-09-11 04:00:21","stats_json":"{\"detail\": \"\\\"None\\\"\"}"},{"run_id":"20260911035909","stage":"total","status":"ok","end_at":"2026-09-11 03:59:17","stats_json":"{\"secs\": 7.8}"}]}