{ "schema_version": "workflow/v1", "workflow_key": "bilibili-up-latest-video", "name": "视觉点击:指定 Bilibili UP 主最新视频", "description": "打开指定 Bilibili UP 主的视频页,用多模态 AI 定位最新投稿并点击播放。", "variables": { "up_url": { "type": "string", "default": "https://space.bilibili.com/2/video", "description": "Bilibili UP 主视频页地址,建议使用 /video 结尾" } }, "settings": { "max_steps": 10, "default_timeout_ms": 120000, "on_unhandled_error": "pause_for_user", "return": {"node_id": "locate"} }, "nodes": [ {"id": "start", "type": "flow.start", "title": "开始", "position": {"x": 80, "y": 180}, "params": {}, "inputs": {}}, {"id": "open", "type": "browser.open_url", "title": "打开 UP 主视频页", "position": {"x": 300, "y": 180}, "params": {"browser": "edge", "new_window": true}, "inputs": {"url": {"source": "variable", "name": "up_url"}}}, {"id": "wait", "type": "wait.seconds", "title": "等待页面加载", "position": {"x": 540, "y": 180}, "params": {"seconds": 6}, "inputs": {}}, { "id": "locate", "type": "vision.locate_element", "title": "AI 定位最新投稿", "position": {"x": 780, "y": 180}, "params": { "target_description": "定位 Bilibili UP 主视频列表中最新发布的公开视频,通常是投稿列表或视频网格中最靠前的第一个视频封面或标题中心。不要选择动态、合集、播放列表、头像、关注按钮、搜索框或导航标签。", "screen_context": "Bilibili UP 主空间 /video 页面。", "randomize": false, "save_screenshot": true, "fail_if_not_found": true, "temperature": 0.1 }, "inputs": {} }, { "id": "click", "type": "mouse.click", "title": "点击播放", "position": {"x": 1040, "y": 180}, "params": {"button": "left", "clicks": 1, "duration": 0}, "inputs": { "x": {"source": "node_output", "node_id": "locate", "output": "x"}, "y": {"source": "node_output", "node_id": "locate", "output": "y"} } }, {"id": "end", "type": "flow.end", "title": "结束", "position": {"x": 1280, "y": 180}, "params": {}, "inputs": {}} ], "edges": [ {"id": "start_to_open", "kind": "control", "source": "start", "source_port": "next", "target": "open", "target_port": "run"}, {"id": "open_to_wait", "kind": "control", "source": "open", "source_port": "success", "target": "wait", "target_port": "run"}, {"id": "wait_to_locate", "kind": "control", "source": "wait", "source_port": "success", "target": "locate", "target_port": "run"}, {"id": "locate_to_click", "kind": "control", "source": "locate", "source_port": "success", "target": "click", "target_port": "run"}, {"id": "click_to_end", "kind": "control", "source": "click", "source_port": "success", "target": "end", "target_port": "run"} ] }