youbike-realtimelisted
Install: claude install-skill tahodev/baodao-skill
# youbike-realtime
> 實測日:2026-09-26(最近一次端對端實測;數值基準日各自標於內文)
查 YouBike 2.0 站點即時狀態:可借幾台、可還幾個空位。免 API 金鑰,`curl` + `jq` 即可。
**兩層資料源**,優先用第 1 層:
1. **官方統一 feed(全台 14 個服務區)**:youbike.com.tw 地圖實際使用的即時 JSON,一次取回全台約 9,600 站(2026-09-26 實測 9,629 站),含高雄、台南等市政府開放平台沒有的縣市,且每站都有電輔車明細。注意:這是**非公開文件化的 API**,欄位可能無預警調整,所以第 2 層保留作為備援。
2. **各市政府開放資料 feed(台北、新北、台中、桃園)**:文件化的官方開放資料,統一 feed 失敗或欄位變更時改用。**高雄市政府的來源(openapi.kcg.gov.tw)2026-09-09 從台灣境外連線逾時、無法驗證,不要依賴**;高雄請用統一 feed。
回報時一律附上資料更新時間,讓使用者知道資訊有多新。
## 第 1 層:官方統一 feed(apis.youbike.com.tw)
```bash
curl -sm 60 https://apis.youbike.com.tw/json/station-yb2.json -o /tmp/youbike_all.json
```
2026-09-26 實測:HTTP 200、約 6.3MB、9,629 站、14 個服務區(9/10 為 9,521 站,設站緩慢增加中),回應內 `updated_at` 與查詢時刻差約 1 分鐘(近即時)。檔案大,短時間內重複查詢請用同一份快取(1~2 分鐘),不要連續請求。
**連線地區注意:apis.youbike.com.tw 由 Incapsula 防護,會依來源 IP 攔截。** 2026-09-11 實測:GitHub Actions(美國機房 IP)拿到非 JSON 回應導致 CI 深度驗證失敗,同一時間從其他海外 IP(GCP 美國)與一般連線仍正常(HTTP 200、9,537 站)。從台灣 IP `curl` 可正常使用;在機房或海外環境拿到 503 / 非 JSON 回應時,改用第 2 層各市府 feed,不要當成全台資料失效。
### 欄位
| 欄位 | 意義 |
| --- | --- |
| `area_code` | 服務區代碼(字串,見下表;`"0A"` 等含英字,比對時當字串) |
| `status` | `1` = 營運中,`2` = 暫停營運 |
| `station_no` | 站點編號 |
| `name_tw` / `name_en` | 站名(中 / 英;**沒有**市府 feed 的 `YouBike2.0_` 前綴) |
| `district_tw` / `district_en` | 行政區 |
| `address_tw` / `address_en` | 地址 |
| `parking_spaces` | 總車位數(數字) |
| `available_spaces` | 可借車輛數(數字) |
| `available_spaces_detail` | 可借明細 `{yb1, yb2, eyb}`:YouBike 1.0 / 2.0 / 電輔車 |
| `empty_spaces` | 可還空位數(數字) |
| `lat` / `lng`