The Movie DB
研究強大的電影資料庫
以前想查什麼電影資料都是到維基百科,或是看過電影的影評、部落格之類的,踏入Swift的世界之後才知道有電影資料庫這種東西。
想研究電影API的使用,查到世界上最大的電影資料庫是IMDB,不過IMDB沒有提供官方的API可以使用,但還是有一些非官方的API可以用,小王子提供我研究另一個電影資料庫叫TMDB,仔細研究了TMDB的網站之後發現功能之強大,有關電影的資料通通找得到,而且還有官方的API可以使用,立刻就來註冊看看吧。
個人頁面有待看清單、收藏清單、還有我的最愛、推薦頁面、評價區及討論區,我最喜歡待看清單了,因為很常看到什麼預告片想要去看電影結果忘記去看,有了這個功能就比較不會忘記了。
一開始註冊的時候不知道為什麼按送出資料後一直出現訊息:
We falied to validate the captcha response. Want to try again?
試了好幾次之後都一樣,最後是切換語言為中文才成功(莫名其妙!?)。
就拿最近看過的電影 玩命關頭-特別行動 來看好了,電影評分、票房、演員資料、電影海報、預告片什麼都有,真的蠻酷的。
題外話,女主角真的超正的(直接愛上)。
TMDB API
使用TMDB API除了要先註冊使用者帳號之外還要再取得API Key,登入帳號後到大頭照那邊點一下,接著點選Settings到設定頁面。
進入Settings頁面後可以看到API的選項,點進去後可以看到指示,依指示進行填資料、送出資料。
問得蠻細的資料(汗…),先選擇個人用戶,使用範圍有Web、Mobile Application等…我當然是選擇Mobile Application囉,送出資料之後會看到大頭照旁邊的小鈴鐺亮起,點進去會看到自己的API Key送來了。
回到Settings的API頁面,也會看到自己的API Key出現在這裡。
API Overview
先來看看TMDB API可以做什麼:
三種搜尋方法:
/search
:最基本的文字搜尋,透過字串搜尋最匹配的結果,此方法會考慮到所有原始的、翻譯的、替代名稱或標題。/discover
:根據過濾器或可定義的值去搜尋電影或電視,例如:評分最高的電影?票房最高的電影?現正上映的電影?/find
:根據現有的外部ID去搜尋,例如:利用某部電影或某位演員的IMDB ID搜尋任何匹配的內容。
General Features 一般特性
- Top rated movies 最受好評的電影
- Upcoming movies 即將上映的電影
- Now playing movies 現正放映的電影
- Popular movies 最受歡迎的電影
- Popular TV shows 最受歡迎的電視節目
- Top rated TV shows 最受好評的電視節目
- On the air TV shows 正在播出的電視節目
- Airing today TV shows 今日電視節目
- Popular people 最受歡迎的人
Account Features 帳戶特性
- Get details 取得詳細訊息
- Get lists (created and marked as favourite) 取得清單(建立我的最愛清單)
- Get favourite movie list 取得最愛電影清單
- Get movie watch list 取得待看電影清單
- Get rated movie list 取得電影分級清單
- Get the account state for a movie (rated, marked as favourite or on watch list) 取得帳戶中的電影狀態(分級、標記為我的最愛或待看電影清單)
Account Session Features 用戶特性
- Rate a movie 評分電影
- Add/remove a movie to your favourites 新增/移除我的最愛中的電影
- Add/remove a movie to your watch list 新增/移除待看清單中的電影
Guest Session Features (no sign up required) 訪客特性
- Rate a movie 評分電影
- Get a list of rated movies 取得電影分級清單
Movie Features 電影特性
- Search: Search for movies with a text query.
/search
- Discover: Search for movies based on data. Movies are queryable by fields like average rating, certifications, release dates and genres.
/discover
- Find: Find movies based on an external ID like an IMDB ID.
/find
就是一開始提到的三種搜尋方法。
Get details 可以做到的事:
- Primary info 主要訊息
- Alternative titles 副標題
- Cast 演員
- Crew 劇組
- Images (posters, backdrops) 海報
- Plot keywords 經典台詞
- Release information 公開訊息
- Trailers 預告片
- Translations 翻譯
- Similiar movies 類似的電影
- Reviews 評論
- Belongs to lists 分類
- Changes 改編劇本(小說)
TV Features 電視節目特性
- Search: Search for TV shows with a text query.
/search
- Discover: Search for TV shows based on data. TV shows are queryable by fields like average rating, air date, TV network and genres.
/discover
- Find: Find TV shows based on an external ID like an IMDB ID.
/find
一樣適用三種搜尋方法。
Get details 可以做到的事:
- Primary info 主要訊息
- Cast 演員
- Changes 改編劇本(小說)
- Crew 劇組
- Images (posters, backdrops) 海報
- External IDs 外部ID
- Translations 翻譯
TV Season Features 電視影集(第幾季)特性
Get details 可以做到的事:
- Primary info 主要訊息
- Cast 演員
- Changes 改編劇本(小說)
- Crew 劇組
- Images (posters, backdrops) 海報
- External IDs 外部ID
TV Episode Features 電視影集特性
Get details 可以做到的事:
- Primary info主要訊息
- Cast 演員
- Changes 改編劇本(小說)
- Crew 劇組
- Images (posters, backdrops) 海報
- External IDs 外部ID
Collection Features 收藏特性
- Search 搜尋
/search
Get details 可以做到的事:
- Images (posters, backdrops) 海報
所以只能收藏海報!?
People Features 關於人的搜尋特性(例如:演員)
- Search: Search for people with a text query.
/search
- Find: Find people based on an external ID like an IMDB ID.
/find
Get details 可以做到的事:
- Primary info 主要訊息
- Changes 改編劇本(小說)
- Credits (movie, TV and combined) 參與過的電影或電視劇或客串
- Images (profile) 個人照
- Tagged images 被標記的照片
Company Features 關於公司的搜尋特性(電影公司、經紀公司)
- Search 搜尋
/search
Get details 可以做到的事:
- Get movies 拍過/投資/出品的電影或電視
List Features 列表特性
- Search 搜尋
/search
- Get list movies 取得電影清單
Genre Features 分類特性
- Get list 取得清單
- Get movies 取得電影
Plot Keyword Features 關鍵字特性
- Search 搜尋
/search
Get details 可以做到的事:
- Get movies 取得電影
Job Features 工作特性
- Get list 取得清單
終於知道為什麼這算是可以與IMDB批敵的電影資料庫,功能之強大,一時不知道要從何下手…
API Documentation
知道可以做什麼之後再來讀讀官方文件:
method太多了…我就不贅述…直接實作。
實作
TMDB API的Documentation很有趣的一個地方 “Try it out”。
- 輸入自己的API Key試試看。
2. 搜尋:2019年/語言為 en-US的電影,預設language為en-US我就不改了,在year欄位輸入:2019。
3. 出現的資料。
仔細看了一下,出現了我最近看的電影:
Fast & Furious Presents: Hobbs & Shaw (玩命關頭-特別行動)。
4. JSON的格式。
也可以切換成JSON的格式,可以看到2019年語言為en-US的電影有20部。
玩命關頭-特別行動 在第五筆資料[4]。
5. 最棒的地方(超佛心)。
最讓我驚訝的地方是TMDB API居然還提供了各種程式語言的語法參考。
後記
研究完TMDB API之後覺得TMDB API真是太有趣了,摸熟了TMDB API之後,就是要應用到APP之中囉!接下來要開始規劃我的電影App啦~
自己期待一下😆
10/01/2019 更新(利用TMDB API的實作):
如果有值得大家參考的地方再麻煩大家幫我拍拍手喲,謝謝大家耐心閱讀🙇♀️