filmweb 是做什麼的?
從 www.filmweb.pl 背後的 JSON API 取得資料,使用一個小型、無依賴的 Python CLI 工具 scripts/filmweb.py,其一律輸出 JSON。
執行腳本
從此技能的目錄執行。使用任何可用的 Python 啟動器:
| 作業系統 | 指令 |
|---|---|
| Linux / macOS | python3 scripts/filmweb.py <command> … |
| Windows | py scripts/filmweb.py <command> …(或 python) |
無需安裝步驟。
工作流程
- 取得 Filmweb ID。
- 使用者提供連結 →
filmweb.py id "<url>"(離線)。 ID 是網址中最後的數字:filmweb.pl/film/Matrix-1999-628→628、filmweb.pl/serial/Gra+o+tron-2011-476848→476848。 - 使用者提供名稱 →
filmweb.py search "<title>"。結果依相關性排序。 當使用者明確指涉影集(或電影)時,加上--type=serial(或--type=film)。 若多個標題可能相符(重拍版、續集、電影 vs. 影集),使用film檢查,並依年代判斷,或詢問使用者。
- 使用者提供連結 →
- 僅擷取問題所需的資料。
- 評分、類型、導演、短劇情 →
film - 「誰在…中飾演角色?」 →
cast(film已包含兩位主要演員) - 「在哪裡可以觀看…?」 →
vod - 「何時首映…?」 →
dates - 完整劇情 →
description;關於人物的詳細資料 →person <personId>
- 評分、類型、導演、短劇情 →
- 以使用者的語言回答,並引用
film中的url。將評分四捨五入至一位小數,並提及票數(例如:「7,6/10 z 872 tys. ocen」)。VOD 價格以 zł 顯示。
電影與影集
電影、影集與遊戲共用同一組 ID 空間,每個指令都接受它們——即使查詢影集,也可使用 film <id>(例如:使用 film 476848 查詢「Gra o tron」)。請檢查輸出中的 type(film、serial 等)。對於影集,year 代表第一季年份,duration 為單集長度,而非整部影集。
指令
| 指令 | 回傳內容 |
|---|---|
| `search "" [--type=film | serial |
| `film <id | url>`(電影或影集) |
| `description <id | url>` |
| `cast <id | url> [--limit=10]` |
| `dates <id | url>` |
| `vod <id | url>` |
person <personId> | 姓名、本名、出生日期、出生地、身高、職業、照片網址、knownForIds、個人頁面網址 |
id <url> | {"id": …},離線可用 |
欄位參考:references/output.md。
退出代碼
JSON 輸出至 stdout;錯誤輸出至 stderr,格式為 {"error": "...", "type": "..."}。
| 代碼 | 意義 | 應對方式 |
|---|---|---|
0 | 成功 | 使用 JSON |
2 | 未找到 | 告知使用者;再次確認 ID |
64 | 使用方式錯誤 | 修正參數 |
69 | Filmweb / 網路錯誤 | 重試一次;若持續失敗,使用備援方案 |
備援方案
此 API 為非官方,可能因網路問題而變更或受阻。若腳本持續因代碼 69 失敗,或使用者需要腳本未提供的資料(角色名稱、評論、留言、完整工作人員),請使用網頁擷取工具或 curl 擷取公開頁面(film 中的 url,或 https://www.filmweb.pl/film/<slug>-<id>),並從中讀取資料。告知使用者資料來自網頁。
規則
- 不要為了「以防萬一」而為每個搜尋結果呼叫
film;僅檢查您需要的候選項目。 - 不要編造腳本未回傳的資料。